Jeelik Modul zur Einbindung von La Crosse!

Begonnen von Billy, 16 September 2013, 15:12:15

Vorheriges Thema - Nächstes Thema

justme1968

Zitat von: ulli am 02 November 2014, 18:49:05
Das "return ( "", $msg );" muss entfernt werden.
Warum habt ihr dieses Kommando so ergänzt? Gibt es einen Hintergrund? Wäre es möglich dies aus zu kommentieren?

das halte ich für sehr unwahrscheinlich das es daran liegt. der code teil ist 'seit immer' so...

wie kommst du denn darauf?

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

ulli

Ja das versteh ich auch nicht. Ich schildere mal die Situation:
Ich habe ein Modul das die Nachrichten über eine RS232 Schnittstelle empfängt, dann denn LaCrosse String zusammen baut (wie "OK 9 32 1 4 91 62") und dann Dispatched.

Das Dispatch Kommando ist wie folgt:
 
  $hash->{"${name}_MSGCNT"}++;
  $hash->{"${name}_TIME"} =
  $hash->{READINGS}{state}{TIME} = TimeNow();      # showtime attribute
  $hash->{RAWMSG} = $rmsg;
  my %addvals = (RAWMSG => $rmsg);

  Dispatch($hash, $dmsg, \%addvals);


$dmsg ist damit "OK 9 32 1 4 91 62"

Leider kommt diese Nachricht aber nie im ursprünglichen LaCrosse.pm Modul an.

Auf Grund dessen habe ich mich auf die Suche nach der Ursache gemacht.
Im fhem.pl bleibt das Kommando in der Dispatch Routine fest in Zeile 3054:
    if( my $ffn = $modules{$m}{FingerprintFn} ) {
      ($isdup, $idx) = CheckDuplicate($name, $dmsg, $ffn);
      return rejectDuplicate($name,$idx,$addvals) if($isdup);
    }


Wenn ich eben dann das "return ( "", $msg );" aus dem LaCrosse Modul entferne bleibt das Kommando nicht mehr stecken und es wird korrekt Dispatched.

Was denkst du Andre?

justme1968

der sinn von CheckDuplicate ist es doppelt empfangene nachrichten zu ignorieren. z.b. wenn man mehr als einen cul/jeelink oder was auch immer im system hat um den empfangsbereich zu vergrößern und manche sender von beiden empfangen werden. oder wenn eine nachricht ein mal direkt und ein mal über einen repeater empfangen wird. die FingerprintFn macht aus der empfangenen nachricht einen eindeutigen fingerprint der statt der nachricht verglichen wird weil bei manchen protokollen/systemen sich die nachrichten geringfügig unterscheiden können wenn sie z.b. über einen repeater weiter gesendet werden es aber trotzdem die gleiche nachricht ist. hier würde die finerprint funktion den zähler oder die repeater id oder was auch immer ausblenden. bei LaCrosse ist das nicht relevant und deshalb wir die komplette nachricht als fingerprint verwendet. nachrichten zählen als doppelt wenn sie den gleichen fingerprint haben und in weniger als 0.5 senden aufeinander folgen.

wenn die nachricht hier abgewiesen wird dann weil fhem denkt das sie doppelt angekommen ist die prüfung abzuschalten ist glaube ich der falsche weg.


ohne genauere nachgeschaut zu haben erst mal nur ein paar ideen aus dem stegreif:

wie oft kommen die nachrichten von deinem modul? sind sie wirklich unterschiedlich?

hast du dein modul in die clients und matchlist eingetragen ?

$hash->{READINGS}{state}{TIME} = TimeNow(); btw direkt auf $hash->{READINGS} sollte nicht mehr sein. besser die readingsUpdate funktionen verwenden.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

v.i.p.e.r

Servus,


ich hab jetzt auch einen Jeelik mit TX29DTH-IT in Betrieb.

ich bekomme folgende Ausgabe:

OK 9 23 1 4 203 70

Kann mir einer plausibel erklären, für das die Zahlen stehen ?
Die einzige Zahl die mit etwas auf dem Display übereinstimmt, ist die 70 für die Luftfeuchte.

Danke!

Gruß Tim

HCS

Zitat von: v.i.p.e.r am 05 November 2014, 20:45:21
Kann mir einer plausibel erklären, für das die Zahlen stehen ?

