LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino

Begonnen von HCS, 07 November 2015, 14:39:36

Vorheriges Thema - Nächstes Thema

Intruder1956

#240
Hallo,
wie Geil ist das denn, möchte kurz von meinem Erfolgserlebnis berichten und Danke sagen.
Ich habe hier mitgelesen und gedacht OK das baue ich mal nach.
Habe mir vorgestern zwei ESP und drei RFM69 bestellt.
Heute geliefert worden.
Vor einer ca. einer Stunde den ESP mit dem https://github.com/nodemcu/nodemcu-flasher/tree/master/Win32/Release auf WIN7Prof.  programmiert auf 1.11, Wifi eingestellt.
Danach hab ich die sechs Kabel an dem RFM69 angebraten und mit dem ESP auf dem Steckboard verbunden.
Meinen noch konfigurierten vorherigen Raspi B+ angeschlossen und den ESP als Device in Fhem angelegt.
Ich konnte gar nicht so schnell gucken wie die alten Temperaturen von den ja noch vorhandenen Lacrosse TX29DTH aktualisiert waren ohne das IODevice zu ändern.
Dann habe ich gesehen das dann auch noch Automatisch ein KeyValueProtocol angelegt wurde
Es läuft sofort und ohne Probleme
Haben noch einen ESP und zwei RFM69 da liegen die werde ich dann auch noch verbauen  ;D ;D
Danke

schönen Abend und ein tolles Rest Wochenende

Gruß Werner aus dem Westerwald

PS. Antenne habe ich einfach ein Stück Draht genommen, weiß nicht mal wie lang es ist ;D ;D

PPS. Ich habe diese ESP betellt http://www.ebay.de/itm/272088034431?_trksid=p2060353.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT
Zotac CI547 32GB RAM 500GB SSD,ESXI 6.5, VM-Fhem5.8, VM-ioBroker, Cul 868Mhz;Cul 433Mhz = Busware, LGW, HM-MOD-RPI-PCB, Uniroll, IT YCR-100 TMT2100,ITR-1500, LD382 mit Wifilight, ESA 2000 + SENSOR WZ SET,FS20 TFK, HM-Sec-SC, HM-CC-RT-DN,PCA301,

HCS

Zitat von: Intruder1956 am 09 Januar 2016, 17:22:52... möchte kurz von meinem Erfolgserlebnis berichten ...
Ja, so muss es sein: löten - flashen - empfangen - freuen  ;D ;D

Jetzt kannst Du Dir noch einen BMP180 oder BME 280 dran packen um das Erlebnis zu steigern  ;D

Danke für die Rückmeldung, "es funktioniert" - Meldungen liest man zwischen den Problemen auch gerne mal.

Nachtrag: wenn Du das Steckbrett nicht in einer Zigarrenkiste als Endlösung planst, dann beobachte mal den LGW-Platinen-Thread.

Intruder1956

Hallo HCS,
den beobachte ich schon und warte nur darauf endlich zwei Platinen bestellen zu können 8) 8)

schönen Abend noch

Gruß Werner
Zotac CI547 32GB RAM 500GB SSD,ESXI 6.5, VM-Fhem5.8, VM-ioBroker, Cul 868Mhz;Cul 433Mhz = Busware, LGW, HM-MOD-RPI-PCB, Uniroll, IT YCR-100 TMT2100,ITR-1500, LD382 mit Wifilight, ESA 2000 + SENSOR WZ SET,FS20 TFK, HM-Sec-SC, HM-CC-RT-DN,PCA301,

Wzut

Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Omega

Ich komme leider nur teilweise voran.
Das LGW ist zusammengebaut, läuft und wird auch von FHEM erkannt (ich habe 2 RFM69CW (jetzt die 868MHz-Version) und einen BME280 angeschlossen).

Definiert habe ich es mit

define LaCrosseGateway JeeLink 192.168.0.28:81


Ein List des LGW:

