LaCrosseGateway V1.x: Unterschied zwischen den Versionen
(Link korrigiert) |
K (Infobox Modul eingefügt; kleinere Änderungen bis einschließlich Abschnitt 1.1) |
||
(77 dazwischenliegende Versionen von 11 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
Das | {{Infobox Modul | ||
Der signifikante Unterschied zu einem JeeLink USB-Stick ist | |ModPurpose=Einbindung des LaCrosse Gateways (Hardware) | ||
Das Herzstück des LaCrosse Gateways besteht aus einem ESP8266-12E. Das LaCrosseGateway ist aufgrund des hohen Stromverbrauchs | |ModType=d | ||
|ModCmdRef=LaCrosseGateway | |||
|ModForumArea=Sonstige Systeme | |||
|ModFTopic=43672 | |||
|ModTechName=36_LaCrosseGateway.pm | |||
|ModOwner=HCS ({{Link2FU|6609|Forum}}/[[Benutzer Diskussion:HCS|Wiki]]) | |||
}} | |||
Diese Seite beschreibt ausschließlich das LaCrosseGateway V1.x, das auf dem [[ESP8266]] basiert. | |||
Für das LaCrosseGateway32 ({{Link2Forum|Topic=70338|LinkText=Thema dazu im Forum}}), das auf dem ESP32 basiert, wird es eine eigene Seite geben. | |||
{{Randnotiz|RNText=Status: | |||
* Dokumentationsstand dieser Seite: {{Link2Forum|Topic=43672|Message=584320|LinkText=Version 1.27}} | |||
* Neueste Version (09/2019): {{Link2Forum|Topic=43672|Message=974602|LinkText=Version 1.35}} | |||
* LaCrosseGateway32 wird (Stand 10/2022) seit April 2018 wegen Zeitmangels nicht aktiv weiterentwickelt | |||
}} | |||
Das LaCrosseGateway (hier und im Forum auch mit LGW abgekürzt) erfüllt den gleichen Zweck wie ein [[JeeLink|JeeLink USB-Stick]] und zwar das Empfangen, Abfragen und Steuern von funkbasierten LaCrosse Sensoren und Aktoren, die im 868 MHz FSK Sendeverfahren arbeiten (OOK-Sendeverfahren (433 MHz) wird nicht unterstützt). Die Verarbeitung der Daten und Steuerung der Aktoren erfolgt mithilfe von FHEM, das als zentrale Steuereinheit dient. | |||
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). | |||
Das Herzstück des LaCrosse-Gateways besteht aus einem ESP8266-12E/F. Das LaCrosseGateway ist aufgrund des hohen Stromverbrauchs nicht für den Akkubetrieb geeignet. | |||
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile: | Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile: | ||
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür | * Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür sind nur Strom (5V/1A USB Netzteil) und ein [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich | ||
* Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig | |||
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig | * Alternativ am USB-Port wie ein JeeLink verwendbar | ||
*Alternativ am USB-Port wie ein JeeLink verwendbar | * Einsatz von onboard Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich | ||
*Einsatz von | |||
Hinweis: Die Anbindung in FHEM kann zwar noch mit dem JeeLink-Modul erfolgen, aber es ist sinnvoll, auf das LaCrosseGateway-Modul (36_LaCrosseGateway.pm) umzustellen, da dieses eine bessere Unterstützung für die Funktionen des LGW bietet. | |||
=Hardware= | =Hardware= | ||
==Bauteile== | ==Bauteile== | ||
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet: | Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet: | ||
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul]. | * [Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul]. | ||
*[Option 2] [https://raw.githubusercontent.com/nodemcu/nodemcu-devkit-v1.0/master/Documents/NodeMCU_DEVKIT_1.0.jpg NodeMCU DEVKIT 1.0 (oder 2.0)]ist die Inbetriebnahme einfacher, da alles für das Aufbringen der Firmware bereits vorhanden ist und kein Löten nötig ist.<br /> | : Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird. | ||
** V0.9 | : Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an einen [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]] angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. | ||
** V3.0 - passt nicht, ist größer als das 2.0. Auf der Rückseite steht "Lolin" | *[Option 2] [https://raw.githubusercontent.com/nodemcu/nodemcu-devkit-v1.0/master/Documents/NodeMCU_DEVKIT_1.0.jpg NodeMCU DEVKIT 1.0 (oder 2.0)]ist die Inbetriebnahme einfacher, da alles für das Aufbringen der Firmware bereits vorhanden ist und kein Löten nötig ist.<br />{{Link2Forum|Topic=45594|Message=430183|LinkText=Hinweis:}} Folgende Devkits werden nicht "offiziell" unterstützt, da ungetestet, können aber durchaus in bestimmten Fällen verwendet werden: | ||
** Devkits mit einem CH340 USB converter | ** V0.9 (da ungetestet, bekommt man aber kaum noch zu kaufen) | ||
*[Option 3] Alternativ zu einem | ** V3.0 - passt nicht auf die Platine von PeMue, ist größer als das 2.0. Auf der Rückseite steht "Lolin". | ||
** Devkits mit einem CH340 USB converter (da ungetestet und teils falsche Bauform und von der USB-Anbindung her teils problematisch) | |||
*[Option 3] Alternativ zu einem DEVKIT 1.0 kann auch ein [http://www.wemos.cc/Products/d1_mini.html "WeMOS D1 mini"] eingesetzt werden. Vorteil bei diesem Kit ist die kleine Bauform bei gleichem Funktionsumfang wie das DEVKIT 1.0. | |||
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne. | *[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne. | ||
**''Hinweis:'' Der ESP-07 hat einen 25Q80 1M | **''Hinweis:'' Der ESP-07 hat einen 25Q80 1M Flash Chip. Dieser ist für den Betrieb mit der LaCrosseGateway Firmware geeignet, für ein OTA-Update ist es jedoch zu wenig. Aus diesem Grund muss/kann dieser auf 4M Flash umgebaut werden. Weitere Informationen und Details zum Umbau sind im {{Link2Forum|Topic=45594|Message=448307|LinkText=Forenthread (Gehäuse-Variante)}} beschrieben. | ||
*[Optional] RFM69CW - Für das Senden und | *[Optional] RFM69CW - Für das Senden und Empfangen funkbasierter LaCrosse Aktoren und Sensoren | ||
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) | *[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) | ||
*[Optional] SC16IS750 Zur Bereitstellung der seriellen Schnittstelle, da die GPIOs (GPIO1 / GPIO3) DEVKIT's V1.0 von FTDI verwendet werden und damit nicht genutzt werden können. | *[Optional] SC16IS750 Zur Bereitstellung der seriellen Schnittstelle, da die GPIOs (GPIO1 / GPIO3) DEVKIT's V1.0 von FTDI verwendet werden und damit nicht genutzt werden können. | ||
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM) | *[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM) | ||
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung ( | *[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED) | ||
*Steckbrett (inkl. Kabel/ | *[Optional] Nextion Touch Display zur Darstellung von verschiedenen Informationen oder zum Schalten von Aktoren. | ||
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.) / [[#Platine|PeMue Platine]] | |||
==Schaltung== | ==Schaltung== | ||
===Variante: | ===Variante: DEVKIT 1.0 Minimum=== | ||
[[Datei: | [[Datei:lgw_Schaltplan_Devkit_minimum.png|400px|thumb|left|Variante: DEVKIT 1.0]] | ||
<div style="clear:both;"></div> | <div style="clear:both;"></div> | ||
===Variante: | ===Variante: DEVKIT 1.0 Maximalausbau=== | ||
[[Datei: | [[Datei:lgw_Schaltplan_Devkit_full.png|400px|thumb|left|Variante: FTDI]] | ||
<div style="clear:both;"></div> | <div style="clear:both;"></div> | ||
===Variante: Platine (PeMue)=== | ===Variante: Platine (PeMue)=== | ||
siehe hier: {{Link2Forum|Topic=45594|LinkText=Thread}} | |||
<div style="clear:both;"></div> | <div style="clear:both;"></div> | ||
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]]. | Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]]. | ||
=== | |||
===MCP23008=== | |||
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V | I2C Adresse 0x27 -> A0,A1,A2 = 3.3V | ||
< | <syntaxhighlight lang="php"> | ||
|-------\/-------| | |-------\/-------| | ||
LGW D1 |1 SCL VDD 18| LGW 3.3V | LGW D1 |1 SCL VDD 18| LGW 3.3V | ||
Zeile 60: | Zeile 73: | ||
|8 INT GP1 11| PB1 --/ --- GND or Output | |8 INT GP1 11| PB1 --/ --- GND or Output | ||
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output | LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output | ||
|----------------|</ | |----------------|</syntaxhighlight> | ||
===Nextion Display=== | |||
Angeschlossen wird das Display wie folgt: | |||
GPIO0: TXD -> Nextion RXD | |||
GPIO2: RXD -> Nextion TXD | |||
Das Display benötigt eine 5V Spannungsversorgung, diese kann vom VIN des DEVKIT's abgegriffen werden. Vom Betrieb mit 3.3V wird abgeraten. | |||
Ein level shifter für RXD/TXD ist nicht nötig. | |||
==Aufbau auf einem Steckbrett== | ==Aufbau auf einem Steckbrett== | ||
Zeile 78: | Zeile 99: | ||
<div style="clear:both;"></div> | <div style="clear:both;"></div> | ||
=== | ===DEVKIT 1.0 bestückt Oberseite=== | ||
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]] | [[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]] | ||
<div style="clear:both;"></div> | <div style="clear:both;"></div> | ||
=== | ===DEVKIT 1.0 bestückt Unterseite=== | ||
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]] | [[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]] | ||
<div style="clear:both;"></div> | <div style="clear:both;"></div> | ||
Zeile 93: | Zeile 114: | ||
| [[Datei:lgw_Platine_ESP-12E_oberseite_2_inkl_GE.jpg.jpg|325px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 inkl. Gehäuse]] | | [[Datei:lgw_Platine_ESP-12E_oberseite_2_inkl_GE.jpg.jpg|325px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 inkl. Gehäuse]] | ||
|} | |} | ||
'''''Hinweis:''' Die Platine (Bild (1)) ist mit einem LM75 Sensor | '''''Hinweis:''' Die Platine (Bild (1)) ist mit einem LM75 Sensor bestückt. Diese Bestückung macht zusammen mit einem BME280 keinen Sinn, es handelt sich hierbei um eine Entwicklungsplatine.'' | ||
===ESP8266-12E bestückt Unterseite=== | ===ESP8266-12E bestückt Unterseite=== | ||
Zeile 103: | Zeile 124: | ||
===Platine bestücken (Hinweise und Tipps)=== | ===Platine bestücken (Hinweise und Tipps)=== | ||
*Auf der Platine (Version 1.0) ist für das RFM69CW-Modul eine Markierung (zwei Quadrate) aufgedruckt, die den Chip und den Quarz symbolisieren. Wenn man den RFM69CW so drauflötet, wie abgebildet, ist er falsch rum drauf.<br />Es muss darauf geachtet werden, wo auf dem RFM69CW die "Ant" Beschriftung steht, dieser Lötpunkt muss auf die Platine an den Punkt "1" ausgerichtet werden. Zur Sicherheit bitte den [[#Variante: Platine (PeMue)|Schaltplan]] konsultieren und die genaue Position ermitteln. | *Auf der Platine (Version 1.0) ist für das RFM69CW-Modul eine Markierung (zwei Quadrate) aufgedruckt, die den Chip und den Quarz symbolisieren. Wenn man den RFM69CW so drauflötet, wie abgebildet, ist er falsch rum drauf.<br />Es muss darauf geachtet werden, wo auf dem RFM69CW die "Ant" Beschriftung steht, dieser Lötpunkt muss auf die Platine an den Punkt "1" ausgerichtet werden. Zur Sicherheit bitte den [[#Variante: Platine (PeMue)|Schaltplan]] konsultieren und die genaue Position ermitteln.<br>'''Für die Platine V1.1 wurde das korrigiert.''' | ||
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst | *Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrahtigen Leiter (aus Kupfer) verwenden. | ||
==Erweiterungsmöglichkeiten== | ==Erweiterungsmöglichkeiten== | ||
Zeile 115: | Zeile 136: | ||
*es kann ein aktiver Piezo Summer (Piezo Buzzer) angeschlossen (an GPIO7 des SC16IS750) werden, um von FHEM aus das LaCrosseGateway einen Alarm ausgeben zu lassen. Hinweis: Falls der Strom von 10mA, den die Ausgänge liefern, nicht reicht, ist noch eine Transistor-Schaltstufe vorzusehen. | *es kann ein aktiver Piezo Summer (Piezo Buzzer) angeschlossen (an GPIO7 des SC16IS750) werden, um von FHEM aus das LaCrosseGateway einen Alarm ausgeben zu lassen. Hinweis: Falls der Strom von 10mA, den die Ausgänge liefern, nicht reicht, ist noch eine Transistor-Schaltstufe vorzusehen. | ||
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen ( | Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet. | ||
Alle Komponenten werden automatisch erkannt, sofern angeschlossen. | Alle Komponenten werden automatisch erkannt, sofern angeschlossen. | ||
Für die Realisierung der o.g Möglichkeiten wird ein [http://www.aliexpress.com/item/1x-Breakout-Board-for-SC16IS750-I2C-SPI-to-UART-IC/1327351219.html?spm=2114.30010308.3.38.HxdznQ&ws_ab_test=searchweb201556_9,searchweb201602_2_10034_507_10020_10001_10002_10017_10010_10005_10011_10006_10021_10003_10004_10022_10009_10008_10018_10019,searchweb201603_6&btsid=97b30f2b-e937-426b-8202-de585dd7ee97 SC16IS750] verwendet. | Für die Realisierung der o.g. Möglichkeiten wird ein [http://www.aliexpress.com/item/1x-Breakout-Board-for-SC16IS750-I2C-SPI-to-UART-IC/1327351219.html?spm=2114.30010308.3.38.HxdznQ&ws_ab_test=searchweb201556_9,searchweb201602_2_10034_507_10020_10001_10002_10017_10010_10005_10011_10006_10021_10003_10004_10022_10009_10008_10018_10019,searchweb201603_6&btsid=97b30f2b-e937-426b-8202-de585dd7ee97 SC16IS750] verwendet. | ||
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os | Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os | ||
Zeile 133: | Zeile 154: | ||
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.'' | '''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.'' | ||
'''Firmware flashen''' | |||
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden. | Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden. | ||
Zeile 140: | Zeile 163: | ||
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino. | Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino. | ||
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt. | |||
'''' | '''Vorgehen Firmware flashen''' | ||
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt | Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgenden Befehl hochgeladen werden: | ||
< | <syntaxhighlight lang="php">curl --http1.0 -H "Content_Type:multipart/form-data" -F "file=@/myFolder/LGW-Addon.ino.hex; filename=addon.hex" http://192.168.31.211/ota/addon.hex</syntaxhighlight> | ||
'''''Hinweis:''' filename=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.'' | |||
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt kommen, das wie folgt aussieht: | |||
<syntaxhighlight lang="php">Start receiving 'addon.hex' | |||
File: /addon.hex Size: 21417 | File: /addon.hex Size: 21417 | ||
Starting flash | Starting flash | ||
Zeile 153: | Zeile 180: | ||
Binary size is:7608 | Binary size is:7608 | ||
Leave Program Mode | Leave Program Mode | ||
Flash finished</ | Flash finished</syntaxhighlight> | ||
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden: | Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden: | ||
'''KeyValueProtokoll (KVP):''' | '''KeyValueProtokoll (KVP):''' | ||
Format:< | Format:<syntaxhighlight lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</syntaxhighlight> | ||
Beispiel:< | Beispiel:<syntaxhighlight lang="php">KV DHT 01 Temperature=21.5,Humidity=62</syntaxhighlight> | ||
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt. | Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt. | ||
Zeile 165: | Zeile 192: | ||
'''LaCrosse:''' | '''LaCrosse:''' | ||
Format:< | Format:<syntaxhighlight lang="php">LC <Address> T=<Temperature>,H=<Humidity></syntaxhighlight> | ||
Beispiel: | Beispiel: | ||
< | <syntaxhighlight lang="php">LC 9F T=21.5,H=62</syntaxhighlight> | ||
< | <syntaxhighlight lang="php">LC 9F T=21.5</syntaxhighlight> | ||
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM. | Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM. | ||
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre. | In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre. | ||
Zeile 178: | Zeile 205: | ||
==Unterstützte Sensoren und Aktoren== | ==Unterstützte Sensoren und Aktoren== | ||
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden | Alle Sensoren und Aktoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden.<br /> | ||
siehe [[JeeLink# | (siehe [[JeeLink#Unterst.C3.BCtzte_Sensoren_und_Aktoren_incl._Wetterstation_WS_1600JeeLink|vom JeeLink unterstützte LaCrosse Sensoren und Aktoren]]) | ||
Zusätzlich zu LaCrosse werden auch die folgenden Geräte unterstützt: | |||
{| class="wikitable" | {| class="wikitable" | ||
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !! | !Bezeichnung !! Datenrate !! Sonstiges !! Funktion !! Hinweise | ||
|- | |- | ||
| | | PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützt werden bis zu 50 Dosen) || | ||
|- | |- | ||
| | | EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose || | ||
|- | |- | ||
| | | RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten || Hinweise DHT22 beachten. | ||
|- | |- | ||
| | | BME280 || || on board || Temperatur, Feuchte und Druck || Falls das verwendete Breakout bereits PullUp-Widerstände für SDA und SCL enthält, sind diese nicht mehr zusätzlich nötig. | ||
|- | |- | ||
| | | BMP180 || || on board || Temperatur und Druck || Falls das verwendete Breakout bereits PullUp-Widerstände für SDA und SCL enthält, sind diese nicht mehr zusätzlich nötig. | ||
|- | |- | ||
| LM75 || || on board|| Temperatur || | | LM75 || || on board|| Temperatur || | ||
|- | |- | ||
| DHT22 || ||on board|| Temperatur und Feuchte | | DHT22 || ||on board|| Temperatur und Feuchte || Kann anstatt RFM69 Radio#3 eingesetzt werden. | ||
|- | |- | ||
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || | | SC16IS750 || I2C Adresse: 0x90 ||on board || OI Erweiterung || | ||
|- | |- | ||
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display|| | | OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display|| | ||
Zeile 243: | Zeile 233: | ||
|- | |- | ||
| Piezo Summer |||| on board ||Piezo Buzzer|| | | Piezo Summer |||| on board ||Piezo Buzzer|| | ||
|- | |||
| Nextion Display ||(Max.) 57600 baud || on board ||Touch Display|| | |||
|} | |} | ||
Alle direkt am LGW | Alle direkt am LGW anschließbaren Sensoren werden automatisch erkannt, wenn sie vorhanden sind. | ||
<u>Sie werden in folgender Reihenfolge verwendet:</u> | <u>Sie werden in folgender Reihenfolge verwendet:</u> | ||
Zeile 269: | Zeile 256: | ||
=Software= | =Software= | ||
== Release Notes == | |||
*[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway Release Notes im Forum] | |||
==Funktionsumfang== | ==Funktionsumfang== | ||
*Access Point für die Konfiguration | *Access Point für die Konfiguration | ||
Zeile 275: | Zeile 266: | ||
**Statische IP-Adresse anstatt DHCP | **Statische IP-Adresse anstatt DHCP | ||
**Hostname | **Hostname | ||
*Vom | *Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar. | ||
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) | *Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) | ||
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]]) | *On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]]) | ||
Zeile 285: | Zeile 276: | ||
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)) | *SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)) | ||
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden) | *Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden) | ||
*Software Serial Bridge - Stellt die Soft Serial Schnittstelle transparent auf einem TCP Port bereit. | |||
==Sourcecode== | ==Sourcecode== | ||
Der Quellcode des LaCrosse Gateways befindet sich [https:// | Der Quellcode des LaCrosse Gateways befindet sich [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/contrib/arduino/36_LaCrosseGateway.zip im FHEM SVN Repository (contrib)]. | ||
==Firmware Download== | ==Firmware Download== | ||
Die [https:// | Die [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin Firmware] befindet sich im [https://svn.fhem.de/trac/browser/trunk/fhem FHEM SVN Repository] und wird per FHEM Update verteilt. Neue Version der [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin Firmware] wird im {{Link2Forum|Topic=43672|LinkText=FHEM Forum "LaCrosse Gateway"}} angekündigt und der Funktionsumfang bzw. die Änderungen beschrieben. | ||
Nach einem | Nach einem FHEM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin'' | ||
==Firmware aufspielen== | ==Firmware aufspielen== | ||
Wie bei einem JeeLink muss auch für das | Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden. | ||
Das [https://raw.githubusercontent.com/nodemcu/nodemcu-devkit-v1.0/master/Documents/NodeMCU_DEVKIT_1.0.jpg NodeMCU DEVKIT 1.0] hat eine CP2102 UART Bridge implementiert, dafür muss ein CP2102 Treiber installiert sein. | Das [https://raw.githubusercontent.com/nodemcu/nodemcu-devkit-v1.0/master/Documents/NodeMCU_DEVKIT_1.0.jpg NodeMCU DEVKIT 1.0] hat eine CP2102 UART Bridge implementiert, dafür muss ein CP2102 Treiber installiert sein. | ||
Bei einem ESP8266-12E Modul kann die Firmware | Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden. | ||
===Windows/Mac/Linux per "esptool"=== | ===Windows/Mac/Linux per "esptool"=== | ||
Zeile 309: | Zeile 298: | ||
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen. | 1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen. | ||
2) Zum Aufspielen der Firmware | 2) Zum Aufspielen der Firmware muss ein Befehl mit der folgenden Syntax ausgeführt werden: | ||
< | <syntaxhighlight lang="php"> | ||
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</ | esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</syntaxhighlight> | ||
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden. | '''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden. | ||
''Beispiel (Mac/Linux):'' | ''Beispiel (Mac/Linux):'' | ||
< | <syntaxhighlight lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</syntaxhighlight> | ||
'''''Hinweis:''' Das esptool ist nicht sonderlich stabil. Es kommt vor, dass es manchmal den Upload nicht startet oder nicht durchbekommt. In diesem Fall hilft es den Vorgang, auch mehrmals, zu wiederholen.'' | |||
=== Linux/Debian/Ubuntu "esptool v2.1"=== | |||
Installieren: | |||
<syntaxhighlight lang="bash"> | |||
sudo apt-get esptool | |||
</syntaxhighlight> | |||
''Beispiel mit neuer Syntax bei esptool v2.1:'' | |||
<syntaxhighlight lang="bash"> sudo esptool --port /dev/ttyUSB0 write_flash 0x00000 JeeLink_LaCrosseGateway.bin</syntaxhighlight> | |||
===Windows per "nodemcu-flasher"=== | ===Windows per "nodemcu-flasher"=== | ||
1) [ | 1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken: | ||
2) [https:// | 2) [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin Firmware] downloaden | ||
3) FlashTool starten und wie folgt einstellen: | 3) FlashTool starten und wie folgt einstellen: | ||
Zeile 338: | Zeile 338: | ||
<div style="clear:both;"></div> | <div style="clear:both;"></div> | ||
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das | Nach dem Flashen sollte über die serielle Ausgabe (57600 Baud) des ESP der Start und das Öffnen des AccessPoints zu sehen sein. | ||
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.'' | '''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.'' | ||
==Funktionsweise== | ==Funktionsweise== | ||
Während des Startvorgangs versucht sich das | Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen. | ||
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt: | Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt: | ||
Wenn es sich in keinem WLAN anmelden kann, dann öffnet es einen Access Point mit der SSID "LaCrosseGateway_'''xxxxxx'''", wobei '''xxxxxx''' die eindeutige Chip-ID des | Wenn es sich in keinem WLAN anmelden kann, dann öffnet es einen Access Point mit der SSID "LaCrosseGateway_'''xxxxxx'''", wobei '''xxxxxx''' die eindeutige Chip-ID des ESP8266 ist. | ||
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen. | Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen. | ||
Zeile 354: | Zeile 354: | ||
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar. | Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar. | ||
Wenn sich das | Wenn sich das LaCrosseGateway an dem konfigurierten WLAN anmelden konnte (es wartet max. 30 Sekunden auf einen connect) und von diesem per DHCP eine IP-Adresse erhalten hat, dann stellt es auf dieser Adresse den Port 81 zur Verfügung, über den in FHEM das LaCrosseGateway Modul senden und empfangen kann. | ||
'''Optische Darstellung der Initialisierung''' | '''Optische Darstellung der Initialisierung''' | ||
Beim Start und der Initialisierung wird mit der Board-eigenen LED | Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisiert, was gerade passiert: | ||
*5 schnelle | *5 schnelle Blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat | ||
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden | *Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden | ||
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden | *LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden | ||
Zeile 371: | Zeile 371: | ||
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]]) | *Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]]) | ||
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen | *Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen | ||
*SSID und das Password eintragen | *SSID und das Password eintragen. Man kann zwei SSID/Passwort-Kombinationen mit jeweils einem Timeout konfigurieren. 120 bedeutet z.B. dass das LGW 120 Sekunden lang versucht, die SSID zu erreichen. Falls die erste SSID nach "Timeout" Sekunden nicht erreicht wurde, wird Timeout Sekunden lang versucht, die zweite SSID zu connecten. | ||
*''[Empfohlen]'' Das Frontend Passwort festlegen | *''[Empfohlen]'' Das Frontend Passwort festlegen | ||
*''[Optional]'' Falls kein DHCP-Server zur Verfügung steht bzw. keine Reservierung erwünscht ist, dann muss die IP-Adresse / Netmask (Optional auch Gateway) eingetragen werden | *''[Optional]'' Falls kein DHCP-Server zur Verfügung steht bzw. keine Reservierung erwünscht ist, dann muss die IP-Adresse / Netmask (Optional auch Gateway) eingetragen werden | ||
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen | *''[Empfohlen]'' Hostnamen festlegen bzw. anpassen | ||
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die | *Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommenen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert. | ||
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. | Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. | ||
Zeile 390: | Zeile 390: | ||
Voraussetzungen: | Voraussetzungen: | ||
*Das LGW muss auf der IP-Adresse, die im | *Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein | ||
*Es wird kein avrdude benötigt | *Es wird kein avrdude benötigt | ||
*Das Attribut "flashCommand" spielt keine Rolle | *Das Attribut "flashCommand" spielt keine Rolle | ||
Die LaCrosseGateway Firmware kann | Die LaCrosseGateway Firmware kann vom LaCrosseGateway Device (LaCrosseGateway Modul) aus mit | ||
< | <syntaxhighlight lang="php">set myLaCrosseGateway flash</syntaxhighlight> aktualisiert werden. | ||
''''' | '''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.'' | ||
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.'' | '''''Hinweis:''' Das Update dauert ca. 30 Sekunden.'' | ||
=== Per FHEM (USB)=== | |||
Voraussetzungen: | |||
Auf dem FHEM-Server muss Python und pyserial installiert sein. Die Installation kann z.B. so erfolgen: | |||
*apt-get install python | |||
*wget https://bootstrap.pypa.io/get-pip.py | |||
*python get-pip.py | |||
*pip install pyserial | |||
Das Attribut "mode" muss auf USB gesetzt sein: attr myLaCrosseGateway mode USB | |||
Der flash-Vorgang wird gestartet mit: set myLaCrosseGateway flash | |||
=== Per CURL === | === Per CURL === | ||
Zeile 405: | Zeile 417: | ||
'''''Beispiel:''''' | '''''Beispiel:''''' | ||
< | <syntaxhighlight lang="php">curl --http1.0 -# -o ~output.txt -H "Content_Type:multipart/form-data" -F "file=@.\JeeLink_LaCrosseGateway.bin; filename=firmware.bin" http://192.168.31.211/ota/firmware.bin</syntaxhighlight> | ||
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden. | '''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden. | ||
Zeile 414: | Zeile 426: | ||
==LaCrosseGateway Web-Frontend== | ==LaCrosseGateway Web-Frontend== | ||
=== | ===Status-Wert RSSI=== | ||
Die WiFi Signalstärke (dBm) (-36 ist besser als -60) | Die WiFi Signalstärke (dBm) (-36 ist besser als -60) | ||
=== | ===Status-Wert FramesPerMinute=== | ||
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden. | Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden. | ||
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden. | Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden. | ||
=== | ===Status-Wert ReceivedFrames=== | ||
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden. | Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden. | ||
===Sensor-ID=== | ===WiFi "Startup-delay"=== | ||
Mit diesem Konfigurationsparameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einem Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet. | |||
Eine Anpassung kann für den folgenden Fall sinnvoll sein: | |||
Nach einem Stromausfall benötigt ein WiFi Access Point (Router: Fritzbox etc.) in den meisten Fällen länger zum Starten als das LGW. In der default Einstellung führt das dazu, dass der LGW nach dem Starten versucht 30 Sekunden lang eine Verbindung zum AP herzustellen. Wenn keine Verbindung innerhalb dieser Zeit zustande kommt, dann gibt das LGW auf und macht seinen eigenen AP auf. Mit einer entsprechenden Verzögerung (Dauer bis der Router gestartet ist und der WiFi-AP zur Verfügung steht) kann sichergestellt werden, dass der AP gestartet ist und sich das LGW mit dem AP verbinden kann. | |||
===Internal Sensors "Sensor-ID"=== | |||
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. | Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. | ||
Hierbei ist darauf zu achten, dass die LaCrosse-ID nur einmal auf einer FHEM Instanz vorkommen darf. Die ID kann entweder Dezimal (211) oder Hex (0xD3) angegeben werden. | Hierbei ist darauf zu achten, dass die LaCrosse-ID nur einmal auf einer FHEM Instanz vorkommen darf. Die ID kann entweder Dezimal (211) oder Hex (0xD3) angegeben werden. | ||
'''''Detailinformationen:''''' Wenn ein LGW interne Sensoren hat ( | '''''Detailinformationen:''''' Wenn ein LGW interne Sensoren hat (BME280, BMP180, DHT22, ...) dann sendet es die Daten des Sensors so, als ob es eine Wetterstation wäre (WS 1600 Format) an das LGW. Bisher hat es dafür die Sensor-ID 0 verwendet. Wenn man mehrere LGWs an einem FHEM angebunden hat, dann mischen sich deren Sensor-Daten auf dem LaCrosse device mit der ID 0. Um das zu vermeiden, kann man nun konfigurieren, mit welcher Sensor-ID die internen Sensoren gesendet werden sollen und die beiden LGWs unterschiedlich konfigurieren. | ||
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden. | Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden. | ||
===Internal Sensors "Altitude"=== | |||
Mit diesen Parameter kann die Höhe über NN konfiguriert werden. | |||
===Internal Sensors "Temperature-/Humidity-correction"=== | |||
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden. | |||
Der Wert kann entweder ein Offset oder prozentual sein. | |||
'''Beispiele:''' | |||
{| class="wikitable" style="margin-left: auto; margin-left: 0px;" | |||
! Korrekturwert !! Gemessen !! Ergebnis | |||
|- | |||
| -5 | |||
| 20°C | |||
| 15°C | |||
|- | |||
| +3 | |||
| 20°C | |||
| 23°C | |||
|- | |||
| -10% | |||
| 20°C | |||
| 18°C | |||
|- | |||
| +20% | |||
| 20°C | |||
| 24°C | |||
|} | |||
===SC16IS750-Clone=== | ===SC16IS750-Clone=== | ||
Zeile 439: | Zeile 489: | ||
===Use MDNS=== | ===Use MDNS=== | ||
Legt fest, ob das LGW seine IP-Adresse per | Legt fest, ob das LGW seine IP-Adresse per MDNS bekannt gibt. Dies ist nötig, wenn man einen Mac hat oder bei Windows einen Bonjour-Service laufen hat. | ||
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben. | Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben. | ||
Zeile 447: | Zeile 497: | ||
===Serial bridge port und bridge baud=== | ===Serial bridge port und bridge baud=== | ||
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen. | Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen. | ||
Dazu gibt es die | Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs. | ||
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt. | Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt. | ||
===Soft Serial Bridge=== | |||
Das LGW kann optional eine Soft serial bridge (zuverlässig nur mit bis zu 57600 Baud) transparent auf einem TCP Port bereitstellen. | |||
Folgende Parameter können auf der LGW Setup-Page angepasst/konfiguriert werden: | |||
{| class="wikitable" style="margin-left: auto; margin-left: 0px;" | |||
! Parameter !! Beschreibung | |||
|- | |||
| Port | |||
| Der Port, auf dem es angesprochen werden kann | |||
|- | |||
| Baud | |||
| Die Baudrate für die Kommunikation | |||
|- | |||
| Nextion display | |||
| Für den Betrieb eines Nextion Display muss diese Option aktiviert sein. | |||
|- | |||
| Add units | |||
| Fügt an die Werte (Temp,Hum,Pres), die das LGW an das Display schickt, Einheiten an. | |||
|} | |||
Mithilfe des Soft serial bridge können verschiedene Geräte (nanoCUL, Nextion Display, etc.), welche per serieller Schnittstelle kommunizieren können, in Betrieb genommen werden. | |||
===Statuswerte abrufen=== | ===Statuswerte abrufen=== | ||
Zeile 454: | Zeile 526: | ||
Beispiel: | Beispiel: | ||
< | <syntaxhighlight lang="php"><LGW> | ||
<Info Key="UpTimeSeconds" Value="107086"/> | <Info Key="UpTimeSeconds" Value="107086"/> | ||
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/> | <Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/> | ||
Zeile 462: | Zeile 534: | ||
<Info Key="ReceivedFrames" Value="93593"/> | <Info Key="ReceivedFrames" Value="93593"/> | ||
<Info Key="FramesPerMinute" Value="52"/> | <Info Key="FramesPerMinute" Value="52"/> | ||
</LGW></ | </LGW></syntaxhighlight> | ||
===Funktionsweise Log=== | ===Funktionsweise Log=== | ||
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie | Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie fragt und antwortet oder um zu schauen, ob irgendwelche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden. | ||
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]] | [[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]] | ||
<div style="clear:both;"></div> | <div style="clear:both;"></div> | ||
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set | Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann. | ||
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat) | Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat) | ||
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet. | Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet. | ||
Zeile 475: | Zeile 547: | ||
Das Log kann per HTTP abgerufen werden: | Das Log kann per HTTP abgerufen werden: | ||
< | <syntaxhighlight lang="php">http://<LGW-IP>/getLogData</syntaxhighlight> | ||
'''''Beispiel:''''' | '''''Beispiel:''''' | ||
< | <syntaxhighlight lang="php">http://192.168.31.211/getLogData</syntaxhighlight> | ||
das Ergebnis sieht wie folgt aus: | das Ergebnis sieht wie folgt aus: | ||
< | <syntaxhighlight lang="php">DATA:OK 22 117 196 0 58 226 102 0 58 191 86 0 0 40 172 0 105 1 101 3 0 [75 C4 E2 66 00 00 BF 56 00 00 00 02 3B FC DC 00 69 01 65 4A A4 C4 F9 F2 4F 11 A4 F6 7C 03 A0 00 00 00 00 03 A0 38 09 21 27] | ||
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75] | DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75] | ||
DATA:OK EMT7110 84 81 8 207 0 36 0 1 1 199 1 [25 6A 54 51 40 02 00 24 C3 41 C7 9B] | DATA:OK EMT7110 84 81 8 207 0 36 0 1 1 199 1 [25 6A 54 51 40 02 00 24 C3 41 C7 9B] | ||
Zeile 489: | Zeile 561: | ||
DATA:OK 22 126 67 0 65 236 34 0 65 231 116 0 0 32 103 0 48 0 134 1 0 [7E 43 EC 22 00 00 E7 74 00 00 00 01 C7 AC D7 00 30 00 86 00 57 E4 69 1E 46 8E D4 68 C7 04 10 00 00 00 00 04 10 18 0A DC F7] | DATA:OK 22 126 67 0 65 236 34 0 65 231 116 0 0 32 103 0 48 0 134 1 0 [7E 43 EC 22 00 00 E7 74 00 00 00 01 C7 AC D7 00 30 00 86 00 57 E4 69 1E 46 8E D4 68 C7 04 10 00 00 00 00 04 10 18 0A DC F7] | ||
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96] | DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96] | ||
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</ | DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</syntaxhighlight> | ||
'''''DATA:''''' für die obere Liste | '''''DATA:''''' für die obere Liste | ||
Zeile 507: | Zeile 579: | ||
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt. | Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt. | ||
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM | Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt. | ||
Auf einem Raspberry Pi kann die | Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden: | ||
< | <syntaxhighlight lang="php">sudo apt-get install libwww-perl</syntaxhighlight> | ||
alternativ auch mit | alternativ auch mit | ||
< | <syntaxhighlight lang="php">sudo cpan LWP::UserAgent</syntaxhighlight> | ||
'''FHEM Module''' | '''FHEM Module''' | ||
'''Hinweis:''' Ursprünglich wurde für das LaCrosseGateway das FHEM-Modul 36_JeeLink.pm verwendet. Da es aber inzwischen erhebliche Unterschiede zwischen dem JeeLink-LaCrosse-Sketch und dem LaCrosseGateway gibt, existiert seit Mitte November 2016 ein für das LaCrosseGateway spezialisiertes und optimiertes FHEM-Modul, das 36_LaCrosseGateway.pm.<br> | |||
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden. | |||
''36_LaCrosseGateway.pm'' (wird per FHEM Update verteilt) | |||
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt) | ''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt) | ||
''36_LaCrosse.pm'' (wird per FHEM Update verteilt) | ''36_LaCrosse.pm'' (wird per FHEM Update verteilt) | ||
Zeile 524: | Zeile 599: | ||
''36_EC3000.pm'' (wird per FHEM Update verteilt) | ''36_EC3000.pm'' (wird per FHEM Update verteilt) | ||
''36_EMT7110.pm'' (wird per FHEM Update verteilt) | |||
''36_Level.pm'' (wird per FHEM Update verteilt) | |||
''42_Nextion.pm'' (wird per FHEM Update verteilt) | |||
==Device Definition== | ==Device Definition== | ||
===WLAN=== | ===WLAN=== | ||
Die Definition sieht dann wie folgt aus: | Die Definition sieht dann wie folgt aus: | ||
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code> | |||
<IP-Adresse> muss entsprechend angepasst werden. | |||
Beispiel: | ''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden. | ||
< | |||
IP-Adresse ermitteln: Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''" per ping auf den Hostnamen ''LaCrosseGateway'' kann die IP-Adresse ermittelt werden. | ''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden. | ||
'''Beispiel:''' | |||
<syntaxhighlight lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</syntaxhighlight> | |||
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden. | |||
===USB=== | ===USB=== | ||
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi. | |||
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br> | |||
1.) Man kann mit einem 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein WiFi will. Wenn vorhanden, wird WiFi sofort beim Start deaktiviert.<br> | |||
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br> | |||
Für den Betrieb via USB sieht die Definition wie folgt aus: | Für den Betrieb via USB sieht die Definition wie folgt aus: | ||
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code> | |||
< | |||
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden. | |||
''<USB-Port>'' muss entsprechend angepasst werden. | |||
Beispiel: | Beispiel: <code>define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</code> | ||
< | ''/dev/ttyUSB0'' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden. | ||
Zeile 549: | Zeile 641: | ||
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: | Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: | ||
< | <code>ls -l /dev/serial/by-id</code> | ||
Beispiel für die Ausgabe: | Beispiel für die Ausgabe: | ||
< | <syntaxhighlight lang="text">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1 | ||
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2 | lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2 | ||
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</ | lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</syntaxhighlight> | ||
In diesem Fall ist u.a. ein DEVKIT 1.0 mit der Serial-ID ''usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2'' angeschlossen. | In diesem Fall ist u.a. ein DEVKIT 1.0 mit der Serial-ID ''usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2'' angeschlossen. | ||
Auf Basis dieser Informationen lässt sich folgende Definition erstellen: | Auf Basis dieser Informationen lässt sich folgende Definition erstellen: | ||
< | <code>define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</code><br> | ||
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben. | Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br><br> | ||
Wenn man das LGW ohne WiFi betreibt, dann muss man natürlich auf die Annehmlichkeiten des Web-Frontends verzichten.<br> | |||
In diesem Fall kann man die Konfiguration, die man über das Web-Frontend machen würde, über die serielle Schnittstelle machen.<br> | |||
<code>set myLaCrosseGateway raw "SETUP ..."</code><br> | |||
Das ... sind die gewünschten Einstellungen. Es müssen nicht alle Einstellungen gesendet werden sondern nur die, die man setzen will.<br> | |||
Es werden nur die Einstellungen gesetzt und im EEPROM gespeichert, es wird aber kein Reboot ausgelöst<br> | |||
Einen Reboot kann man mit "set myLaCrosseGateway raw 8377e" auslösen.<br> | |||
Mehrere Einstellungen können durch Semikolon getrennt angegeben werden.<br> | |||
Beispiel: | |||
<code>set myJeeLink213 raw "SETUP UseWiFi false; IO0 OLED mode=thp; IO1 OLED Off; CorrT -2.5; ISID 213"</code> | |||
Man kann auf der seriellen Schnittstelle die aktuellen Einstellungen abrufen. | |||
Das command ist 1g<br> | |||
<code>set myLaCrosseGateway raw 1g</code><br> | |||
Man bekommt dann so etwas zurück: | |||
<syntaxhighlight lang="text">SETUP ctSSID esesidee; ctPASS PasstWort; staticIP 192.168.31.211; staticMask 255.255.255.0; staticGW 192.168.31.1; | |||
HostName LGW211; StartupDelay 1; ISID 0xD3; Altitude 220; CorrT 0; CorrH 0; DataPort1 81; DataPort2 82; SerialBridgePort 85; | |||
SerialBridgeBaud 38400; UseMDNS true; IO0 OLED mode=s; IO1 OLED mode=thp; IO2 OLED On; IO3 OLED Off; oledStart 120; KVInterval 10; | |||
KVIdentity 211; PCA301Plugs 036180=3,03A094=1,035FF1=6;</syntaxhighlight> | |||
==Reconnect== | ==Reconnect== | ||
Falls das | Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbindung unterbrochen etc.), bricht das LaCrosseGateway Device die Kommunikation ab. Über das entsprechende ''timeout'' Attribut kann das LaCrosseGateway device so konfigurert werden, dass es in regelmässigen Abständen erneut versucht eine Verbindung mit dem LaCrosseGateway herzustellen. | ||
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden: | Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden: | ||
Der Wert kann in FHEM wie folgt gesetzt werden: | Der Wert kann in FHEM wie folgt gesetzt werden: | ||
< | <syntaxhighlight lang="php">attr myLaCrosseGateway timeout 120,30</syntaxhighlight> | ||
''''' | '''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.'' | ||
Während das LaCrosseGateway eine WiFi- | Während das LaCrosseGateway eine WiFi-Verbindung aufbaut, benötigt das LaCrosseGateway-Modul je nach Konfiguration einige Zeit bis es einen neuen Connect auf den Datenport des LaCrosseGateway versucht. Das Finden der optimalen Werte erfordert etwas Geduld, es kann auch schon mal ein, zwei Minuten dauern, bis die ersten Daten in FHEM übertragen werden. | ||
'''''Erklärung der Timeout Werte:''''' | '''''Erklärung der Timeout Werte:''''' | ||
120,30 prüft alle 30 Sekunden, ob seit mindestens 120 Sekunden keine Daten mehr übermittelt wurden | 120,30 prüft alle 30 Sekunden, ob seit mindestens 120 Sekunden keine Daten mehr übermittelt wurden und falls dem so ist, macht es einen Reset auf der Schnittstelle, was die Verbindung zum LaCrosseGateway neu aufbaut. Das bedeutet, in so einem Fall ist die Verbindung nach spätestens 150 Sekunden wieder hergestellt. | ||
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.'' | '''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.'' | ||
==Liste aller initCommands== | ==Liste aller initCommands== | ||
Eine aktuelle Liste der initCommands, die man von FHEM, Terminalprogramm oder Web-Frontend aus senden kann, sind auf dem Web-Frontend "Help"-Page | Eine aktuelle Liste der initCommands, die man von FHEM, Terminalprogramm oder Web-Frontend aus senden kann, sind auf dem Web-Frontend "Help"-Page des LaCrosseGateways (ab V1.17) aufgeführt. | ||
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/ | [http://IP-Adresse/setup http://IP-Adresse oder Hostname/help] | ||
< | <syntaxhighlight lang="php"> | ||
<n>a set to 0 if the blue LED bothers | <n>a set to 0 if the blue LED bothers | ||
<n>c use one of the possible data rates (for transmit on RFM #1) | <n>c use one of the possible data rates (for transmit on RFM #1) | ||
Zeile 597: | Zeile 702: | ||
<8266>e Clear EEPROM | <8266>e Clear EEPROM | ||
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515) | <n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515) | ||
<n>g get information (1g: get current settings) | |||
<n>h Altitude | <n>h Altitude | ||
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval | <n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval | ||
Zeile 602: | Zeile 708: | ||
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2) | <n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2) | ||
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x) | <n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x) | ||
<n>o set HF-parameter e.g. | <n>o set HF-parameter e.g. 1,4o for RFM69 | ||
<n>p payload on the serial port (1: all, 2: only undecoded data) | <n>p payload on the serial port (1: all, 2: only undecoded data) | ||
<n>r use one of the possible data rates (for RFM #1) | <n>r use one of the possible data rates (for RFM #1) | ||
Zeile 615: | Zeile 721: | ||
<n>w 0=no wifi | <n>w 0=no wifi | ||
<n>z set to 1 to display analyzed frame data instead of the normal data | <n>z set to 1 to display analyzed frame data instead of the normal data | ||
</ | </syntaxhighlight> | ||
==LaCrosseGateway zurücksetzen== | ==LaCrosseGateway zurücksetzen== | ||
Das LaCrosseGateway kann | Das LaCrosseGateway kann auf die "Werkseinstellungen" zurückgesetzt werden.<br> | ||
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen. | |||
Der Befehl dazu lautet: <syntaxhighlight lang="php">8266e</syntaxhighlight> | |||
Er kann mit einem Terminalprogramm, von FHEM aus mit <syntaxhighlight lang="php">set <myLaCrosseGateway> raw 8266e</syntaxhighlight> oder von der Log-Page des LGW gesendet werden. | |||
Danach startet das LGW wieder als Access Point [[#LaCrosseGateway einrichten|initiale Konfiguration]] und die Konfiguration kann über die "Setup-Page" neu vorgenommen werden kann. | |||
==Sensoren/Aktoren anlegen== | ==Sensoren/Aktoren anlegen== | ||
Voraussetzung: | Voraussetzung: die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv. | ||
Die | Die erkannten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden. | ||
Empfangene Sensoren werden nur hinzugefügt werden, wenn | Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird. | ||
< | <syntaxhighlight lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</syntaxhighlight> | ||
==Inbetriebnahme von BMP180 / BME280== | ==Inbetriebnahme von BMP180 / BME280== | ||
Zeile 637: | Zeile 744: | ||
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden: | Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden: | ||
< | <syntaxhighlight lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</syntaxhighlight> | ||
Dann sollte von [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ein LaCrosse Device mit der [[#Sensor-ID | Sensor-ID]] (Default Wert: 0) angelegt werden. | Dann sollte von [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ein LaCrosse Device mit der [[#Sensor-ID | Sensor-ID]] (Default Wert: 0) angelegt werden. | ||
Alternativ kann das FHEM Device manuell angelegt werden: | Alternativ kann das FHEM Device manuell angelegt werden: | ||
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der | Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfigurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0) | ||
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre. | Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre. | ||
< | <syntaxhighlight lang="php">define <name> LaCrosse 00</syntaxhighlight> | ||
Anchließend muss eine Höhenkorrektur (Grund: der Luftdruck wird immer bezogen auf NN angegeben, der Sensor liefert aber den Absolutdruck) mit dem command '''''h''''' in den initCommands vorgenommen werden, dies erfolgt mit dem FHEM Befehl: | Anchließend muss eine Höhenkorrektur (Grund: der Luftdruck wird immer bezogen auf NN angegeben, der Sensor liefert aber den Absolutdruck) mit dem command '''''h''''' in den initCommands vorgenommen werden, dies erfolgt mit dem FHEM Befehl: | ||
Beispiel: 220h legt 220m über NN fest.'' | |||
< | <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 220h</syntaxhighlight> | ||
'''Besser:''' Alternativ kann die Höhe über NN auch auf der Setup-Page des LGW gesetzt werden.<br> | |||
Das hat den Vorteil, dass sofort vom Start an der normalisierte Luftdruck an FHEM gesendet wird und nicht erst, wenn die initCommands von FHEM geschickt wurden. | |||
==Inbetriebnahme Piezo Summer== | ==Inbetriebnahme Piezo Summer== | ||
Der Piezo Summer wird in FHEM über das | Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert. | ||
'''Beispiele:''' | '''Beispiele:''' | ||
< | <syntaxhighlight lang="php"> | ||
set | set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang | ||
set | set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang | ||
set | set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang | ||
set | set myLaCrosseGateway raw 0b -> beep stoppen | ||
</ | </syntaxhighlight> | ||
==Inbetriebnahme von RFM69CW== | ==Inbetriebnahme von RFM69CW== | ||
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW | Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzen. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert. | ||
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert: | Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert: | ||
< | <syntaxhighlight lang="php"> | ||
#1 (Erste) => 17241 | #1 (Erste) => 17241 | ||
#2 (Zweite) => 9579 | #2 (Zweite) => 9579 | ||
Zeile 672: | Zeile 782: | ||
#4 (Vierte) => 20000 | #4 (Vierte) => 20000 | ||
#5 (Fünfte) => 17241 | #5 (Fünfte) => 17241 | ||
</ | </syntaxhighlight> | ||
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.'' | '''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.'' | ||
Zeile 682: | Zeile 792: | ||
| <code>m t:</code> || ''Toggle-Steuerung'' | | <code>m t:</code> || ''Toggle-Steuerung'' | ||
|- | |- | ||
| <code>r:</code> || '' | | <code>r:</code> || ''DataRate'' | ||
|- | |- | ||
| <code>f:</code> || ''Frequenz'' | | <code>f:</code> || ''Frequenz'' | ||
Zeile 694: | Zeile 804: | ||
!Definition !! Erläuterungen | !Definition !! Erläuterungen | ||
|- | |- | ||
| < | | <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 0#1r v</syntaxhighlight> | ||
| DataRate des ersten RFM setzen | | DataRate des ersten RFM setzen | ||
|- | |- | ||
| < | | <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 8842#3r v </syntaxhighlight> | ||
| DataRate des dritten RFM setzen | | DataRate des dritten RFM setzen | ||
|- | |- | ||
| < | | <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 868300#2f v</syntaxhighlight> | ||
| Frequenz des zweiten RFM setzten | | Frequenz des zweiten RFM setzten | ||
|- | |- | ||
| < | | <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 868295#3f v</syntaxhighlight> | ||
| Frequenz des dritten RFM setzten | | Frequenz des dritten RFM setzten | ||
|- | |- | ||
| < | | <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</syntaxhighlight> | ||
| Zwei RFM69CW mit DataRate 17241 und 8842 | | Zwei RFM69CW mit DataRate 17241 und 8842 | ||
|- | |- | ||
| < | | <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</syntaxhighlight> | ||
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent | | Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent | ||
|- | |- | ||
| < | | <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</syntaxhighlight> | ||
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN | | Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN | ||
|- | |- | ||
| < | | <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</syntaxhighlight> | ||
| Drei RFMs Frequenz 868295 / PCA301 / WS1600 sowie Höhe über NN <br>Radio 1 auf 868295 MHz und Toggle 9K/17K mit 20 Sekunden<br>Radio 2 für PCA301 initialisiert | | Drei RFMs Frequenz 868295 / PCA301 / WS1600 sowie Höhe über NN <br>Radio 1 auf 868295 MHz und Toggle 9K/17K mit 20 Sekunden<br>Radio 2 für PCA301 initialisiert<br>Radio 3 macht 8842 kbps für die WS 1600<br>Höhe 220m über NN<br>Activity LED aus<br>v am Ende ruft die neu gesetzten Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden. | ||
|} | |} | ||
'''''Hinweis:''' Es ist wichtig ein "v" an das Ende eines initCommands anzuhängen. Damit wird veranlasst, dass das LaCrosseGateway seine neuen Einstellungen an FHEM zurückmeldet. | '''''Hinweis:''' Es ist wichtig ein "v" an das Ende eines initCommands anzuhängen. Damit wird veranlasst, dass das LaCrosseGateway seine neuen Einstellungen an FHEM zurückmeldet. | ||
==Inbetriebnahme von PCA301== | ==Inbetriebnahme von PCA301== | ||
PCA301 im LGW | PCA301 im LGW funktioniert ähnlich dem PCA301 Sketch, allerdings mit einigen systembedingten Abweichungen. | ||
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''". | Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''". | ||
Zeile 732: | Zeile 842: | ||
'''''Wichtig:''''' Es darf nur '''"ein"''' Radio für PCA301 initialisiert sein, nicht mehrere. Das PCA301 initialisierte Radio ist dediziert für PCA301 zuständig, es kann nicht zwischen anderen Protokollen (z.B. LaCrosse) toggeln.'' | '''''Wichtig:''''' Es darf nur '''"ein"''' Radio für PCA301 initialisiert sein, nicht mehrere. Das PCA301 initialisierte Radio ist dediziert für PCA301 zuständig, es kann nicht zwischen anderen Protokollen (z.B. LaCrosse) toggeln.'' | ||
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat | Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat höhere Priorität, da es bei der Kommunikation | ||
mit den Dosen keine Antworten überhören darf. | mit den Dosen keine Antworten überhören darf. | ||
Zeile 744: | Zeile 854: | ||
! Definition !! Erläuterungen | ! Definition !! Erläuterungen | ||
|- | |- | ||
| style="width:40%" | <code>attr | | style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code> | ||
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden | | Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden | ||
|- | |- | ||
| <code>attr | | <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code> | ||
| Initialisierung eines LaCrosseGateways mit zwei Radios für TX29, TX35, PCA301 und BMP180/BME280.<br>Das erste Radio macht PCA301 und das zweite toggelt 17241/9579 im 20 Sekunden Takt um TX29 und TX35 zu empfangen<br>der BMP180/BME280 liefert den Druck für 220m Meereshöhe<br>die LED ist deaktiviert | | Initialisierung eines LaCrosseGateways mit zwei Radios für TX29, TX35, PCA301 und BMP180/BME280.<br>Das erste Radio macht PCA301 und das zweite toggelt 17241/9579 im 20 Sekunden Takt um TX29 und TX35 zu empfangen<br>der BMP180/BME280 liefert den Druck für 220m Meereshöhe<br>die LED ist deaktiviert | ||
|} | |} | ||
Zeile 756: | Zeile 866: | ||
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt. | Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt. | ||
Das ''Polling'' | Das ''Polling'' funktioniert so, dass für jede Dose geschaut wird, wann sie zuletzt empfangen wurde und wenn das länger als das konfigurierte Interval zurück liegt, | ||
dann wird sie abgefragt. Wenn sonst etwas (Basisstation, anderes FHEM) die Dose abgefragt hat und das LaCrosseGateway die Antwort gehört hat, dann gilt das auch als | dann wird sie abgefragt. Wenn sonst etwas (Basisstation, anderes FHEM) die Dose abgefragt hat und das LaCrosseGateway die Antwort gehört hat, dann gilt das auch als | ||
empfangen und es wird kein eigener Poll für die Dose ausgelöst. ''Das Zusammenspiel mit einer echten Basisstation konnte bisher nur grob simuliert werden.'' | empfangen und es wird kein eigener Poll für die Dose ausgelöst. ''Das Zusammenspiel mit einer echten Basisstation konnte bisher nur grob simuliert werden.'' | ||
Das ''Pairing'' (also die Vergabe eines Kanals) funktioniert wie im PCA301-Sketch, button an der Dose ''"3 Sekunden"'' drücken, dann vergibt das LaCrosseGateway den nächsten freien Kanal. | Das ''Pairing'' (also die Vergabe eines Kanals) funktioniert wie im PCA301-Sketch, button an der Dose ''"3 Sekunden"'' drücken, dann vergibt das LaCrosseGateway den nächsten freien Kanal. | ||
Dosen, die bereits einen Kanal haben, können durch ein Schalten vor Ort, an das LaCrosseGateway | Dosen, die bereits einen Kanal haben, können durch ein Schalten vor Ort, an das LaCrosseGateway angelernt werden. Das LaCrosseGateway erkennt sie und nimmt sie in die | ||
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert. | Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert. | ||
Zeile 814: | Zeile 924: | ||
'''Beispiel:''' | '''Beispiel:''' | ||
< | <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</syntaxhighlight> | ||
==Inbetriebnahme von MCP23008== | ==Inbetriebnahme von MCP23008== | ||
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist. | Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist. | ||
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. | '''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluss von Pushbuttons. | ||
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. | '''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluss von LEDs. | ||
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt'' | Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt'' | ||
< | <syntaxhighlight lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</syntaxhighlight> | ||
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.'' | Beispiel: ''Output => Kann von FHEM aus gesetzt werden.'' | ||
< | <syntaxhighlight lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</syntaxhighlight> | ||
==Inbetriebnahme Analogport== | |||
Der Analogport A0 des ESP8266 wird als Reading im LaCrosseGatewayModul aufgeführt. | |||
Um das zu aktivieren, muss man auf der Setup-Page des LGW die Option "Send analog values" ankreuzen. | |||
Der Eingangsspannungsbereich von A0 ist 0V ... 1.0V, was zu einem Reading von 0 ... 1023 führt. | |||
==Inbetriebnahme von OLED-Display== | ==Inbetriebnahme von OLED-Display== | ||
Es wird das 128x64 pixel 0.96" I2C Display mit dem SSD1306 controller und das 128x64 pixel 1.3" mit dem SH1106 controller unterstützt. | |||
Für die korrekte Darstellung auf dem 1.3" Display, muss die Checkbox 1.3" auf der Setup-Page aktiviert werden | |||
Hinweis: das 0.96" Display bekommt man auch in einer Variante, die SPI unterstützt. Diese Variante kann nur nach einem Umbau verwendet werden. | |||
*OLED ein- und | Der nachfolgende Funktionsumfang ist implementiert: | ||
* Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts) | |||
** | *OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls | ||
*OLED Startverhalten konfigurierbar | |||
*Übermittlung des Display Status im KVP | |||
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts) | |||
**WiFi connect erfolgreich | |||
**Ein FHEM hat sich auf einen DataPort connected | **Ein FHEM hat sich auf einen DataPort connected | ||
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge| | **Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|UART bridge]] connected | ||
** | **WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60 | ||
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]] | |||
<div style="clear:both;"></div> | |||
*Darstellung von bis zu drei Texten und optional eines Symbols | |||
*Definition des Zeitintervalls für das Umschalten zur nächsten Seite | |||
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page) | |||
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge) | |||
===OLED Start Modus=== | |||
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll. | |||
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht. | |||
Zusätzlich kann der initiale Mode festgelegt werden (z.B. thp) | |||
[[Datei: | ===Modes=== | ||
{| class="wikitable" style="margin-left: auto; margin-left: 0px;" | |||
! Prefix !! Parameter !! Erläuterung | |||
|- | |||
| OLED mode= | |||
| t | |||
| Temperatur des internen Sensors | |||
|- | |||
| OLED mode= | |||
| h | |||
| Feuchte des internen Sensors | |||
|- | |||
| OLED mode= | |||
| p | |||
| Druck des internen Sensors | |||
|- | |||
| OLED mode= | |||
| s | |||
| Statuswerte des LGW | |||
|- | |||
| OLED mode= | |||
| f | |||
| von FHEM gesetzter Text | |||
|} | |||
===Mögliche Symbole=== | |||
{| class="wikitable" style="margin-left: auto; margin-left: 0px;" | |||
! Parameter !! Erläuterung !! OLED Darstellung | |||
|- | |||
| t | |||
| Temperature | |||
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]] | |||
<div style="clear:both;"></div> | |||
|- | |||
| h | |||
| Humidity | |||
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]] | |||
<div style="clear:both;"></div> | |||
|- | |||
| p | |||
| Pressure | |||
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]] | |||
<div style="clear:both;"></div> | |||
|- | |||
| s | |||
| System | |||
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]] | |||
<div style="clear:both;"></div> | |||
|- | |||
| i | |||
| Info | |||
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]] | |||
<div style="clear:both;"></div> | |||
|- | |||
| w | |||
| Warning | |||
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]] | |||
<div style="clear:both;"></div> | |||
|- | |||
| e | |||
| Error | |||
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]] | |||
<div style="clear:both;"></div> | <div style="clear:both;"></div> | ||
|} | |||
===Beispiele=== | |||
{| class="wikitable" style="margin-left: auto; margin-left: 0px;" | |||
! Definition !! Erläuterung | |||
|- | |||
| style="width:30%" | <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED On"</syntaxhighlight> | |||
| Schaltet ein angeschlossenes Display ein | |||
|- | |||
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED Off"</syntaxhighlight> | |||
| Schaltet ein angeschlossenes Display aus | |||
|- | |||
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED interval=20"</syntaxhighlight> | |||
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. | |||
|- | |||
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED mode=ths"</syntaxhighlight> | |||
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an | |||
|- | |||
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED mode=thp"</syntaxhighlight> | |||
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an | |||
|- | |||
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED mode=thps"</syntaxhighlight> | |||
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an | |||
|- | |||
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED mode=f"</syntaxhighlight> | |||
| Zeigt ausschließlich den von FHEM festgelegten Text an | |||
|- | |||
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED mode=s"</syntaxhighlight> | |||
| Zeigt ausschließlich die Systemdaten an | |||
|- | |||
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</syntaxhighlight> | |||
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur | |||
|- | |||
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</syntaxhighlight> | |||
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt | |||
|- | |||
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</syntaxhighlight> | |||
| Zeigt drei Texte aber kein Symbol an. | |||
|- | |||
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</syntaxhighlight> | |||
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected. | |||
|} | |||
==Inbetriebnahme eines Nextion Displays== | |||
Mithilfe der Seriellen Schnittstelle [[#Soft_serial_bridge|(Soft serial bridge]]), kann ein Nextion Display in Betrieb genommen werden. Das Besondere dabei ist, dass das LGW zusätzlich seine Status Informationen (AP-Verbindungsstatus, RSSI, IP, Version, FHEM Verbindungsstatus, etc.) an das Display schickt. | |||
Die Anbindung an FHEM erfolgt mithilfe des Nextion Moduls (42_Nextion.pm), welches per FHEM Update verteilt wird. | |||
Ein Diskussionsthread zum Thema „LaCrosseGateway mit Nextion Display“ findet man {{Link2Forum|Topic=63443|LinkText=hier}}. | |||
===Voraussetzungen=== | |||
Vor der Inbetriebnahme in FHEM, müssen folgende Voraussetzungen erfüllt sein: | |||
*Das Display ist wie [[#Nextion_Display|hier]] beschrieben an das LGW angeschlossen. | |||
*Die [[#Soft_serial_bridge|Soft serial bridge]] auf der LGW Setup-page ist konfiguriert. | |||
*Das LaCrosse Gateway Device ist wie [[#Device_Definition|hier]] beschrieben angelegt. | |||
===Funktionsumfang=== | |||
Der nachfolgende Funktionsumfang ist implementiert: | |||
*OTA Firmware (.tft File) Übertragung an das Display | |||
*Automatische Anpassung der Baudrate auf dem Nextion | |||
*Das LGW schickt (periodisch) Werte an folgende Controls: | |||
{| class="wikitable" style="margin-left: auto; margin-left: 0px;" | {| class="wikitable" style="margin-left: auto; margin-left: 0px;" | ||
! Definition !! | ! Control!! Beschreibung/Anmerkung | ||
|- | |||
| LGW#temp.txt | |||
| Nur wenn ein entsprechender on board sensor vorhanden ist. | |||
|- | |||
| LGW#hum.txt | |||
| Nur wenn ein entsprechender on board sensor vorhanden ist. | |||
|- | |||
| LGW#pres.txt | |||
| Nur wenn ein entsprechender on board sensor vorhanden ist. | |||
|- | |||
| LGW#rssi.txt | |||
| WLAN RSSI Signalstärke | |||
|- | |||
| LGW#ip.txt | |||
| IP-Adresse des LGW's | |||
|- | |||
| LGW#fpm.txt | |||
| Frames Per Minute | |||
|- | |||
| LGW#heap.txt | |||
| Free Heap | |||
|- | |||
| LGW#up.txt | |||
| Uptime | |||
|- | |||
| LGW#ver.txt | |||
| Version | |||
|- | |||
| LGW#wifi (vis) | |||
| Setzt die visibility | |||
|- | |||
| LGW#fhem | |||
| Setzt die visibility | |||
|- | |||
| LGW#cpu1 | |||
| Setzt die visibility | |||
|- | |||
| LGW#cpu2 | |||
| Setzt die visibility | |||
|- | |||
| LGW#main | |||
| Sendet, nachdem es sich initialisiert hat, ein "page LGW#main" an das Nextion. | |||
|- | |||
| LGW#info | |||
| Sendet die Info an die LGW#prog page | |||
|- | |||
| LGW#ptext | |||
| Sendet die Info an die LGW#prog page | |||
|- | |||
| LGW#pbar | |||
| Sendet die Info an die LGW#prog page | |||
|} | |||
*Fortschrittsanzeige beim flashen der Nextion Firmware | |||
===Device Definition Nextion Modul=== | |||
Die Definition für die Nextion Bridge sieht dann wie folgt aus: | |||
<code>define <nextion> Nextion <IP-Adresse>:<Port></code> | |||
''<nextion>'' kann bei Bedarf angepasst werden. | |||
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden. | |||
''<Port>'' Ist der auf der Setup-page definierte Port | |||
'''Beispiel:''' | |||
<syntaxhighlight lang="php">define nextion Nextion 192.168.22.33:86</syntaxhighlight> IP-Adresse ermitteln: Das LaCrosseGateway heisst per default Einstellung "LaCrosseGateway", per ping auf den Hostnamen LaCrosseGateway kann die <IP-Adresse> ermittelt werden. | |||
===Firmware erstellen und flashen === | |||
Ein UI für das Nextion Display wird mit dem Nextion Editor erstellt. Mithilfe des Editors kann die entsprechende Firmware (tft Datei – siehe „File -> Open build folder“) kompiliert (Button: Compile) werden. | |||
Das LGW kann die Firmware (.tft Datei) zum Display übertragen. Dazu gibt es zwei Varianten: | |||
'''curl''' | |||
Syntax lautet: | |||
<code>curl --http1.0 -# -o ~output.txt -H "Content_Type:multipart/form-data" -F "file=@<tftFileName>; filename=nextion.tft" http://<LGW-IP>/ota/nextion</code> | |||
Beispiel: | |||
<code>curl --http1.0 -# -o ~output.txt -H "Content_Type:multipart/form-data" -F "file=@D:\MyNextionFiles\lgw.tft; filename=nextion.tft" http://192.168.31.213/ota/nextion</code> | |||
'''Das LaCrosseGateway Modul in FHEM''' | |||
Syntax lautet: | |||
<syntaxhighlight lang="php">set <myLaCrosseGateway> nextionUpload</syntaxhighlight> | |||
Wenn das Attribut "tftFile" gesetzt ist, wird die darin angegebene Datei hochgeladen, ansonsten wird versucht, das File „FHEM/firmware/nextion.tft“ hochzuladen. | |||
===Anwendungsbeispiel=== | |||
In {{Link2Forum|Topic=63443|LinkText=diesem FHEM Forum Thread}} wurde ein LGW Nextion UI erarbeitet (Stand 01.08.2017 {{Link2Forum|Topic=63443|Message=582453|LinkText=Version 0.7}}), um die Funktionsweise zu demonstrieren. | |||
Das Nextion UI besteht aus folgenden Pages: | |||
{| class="wikitable" | |||
!ID !! Name !! Page !! Beispiel !! Hinweise/Funktion/Bechreibung !! Nextion Debug commands | |||
|- | |||
| 0 ||Boot || Boot || [[Datei:lgw_nextion_boot.png|200px|thumb|left|]]<div style="clear:both;"></div> || Das ist die Startseite nach Einschalten des Nextion Displays. || | |||
|- | |||
| 1 ||Progress||LGW#prog ||[[Datei:lgw_nextion_prog.png|200px|thumb|left|]]<div style="clear:both;"></div>|| Auf dieser Seite wird der WiFi Verbindungsfortschritt angezeigt. Alle Werte werden vom LGW befüllt. ||page LGW#prog | |||
vis LGW#pbar,1 | |||
vis LGW#ptext,1 | |||
LGW#pbar.val=50 | |||
LGW#ptext.txt="Connect WiFi (1)" | |||
|- | |||
| 2 ||Main|| LGW#main || [[Datei:lgw_nextion_main.png|200px|thumb|left|]]<div style="clear:both;"></div> ||Dies ist die Hauptseite, welche vom LGW aufgerufen wird, sobald der Bootvorgang abgeschlossen ist.<br>Hinweise zur Funktionsweise findet man {{Link2Forum|Topic=63443|Message=546896|LinkText=hier}}|| page LGW#main | |||
vis LGW#wifi,1 | |||
vis LGW#fhem,1 | |||
vis LGW#cpu1,1 | |||
vis LGW#cpu2,1 | |||
LGW#rssi.txt="-68" | |||
tTime.txt="23:45" | |||
tDate.txt="01.08.2017" | |||
vis iTemp,1 | |||
LGW#temp.txt="25.7" | |||
vis iHum,1 | |||
LGW#hum.txt="68%" | |||
vis iPres,1 | |||
LGW#pres.txt="1024hPa" | |||
vis iWind,1 | |||
tout_ws.txt="23km/h" | |||
vis iOutT,1 | |||
tout_t.txt="28°C" | |||
|- | |||
| 3 ||Info Page|| Info || [[Datei:lgw_nextion_info.png|200px|thumb|left|]]<div style="clear:both;"></div> || Alle Informationen auf dieser Seite werden von LGW automatisch befüllt. || page Info | |||
vis LGW#ip,1 | |||
LGW#ip.txt="192.168.222.1" | |||
vis LGW#fpm,1 | |||
LGW#fpm.txt="5" | |||
vis LGW#heap,1 | |||
LGW#heap.txt="16280" | |||
vis LGW#ver,1 | |||
LGW#ver.txt="1.30" | |||
vis LGW#up,1 | |||
LGW#up.txt="1Tg.4Std.34Min." | |||
|- | |||
| 4 || Info Page 2 || Info2 || [[Datei:lgw_nextion_info2.png|200px|thumb|left|]]<div style="clear:both;"></div> || tInfo50 und tInfo51 sind für Nextion UI Version reserviert. tInfo60 bis tInfo91 sind nicht belegt und können verwendet werden, um z.B. die FHEM Verison anzuzeigen. || page Info2 | |||
tInfo60.txt="tInfo60:" | |||
tInfo61.txt="tInfo61" | |||
tInfo70.txt="tInfo70:" | |||
tInfo71.txt="tInfo71" | |||
tInfo80.txt="tInfo80:" | |||
tInfo81.txt="tInfo81" | |||
tInfo90.txt="tInfo90:" | |||
tInfo91.txt="tInfo91" | |||
|- | |||
| 5 || Settings || Settings || [[Datei:Lgw_nextion_Settings.png|200px|thumb|left|]]<div style="clear:both;"></div> || Einstellungsmöglichkeit von Helligkeit (Wertebereich von 10% bis 100%) des Displays und des PowerOff Timeouts (Wertebereich: off und 1-120 Sek.)||page Settings | |||
h1.val=25 | |||
h0.val=60 | |||
|- | |- | ||
| style=" | | 6 || Control Center||CoCe||[[Datei:lgw_nextion_CoCe.png|200px|thumb|left|]]<div style="clear:both;"></div> ||Zum Schalten von Aktoren und Status Anzeige.<br>Weitere Hinweise zur Funktionsweise sind {{Link2Forum|Topic=63443|Message=576902|LinkText=hier}} zu finden. || page CoCe | ||
lblT1.txt="lbT1" | |||
lblS1.txt="aus" | |||
lblT2.txt="lbT2" | |||
lblS2.txt="an" | |||
lblT3.txt="lbT4" | |||
lblS3.txt="zu" | |||
lblT4.txt="lbT3" | |||
lblS4.txt="auf" | |||
lblT5.txt="lbT5" | |||
lblS5.txt="n.a." | |||
|- | |- | ||
| < | | 7 || Weather ||Weather||[[Datei:lgw_nextion_Weather.png|200px|thumb|left|]]<div style="clear:both;"></div>||Zur Anzeige einer Wettervorhersage. Diese Seite wird durch ein touch auf den "Temp-Wert" in der Main#Page aufgerufen. <br>Implementierungshinweise sind {{Link2Forum|Topic=63443|Message=582453|LinkText=hier}} zu finden. ||page Weather | ||
p0.pic=12 | |||
t0.txt="Mo 01 Aug 2017\rmin:15 max:18" | |||
p1.pic=16 | |||
t1.txt="Di 02 Aug 2017\rmin:15 max:18" | |||
p2.pic=17 | |||
t2.txt="Mi 03 Aug 2017\rmin:15 max:18" | |||
p3.pic=12 | |||
t3.txt="Do 04 Aug 2017\rmin:25 max:28" | |||
p4.pic=15 | |||
t4.txt="Fr 05 Aug 2017\rmin:28 max:32" | |||
|} | |} | ||
==Serial | Hinweis: Alle Controls die mit dem Namen "LGW#" beginnen sind für das LGW reserviert und werden entsprechend vom Gateway befüllt. | ||
===Nextion Tipps & Tricks=== | |||
====Nextion Commandreferenz==== | |||
Sehr hilfreich ist die Nextion instruction Page, welche hier: https://www.itead.cc/wiki/Nextion_Instruction_Set zu finden ist. | |||
==Serial Transparent Bridge== | |||
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen. | Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen. | ||
Dazu gibt es die | Dazu gibt es die settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways. | ||
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt. | Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt. | ||
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM | Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwendet werden. | ||
Zeile 869: | Zeile 1.352: | ||
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud | *Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud | ||
*CUL in FHEM definieren (Beispiel): | *CUL in FHEM definieren (Beispiel): | ||
< | <syntaxhighlight lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</syntaxhighlight> | ||
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden. | '''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden. | ||
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden. | '''''<IP-Adresse>''''' Muss entsprechend angepasst werden. | ||
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines | Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Defekts etc.), empfiehlt es sich einen reconnect Mechanismus in FHEM zu implementieren. | ||
Dieser kann wie folgt aussehen: | Dieser kann wie folgt aussehen: | ||
< | <syntaxhighlight lang="php">define CULXYZ-Reconnector at +*00:00:30 {\ | ||
my $deviceName = "<CULXYZ>";;\ | my $deviceName = "<CULXYZ>";;\ | ||
my $version = CommandGet("", $deviceName . " version");;\ | my $version = CommandGet("", $deviceName . " version");;\ | ||
Zeile 887: | Zeile 1.370: | ||
}\ | }\ | ||
\ | \ | ||
} </ | } </syntaxhighlight> | ||
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden. | '''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden. | ||
'''''Vorgehen Firmware flashen mit LGW''''' | |||
Ein bereits in Betrieb genommener NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden. | |||
==Zugriff mit mehreren FHEM Instanzen== | ==Zugriff mit mehreren FHEM Instanzen== | ||
Zeile 899: | Zeile 1.386: | ||
Wenn sich mehrere FHEM Instanzen ein LaCrosseGateway teilen, dann ist darauf zu achten, dass die eine gemeinsame/gleiche initCommand Konfiguration haben. Sollten die FHEM Instanzen unterschiedliche initCommands senden, gewinnt das (zufällig) letzte und legt es für alle anderen fest. | Wenn sich mehrere FHEM Instanzen ein LaCrosseGateway teilen, dann ist darauf zu achten, dass die eine gemeinsame/gleiche initCommand Konfiguration haben. Sollten die FHEM Instanzen unterschiedliche initCommands senden, gewinnt das (zufällig) letzte und legt es für alle anderen fest. | ||
=Nano LaCrosse Gateway= | =Nano LaCrosse Gateway= | ||
Das nano LaCrosse Gateway verwendet die gleiche [https:// | Das nano LaCrosse Gateway verwendet die gleiche [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin Firmware] wie das WiFi LaCrosse Gateway, der signifikante Unterschied ist die kompakte (portable) Bauform. Aufgrund der Bauform können jedoch nicht alle Bauteile verwendet werden. | ||
Das Gateway eignet sich sehr gut als | Das Gateway eignet sich sehr gut als Entwicklungsstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI, Cubietruck, etc.). | ||
Der | Der Betrieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich. | ||
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden. | Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden. | ||
==Bauteile== | ==Bauteile== | ||
Folgende | Folgende Bauteile werden benötigt: | ||
*[http://www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=36507 | *Gehäuse [http://www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=36507 schwarz] oder [http://www.voelkner.de/products/164819/USB-Gehaeuse-USB-1kl-Transparent.html transparent] | ||
*ESP-12E | *ESP-12E | ||
*Auto-Flash-Reset-Schaltung | *Auto-Flash-Reset-Schaltung | ||
*[http://www.aliexpress.com/item/6Pin-USB-2-0-to-TTL-UART-Module-Serial-Converter-CP2102-STC-Replace-Ft232/32364013343.html?spm=2114.13010208.99999999.261.mWmpl5 CP2102 FTDI] | *[http://www.aliexpress.com/item/6Pin-USB-2-0-to-TTL-UART-Module-Serial-Converter-CP2102-STC-Replace-Ft232/32364013343.html?spm=2114.13010208.99999999.261.mWmpl5 CP2102 FTDI] | ||
*RFM69CW | *RFM69CW | ||
*Status-LED | *Status-LED | ||
==Schaltung== | ==Schaltung== | ||
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left| | [[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]] | ||
<div style="clear:both;"></div> | <div style="clear:both;"></div> | ||
==Selbstbau | ==Selbstbau== | ||
{| class="galleryTable noFloat" | {| class="galleryTable noFloat" | ||
|- | |- | ||
Zeile 930: | Zeile 1.415: | ||
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]] | | [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]] | ||
|} | |} | ||
==Platine== | |||
==Platine nano LaCrosse Gateway== | ===nano LaCrosse Gateway=== | ||
{| class="galleryTable noFloat" | |||
|- | |||
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]] | |||
[[Datei: | |[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]] | ||
|} | |||
===USB2TTL=== | |||
{| class="galleryTable noFloat" | |||
|- | |||
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]] | |||
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]] | |||
|} | |||
===nano LaCrosse Gateway inkl. USB2TTL=== | |||
{| class="galleryTable noFloat" | |||
|- | |||
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]] | |||
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]] | |||
|} | |||
{| class="galleryTable noFloat" | |||
|- | |||
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]] | |||
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]] | |||
|} | |||
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse=== | |||
{| class="galleryTable noFloat" | |||
|- | |||
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]] | |||
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]] | |||
|} | |||
===Platine bestücken (Hinweise und Tipps)=== | |||
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht. | |||
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur". | |||
= Tipps & Tricks = | = Tipps & Tricks = | ||
Zeile 946: | Zeile 1.457: | ||
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht'' | '''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht'' | ||
< | <syntaxhighlight lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</syntaxhighlight> | ||
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.'' | '''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.'' | ||
Zeile 953: | Zeile 1.464: | ||
Diskussionsthread aus dem Forum: | Diskussionsthread aus dem Forum: | ||
{{Link2Forum|Topic=43672|LinkText=LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino}} | |||
{{Link2Forum|Topic=45594|LinkText=Platine für LaCrosseGateway: Platinenbestellung}} | |||
{{Link2Forum|Topic=51329|LinkText=Platine für nanoLGW (LaCrosse Gateway): Layout}} | |||
{{Link2Forum|Topic=52921|LinkText=Display für LaCrosseGateway}} | |||
{{Link2Forum|Topic=63443|LinkText=LaCrosseGateway mit Nextion Display}} | |||
[[Kategorie:Interfaces]] | [[Kategorie:Interfaces]] | ||
[[Kategorie:ESP8266]] | |||
[[Kategorie:IP Components]] | [[Kategorie:IP Components]] | ||
[[Kategorie:Other Components]] | [[Kategorie:Other Components]] | ||
Zeile 969: | Zeile 1.481: | ||
[[Kategorie:Feuchtesensoren]] | [[Kategorie:Feuchtesensoren]] | ||
[[Kategorie:Wetterstationen]] | [[Kategorie:Wetterstationen]] | ||
[[Kategorie:868MHz]] |
Aktuelle Version vom 14. Oktober 2022, 09:01 Uhr
LaCrosseGateway | |
---|---|
Zweck / Funktion | |
Einbindung des LaCrosse Gateways (Hardware) | |
Allgemein | |
Typ | Gerätemodul |
Details | |
Dokumentation | EN / DE Thema |
Support (Forum) | Sonstige Systeme |
Modulname | 36_LaCrosseGateway.pm |
Ersteller | HCS (Forum /Wiki) |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
Diese Seite beschreibt ausschließlich das LaCrosseGateway V1.x, das auf dem ESP8266 basiert. Für das LaCrosseGateway32 (Thema dazu im Forum), das auf dem ESP32 basiert, wird es eine eigene Seite geben.
- Dokumentationsstand dieser Seite: Version 1.27
- Neueste Version (09/2019): Version 1.35
- LaCrosseGateway32 wird (Stand 10/2022) seit April 2018 wegen Zeitmangels nicht aktiv weiterentwickelt
Das LaCrosseGateway (hier und im Forum auch mit LGW abgekürzt) erfüllt den gleichen Zweck wie ein JeeLink USB-Stick und zwar das Empfangen, Abfragen und Steuern von funkbasierten LaCrosse Sensoren und Aktoren, die im 868 MHz FSK Sendeverfahren arbeiten (OOK-Sendeverfahren (433 MHz) wird nicht unterstützt). Die Verarbeitung der Daten und Steuerung der Aktoren erfolgt mithilfe von FHEM, das als zentrale Steuereinheit dient. Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN (WiFi). Das Herzstück des LaCrosse-Gateways besteht aus einem ESP8266-12E/F. Das LaCrosseGateway ist aufgrund des hohen Stromverbrauchs nicht für den Akkubetrieb geeignet.
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:
- Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür sind nur Strom (5V/1A USB Netzteil) und ein WiFi Access Point erforderlich
- Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig
- Alternativ am USB-Port wie ein JeeLink verwendbar
- Einsatz von onboard Sensoren / Aktoren (siehe Unterstützte Sensoren und Aktoren) möglich
Hinweis: Die Anbindung in FHEM kann zwar noch mit dem JeeLink-Modul erfolgen, aber es ist sinnvoll, auf das LaCrosseGateway-Modul (36_LaCrosseGateway.pm) umzustellen, da dieses eine bessere Unterstützung für die Funktionen des LGW bietet.
Hardware
Bauteile
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:
- [Option 1] ESP8266 ESP-12E Modul.
- Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.
- Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an einen USB2Serial-Adapter angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich.
- [Option 2] NodeMCU DEVKIT 1.0 (oder 2.0)ist die Inbetriebnahme einfacher, da alles für das Aufbringen der Firmware bereits vorhanden ist und kein Löten nötig ist.
Hinweis: Folgende Devkits werden nicht "offiziell" unterstützt, da ungetestet, können aber durchaus in bestimmten Fällen verwendet werden:- V0.9 (da ungetestet, bekommt man aber kaum noch zu kaufen)
- V3.0 - passt nicht auf die Platine von PeMue, ist größer als das 2.0. Auf der Rückseite steht "Lolin".
- Devkits mit einem CH340 USB converter (da ungetestet und teils falsche Bauform und von der USB-Anbindung her teils problematisch)
- [Option 3] Alternativ zu einem DEVKIT 1.0 kann auch ein "WeMOS D1 mini" eingesetzt werden. Vorteil bei diesem Kit ist die kleine Bauform bei gleichem Funktionsumfang wie das DEVKIT 1.0.
- [Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.
- Hinweis: Der ESP-07 hat einen 25Q80 1M Flash Chip. Dieser ist für den Betrieb mit der LaCrosseGateway Firmware geeignet, für ein OTA-Update ist es jedoch zu wenig. Aus diesem Grund muss/kann dieser auf 4M Flash umgebaut werden. Weitere Informationen und Details zum Umbau sind im Forenthread (Gehäuse-Variante) beschrieben.
- [Optional] RFM69CW - Für das Senden und Empfangen funkbasierter LaCrosse Aktoren und Sensoren
- [Optional] On board Sensoren (siehe Unterstützte Sensoren und Aktoren)
- [Optional] SC16IS750 Zur Bereitstellung der seriellen Schnittstelle, da die GPIOs (GPIO1 / GPIO3) DEVKIT's V1.0 von FTDI verwendet werden und damit nicht genutzt werden können.
- [Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)
- [Optional] MCP23008 zur Bereitstellung (konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)
- [Optional] Nextion Touch Display zur Darstellung von verschiedenen Informationen oder zum Schalten von Aktoren.
- Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.) / PeMue Platine
Schaltung
Variante: DEVKIT 1.0 Minimum
Variante: DEVKIT 1.0 Maximalausbau
Variante: Platine (PeMue)
siehe hier: Thread
Siehe Erweiterungsmöglichkeiten.
MCP23008
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V
|-------\/-------|
LGW D1 |1 SCL VDD 18| LGW 3.3V
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output
|7 NC GP2 12| PB2 --/ --- GND or Output
|8 INT GP1 11| PB1 --/ --- GND or Output
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output
|----------------|
Nextion Display
Angeschlossen wird das Display wie folgt: GPIO0: TXD -> Nextion RXD GPIO2: RXD -> Nextion TXD
Das Display benötigt eine 5V Spannungsversorgung, diese kann vom VIN des DEVKIT's abgegriffen werden. Vom Betrieb mit 3.3V wird abgeraten. Ein level shifter für RXD/TXD ist nicht nötig.
Aufbau auf einem Steckbrett
Hinweis: Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.
Platine
PeMue (vielen Dank) hat hier eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).
Oberseite
Unterseite
DEVKIT 1.0 bestückt Oberseite
DEVKIT 1.0 bestückt Unterseite
ESP8266-12E bestückt Oberseite
Hinweis: Die Platine (Bild (1)) ist mit einem LM75 Sensor bestückt. Diese Bestückung macht zusammen mit einem BME280 keinen Sinn, es handelt sich hierbei um eine Entwicklungsplatine.
ESP8266-12E bestückt Unterseite
Platine bestücken (Hinweise und Tipps)
- Auf der Platine (Version 1.0) ist für das RFM69CW-Modul eine Markierung (zwei Quadrate) aufgedruckt, die den Chip und den Quarz symbolisieren. Wenn man den RFM69CW so drauflötet, wie abgebildet, ist er falsch rum drauf.
Es muss darauf geachtet werden, wo auf dem RFM69CW die "Ant" Beschriftung steht, dieser Lötpunkt muss auf die Platine an den Punkt "1" ausgerichtet werden. Zur Sicherheit bitte den Schaltplan konsultieren und die genaue Position ermitteln.
Für die Platine V1.1 wurde das korrigiert. - Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrahtigen Leiter (aus Kupfer) verwenden.
Erweiterungsmöglichkeiten
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.
Folgende Erweiterungen sind möglich:
- es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.
- es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.
- es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.
- es kann ein aktiver Piezo Summer (Piezo Buzzer) angeschlossen (an GPIO7 des SC16IS750) werden, um von FHEM aus das LaCrosseGateway einen Alarm ausgeben zu lassen. Hinweis: Falls der Strom von 10mA, den die Ausgänge liefern, nicht reicht, ist noch eine Transistor-Schaltstufe vorzusehen.
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.
Alle Komponenten werden automatisch erkannt, sofern angeschlossen. Für die Realisierung der o.g. Möglichkeiten wird ein SC16IS750 verwendet.
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os
Auf dieser Basis sind momentan folgende Erweiterungen möglich:
SubProzessor
Der SubProzessor dient dazu, dass mit einem eigenen Sketch Daten erfasst werden können, ohne sich um die ganze Nummer, die das LGW macht (WiFi, Kommunikation mit FHEM, Frontend, OTA, ...), kümmern zu müssen. Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini) Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.
Wichtig: Alle LaCrosseGateway Komponenten laufen ausschließlich mit 3.3V, aus diesem Grund dürfen keine 5V Komponenten angeschlossen werden.
Firmware flashen
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.
Dazu wird sie auf das LGW hochgeladen (http://<LGW-IP>/ota/addon.hex).
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.
Vorgehen Firmware flashen
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgenden Befehl hochgeladen werden:
curl --http1.0 -H "Content_Type:multipart/form-data" -F "file=@/myFolder/LGW-Addon.ino.hex; filename=addon.hex" http://192.168.31.211/ota/addon.hex
Hinweis: filename=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt kommen, das wie folgt aussieht:
Start receiving 'addon.hex'
File: /addon.hex Size: 21417
Starting flash
Sending sync
Enter program mode
Binary size is:7608
Leave Program Mode
Flash finished
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:
KeyValueProtokoll (KVP):
Format:
KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...
Beispiel:
KV DHT 01 Temperature=21.5,Humidity=62
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.
LaCrosse:
Format:
LC <Address> T=<Temperature>,H=<Humidity>
Beispiel:
LC 9F T=21.5,H=62
LC 9F T=21.5
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM. In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.
Das LGW-Addon.ino ist ein einfaches Beispiel, das diese Technik veranschaulicht. Es bindet den geliebten DHT22 an und sendet ihn als LaCrosse-Sensor (über das LGW) an FHEM und es misst die Spannung und sendet sie zusammen mit der UpTime des SubProzessors als KVP
Der umrandete Bereich Schaltung - "Example" "Example" ist das zu LGW-Addon.ino passende Beispiel.
Unterstützte Sensoren und Aktoren
Alle Sensoren und Aktoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden.
(siehe vom JeeLink unterstützte LaCrosse Sensoren und Aktoren)
Zusätzlich zu LaCrosse werden auch die folgenden Geräte unterstützt:
Bezeichnung | Datenrate | Sonstiges | Funktion | Hinweise |
---|---|---|---|---|
PCA301 | 868950 kHz (868,970 und 868,990 ) 6.631 kbps | extern | Energiemess-Steckdose (Unterstützt werden bis zu 50 Dosen) | |
EC3000 | 868.300 kHz mit 20.000 kbps | extern | Energiemess-Steckdose | |
RFM69CW | on board | Zum Empfangen und Senden von Sensor/Aktor Daten | Hinweise DHT22 beachten. | |
BME280 | on board | Temperatur, Feuchte und Druck | Falls das verwendete Breakout bereits PullUp-Widerstände für SDA und SCL enthält, sind diese nicht mehr zusätzlich nötig. | |
BMP180 | on board | Temperatur und Druck | Falls das verwendete Breakout bereits PullUp-Widerstände für SDA und SCL enthält, sind diese nicht mehr zusätzlich nötig. | |
LM75 | on board | Temperatur | ||
DHT22 | on board | Temperatur und Feuchte | Kann anstatt RFM69 Radio#3 eingesetzt werden. | |
SC16IS750 | I2C Adresse: 0x90 | on board | OI Erweiterung | |
OLED SSD1306 | I2C Adresse: 0x3C | on board | OLED Display | |
MCP23008 | I2C Adresse: 0x27 | on board | Input/Output Port Expander | |
Piezo Summer | on board | Piezo Buzzer | ||
Nextion Display | (Max.) 57600 baud | on board | Touch Display |
Alle direkt am LGW anschließbaren Sensoren werden automatisch erkannt, wenn sie vorhanden sind.
Sie werden in folgender Reihenfolge verwendet:
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.
Software
Release Notes
Funktionsumfang
- Access Point für die Konfiguration
- Konfiguration über WEB-Frontend (Erreichbar per http://IP-Adresse oder Hostname/setup auf Port 80 )
- SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)
- Statische IP-Adresse anstatt DHCP
- Hostname
- Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.
- Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12)
- On board und externe Sensoren und Aktoren (Unterstützte Sensoren und Aktoren)
- Betrieb nur per USB möglich, als ob es ein JeeLink wäre
- FHEM Anbindung
- Log im Web-Frontend
- Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)
- Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)
- SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))
- Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)
- Software Serial Bridge - Stellt die Soft Serial Schnittstelle transparent auf einem TCP Port bereit.
Sourcecode
Der Quellcode des LaCrosse Gateways befindet sich im FHEM SVN Repository (contrib).
Firmware Download
Die Firmware befindet sich im FHEM SVN Repository und wird per FHEM Update verteilt. Neue Version der Firmware wird im FHEM Forum "LaCrosse Gateway" angekündigt und der Funktionsumfang bzw. die Änderungen beschrieben.
Nach einem FHEM-Update alternativ auch: <FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin
Firmware aufspielen
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.
Das NodeMCU DEVKIT 1.0 hat eine CP2102 UART Bridge implementiert, dafür muss ein CP2102 Treiber installiert sein.
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.
Windows/Mac/Linux per "esptool"
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):
1) Das esptool 0.4.6 für die entsprechende Plattform herunterladen.
2) Zum Aufspielen der Firmware muss ein Befehl mit der folgenden Syntax ausgeführt werden:
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]
[Port] und [Pfad zur Firmware (bin-File)] müssen angepasst werden.
Beispiel (Mac/Linux):
esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin
Hinweis: Das esptool ist nicht sonderlich stabil. Es kommt vor, dass es manchmal den Upload nicht startet oder nicht durchbekommt. In diesem Fall hilft es den Vorgang, auch mehrmals, zu wiederholen.
Linux/Debian/Ubuntu "esptool v2.1"
Installieren:
sudo apt-get esptool
Beispiel mit neuer Syntax bei esptool v2.1:
sudo esptool --port /dev/ttyUSB0 write_flash 0x00000 JeeLink_LaCrosseGateway.bin
Windows per "nodemcu-flasher"
1) Espressif Flashtool downloaden und entpacken:
2) Firmware downloaden
3) FlashTool starten und wie folgt einstellen:
4) COM-Port auswählen und den Flashvorgang starten (Button: Flash(F)) ...
Nach dem Flashen sollte über die serielle Ausgabe (57600 Baud) des ESP der Start und das Öffnen des AccessPoints zu sehen sein.
Hinweis: Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.
Funktionsweise
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:
Wenn es sich in keinem WLAN anmelden kann, dann öffnet es einen Access Point mit der SSID "LaCrosseGateway_xxxxxx", wobei xxxxxx die eindeutige Chip-ID des ESP8266 ist.
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen. Innerhalb dieser 15 Minuten kann man sich mit dem Access Point verbinden. Der Access Point vergibt (per DHCP) IP-Adressen aus dem Netzwerk 192.168.222.0. Anschließend kann über die LaCrosseGateway Konfigurationsseite http://192.168.222.1/setup die initiale Konfiguration vorgenommen werden. Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet. Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://seine aktuelle IP-Adresse/setup erreichbar.
Wenn sich das LaCrosseGateway an dem konfigurierten WLAN anmelden konnte (es wartet max. 30 Sekunden auf einen connect) und von diesem per DHCP eine IP-Adresse erhalten hat, dann stellt es auf dieser Adresse den Port 81 zur Verfügung, über den in FHEM das LaCrosseGateway Modul senden und empfangen kann.
Optische Darstellung der Initialisierung
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisiert, was gerade passiert:
- 5 schnelle Blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat
- Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden
- LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden
LaCrosseGateway einrichten
Für die Ersteinrichtung des LaCrosseGateways werden die SSID und das Passwort des WLAN-Routers benötigt. Ferner wird empfohlen auf dem WLAN-Router bzw. dem DHCP-Server eine IP-Adresse für das LaCrosseGateway zu reservieren. Für die Reservierung wird die MAC-Adresse des LaCrosseGateways benötigt, diese kann über die "Home"-Page des LaCrosseGateways ermittelt, alternativ von dem NODEMCU Firmware Programmer (Reiter "Operation -> "STA MAC") entnommen werden.
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.
Für die Konfiguration sind folgende Schritte nötig:
- Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe Beschreibung Funktionsweise)
- Mithilfe eines Browsers die LaCrosseGateway "Setup"-Page öffnen
- SSID und das Password eintragen. Man kann zwei SSID/Passwort-Kombinationen mit jeweils einem Timeout konfigurieren. 120 bedeutet z.B. dass das LGW 120 Sekunden lang versucht, die SSID zu erreichen. Falls die erste SSID nach "Timeout" Sekunden nicht erreicht wurde, wird Timeout Sekunden lang versucht, die zweite SSID zu connecten.
- [Empfohlen] Das Frontend Passwort festlegen
- [Optional] Falls kein DHCP-Server zur Verfügung steht bzw. keine Reservierung erwünscht ist, dann muss die IP-Adresse / Netmask (Optional auch Gateway) eingetragen werden
- [Empfohlen] Hostnamen festlegen bzw. anpassen
- Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommenen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router.
Anschließend kann mit der Inbetriebnahme in FHEM fortgefahren werden.
Firmware aktualisieren
Nachfolgend werden, neben der unter dem Punkt Firmware aufspielen beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway Firmware aufgezeigt.
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.
Per FHEM (OTA-Update)
Voraussetzungen:
- Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein
- Es wird kein avrdude benötigt
- Das Attribut "flashCommand" spielt keine Rolle
Die LaCrosseGateway Firmware kann vom LaCrosseGateway Device (LaCrosseGateway Modul) aus mit
set myLaCrosseGateway flash
aktualisiert werden.
myLaCrosseGateway muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.
Hinweis: Das Update dauert ca. 30 Sekunden.
Per FHEM (USB)
Voraussetzungen: Auf dem FHEM-Server muss Python und pyserial installiert sein. Die Installation kann z.B. so erfolgen:
- apt-get install python
- wget https://bootstrap.pypa.io/get-pip.py
- python get-pip.py
- pip install pyserial
Das Attribut "mode" muss auf USB gesetzt sein: attr myLaCrosseGateway mode USB
Der flash-Vorgang wird gestartet mit: set myLaCrosseGateway flash
Per CURL
Voraussetzungen:
- curl-Tool installiert
Beispiel:
curl --http1.0 -# -o ~output.txt -H "Content_Type:multipart/form-data" -F "file=@.\JeeLink_LaCrosseGateway.bin; filename=firmware.bin" http://192.168.31.211/ota/firmware.bin
Firmwaredateiname (file=) und die IP-Adresse muss entsprechend angepasst werden.
Per WEB OTA-Update (deprecated)
deprecated
LaCrosseGateway Web-Frontend
Status-Wert RSSI
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)
Status-Wert FramesPerMinute
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden. Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.
Status-Wert ReceivedFrames
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.
WiFi "Startup-delay"
Mit diesem Konfigurationsparameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einem Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.
Eine Anpassung kann für den folgenden Fall sinnvoll sein:
Nach einem Stromausfall benötigt ein WiFi Access Point (Router: Fritzbox etc.) in den meisten Fällen länger zum Starten als das LGW. In der default Einstellung führt das dazu, dass der LGW nach dem Starten versucht 30 Sekunden lang eine Verbindung zum AP herzustellen. Wenn keine Verbindung innerhalb dieser Zeit zustande kommt, dann gibt das LGW auf und macht seinen eigenen AP auf. Mit einer entsprechenden Verzögerung (Dauer bis der Router gestartet ist und der WiFi-AP zur Verfügung steht) kann sichergestellt werden, dass der AP gestartet ist und sich das LGW mit dem AP verbinden kann.
Internal Sensors "Sensor-ID"
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. Hierbei ist darauf zu achten, dass die LaCrosse-ID nur einmal auf einer FHEM Instanz vorkommen darf. Die ID kann entweder Dezimal (211) oder Hex (0xD3) angegeben werden.
Detailinformationen: Wenn ein LGW interne Sensoren hat (BME280, BMP180, DHT22, ...) dann sendet es die Daten des Sensors so, als ob es eine Wetterstation wäre (WS 1600 Format) an das LGW. Bisher hat es dafür die Sensor-ID 0 verwendet. Wenn man mehrere LGWs an einem FHEM angebunden hat, dann mischen sich deren Sensor-Daten auf dem LaCrosse device mit der ID 0. Um das zu vermeiden, kann man nun konfigurieren, mit welcher Sensor-ID die internen Sensoren gesendet werden sollen und die beiden LGWs unterschiedlich konfigurieren.
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.
Internal Sensors "Altitude"
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.
Internal Sensors "Temperature-/Humidity-correction"
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.
Der Wert kann entweder ein Offset oder prozentual sein.
Beispiele:
Korrekturwert | Gemessen | Ergebnis |
---|---|---|
-5 | 20°C | 15°C |
+3 | 20°C | 23°C |
-10% | 20°C | 18°C |
+20% | 20°C | 24°C |
SC16IS750-Clone
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer als echte Hardware ist, mitkommt. Sollte man ohne zwingenden Grund nicht aktivieren.
Use MDNS
Legt fest, ob das LGW seine IP-Adresse per MDNS bekannt gibt. Dies ist nötig, wenn man einen Mac hat oder bei Windows einen Bonjour-Service laufen hat. Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.
MCP23008
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch Inbetriebnahme von MCP23008).
Serial bridge port und bridge baud
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen. Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs. Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.
Soft Serial Bridge
Das LGW kann optional eine Soft serial bridge (zuverlässig nur mit bis zu 57600 Baud) transparent auf einem TCP Port bereitstellen. Folgende Parameter können auf der LGW Setup-Page angepasst/konfiguriert werden:
Parameter | Beschreibung |
---|---|
Port | Der Port, auf dem es angesprochen werden kann |
Baud | Die Baudrate für die Kommunikation |
Nextion display | Für den Betrieb eines Nextion Display muss diese Option aktiviert sein. |
Add units | Fügt an die Werte (Temp,Hum,Pres), die das LGW an das Display schickt, Einheiten an. |
Mithilfe des Soft serial bridge können verschiedene Geräte (nanoCUL, Nextion Display, etc.), welche per serieller Schnittstelle kommunizieren können, in Betrieb genommen werden.
Statuswerte abrufen
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.
Beispiel:
<LGW>
<Info Key="UpTimeSeconds" Value="107086"/>
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/>
<Info Key="WIFI" Value="NeverTellThem"/>
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/>
<Info Key="ChipID" Value="10120520"/>
<Info Key="ReceivedFrames" Value="93593"/>
<Info Key="FramesPerMinute" Value="52"/>
</LGW>
Funktionsweise Log
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie fragt und antwortet oder um zu schauen, ob irgendwelche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann. Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat) Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet. Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben
Das Log kann per HTTP abgerufen werden:
http://<LGW-IP>/getLogData
Beispiel:
http://192.168.31.211/getLogData
das Ergebnis sieht wie folgt aus:
DATA:OK 22 117 196 0 58 226 102 0 58 191 86 0 0 40 172 0 105 1 101 3 0 [75 C4 E2 66 00 00 BF 56 00 00 00 02 3B FC DC 00 69 01 65 4A A4 C4 F9 F2 4F 11 A4 F6 7C 03 A0 00 00 00 00 03 A0 38 09 21 27]
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]
DATA:OK EMT7110 84 81 8 207 0 36 0 1 1 199 1 [25 6A 54 51 40 02 00 24 C3 41 C7 9B]
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]
DATA:OK 22 126 67 0 65 236 34 0 65 231 116 0 0 32 103 0 48 0 134 1 0 [7E 43 EC 22 00 00 E7 74 00 00 00 01 C7 AC D7 00 30 00 86 00 57 E4 69 1E 46 8E D4 68 C7 04 10 00 00 00 00 04 10 18 0A DC F7]
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252
DATA: für die obere Liste
SYS: für die untere Liste
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)
Hinweis: Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.
Hinweise zum Betrieb mit FHEM
Voraussetzungen
Es wird ein vorkonfiguriertes LaCrosseGateway vorausgesetzt.
Perl Modul: LWP::UserAgent - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt. Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:
sudo apt-get install libwww-perl
alternativ auch mit
sudo cpan LWP::UserAgent
FHEM Module
Hinweis: Ursprünglich wurde für das LaCrosseGateway das FHEM-Modul 36_JeeLink.pm verwendet. Da es aber inzwischen erhebliche Unterschiede zwischen dem JeeLink-LaCrosse-Sketch und dem LaCrosseGateway gibt, existiert seit Mitte November 2016 ein für das LaCrosseGateway spezialisiertes und optimiertes FHEM-Modul, das 36_LaCrosseGateway.pm.
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.
36_LaCrosseGateway.pm (wird per FHEM Update verteilt)
36_KeyValueProtocol.pm (wird per FHEM Update verteilt)
36_LaCrosse.pm (wird per FHEM Update verteilt)
36_PCA301.pm (wird per FHEM Update verteilt)
36_EC3000.pm (wird per FHEM Update verteilt)
36_EMT7110.pm (wird per FHEM Update verteilt)
36_Level.pm (wird per FHEM Update verteilt)
42_Nextion.pm (wird per FHEM Update verteilt)
Device Definition
WLAN
Die Definition sieht dann wie folgt aus:
define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81
<myLaCrosseGateway> kann bei Bedarf angepasst werden.
<IP-Adresse> muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.
Beispiel:
define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81
IP-Adresse ermitteln: Das LaCrosseGateway heist per default Einstellung "LaCrosseGateway", per ping auf den Hostnamen LaCrosseGateway kann die <IP-Adresse> ermittelt werden.
USB
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:
1.) Man kann mit einem 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein WiFi will. Wenn vorhanden, wird WiFi sofort beim Start deaktiviert.
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.
Für den Betrieb via USB sieht die Definition wie folgt aus:
define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600
<myLaCrosseGateway> kann bei Bedarf angepasst werden.
<USB-Port> muss entsprechend angepasst werden.
Beispiel: define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600
/dev/ttyUSB0 Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.
Hinweis: Sind mehrere USB Devices am FHEM Server (z.B. RPI, Cubietruck etc.) in Betrieb, dann ist die Zuordnung über den USB-Port nicht zuverlässig. Die Ports werden u.a. in der Reihenfolge vergeben, in der die Geräte angeschlossen werden. Zuverlässiger und eindeutiger ist die Zuordnung über die Serial-ID.
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an:
ls -l /dev/serial/by-id
Beispiel für die Ausgabe:
lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0
In diesem Fall ist u.a. ein DEVKIT 1.0 mit der Serial-ID usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2 angeschlossen.
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:
define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.
Wenn man das LGW ohne WiFi betreibt, dann muss man natürlich auf die Annehmlichkeiten des Web-Frontends verzichten.
In diesem Fall kann man die Konfiguration, die man über das Web-Frontend machen würde, über die serielle Schnittstelle machen.
set myLaCrosseGateway raw "SETUP ..."
Das ... sind die gewünschten Einstellungen. Es müssen nicht alle Einstellungen gesendet werden sondern nur die, die man setzen will.
Es werden nur die Einstellungen gesetzt und im EEPROM gespeichert, es wird aber kein Reboot ausgelöst
Einen Reboot kann man mit "set myLaCrosseGateway raw 8377e" auslösen.
Mehrere Einstellungen können durch Semikolon getrennt angegeben werden.
Beispiel:
set myJeeLink213 raw "SETUP UseWiFi false; IO0 OLED mode=thp; IO1 OLED Off; CorrT -2.5; ISID 213"
Man kann auf der seriellen Schnittstelle die aktuellen Einstellungen abrufen.
Das command ist 1g
set myLaCrosseGateway raw 1g
Man bekommt dann so etwas zurück:
SETUP ctSSID esesidee; ctPASS PasstWort; staticIP 192.168.31.211; staticMask 255.255.255.0; staticGW 192.168.31.1;
HostName LGW211; StartupDelay 1; ISID 0xD3; Altitude 220; CorrT 0; CorrH 0; DataPort1 81; DataPort2 82; SerialBridgePort 85;
SerialBridgeBaud 38400; UseMDNS true; IO0 OLED mode=s; IO1 OLED mode=thp; IO2 OLED On; IO3 OLED Off; oledStart 120; KVInterval 10;
KVIdentity 211; PCA301Plugs 036180=3,03A094=1,035FF1=6;
Reconnect
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbindung unterbrochen etc.), bricht das LaCrosseGateway Device die Kommunikation ab. Über das entsprechende timeout Attribut kann das LaCrosseGateway device so konfigurert werden, dass es in regelmässigen Abständen erneut versucht eine Verbindung mit dem LaCrosseGateway herzustellen.
Konfigurationsempfehlung für timeout = 120 Sekunden und checkInterval = 30 Sekunden:
Der Wert kann in FHEM wie folgt gesetzt werden:
attr myLaCrosseGateway timeout 120,30
myLaCrosseGateway muss auf den Gerätenamen in FHEM angepasst werden.
Während das LaCrosseGateway eine WiFi-Verbindung aufbaut, benötigt das LaCrosseGateway-Modul je nach Konfiguration einige Zeit bis es einen neuen Connect auf den Datenport des LaCrosseGateway versucht. Das Finden der optimalen Werte erfordert etwas Geduld, es kann auch schon mal ein, zwei Minuten dauern, bis die ersten Daten in FHEM übertragen werden.
Erklärung der Timeout Werte:
120,30 prüft alle 30 Sekunden, ob seit mindestens 120 Sekunden keine Daten mehr übermittelt wurden und falls dem so ist, macht es einen Reset auf der Schnittstelle, was die Verbindung zum LaCrosseGateway neu aufbaut. Das bedeutet, in so einem Fall ist die Verbindung nach spätestens 150 Sekunden wieder hergestellt.
Hinweis: Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.
Liste aller initCommands
Eine aktuelle Liste der initCommands, die man von FHEM, Terminalprogramm oder Web-Frontend aus senden kann, sind auf dem Web-Frontend "Help"-Page des LaCrosseGateways (ab V1.17) aufgeführt.
http://IP-Adresse oder Hostname/help
<n>a set to 0 if the blue LED bothers
<n>c use one of the possible data rates (for transmit on RFM #1)
<n>d set to 1 to see debug messages
<8266>e Clear EEPROM
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)
<n>g get information (1g: get current settings)
<n>h Altitude
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)
<n>o set HF-parameter e.g. 1,4o for RFM69
<n>p payload on the serial port (1: all, 2: only undecoded data)
<n>r use one of the possible data rates (for RFM #1)
<n>R use one of the possible data rates (for RFM #2)
<n>#<x>r use one of the possible data rates (for RFM #x)
<x,x,...>s Send to PCA301 (must be 10 byte)
<x,x,...>S Send to CustomSensor
<n>t 0=no toggle, else interval in seconds (for RFM #1)
<n>T 0=no toggle, else interval in seconds (for RFM #2)
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)
v show version
<n>w 0=no wifi
<n>z set to 1 to display analyzed frame data instead of the normal data
LaCrosseGateway zurücksetzen
Das LaCrosseGateway kann auf die "Werkseinstellungen" zurückgesetzt werden.
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen.
Der Befehl dazu lautet:
8266e
Er kann mit einem Terminalprogramm, von FHEM aus mit
set <myLaCrosseGateway> raw 8266e
oder von der Log-Page des LGW gesendet werden.
Danach startet das LGW wieder als Access Point initiale Konfiguration und die Konfiguration kann über die "Setup-Page" neu vorgenommen werden kann.
Sensoren/Aktoren anlegen
Voraussetzung: die FHEM autocreate Funktion ist aktiv.
Die erkannten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.
set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery
Inbetriebnahme von BMP180 / BME280
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:
set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery
Dann sollte von FHEM autocreate Funktion ein LaCrosse Device mit der Sensor-ID (Default Wert: 0) angelegt werden.
Alternativ kann das FHEM Device manuell angelegt werden: Die ID, mit der das LGW die internen Sensoren sendet, entspricht der konfigurierten Sensor-ID (Default Wert: 0) Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.
define <name> LaCrosse 00
Anchließend muss eine Höhenkorrektur (Grund: der Luftdruck wird immer bezogen auf NN angegeben, der Sensor liefert aber den Absolutdruck) mit dem command h in den initCommands vorgenommen werden, dies erfolgt mit dem FHEM Befehl:
Beispiel: 220h legt 220m über NN fest.
attr myLaCrosseGateway initCommands 220h
Besser: Alternativ kann die Höhe über NN auch auf der Setup-Page des LGW gesetzt werden.
Das hat den Vorteil, dass sofort vom Start an der normalisierte Luftdruck an FHEM gesendet wird und nicht erst, wenn die initCommands von FHEM geschickt wurden.
Inbetriebnahme Piezo Summer
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.
Beispiele:
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang
set myLaCrosseGateway raw 0b -> beep stoppen
Inbetriebnahme von RFM69CW
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzen. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:
#1 (Erste) => 17241
#2 (Zweite) => 9579
#3 (Dritte) => 8842
#4 (Vierte) => 20000
#5 (Fünfte) => 17241
Hinweis: Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.
<Datenrate>#<Radio-Nummer><command> | |
m t: |
Toggle-Steuerung |
r: |
DataRate |
f: |
Frequenz |
Beispiele:
Definition | Erläuterungen |
---|---|
attr myLaCrosseGateway initCommands 0#1r v
|
DataRate des ersten RFM setzen |
attr myLaCrosseGateway initCommands 8842#3r v
|
DataRate des dritten RFM setzen |
attr myLaCrosseGateway initCommands 868300#2f v
|
Frequenz des zweiten RFM setzten |
attr myLaCrosseGateway initCommands 868295#3f v
|
Frequenz des dritten RFM setzten |
attr myLaCrosseGateway initCommands 17241#1r 8842#2r v
|
Zwei RFM69CW mit DataRate 17241 und 8842 |
attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v
|
Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent |
attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v
|
Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN |
attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v
|
Drei RFMs Frequenz 868295 / PCA301 / WS1600 sowie Höhe über NN Radio 1 auf 868295 MHz und Toggle 9K/17K mit 20 Sekunden Radio 2 für PCA301 initialisiert Radio 3 macht 8842 kbps für die WS 1600 Höhe 220m über NN Activity LED aus v am Ende ruft die neu gesetzten Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden. |
Hinweis: Es ist wichtig ein "v" an das Ende eines initCommands anzuhängen. Damit wird veranlasst, dass das LaCrosseGateway seine neuen Einstellungen an FHEM zurückmeldet.
Inbetriebnahme von PCA301
PCA301 im LGW funktioniert ähnlich dem PCA301 Sketch, allerdings mit einigen systembedingten Abweichungen.
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "i".
<RadioNr>,<Frequenz>,<Poll-Intervall>i
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.
Wichtig: Es darf nur "ein" Radio für PCA301 initialisiert sein, nicht mehrere. Das PCA301 initialisierte Radio ist dediziert für PCA301 zuständig, es kann nicht zwischen anderen Protokollen (z.B. LaCrosse) toggeln.
Das Poll-Interval sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat höhere Priorität, da es bei der Kommunikation mit den Dosen keine Antworten überhören darf.
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen. Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt. Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.
Beispiele:
Definition | Erläuterungen |
---|---|
attr myLaCrosseGateway initCommands 2,868950,120i v
|
Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden |
attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v
|
Initialisierung eines LaCrosseGateways mit zwei Radios für TX29, TX35, PCA301 und BMP180/BME280. Das erste Radio macht PCA301 und das zweite toggelt 17241/9579 im 20 Sekunden Takt um TX29 und TX35 zu empfangen der BMP180/BME280 liefert den Druck für 220m Meereshöhe die LED ist deaktiviert |
Ablauf:
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz. Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.
Das Polling funktioniert so, dass für jede Dose geschaut wird, wann sie zuletzt empfangen wurde und wenn das länger als das konfigurierte Interval zurück liegt, dann wird sie abgefragt. Wenn sonst etwas (Basisstation, anderes FHEM) die Dose abgefragt hat und das LaCrosseGateway die Antwort gehört hat, dann gilt das auch als empfangen und es wird kein eigener Poll für die Dose ausgelöst. Das Zusammenspiel mit einer echten Basisstation konnte bisher nur grob simuliert werden.
Das Pairing (also die Vergabe eines Kanals) funktioniert wie im PCA301-Sketch, button an der Dose "3 Sekunden" drücken, dann vergibt das LaCrosseGateway den nächsten freien Kanal. Dosen, die bereits einen Kanal haben, können durch ein Schalten vor Ort, an das LaCrosseGateway angelernt werden. Das LaCrosseGateway erkennt sie und nimmt sie in die Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.
Auf der Setup-Page im Web-Frontend (http://IP-Adresse oder Hostname/setup) des LaCrosseGateway kann die Liste der bekannten Dosen (ID=Kanal) eingesehen werden. Hinweis: Es sollten keine Änderungen in diesem Bereich vorgenommen werden.
Wenn ein Kommando (Schalten, Daten abfragen, ...) an eine Dose gesendet wurde und keine Antwort kam, wird bereits im Sketch drei mal versucht, eine Antwort zu bekommen.
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.
Weiterführende Themen zum PCA301 sind im Wiki PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung und PCA301 FHEM Thread JeeLink / PCA301 Thread beschrieben.
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:
Befehl (Beschreibung) | Erläuterungen |
---|---|
a "turn activity LED on or off
|
wie bisher |
l "list known devices"
|
entfallen, kann man nun im Web-Frontend sehen |
q "turn quiet mode on or off"
|
wie bisher |
r "list recordings"
|
entfallen |
s "send to plug"
|
wie bisher |
v "report version and configuration parameters"
|
wie bisher |
d, e, p "poll / turn a device on / off"
|
entfallen |
h, +, -, # "modify and display RF12 Frequency register"
|
entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command |
Inbetriebnahme von Energy Count 3000 (EC3000)
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt. Sie kann mit 3r oder 20000r gesetzt werden. Wenn diese data rate gesetzt wird, wird auch automatisch der RFM69 auf den Empfang von EC3000 uminitialisiert.
EC3000 kann auch in einen data rate toggle mit einbezogen werden. Dazu gibt es nun das bit mit dem Wert 8 für 20.000 kbps
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand: 20000#2r
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden. Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:
Beispiel:
attr myLaCrosseGateway initCommands 9#2m 20#2t v
Inbetriebnahme von MCP23008
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.
Input: Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluss von Pushbuttons.
Output: Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluss von LEDs.
Beispiel: Input => Eingang, wird per KVP an FHEM übermittelt
OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0
Beispiel: Output => Kann von FHEM aus gesetzt werden.
set myLaCrosseGateway raw "MCP GP0=1,GP1=0"
Inbetriebnahme Analogport
Der Analogport A0 des ESP8266 wird als Reading im LaCrosseGatewayModul aufgeführt. Um das zu aktivieren, muss man auf der Setup-Page des LGW die Option "Send analog values" ankreuzen. Der Eingangsspannungsbereich von A0 ist 0V ... 1.0V, was zu einem Reading von 0 ... 1023 führt.
Inbetriebnahme von OLED-Display
Es wird das 128x64 pixel 0.96" I2C Display mit dem SSD1306 controller und das 128x64 pixel 1.3" mit dem SH1106 controller unterstützt.
Für die korrekte Darstellung auf dem 1.3" Display, muss die Checkbox 1.3" auf der Setup-Page aktiviert werden
Hinweis: das 0.96" Display bekommt man auch in einer Variante, die SPI unterstützt. Diese Variante kann nur nach einem Umbau verwendet werden.
Der nachfolgende Funktionsumfang ist implementiert:
- OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls
- OLED Startverhalten konfigurierbar
- Übermittlung des Display Status im KVP
- Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)
- WiFi connect erfolgreich
- Ein FHEM hat sich auf einen DataPort connected
- Ein FHEM hat sich auf den Prozessor an der UART bridge connected
- WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60
- Darstellung von bis zu drei Texten und optional eines Symbols
- Definition des Zeitintervalls für das Umschalten zur nächsten Seite
- Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)
- Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)
OLED Start Modus
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll. Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht. Zusätzlich kann der initiale Mode festgelegt werden (z.B. thp)
Modes
Prefix | Parameter | Erläuterung |
---|---|---|
OLED mode= | t | Temperatur des internen Sensors |
OLED mode= | h | Feuchte des internen Sensors |
OLED mode= | p | Druck des internen Sensors |
OLED mode= | s | Statuswerte des LGW |
OLED mode= | f | von FHEM gesetzter Text |
Mögliche Symbole
Parameter | Erläuterung | OLED Darstellung |
---|---|---|
t | Temperature | |
h | Humidity | |
p | Pressure | |
s | System | |
i | Info | |
w | Warning | |
e | Error |
Beispiele
Definition | Erläuterung |
---|---|
set myLaCrosseGateway raw "OLED On"
|
Schaltet ein angeschlossenes Display ein |
set myLaCrosseGateway raw "OLED Off"
|
Schaltet ein angeschlossenes Display aus |
set myLaCrosseGateway raw "OLED interval=20"
|
Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. |
set myLaCrosseGateway raw "OLED mode=ths"
|
Zeigt nacheinander Temperatur, Feuchte und Systemdaten an |
set myLaCrosseGateway raw "OLED mode=thp"
|
Zeigt nacheinander Temperatur, Feuchte und Luftdruck an |
set myLaCrosseGateway raw "OLED mode=thps"
|
Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an |
set myLaCrosseGateway raw "OLED mode=f"
|
Zeigt ausschließlich den von FHEM festgelegten Text an |
set myLaCrosseGateway raw "OLED mode=s"
|
Zeigt ausschließlich die Systemdaten an |
set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"
|
Zeigt die übergebenen Texte an und links das Symbol für Temperatur |
set myLaCrosseGateway raw "OLED show=55%,,,h"
|
Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt |
set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"
|
Zeigt drei Texte aber kein Symbol an. |
attr myLaCrosseGateway initCommands "OLED mode=thps"
|
Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected. |
Inbetriebnahme eines Nextion Displays
Mithilfe der Seriellen Schnittstelle (Soft serial bridge), kann ein Nextion Display in Betrieb genommen werden. Das Besondere dabei ist, dass das LGW zusätzlich seine Status Informationen (AP-Verbindungsstatus, RSSI, IP, Version, FHEM Verbindungsstatus, etc.) an das Display schickt. Die Anbindung an FHEM erfolgt mithilfe des Nextion Moduls (42_Nextion.pm), welches per FHEM Update verteilt wird.
Ein Diskussionsthread zum Thema „LaCrosseGateway mit Nextion Display“ findet man hier.
Voraussetzungen
Vor der Inbetriebnahme in FHEM, müssen folgende Voraussetzungen erfüllt sein:
- Das Display ist wie hier beschrieben an das LGW angeschlossen.
- Die Soft serial bridge auf der LGW Setup-page ist konfiguriert.
- Das LaCrosse Gateway Device ist wie hier beschrieben angelegt.
Funktionsumfang
Der nachfolgende Funktionsumfang ist implementiert:
- OTA Firmware (.tft File) Übertragung an das Display
- Automatische Anpassung der Baudrate auf dem Nextion
- Das LGW schickt (periodisch) Werte an folgende Controls:
Control | Beschreibung/Anmerkung |
---|---|
LGW#temp.txt | Nur wenn ein entsprechender on board sensor vorhanden ist. |
LGW#hum.txt | Nur wenn ein entsprechender on board sensor vorhanden ist. |
LGW#pres.txt | Nur wenn ein entsprechender on board sensor vorhanden ist. |
LGW#rssi.txt | WLAN RSSI Signalstärke |
LGW#ip.txt | IP-Adresse des LGW's |
LGW#fpm.txt | Frames Per Minute |
LGW#heap.txt | Free Heap |
LGW#up.txt | Uptime |
LGW#ver.txt | Version |
LGW#wifi (vis) | Setzt die visibility |
LGW#fhem | Setzt die visibility |
LGW#cpu1 | Setzt die visibility |
LGW#cpu2 | Setzt die visibility |
LGW#main | Sendet, nachdem es sich initialisiert hat, ein "page LGW#main" an das Nextion. |
LGW#info | Sendet die Info an die LGW#prog page |
LGW#ptext | Sendet die Info an die LGW#prog page |
LGW#pbar | Sendet die Info an die LGW#prog page |
- Fortschrittsanzeige beim flashen der Nextion Firmware
Device Definition Nextion Modul
Die Definition für die Nextion Bridge sieht dann wie folgt aus:
define <nextion> Nextion <IP-Adresse>:<Port>
<nextion> kann bei Bedarf angepasst werden.
<IP-Adresse> muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.
<Port> Ist der auf der Setup-page definierte Port
Beispiel:
define nextion Nextion 192.168.22.33:86
IP-Adresse ermitteln: Das LaCrosseGateway heisst per default Einstellung "LaCrosseGateway", per ping auf den Hostnamen LaCrosseGateway kann die <IP-Adresse> ermittelt werden.
Firmware erstellen und flashen
Ein UI für das Nextion Display wird mit dem Nextion Editor erstellt. Mithilfe des Editors kann die entsprechende Firmware (tft Datei – siehe „File -> Open build folder“) kompiliert (Button: Compile) werden.
Das LGW kann die Firmware (.tft Datei) zum Display übertragen. Dazu gibt es zwei Varianten:
curl
Syntax lautet:
curl --http1.0 -# -o ~output.txt -H "Content_Type:multipart/form-data" -F "file=@<tftFileName>; filename=nextion.tft" http://<LGW-IP>/ota/nextion
Beispiel:
curl --http1.0 -# -o ~output.txt -H "Content_Type:multipart/form-data" -F "file=@D:\MyNextionFiles\lgw.tft; filename=nextion.tft" http://192.168.31.213/ota/nextion
Das LaCrosseGateway Modul in FHEM
Syntax lautet:
set <myLaCrosseGateway> nextionUpload
Wenn das Attribut "tftFile" gesetzt ist, wird die darin angegebene Datei hochgeladen, ansonsten wird versucht, das File „FHEM/firmware/nextion.tft“ hochzuladen.
Anwendungsbeispiel
In diesem FHEM Forum Thread wurde ein LGW Nextion UI erarbeitet (Stand 01.08.2017 Version 0.7), um die Funktionsweise zu demonstrieren. Das Nextion UI besteht aus folgenden Pages:
ID | Name | Page | Beispiel | Hinweise/Funktion/Bechreibung | Nextion Debug commands |
---|---|---|---|---|---|
0 | Boot | Boot | Das ist die Startseite nach Einschalten des Nextion Displays. | ||
1 | Progress | LGW#prog | Auf dieser Seite wird der WiFi Verbindungsfortschritt angezeigt. Alle Werte werden vom LGW befüllt. | page LGW#prog
vis LGW#pbar,1 vis LGW#ptext,1 LGW#pbar.val=50 LGW#ptext.txt="Connect WiFi (1)" | |
2 | Main | LGW#main | Dies ist die Hauptseite, welche vom LGW aufgerufen wird, sobald der Bootvorgang abgeschlossen ist. Hinweise zur Funktionsweise findet man hier |
page LGW#main
vis LGW#wifi,1 vis LGW#fhem,1 vis LGW#cpu1,1 vis LGW#cpu2,1 LGW#rssi.txt="-68" tTime.txt="23:45" tDate.txt="01.08.2017" vis iTemp,1 LGW#temp.txt="25.7" vis iHum,1 LGW#hum.txt="68%" vis iPres,1 LGW#pres.txt="1024hPa" vis iWind,1 tout_ws.txt="23km/h" vis iOutT,1 tout_t.txt="28°C" | |
3 | Info Page | Info | Alle Informationen auf dieser Seite werden von LGW automatisch befüllt. | page Info
vis LGW#ip,1 LGW#ip.txt="192.168.222.1" vis LGW#fpm,1 LGW#fpm.txt="5" vis LGW#heap,1 LGW#heap.txt="16280" vis LGW#ver,1 LGW#ver.txt="1.30" vis LGW#up,1 LGW#up.txt="1Tg.4Std.34Min." | |
4 | Info Page 2 | Info2 | tInfo50 und tInfo51 sind für Nextion UI Version reserviert. tInfo60 bis tInfo91 sind nicht belegt und können verwendet werden, um z.B. die FHEM Verison anzuzeigen. | page Info2
tInfo60.txt="tInfo60:" tInfo61.txt="tInfo61" tInfo70.txt="tInfo70:" tInfo71.txt="tInfo71" tInfo80.txt="tInfo80:" tInfo81.txt="tInfo81" tInfo90.txt="tInfo90:" tInfo91.txt="tInfo91" | |
5 | Settings | Settings | Einstellungsmöglichkeit von Helligkeit (Wertebereich von 10% bis 100%) des Displays und des PowerOff Timeouts (Wertebereich: off und 1-120 Sek.) | page Settings
h1.val=25 h0.val=60 | |
6 | Control Center | CoCe | Zum Schalten von Aktoren und Status Anzeige. Weitere Hinweise zur Funktionsweise sind hier zu finden. |
page CoCe
lblT1.txt="lbT1" lblS1.txt="aus" lblT2.txt="lbT2" lblS2.txt="an" lblT3.txt="lbT4" lblS3.txt="zu" lblT4.txt="lbT3" lblS4.txt="auf" lblT5.txt="lbT5" lblS5.txt="n.a." | |
7 | Weather | Weather | Zur Anzeige einer Wettervorhersage. Diese Seite wird durch ein touch auf den "Temp-Wert" in der Main#Page aufgerufen. Implementierungshinweise sind hier zu finden. |
page Weather
p0.pic=12 t0.txt="Mo 01 Aug 2017\rmin:15 max:18" p1.pic=16 t1.txt="Di 02 Aug 2017\rmin:15 max:18" p2.pic=17 t2.txt="Mi 03 Aug 2017\rmin:15 max:18" p3.pic=12 t3.txt="Do 04 Aug 2017\rmin:25 max:28" p4.pic=15 t4.txt="Fr 05 Aug 2017\rmin:28 max:32" |
Hinweis: Alle Controls die mit dem Namen "LGW#" beginnen sind für das LGW reserviert und werden entsprechend vom Gateway befüllt.
Nextion Tipps & Tricks
Nextion Commandreferenz
Sehr hilfreich ist die Nextion instruction Page, welche hier: https://www.itead.cc/wiki/Nextion_Instruction_Set zu finden ist.
Serial Transparent Bridge
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen. Dazu gibt es die settings "Serial bridge port" und "Serial bridge baud" auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways. Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt. Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwendet werden.
Vorgehensweise:
- Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen.
- Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen
- Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud
- CUL in FHEM definieren (Beispiel):
define CULXYZ CUL <IP-Adresse>:85 0000
<CULXYZ> Muss nach eigenen Bedürfnissen angepasst werden.
<IP-Adresse> Muss entsprechend angepasst werden.
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Defekts etc.), empfiehlt es sich einen reconnect Mechanismus in FHEM zu implementieren.
Dieser kann wie folgt aussehen:
define CULXYZ-Reconnector at +*00:00:30 {\
my $deviceName = "<CULXYZ>";;\
my $version = CommandGet("", $deviceName . " version");;\
my $gotAnswer = index($version, 'No answer') == -1;;\
\
if(!$gotAnswer) {\
fhem("set " . $deviceName . " reopen");;\
}\
\
}
<CULXYZ> Muss nach eigenen Bedürfnissen angepasst werden.
Vorgehen Firmware flashen mit LGW
Ein bereits in Betrieb genommener NanoCUL kann nach dem gleichen Vorgehen (siehe "SubProzessor - Vorgehen Firmware flashen") wie ein SubProzessor geflasht werden.
Zugriff mit mehreren FHEM Instanzen
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen. Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich). Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.
Hinweise: Die Portnummer 8266 wird für OTA Update verwendet, und 80 für die "Config"-page. Aus diesem Grund ist die Verwendung dieser ports nicht erlaubt.
Wenn sich mehrere FHEM Instanzen ein LaCrosseGateway teilen, dann ist darauf zu achten, dass die eine gemeinsame/gleiche initCommand Konfiguration haben. Sollten die FHEM Instanzen unterschiedliche initCommands senden, gewinnt das (zufällig) letzte und legt es für alle anderen fest.
Nano LaCrosse Gateway
Das nano LaCrosse Gateway verwendet die gleiche Firmware wie das WiFi LaCrosse Gateway, der signifikante Unterschied ist die kompakte (portable) Bauform. Aufgrund der Bauform können jedoch nicht alle Bauteile verwendet werden. Das Gateway eignet sich sehr gut als Entwicklungsstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI, Cubietruck, etc.).
Der Betrieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im FHEM Forum zu finden.
Bauteile
Folgende Bauteile werden benötigt:
- Gehäuse schwarz oder transparent
- ESP-12E
- Auto-Flash-Reset-Schaltung
- CP2102 FTDI
- RFM69CW
- Status-LED
Schaltung
Selbstbau
Platine
nano LaCrosse Gateway
USB2TTL
nano LaCrosse Gateway inkl. USB2TTL
nano LaCrosse Gateway fertig bestückt inkl. Gehäuse
Platine bestücken (Hinweise und Tipps)
- Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.
- Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".
Tipps & Tricks
Löschen des kompletten Flash des ESP8266 mit dem esptool
Aufgrund eines aktuell im espressif SDK vorhandenen Bugs, kann es passieren, dass das LaCrosseGateway nach dem Aufspielen der Firmware, mit einer Exception den Bootvorgang (nach "Start WIFI_STA") abbricht und nicht mehr ordnungsgemäß starten kann. In diesem Fall hilft nur noch das Löschen des kompletten Speichers des ESP8266 und das erneute Aufspielen der Firmware.
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.
Achtung: Dabei werden alle Einstellungen unwiderruflich gelöscht
./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce
</dev/tty.SLAB_USBtoUART> Muss entsprechend angepasst werden.
Weiterführende Links
Diskussionsthread aus dem Forum:
LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino
Platine für LaCrosseGateway: Platinenbestellung