Eine plausible Erklärung:
  // OK 9 49 1   4   182 54     ID = 49  T: 20.6  H: 54  no NewBatt
  // OK 9 55 129 4   192 56     ID = 55  T: 21.6  H: 56  WITH NewBatt
  // OK 9 ID XXX XXX XXX XXX
  // |  | |  |   |   |   |
  // |  | |  |   |   |   --- Humidity incl. WeakBatteryFlag
  // |  | |  |   |   |------ Temp * 10 + 1000 LSB
  // |  | |  |   |---------- Temp * 10 + 1000 MSB
  // |  | |  |-------------- Sensor type (1 or 2) +128 if NewBatteryFlag
  // |  | |----------------- Sensor ID
  // |  |------------------- fix "9"
  // |---------------------- fix "OK"

Virgon

Soweit ich mich erinnere, wird der Temperaturwert in etwa so 'übersetzt':
4 * 256 + 192= 1216 > 21,6°C
4 * 256 + 203= 1227 > 22,7°C
CubieTruck : HM-CFG-USB2/hmland + 4x HM-CC-RT-DN
:JeeLink + 5x TX29DTH-IT

HCS

#921
Also eigentlich so:
(4 * 256 + 192 - 1000) / 10
(4 * 256 + 203 - 1000) / 10

Und bei der Humidity muss man das WeakBatteryFlag ausmaskieren. Sonst stimmt der Wert nicht, wenn es gesetzt ist.

v.i.p.e.r

Danke , das hat sehr geholfen. Ich nutze zwar kein FHEM sondern was eigenes - aber das hat mir noch gefehlt :)

2P4u

Hi Zusammen.
Ich Habe diese Sensoren bestellt:
http://www.amazon.de/gp/product/B006MD4ARS?psc=1&redirect=true&ref_=oh_aui_detailpage_o00_s00

Das sind Temperatur-Sender 30.3181.IT Sensoren.
Hat die schon jemand zum laufen gebracht?
Ich habe die bestellt, da ich dachte mit dem Externen Fühler kann ich die super im Aquarium einsetzen.
Muss ich die nun wieder zurückschicken weil ich die nicht einbinden kann?

Mit Autocreate bei [LaCrosseITPlusReader.10.1d @17.241 kbps] taucht jedenfalls nichts auf.
Hoffe ihr könnt mir da helfen.
Gibt es andere mit Externem Fühler?

Gruss Daniel
1x Ubuntu Server
1x LaCrosse Gateway für PCA301 /1x HMLAN /1x HMLGW
2x HueBridge mit Devices/ 1x Logitech Harmony Ultimate

Billy

#924
Ja, sogar von Technoline TX25 IT  siehe 1. Beitrag ;)

Gruß Billy
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

HCS

Zitat von: 2P4u am 10 November 2014, 21:28:30
Das sind Temperatur-Sender 30.3181.IT Sensoren.
Hat die schon jemand zum laufen gebracht?
Schon mal mit 9579 kbps versucht?

hdp1999

#926
Hallo !
Hatte auch Probleme Sensoren mit 9.579 kbps einzubinden TFA 30.3155 und TX35DH-IT! Sie wurden einfach nicht Empfangen ! Aktuell hatte ich keine Probleme mit Sensoren die mit  17.241 kbps  senden ! TX29DTH-IT .
Nach viel rumprobieren mit dem Sketch und div. Configänderungen an dem RFM12B Klappt es nun Super !
Ich habe die Frequenz vom RFM12B in der Config der RFM12.CCP des Sketches angepasst !
Ich habe den Empfänger auf 9.579 kbps fest Eingestellt und Bitweise die Frequenz geändert bis alle Sensoren ohne CRC Fehler mit OK 9 Empfangen wurden !Bei mir passt es so ->

von 0xA67c 868.3000MH auf 0xA681 868.3250MHz

zusätzlich habe ich auch die Werte der AFC geändert !

von 0xC49f  auf 0xC481

Eine Änderung der Bandbreite hatte keinen Erfolg !

Die Änderung des Kondensators des RFM12B Modul für den OOK Modus hatte auch kein Erfolg gebracht !Try & ERROR !!


Mir Ist dabei aufgefallen das es bei mir sehr empfindlich reagiert hat bei den  Sensoren mit 9.579 kbps! ein Bit daneben und schon hatte ich wieder nur  Datenmüll oder nix Empfangen ! Diese Änderungen haten keine Auswirkung auf den Empfang mit 17.241 kbps diese Sensoren wurden auch weiterhin Super empfangen !

