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

HCS

Zitat von: AxelSchweiss am 21 November 2015, 12:40:03
Wenn's für dich einfacher ist dann nimm XML
OK, das LGW würde dann bei 192.168.1.2/status das XML liefern. Dann ist es eigentlich ein REST Web Service. Hat auch was  :)

Messages/Minute
Ich vermute, das soll eine gleitende Minute sein, und angeben, wie viele Pakete von Sensoren erfolgreich empfangen, decodiert und an FHEM zugestellt wurden?

Ich habe es auf der ToDo. Jetzt brauchst Du nur noch Geduld ...

AxelSchweiss

Zitat von: HCS am 21 November 2015, 12:47:35
Messages/Minute
Ich vermute, das soll eine gleitende Minute sein, und angeben, wie viele Pakete von Sensoren erfolgreich empfangen, decodiert und an FHEM zugestellt wurden?

Ich habe es auf der ToDo. Jetzt brauchst Du nur noch Geduld ...
Ja genau ... dann sieht man den aktuellen Durchsatz  ... und somit weisst du das da noch "Bewegung" ist.

Geduld habe ich ... da ich selbst beim Programieren bei Turbo Pascal 5.5 stehen geblieben bin  ... und das nur rudimentär gemacht habe  :)
Daher .... Vielen Dank schon mal

Wzut