Internals:
   CFGFN
   Clients    :PCA301:EC3000:RoomNode:LaCrosse:ETH200comfort:CUL_IR:HX2272:FS20:AliRF:Level:EMT7110:KeyValueProtocol
   DEF        192.168.0.28:81
   DeviceName 192.168.0.28:81
   FD         100
   LaCrosseGateway_MSGCNT 131
   LaCrosseGateway_TIME 2016-01-10 17:33:43
   NAME       LaCrosseGateway
   NR         49876
   PARTIAL
   RAWMSG     OK 9 15 1 4 33 80
   STATE      Initialized
   TYPE       JeeLink
   initMessages
   model      [LaCrosseITPlusReader.Gateway.1.11 (1=RFM69 f:868300 r:17241) + (2=RFM69 f:868300 r:9579) + BME280 {IP=192.168.0.28}]
   Matchlist:
     1:PCA301   ^\S+\s+24
     2:EC3000   ^\S+\s+22
     3:RoomNode ^\S+\s+11
     4:LaCrosse ^(\S+\s+9 |OK\sWS\s)
     5:AliRF    ^\S+\s+5
     6:EMT7110  ^OK\sEMT7110\s
     7:KeyValueProtocol ^OK\sVALUES\s
   Readings:
     2016-01-10 17:31:01   state           opened
Attributes:
   flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   room       LaCrosse

KeyValueProtocol wurde auch angelegt.

Über die serielle Schnittstelle kann ich auch sehen, dass wohl Daten ankommen...

Access point running: LaCrosseGateway_16446580
Searching RFMs and BMP
First RFM found: RFM69
Second RFM found: RFM69
BME280 found
Sending init String to FHEM

[LaCrosseITPlusReader.Gateway.1.11 (1=RFM69 f:868300 r:17241) + (2=RFM69 f:868300 r:9579) + BME280 {IP=192.168.222.1}]
Setup completely done
OK WS 0 4 4 208 40 255 255 255 255 255 255 255 255 0 3 212
OK 9 19 1 4 182 106
OK VALUES LGW 16446580 UpTimeSeconds=18,UpTimeText=0Tg. 0Std. 0Min. 18Sek. ,WIFI=WLAN4Me,MacAddress=18:FE:34:FA:F4:74,ChipID=16446580,ReceivedFrames=1,FramesPerMinute=1,RSSI=-51
OK 9 35 1 4 162 106
OK 9 15 1 4 32 80
OK 9 18 1 4 156 64
OK 9 27 1 4 146 106
OK 9 19 1 4 182 106
OK WS 0 4 4 207 40 255 255 255 255 255 255 255 255 0 3 212
OK VALUES LGW 16446580 UpTimeSeconds=28,UpTimeText=0Tg. 0Std. 0Min. 28Sek. ,WIFI=WLAN4Me,MacAddress=18:FE:34:FA:F4:74,ChipID=16446580,ReceivedFrames=6,FramesPerMinute=6,RSSI=-51
OK 9 27 130 4 143 125
OK 9 15 1 4 32 80
OK 9 18 1 4 156 64
OK 9 35 130 4 163 125
OK 9 19 1 4 182 106
OK 9 15 1 4 32 80
OK 9 18 1 4 156 64
OK 9 35 1 4 162 106
OK WS 0 4 4 207 40 255 255 255 255 255 255 255 255 0 3 212
OK VALUES LGW 16446580 UpTimeSeconds=38,UpTimeText=0Tg. 0Std. 0Min. 38Sek. ,WIFI=WLAN4Me,MacAddress=18:FE:34:FA:F4:74,ChipID=16446580,ReceivedFrames=14,FramesPerMinute=14,RSSI=-51
OK 9 19 1 4 182 106
OK 9 27 130 4 143 125
OK 9 15 1 4 32 80
OK 9 18 1 4 156 64
OK WS 0 4 4 208 40 255 255 255 255 255 255 255 255 0 3 212
OK VALUES LGW 16446580 UpTimeSeconds=48,UpTimeText=0Tg. 0Std. 0Min. 48Sek. ,WIFI=WLAN4Me,MacAddress=18:FE:34:FA:F4:74,ChipID=16446580,ReceivedFrames=18,FramesPerMinute=18,RSSI=-52
OK 9 19 1 4 182 106
OK 9 35 130 4 163 125
OK 9 15 1 4 32 80
OK 9 18 1 4 156 64
OK 9 35 1 4 162 106
OK WS 0 4 4 207 40 255 255 255 255 255 255 255 255 0 3 212
OK VALUES LGW 16446580 UpTimeSeconds=58,UpTimeText=0Tg. 0Std. 0Min. 58Sek. ,WIFI=WLAN4Me,MacAddress=18:FE:34:FA:F4:74,ChipID=16446580,ReceivedFrames=23,FramesPerMinute=23,RSSI=-52
OK 9 19 1 4 182 106
OK 9 15 1 4 32 80
OK 9 18 1 4 156 64
OK 9 19 1 4 182 106
OK 9 35 130 4 163 125
OK WS 0 4 4 207 40 255 255 255 255 255 255 255 255 0 3 212
OK VALUES LGW 16446580 UpTimeSeconds=68,UpTimeText=0Tg. 0Std. 1Min. 8Sek. ,WIFI=WLAN4Me,MacAddress=18:FE:34:FA:F4:74,ChipID=16446580,ReceivedFrames=28,FramesPerMinute=28,RSSI=-52