Meine Sensoren hatte Ich von hier !

http://www.wetterladen.de/gebrauchter-sender-fuer-wd-geraet-30.3155-wd?c=1156

Soll keine Werbung sein ! Habe nur lange gesucht bis Ich Sensoren gefunden habe die Temp und Feuchte anzeigen und sofort Lieferbar waren und mit 11,95 € sehr günstig ! Die TX29 DTH-IT sind ja derzeit wie es scheint bis Januar vergriffen ! Siehe Völkner oder digitalo SMV ect...
Versandkostenfrei und trotz als Gebraucht verkauft kamen die Dinger in der Original Verpackung und sahen Neu aus !

Vielleicht hat jemand Lust es auszuprobieren.......


Gruß Dirk

2P4u

Zitat von: HCS am 11 November 2014, 08:29:22
Schon mal mit 9579 kbps versucht?

Ok das probiere ich mal heute Abend.
Danke für die Info.

Ansonsten gehen die einfach wieder zurück zu Amazon.
Die haben mir eben vom Design gefallen.
1x Ubuntu Server
1x LaCrosse Gateway für PCA301 /1x HMLAN /1x HMLGW
2x HueBridge mit Devices/ 1x Logitech Harmony Ultimate

ulli

@Andre:
Ich versteh aber dann nicht warum mein Modul, welches direkt über die Read() Funktion die Nachricht empfängt und dann an Parse() weiter leitet und dann wiederum die Nachricht Dispatched() diese als Duplikat erkannt wird?

Zitat von: justme1968 am 05 November 2014, 20:26:02
der sinn von CheckDuplicate ist es doppelt empfangene nachrichten zu ignorieren. z.b. wenn man mehr als einen cul/jeelink oder was auch immer im system hat um den empfangsbereich zu vergrößern und manche sender von beiden empfangen werden. oder wenn eine nachricht ein mal direkt und ein mal über einen repeater empfangen wird. die FingerprintFn macht aus der empfangenen nachricht einen eindeutigen fingerprint der statt der nachricht verglichen wird weil bei manchen protokollen/systemen sich die nachrichten geringfügig unterscheiden können wenn sie z.b. über einen repeater weiter gesendet werden es aber trotzdem die gleiche nachricht ist. hier würde die finerprint funktion den zähler oder die repeater id oder was auch immer ausblenden. bei LaCrosse ist das nicht relevant und deshalb wir die komplette nachricht als fingerprint verwendet. nachrichten zählen als doppelt wenn sie den gleichen fingerprint haben und in weniger als 0.5 senden aufeinander folgen.

wenn die nachricht hier abgewiesen wird dann weil fhem denkt das sie doppelt angekommen ist die prüfung abzuschalten ist glaube ich der falsche weg.


ohne genauere nachgeschaut zu haben erst mal nur ein paar ideen aus dem stegreif:

wie oft kommen die nachrichten von deinem modul? sind sie wirklich unterschiedlich?

hast du dein modul in die clients und matchlist eingetragen ?

$hash->{READINGS}{state}{TIME} = TimeNow(); btw direkt auf $hash->{READINGS} sollte nicht mehr sein. besser die readingsUpdate funktionen verwenden.

2P4u

Zitat von: 2P4u am 11 November 2014, 12:50:41
Ok das probiere ich mal heute Abend.
Danke für die Info.

Ansonsten gehen die einfach wieder zurück zu Amazon.
Die haben mir eben vom Design gefallen.

Ich habe mich nun hier durchgekämpft und nochmal ein update gemacht, ausserdem nochmal neu geflashed.
Verunsichert bin ich allerdings darum: http://forum.fhem.de/index.php/topic,28232.msg217966.html#msg217966

Mein Status ist nun folgender.
model[LaCrosseITPlusReader.10.1d @17.241 kbps]
RAWMSG OK 9 50 1 4 67 88
Also gehe ich davon aus, das da irgendwas kommt.
Jedoch wird kein Device angelegt, obwohl ich auf autocreate bin.
Hier noch ein Log Auszug:
2014.11.11 22:07:34 3: LaCrosse: Unknown device 32, please define it
Vielleicht hat das mit dem im Link erwähnten Fehler zu tun?
Kann mir hier jemand weiterhelfen?
1x Ubuntu Server
1x LaCrosse Gateway für PCA301 /1x HMLAN /1x HMLGW
2x HueBridge mit Devices/ 1x Logitech Harmony Ultimate