Ich habe heute versucht die .bin Datei aus dem ersten Post mit dem esptool (Link auch aus dem ersten Post) auf einen ESP8266-12 zu flashen.
Leider ohne Erfolg :(
Auf meiner Festplatte hatte ich aber noch ein Python esptool.py , damit konnte ich das File erfolgreich flashen :
esptool.py -p /dev/ttyUSB0 write_flash 0x00000 ./LaCrosseGateway.bin
Nach einem Reset ist der AccesPoint und die Setup Seite erreichbar, leider werden auch nach mehren Versuchen (DHCP / Statische IP) keinerlei Einstellungen übernommen und der ESP startet immer wieder als AP :
This is line 5 of void setup(void)
Read settings
Settings are:
Starting wifi
HostName is: LaCrosseGateway
Using DHCP
Trying to connect to an AP
..............................
We got no connection :-(
Starting Access point
Access point running: LaCrosseGateway_10469021
Searching RFMs and BMP
Sending init String to FHEM

[LaCrosseITPlusReader.Gateway.1.05 {IP=192.168.222.1}]
Setup completely done
[LaCrosseITPlusReader.Gateway.1.05 {IP=192.168.222.1}]
Setup completely done
Key:ctSSID  Val:sensor
Key:ctPASS  Val:xxx_xxx               <- PW geändert, aber echtes PW ist mit Underline
Key:staticIP  Val:192.168.0.111
Key:staticMask  Val:255.255.255.0
Key:staticGW  Val:192.168.0.253
Key:HostName  Val:LaCrosseGateway
b��d����������������FC�愄������䄥��熤D�Ƅbŧ���E���Ĥb�d
This is line 5 of void setup(void)
Read settings
Settings are:
Starting wifi
HostName is: LaCrosseGateway
Using DHCP
Trying to connect to an AP
..............................
We got no connection :-(
Starting Access point
Access point running: LaCrosseGateway_10469021
Searching RFMs and BMP
Sending init String to FHEM

[LaCrosseITPlusReader.Gateway.1.05 {IP=192.168.222.1}]
Setup completely done

Den RFM12B habe ich bis jetzt noch nicht angeklemmt, wollte warten bis WiFi rund läuft.
@HCS,
ich würde ja zu gerne den normalen Arduino LaCrosse Sketch mal mit der Arduino 1.6.5 IDE auf den ESP flashen, allerdings gibts im ersten Anlauf Fehler beim übersetzen der RFMxx.cpp. Wäre wirklich schön wenn du irgendwann mal deinen Quellcode veröffentlichen würdest, ich denke dann könnte man den ganzen AP und Setup Umweg auch einfach weglassen und alle Parameter "hartcoded" in den Quelltext packen.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

HCS

Zitat von: Wzut am 21 November 2015, 19:40:54
Ich habe heute versucht die .bin Datei aus dem ersten Post mit dem esptool (Link auch aus dem ersten Post) auf einen ESP8266-12 zu flashen.
Leider ohne Erfolg :(
Ein ESP8266 ESP-12 oder ein ESP8266 ESP-12E oder ein NodeMCU devboard?


Zitat von: Wzut am 21 November 2015, 19:40:54
Einstellungen übernommen und der ESP startet immer wieder als AP :
Das sieht so aus, als ob die Settings nicht im EEPROM gespeichert werden.
Aber keine Ahnung warum das bei Dir nicht geht.


Zitat von: Wzut am 21 November 2015, 19:40:54
ich würde ja zu gerne den normalen Arduino LaCrosse Sketch mal mit der Arduino 1.6.5 IDE auf den ESP flashen, allerdings gibts im ersten Anlauf Fehler beim übersetzen der RFMxx.cpp.
Ja, der läuft nicht auf einem ESP. Nicht alle Libs, die man so hat, funktionieren auf dem ESP. Manche kann man nicht compilieren, und manche machen einfach nicht das, was sie auf einem Arduino machen. Das war ein mühsamer Weg, die so hinzubekommen, dass sie auf Arduino und ESP gehen.
Was hast Du denn vor? Der originale Arduino-Sketch macht recht wenig Sinn auf einem ESP.
Wenn Du irgend ein Projekt vor hast, das einen RFM verwendet, kann ich Dir zumindest mal die RFMxx in einer Version geben, die auch auf dem ESP geht.


Zitat von: Wzut am 21 November 2015, 19:40:54
... ich denke dann könnte man den ganzen AP und Setup Umweg auch einfach weglassen und alle Parameter "hartcoded" in den Quelltext packen.
Das glaube ich nicht. Es wird nicht jeder Anwender gewillt und in der Lage sein, die dafür erforderliche Entwicklungsumgebung aufzubauen und dann eine neue Version zu compilieren und zu flashen, nur weil er das Passwort von seinem wlan mal geändert hat.

Wzut

Zitat von: HCS am 22 November 2015, 08:28:57
Ein ESP8266 ESP-12 oder ein ESP8266 ESP-12E oder ein NodeMCU devboard?
Ein nackter ESP8266 ESP-12 , ein NodeMCU Devboard V1.0 ist bestellt aber noch nicht da
Zitat von: HCS am 22 November 2015, 08:28:57
Das sieht so aus, als ob die Settings nicht im EEPROM gespeichert werden.
Die Vermutung hatte ich auch :(

Zitat von: HCS am 22 November 2015, 08:28:57
Das war ein mühsamer Weg, die so hinzubekommen, dass sie auf Arduino und ESP gehen.
Das glaube ich dir aufs Wort ! Da ich aber eine "faule Sau" bin lebe ich nach dem alten Motto :
"Gute Programmierer schreiben guten Code, geniale Programmierer borgen sich guten Code" :)
Zitat von: HCS am 22 November 2015, 08:28:57
Was hast Du denn vor? Der originale Arduino-Sketch macht recht wenig Sinn auf einem ESP.
Wenn Du irgend ein Projekt vor hast, das einen RFM verwendet, kann ich Dir zumindest mal die RFMxx in einer Version geben, die auch auf dem ESP geht.
Ich habe die letzten Wochen einiges mit dem ESP8266 (Arduino IDE) und MQTT gemacht. Daher würde ich gern ein LaCrosse - MQTT Gateway bauen.
D.h. die empfangenen Daten sollen nicht als Telegramm an eine bestimmte fhem Instanz weitergereicht werden sondern decodiert direkt an den MQTT Broker.
Die diversen fhem Instanzen holen sich dann vom Broker genau die Werte die sie benötigen.Auf die Art löse ich z.Z. bestehende fhem2fhem Verbindungen ab.

Zitat von: HCS am 22 November 2015, 08:28:57
Es wird nicht jeder Anwender gewillt und in der Lage sein, die dafür erforderliche Entwicklungsumgebung aufzubauen und dann eine neue Version zu compilieren
Gebe ich dir 100%ig Recht, aber die ersten Beta Versionen müssen ja auch nicht zwingend für jedermann direkt einsetzbar sein.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

HCS

Zitat von: Wzut am 22 November 2015, 10:16:06
Ein nackter ESP8266 ESP-12
Muss mal in der Bastelkiste suchen, ob ich einen habe und damit probieren.
Das könnte auch erklären, warum die flasherei nicht geklappt hat, die reset-Logik auf dem devboard ist ziemlich special.


Zitat von: Wzut am 22 November 2015, 10:16:06
"Gute Programmierer schreiben guten Code, geniale Programmierer borgen sich guten Code" :)
Mist, ich muss unbedingt irgendwie den Sprung von "gut" zu "genial" schaffen, dann könnte ich jetzt in der Sonne (die nicht scheint) liegen und das 500 KM entfernte Meer anschauen.  ;D ;D ;D


Zitat von: Wzut am 22 November 2015, 10:16:06
Ich habe die letzten Wochen einiges mit dem ESP8266 (Arduino IDE) und MQTT gemacht. Daher würde ich gern ein LaCrosse - MQTT Gateway bauen.
D.h. die empfangenen Daten sollen nicht als Telegramm an eine bestimmte fhem Instanz weitergereicht werden sondern decodiert direkt an den MQTT Broker.
Ich will Dir unter keinen Umständen etwas wegnehmen, aber da wäre zu überlegen, ob es wirklich Sinn macht, eine Firmware zu haben, die 95% alles gleich macht, und nur am Ende das dann wo anders hin schickt. Das könnte ja das LGW auch optional beherrschen.
Es muss eigentlich nur bei erfolgreich verarbeiteten Daten das optional noch an den MQTT Broker schicken. Auch dazu wird wie für die FHEM-Anbindung ein wifi connect usw. benötigt.
Aktuell ist es eh schon so ausgelegt, dass man es alternativ am Server per USB verwenden kann, als ob es ein JeeLink wäre (wenn dann die debug-Messages wieder raus sind). Das macht z.B. dann Sinn, wenn das LGW mal Sensoren kann, die der LaCrosse Sketch nicht mehr lernen wird und man warum auch immer kein wifi haben möchte.

Wenn Du da aufspringen willst, dann gib Bescheid und ich denke mal drüber nach, wie ich es ermöglichen kann, dass Du diesen Teil beiträgst.
Wenn Du eine komplette eigene Firmware aufziehen willst, ist das auch OK, dann gebe ich Dir die RFMxx und Du kannst basteln.

Gerade gemerkt: brauche ich Dir nicht geben. Im aktuell eingecheckten LaCrosse Sketch (http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/36_LaCrosse-LaCrosseITPlusReader.zip) ist die drin, die auch mit den ESP geht. Ist übrigens die Einzige, bei der ich es nicht geschafft habe, dass sie für beide funktioniert, ohne verschiedene Code-Zweige zu haben.
Du musst oben den
//// #define ESP8266
scharf machen, dass sie für ESP kompiliert und funktioniert.

Zitat von: Wzut am 22 November 2015, 10:16:06... aber die ersten Beta Versionen müssen ja auch nicht zwingend für jedermann direkt einsetzbar sein.
Ein Grund für die recht frühe Beta ist, Felderfahrung zu sammeln, um zu sehen, was da draußen so alles ist und passiert (z.B. plaine ESP-12, ...) und dafür, wenn möglich, Lösungen zu finden.
Was ich dabei aber vermeiden will ist, dass Probleme gesucht werden müssen, die es eigentlich nicht gibt, nur weil jemand nicht die exakt passende tool chain aufgebaut hat. Beim LaCrosse Sketch gab es da auch oft Probleme und seit man es einfach mit set myJeeLink flash erledigen kann, ist Ruhe eingekehrt.


Omega

Jetzt habe ich einen RFM69CW bekommen (433 MHz) und angeschlossen.
Gateway wird erkannt, IP erfolgreich geändert, Statusseite zeigt

LaCrosseGateway V1.05

Uptime: 2130 Seconds
Connected to: WLAN4Me
MAC address: 18:FE:34:FA:F4:74
Chip ID: 16446580


Gatewaydevice habe ich im FHEM definiert und FHEM sagt dazu auch Status: Initialized

define lcg_Jeelink JeeLink 192.168.0.222:81
attr lcg_Jeelink initCommands 30t v


Leider kann ich aber keines meiner 433MHz Thermostate anlernen (eines ist z.B. ein TFA 30.3125 auf 433 MHz, ein anderes ein Noname).

Die blaue LED leuchtet fast konstant, die rote ca. kurz im Sekundentakt.

Ein List des Gateways bringt

Internals:
   CFGFN
   Clients    :PCA301:EC3000:RoomNode:LaCrosse:ETH200comfort:CUL_IR:HX2272:FS20:AliRF:Level:EMT7110
   DEF        192.168.0.222:81
   DeviceName 192.168.0.222:81
   FD         93
   NAME       lcg_Jeelink
   NR         2744
   PARTIAL
   STATE      Initialized
   TYPE       JeeLink
   model      [LaCrosseITPlusReader.Gateway.1.05 + (RFM69 f:868300 r:9579) {IP=192.168.0.222}]
   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:
     2015-11-22 17:59:39   state           opened
Attributes:
   flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   initCommands 30t v
   room       LaCrosse

Passt das Internal model zu 433 MHz?
Oder fehlt mir noch anders?
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

Wzut

Zitat von: HCS am 22 November 2015, 11:00:38
Ich will Dir unter keinen Umständen etwas wegnehmen
-- snipp --
dann gebe ich Dir die RFMxx und Du kannst basteln.
Ich sehe das nicht als wegnehmen, im Gegenteil ich bin doch auch der Meinung das Rad muss nicht täglich neu erfunden werden :)
Ich habe mir deine ESP8266 taugliche RFMxx lib gezogen und ersteinmal einen mini Sketch damit aufgesetzt,
bis jetzt klappt zumindest schon mal die Erkennung des RFM69CW !
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

HCS

Zitat von: Omega am 22 November 2015, 18:39:20
Jetzt habe ich einen RFM69CW bekommen (433 MHz) und angeschlossen.
Gateway wird erkannt, IP erfolgreich geändert, Statusseite zeigt

LaCrosseGateway V1.05

Uptime: 2130 Seconds
Connected to: WLAN4Me
MAC address: 18:FE:34:FA:F4:74
Chip ID: 16446580

Super, dass das bei Dir funktioniert hat.

Zitat von: Omega am 22 November 2015, 18:39:20

Internals:
   ...
   model      [LaCrosseITPlusReader.Gateway.1.05 + (RFM69 f:868300 r:9579) {IP=192.168.0.222}]
   ...

Passt das Internal model zu 433 MHz?
Also rein LGW technisch sieht das gut aus. Es läuft, und FHEM konnte sich drauf verbinden und hat die Initialisierung bekommen.
Ich habe keine Ahnung, ob der 30.3125 ein Protokoll sendet, das einem der 868 MHz Sensoren, die implementiert sind, entspricht.
f:868300 passt auf alle Fälle nicht.

Habe ein Datenblatt zum 30.3125 gefunden. Da steht drin:
Zitat· Transmission interval : every 5 minutes
· Transmission frequency : 433.92MHz

Dann wären folgende initCommands richtig:
433920f 0r v
alternativ
433920f 1r v
Aber, der sendet lt. diesem Datenblatt nur alle 5 Minuten, da braucht man Geduld, selbst wenn man die Parameter richtig hat.
Und der autocreate wird auch nicht gehen, ohne ihn umzukonfigurieren, weil der erwartet als default, dass der Sensor innerhalb von 120 Sekunden zwei mal empfangen wird.

HCS

Zitat von: Wzut am 22 November 2015, 19:09:21
bis jetzt klappt zumindest schon mal die Erkennung des RFM69CW !
Hast Du evtl. etwas anderes erwartet  ;D ;D ;D
Vorschlag, entwickle mal mit minimalem drum-rum-Aufwand Deine MQTT Übermittlung, und dann schauen wir, wie wir es in das LGW mit rein bekommen.

HCS

Zitat von: Omega am 22 November 2015, 18:39:20(eines ist z.B. ein TFA 30.3125 auf 433 MHz ...
Etwas suchen bringt mich zu folgender Erkenntnis: der sendet OOK, somit wird das nichts.

Omega

Dann muss ich mich mal schlau machen, was OOK bedeutet.
Zusätzlich habe ich noch einen 30.3015 - der geht auch nicht.

Wahrscheinlich blöde Frage aber: beim Einrichten meines Jeelinks musste ich nach Anlegen des Devices in FHEM noch einen Befehl zum flashen absetzen. Ist das hier auch noch notwendig oder ist das bereits alles im Code (LaCrosseGateway.bin) enthalten?
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 22 November 2015, 21:08:56a
Dann muss ich mich mal schlau machen, was OOK bedeutet.
Das ist die Art, wie die Daten auf dem HF-Weg übertragen werden. Hilft aber nichts, das kann der Sketch nicht.
Ich sehe ziemlich schwarz für deine 433 MHz Sensoren, das ganze wurde (sowohl der LaCrosse Sketch als auch das LGW) für die 868 MHZ IT+ Schiene entwickelt.
Einen 433 MHz Sensor zu haben, der zufällig dieses Protokoll sendet, nur halt auf 433 ist dann mehr als Glück.
Siehe hier: http://www.fhemwiki.de/wiki/JeeLink#Getestete_iT.2B_Sensoren_incl._Wetterstation_WS_1600

Zitat von: Omega am 22 November 2015, 21:08:56a
Wahrscheinlich blöde Frage aber: beim Einrichten meines Jeelinks musste ich nach Anlegen des Devices in FHEM noch einen Befehl zum flashen absetzen. Ist das hier auch noch notwendig oder ist das bereits alles im Code (LaCrosseGateway.bin) enthalten?
wenn die LaCrosseGateway.bin geflasht ist, ist alles prima.

Omega

Da habe ich mich wohl zu früh gefreut, als ich dachte, meine alten Sensoren noch günstig einbinden zu können.

Trotzdem danke für die Unterstützung.
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

HCS

Heb den 433 MHz RFM gut auf (vielleicht kommt ja mal eines Tages was im LGW, das ihn verwenden kann), besorg Dir einen 868er und Sensoren, die als funktionierend deklariert wurden und dann klappt es.

Ganz generell nochmal, dieser Absatz in der Beschreibung in Beitrag #1 ganz oben hat schon seine Berechtigung.
Wer mit anderer Hardware, Frequenz, Sensoren, die nicht aufgeführt sind oder sonst wie etwas plant, sollte zu Sicherheit erst mal nachfragen, wie die Chancen sind, dass es gehen könnte. Das vermeidet ggf. unnötigen Frust.

Zitat von: HCS am 07 November 2015, 14:39:36
Unterstützte Sensoren:
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080
siehe http://www.fhemwiki.de/wiki/JeeLink#LaCrosse_Sketch