Es gelingt mir allerdings nicht, in FHEM ein Gerät zu sehen, dass ich weiter ausbauen könnte.
Ein ,,set LaCrosseGateway LaCrossePairForSec 60 ignore_battery" bringt mir kein neues Gerät (und zumindest der BME280 ist neu). Meine anderen LaCrosse-Sensoren hören derzeit noch auf einen normalen JeeLink, daher kann ich sie vermutlich z.Zt. nicht sehen.

LG
Holger
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

AxelSchweiss

#245
Das Problem hatte ich mit meiner WS1600 Wetterstation auch.
Trotz : define autocreate autocreate
(Schau mal ob das bei dir fehlt)

Ich habe mir dann wie folgt beholfen:
Im Logfile steht irgendwann etwas in dem Tenor:
JeeLink1: Unknown code XX , help me!

Wobei XX die ID der Wetterstation war.

Dann habe ich das Config eben von Hand eingetragen.
define Wetterstation LaCrosse XX
attr Wetterstation IODev JeeLink1

Dann war alles gut  :)

EDIT:
Ich sehe gerade, irgendeine Wetterstation hast du auch "OK WS ..... ". Die 4 ist glaube ich die ID (in HEX ?)




HCS

Zitat von: Omega am 10 Januar 2016, 18:03:19
Access point running: LaCrosseGateway_16446580
Das LGW hat sich nicht mit dem wlan verbunden. Sicher das die IP-Konfiguration im LGW-Setup stimmt?

Omega

Da hatte ich das LGW an meine Arduino-IDE angeschlossen, um die serielle Schnittstelle verwenden zu können - vielleicht daher.
Ich habe eben gleich noch mal meine setup-Seite aufgerufen (192.168.0.28/setup). Komme drauf und es erfolgen auch Updates. Also bin ich in meinem normalen WLAN.
Löse ich in FHEM ein "set LaCrosseGateway reset" aus, erfolgt auch ein erneutes open. Die Verbindung ist also da.
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

HCS

OK, kannst Du nochmal erneut einen list von JeeLink device machen und anhängen?

Omega

#249
 :) gerne

Internals:
   CFGFN
   Clients    :PCA301:EC3000:RoomNode:LaCrosse:ETH200comfort:CUL_IR:HX2272:FS20:AliRF:Level:EMT7110:KeyValueProtocol
   DEF        192.168.0.28:81
   DeviceName 192.168.0.28:81
   FD         100
   LaCrosseGateway_MSGCNT 3647
   LaCrosseGateway_TIME 2016-01-10 19:39:46
   NAME       LaCrosseGateway
   NR         49876
   PARTIAL
   RAWMSG     OK 9 18 1 4 157 62
   STATE      Initialized
   TYPE       JeeLink
   initMessages
   model      [LaCrosseITPlusReader.Gateway.1.11 (1=RFM69 f:868300 r:17241) + (2=RFM69 f:868300 r:9579) + BME280 {IP=192.168.0.28}]
   Matchlist:
     1:PCA301   ^\S+\s+24
     2:EC3000   ^\S+\s+22
     3:RoomNode ^\S+\s+11
     4:LaCrosse ^(\S+\s+9 |OK\sWS\s)
     5:AliRF    ^\S+\s+5
     6:EMT7110  ^OK\sEMT7110\s
     7:KeyValueProtocol ^OK\sVALUES\s
   Readings:
     2016-01-10 18:30:41   state           opened
Attributes:
   flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   room       LaCrosse


Nachtrag: autocreate ist schon immer aktiv bei mir, hat auch immer funktioniert
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

Omega

So, ich bin weitergekommen.
Das LGW habe ich mal auf verbose 5 gesetzt, da habe ich dann auch die aktuellen Datensätze sehen können ohne eine serielle Schnittstelle bemühen zu müssen.
Nachdem ich etwas zum Aufbau des CaCrosse-Protokolls gefunden habe, habe ich zumindest den 1. Teil der Datensätze verstanden
(zumindest OK 9 id), wobei die ID hier dezimal ist. Aufgeführt werden alle meine Sensoren, die aber bereits definiert sind und dem bisherigen JeeLink-Device zugeordnet sind  (wie ich auch schon vermutet hatte).
Der Datensatz, beginnend mit WS, ist der BME. Der Satzaufbau beginnt mit WS id 4. Bei mir war das die id 00. Die 4 steht für den Sensortype.

Jetzt händisch zugewiesen:

define LGW_Wetterstation LaCrosse 00
attr LGW_Wetterstation IODev LaCrosseGateway

und nach kurzer Zeit kommen die Daten.

Jetzt fehlt mir noch die Höhenkorrektur zum Druck - irgendwo habe ich das schon gesehen, kann es aber im Moment nicht finden.

Aufgefallen ist mir noch, dass ein definiertes stateFormat überschrieben wird
Definiert hatte ich

attr LGW_Wetterstation  T: temperature H: humidity D: dewpoint P: pressure

(dewpoint wird bei mir automatisch angelegt).
Scheinbar wird die Anweisung auch akzeptiert, aber nach erneutem Aufruf von LGW_Wetterstation  ist das wieder weg (den save habe ich nicht vergessen).

Internals:
   CFGFN
   DEF        00
   IODev      LaCrosseGateway
   LASTInputDev LaCrosseGateway
   LaCrosseGateway_MSGCNT 137
   LaCrosseGateway_RAWMSG OK WS 0 4 4 202 42 255 255 255 255 255 255 255 255 0 3 212
   LaCrosseGateway_TIME 2016-01-10 21:27:40
   LaCrosse_lastRcv 2016-01-10 21:27:40
   MSGCNT     137
   NAME       LGW_Wetterstation
   NR         52006
   STATE      T: 22.6 H: 42 D: 9.0
   TYPE       LaCrosse
   addr       00
   battery_new 0
   bufferedH  42
   bufferedT  22.6
   corr1      0
   corr2      0
   previousH  42
   previousT  22.6
   sensorType 4=LaCrosseGateway
   Readings:
     2016-01-10 21:27:40   battery         ok
     2016-01-10 21:27:40   dewpoint        9.0
     2016-01-10 21:27:40   error           0
     2016-01-10 21:27:40   humidity        42
     2016-01-10 21:27:40   pressure        980
     2016-01-10 21:27:40   state           T: 22.6 H: 42
     2016-01-10 21:27:40   temperature     22.6
Attributes:
   IODev      LaCrosseGateway
   room       LaCrosse
   stateFormat T: temperature H: humidity D: dewpoint P: pressure
[/state]
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

HCS

Die Höhenkorrektur setzt man mit dem command h in den initCommands.
Beispiel: 220h legt 220m über NN fest.

Der interne Sensor des LGW ist immer ID 0 und tut so, als ob er eine Wetterstation wäre.

Zitatattr LGW_Wetterstation  T: temperature H: humidity D: dewpoint P: pressure
So geht das auch nicht, sondern so:
attr LGW_Wetterstation stateFormat T: temperature H: humidity D: dewpoint P: pressure

Omega

Zitat
So geht das auch nicht, sondern so:
attr LGW_Wetterstation stateFormat T: temperature H: humidity D: dewpoint P: pressure
Ja, habe ich aber nur hier falsch eingetragen. In der Oberfläche von FHEM habe ich es korrekt eingetragen. Du kannst es auch in dem list meines letzten Beitrages sehen - und das P in STATE nicht auftaucht.

Die initCommands beziehen sich doch auf die Radios <Wert>#<Radio-Nummer><command> - also 220#<Radio-Nummer>h
Welches Radio ist der BME280?
Kommt zwischen <Radio-Nummer><command> kein Leerzeichen?
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

HCS

Zitat von: Omega am 10 Januar 2016, 22:39:40
Ja, habe ich aber nur hier falsch eingetragen. In der Oberfläche von FHEM habe ich es korrekt eingetragen. Du kannst es auch in dem list meines letzten Beitrages sehen - und das P in STATE nicht auftaucht.
Das funktioniert bei mir. Habe Dein Stateformat bei mir gestetzt. Passt, bleibt erhalten, alles OK.

Zitat von: Omega am 10 Januar 2016, 22:39:40
Die initCommands beziehen sich doch auf die Radios <Wert>#<Radio-Nummer><command> - also 220#<Radio-Nummer>h
Nur manche, nicht alle. "h" ist z.B. eins, das sich nicht auf ein Radio bezieht, weil der BME 280 nichts mit einem Radio zu tun hat.
220h ist schon richtig.

Zitat von: Omega am 10 Januar 2016, 22:39:40
Welches Radio ist der BME280?
Keins, er wird ja nicht auf 868MHz empfangen und funktioniert sogar, wenn man kein Radio angeschlossen hat.

Zitat von: Omega am 10 Januar 2016, 22:39:40
Kommt zwischen <Radio-Nummer><command> kein Leerzeichen?
Nein, definitiv nicht.
Beispiel Frequenz und Höhe über NN
attr myJeeLink initCommands 220h 868295#1f 868310#2f


Hier als Beispiel meine aktuellen InitCommands:
868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v

Radio 1 auf 868295 MHz und Toggle 9K/17K mit 20 Sekunden
Radio 2 für PCA301 initialisiert (geht nur bei mir, ist noch nicht in der 1.11 enthalten)
Radio 3 macht 8842 kbps für die WS 1600
Höhe 220m über NN
Activity LED aus
v am Ende ruft die neu gesetzen Daten vom LGW ab, damit sie in FHEM (Model) aktualisiert werden.

Omega

#254
Danke für deine Geduld (du wirst noch mehr davon brauchen  ;) )

So ganz habe ich es noch nicht verstanden – ich versuche mal:
868295#1f   -- > Radio 1 auf 868295 MHz (f=Frequenz)
3#1m      -- > Radio1: Toggle-Mode 3 (m=toggle mode). Die 3 ist vermutlich binär zu sehen (17241 UND 9579)
20#1t      -- > Radio1: toggle data rate interval 20 Sekunden
2,868950,60i   -- > vermutl. die PCA301-Initialisierung (ich vermisse ein #2, deswegen habe ich ein Problem mit der Zuordnung)

Der Rest ist mir klar, wobei das ,,v" nicht ausgereicht hat zur Aktualisierung. Erst nach einem Reset hatte das LGW meine initCommands umgesetzt.

Weitere Auffälligkeiten:
Im Log habe ich folgendes gefunden:

2016.01.11 10:27:29 3: KeyValueProtocol_LGW_16446580: unknown IODev specified
2016.01.11 10:27:33 1: configfile: KeyValueProtocol_LGW_16446580: unknown IODev specified
2016.01.11 10:27:40 2: Error messages while initializing FHEM: configfile: KeyValueProtocol_LGW_16446580: unknown IODev specified

Im KeyValueProtocol_LGW_16446580 war eingetragen als IODev: myJeeLink (das ist aber mein JeeLabs-Stick). Vermutl. kam das durch das automatische Anlegen vom KeyValueProtocol_LGW_16446580.
Nachdem ich das IODev auf LaCrosseGateway (der von mir vergebene Name) umgesetzt habe, waren die Fehlermeldungen weg.


Jetzt verbleibt noch das Phänomen mit stateFormat. Selbst ein Löschen und Neuanlegen des Devices bringt keine Änderung. Ich kann in stateFormat schreiben was ich will (zuerst wird es scheinbar angenommen) aber nach einem erneuten Aufruf des Devices steht immer T: 22.8 H: 38 D: 7.8 im STATE (selbst dann, wenn kein stateFormat definiert ist). Die Werte selbst werden aktualisiert.

Nachtrag: nach ca. 1h (ohne weitere Änderungen meinerseits) war das stateFormat mit einem Mal korrekt umgesetzt (wie gut das Datenverarbeitung so wenig mit Logik zu tun hat  ;D )
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave