http://wiki.fhem.de/w/api.php?action=feedcontributions&user=HCS&feedformat=atomFHEMWiki - Benutzerbeiträge [de]2024-03-29T11:14:41ZBenutzerbeiträgeMediaWiki 1.39.3http://wiki.fhem.de/w/index.php?title=Datei:Lgw_Schaltplan_Devkit_full.png&diff=28937Datei:Lgw Schaltplan Devkit full.png2019-01-03T17:21:41Z<p>HCS: HCS lud eine neue Version von Datei:Lgw Schaltplan Devkit full.png hoch</p>
<hr />
<div></div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=27546LaCrosseGateway V1.x2018-07-29T05:55:33Z<p>HCS: </p>
<hr />
<div>Diese Wiki-Seite beschreibt ausschließlich das LaCrosseGateway V1.x, das auf dem ESP8266 basiert.<br/><br />
Für das LaCrosseGateway32 das auf dem ESP32 basiert, wird es eine eigene Seite geben.{{Randnotiz|RNText=Dokumentationsstand Version 1.27}}<br />
<br />
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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
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.<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 "offiziel" unterstützt, da ungetestet, können aber durchaus in bestimmten Fällen verwendet werden:<br />
** V0.9 (da ungetestet, bekommt man aber kaum noch zu kaufen)<br />
** V3.0 - passt nicht auf die Platine von PeMue, ist größer als das 2.0. Auf der Rückseite steht "Lolin".<br />
** Devkits mit einem CH340 USB converter (da ungetestet und teils falsche Bauform und von der USB-Anbindung her teils problematisch)<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*[Optional] Nextion Touch Display zur Darstellung von verschiedenen Informationen oder zum Schalten von Aktoren. <br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0 Minimum===<br />
[[Datei:lgw_Schaltplan_Devkit_minimum.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: Devkit 1.0 Maximalausbau===<br />
[[Datei:lgw_Schaltplan_Devkit_full.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
siehe hier: {{Link2Forum|Topic=45594|LinkText=Thread}}<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
<br />
===MCP23008=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<syntaxhighlight lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</syntaxhighlight><br />
<br />
===Nextion Display===<br />
Angeschlossen wird das Display wie folgt:<br />
GPIO0: TXD -> Nextion RXD<br />
GPIO2: RXD -> Nextion TXD<br />
<br />
Das Display benötigt eine 5V Spannungsversorgung, diese kann vom VIN des DevKit's abgegriffen werden. Vom Betrieb mit 3.3V wird abgeraten.<br />
Ein level shifter für RXD/TXD ist nicht nötig.<br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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.'''<br />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<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><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<syntaxhighlight lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</syntaxhighlight><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<syntaxhighlight lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</syntaxhighlight><br />
Beispiel:<syntaxhighlight lang="php">KV DHT 01 Temperature=21.5,Humidity=62</syntaxhighlight><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<syntaxhighlight lang="php">LC <Address> T=<Temperature>,H=<Humidity></syntaxhighlight><br />
Beispiel:<br />
<syntaxhighlight lang="php">LC 9F T=21.5,H=62</syntaxhighlight><br />
<syntaxhighlight lang="php">LC 9F T=21.5</syntaxhighlight><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren und Aktoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden.<br /><br />
(siehe [[JeeLink#Unterst.C3.BCtzte_Sensoren_und_Aktoren_incl._Wetterstation_WS_1600JeeLink|vom JeeLink unterstützte LaCrosse Sensoren und Aktoren]])<br />
<br />
Zusätzlich zu LaCrosse werden auch die folgenden Geräte unterstützt:<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !! Funktion !! Hinweise<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützt werden bis zu 50 Dosen) || <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
|-<br />
| Nextion Display ||(Max.) 57600 baud || on board ||Touch Display||<br />
<br />
|}<br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
*Software Serial Bridge - Stellt die Soft Serial Schnittstelle transparent auf einem TCP Port.<br />
<br />
==Sourcecode==<br />
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)].<br />
<br />
==Firmware Download==<br />
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.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<syntaxhighlight lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</syntaxhighlight><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<syntaxhighlight lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</syntaxhighlight><br />
<br />
'''''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.''<br />
<br />
=== Linux/Debian/Ubuntu "esptool v2.1"===<br />
<br />
Installieren:<br />
<syntaxhighlight lang="bash"><br />
sudo apt-get esptool<br />
</syntaxhighlight><br />
<br />
''Beispiel mit neuer Syntax bei esptool v2.1:''<br />
<syntaxhighlight lang="bash"> sudo esptool --port /dev/ttyUSB0 write_flash 0x00000 JeeLink_LaCrosseGateway.bin</syntaxhighlight><br />
<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*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.<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<syntaxhighlight lang="php">set myLaCrosseGateway flash</syntaxhighlight> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per FHEM (USB)===<br />
Voraussetzungen:<br />
Auf dem FHEM-Server muss Python und pyserial installiert sein. Die Installation kann z.B. so erfolgen:<br />
*apt-get install python<br />
*wget https://bootstrap.pypa.io/get-pip.py<br />
*python get-pip.py<br />
*pip install pyserial<br />
<br />
Das Attribut "mode" muss auf USB gesetzt sein: attr myLaCrosseGateway mode USB<br />
<br />
Der flash-Vorgang wird gestartet mit: set myLaCrosseGateway flash<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<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><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Soft Serial Bridge===<br />
Das LGW kann optional eine Soft serial bridge (Zuverlässig nur mit bis zu 57600 baud) transparent auf einem TCP Port bereitstellen.<br />
Folgende Parameter können auf der LGW Setup-Page angepasst/konfiguriert werden:<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Beschreibung<br />
|-<br />
| Port<br />
| Der Port, auf dem es angesprochen werden kann<br />
|-<br />
| Baud<br />
| Die Baudrate für die Kommunikation<br />
|-<br />
| Nextion display<br />
| Für den Betrieb eines Nextion Display muss diese Option aktiviert sein.<br />
|-<br />
| Add units<br />
| Fügt an die Werte (Temp,Hum,Pres), die das LGW an das Display schickt, Einheiten an.<br />
|}<br />
<br />
Mithilfe des Soft serial bridge können verschiedene Geräte (nanoCUL, Nextion Display, etc.), welche per seriellen Schnitstelle kommunizieren können, in Betrieb genommen werden.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<syntaxhighlight lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></syntaxhighlight><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<syntaxhighlight lang="php">http://<LGW-IP>/getLogData</syntaxhighlight><br />
<br />
'''''Beispiel:'''''<br />
<syntaxhighlight lang="php">http://192.168.31.211/getLogData</syntaxhighlight><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</syntaxhighlight><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<syntaxhighlight lang="php">sudo apt-get install libwww-perl</syntaxhighlight><br />
alternativ auch mit<br />
<syntaxhighlight lang="php">sudo cpan LWP::UserAgent</syntaxhighlight><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
''42_Nextion.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<syntaxhighlight lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</syntaxhighlight><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
Beispiel: <code>define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</code><br />
''/dev/ttyUSB0'' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<code>ls -l /dev/serial/by-id</code><br />
<br />
Beispiel für die Ausgabe:<br />
<syntaxhighlight lang="text">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</syntaxhighlight><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<code>define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</code><br><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br><br><br />
<br />
Wenn man das LGW ohne WiFi betreibt, dann muss man natürlich auf die Annehmlichkeiten des Web-Frontends verzichten.<br><br />
In diesem Fall kann man die Konfiguration, die man über das Web-Frontend machen würde, über die serielle Schnittstelle machen.<br><br />
<br />
<code>set myLaCrosseGateway raw "SETUP ..."</code><br><br />
Das ... sind die gewünschten Einstellungen. Es müssen nicht alle Einstellungen gesendet werden sondern nur die, die man setzen will.<br><br />
Es werden nur die Einstellungen gesetzt und im EEPROM gespeichert, es wird aber kein Reboot ausgelöst<br><br />
Einen Reboot kann man mit "set myLaCrosseGateway raw 8377e" auslösen.<br><br />
Mehrere Einstellungen können durch Semikolon getrennt angegeben werden.<br><br />
Beispiel:<br />
<code>set myJeeLink213 raw "SETUP UseWiFi false; IO0 OLED mode=thp; IO1 OLED Off; CorrT -2.5; ISID 213"</code><br />
<br />
Man kann auf der seriellen Schnittstelle die aktuellen Einstellungen abrufen.<br />
Das command ist 1g<br><br />
<code>set myLaCrosseGateway raw 1g</code><br><br />
Man bekommt dann so etwas zurück:<br />
<syntaxhighlight lang="text">SETUP ctSSID esesidee; ctPASS PasstWort; staticIP 192.168.31.211; staticMask 255.255.255.0; staticGW 192.168.31.1;<br />
HostName LGW211; StartupDelay 1; ISID 0xD3; Altitude 220; CorrT 0; CorrH 0; DataPort1 81; DataPort2 82; SerialBridgePort 85; <br />
SerialBridgeBaud 38400; UseMDNS true; IO0 OLED mode=s; IO1 OLED mode=thp; IO2 OLED On; IO3 OLED Off; oledStart 120; KVInterval 10; <br />
KVIdentity 211; PCA301Plugs 036180=3,03A094=1,035FF1=6;</syntaxhighlight><br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<syntaxhighlight lang="php">attr myLaCrosseGateway timeout 120,30</syntaxhighlight><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/help]<br />
<br />
<syntaxhighlight lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</syntaxhighlight><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann auf die "Werkseinstellungen" zurückgesetzt werden.<br><br />
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen.<br />
Der Befehl dazu lautet: <syntaxhighlight lang="php">8266e</syntaxhighlight><br />
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.<br />
<br />
Danach startet das LGW wieder als Access Point [[#LaCrosseGateway einrichten|initiale Konfiguration]] und die Konfiguration kann über die "Setup-Page" neu vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<syntaxhighlight lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</syntaxhighlight><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<syntaxhighlight lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</syntaxhighlight><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<syntaxhighlight lang="php">define <name> LaCrosse 00</syntaxhighlight><br />
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:<br />
<br />
Beispiel: 220h legt 220m über NN fest.''<br />
<syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 220h</syntaxhighlight><br />
<br />
'''Besser:''' Alternativ kann die Höhe über NN auch auf der Setup-Page des LGW gesetzt werden.<br><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.<br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<syntaxhighlight lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</syntaxhighlight><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<syntaxhighlight lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</syntaxhighlight><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 0#1r v</syntaxhighlight><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 8842#3r v </syntaxhighlight><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 868300#2f v</syntaxhighlight><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 868295#3f v</syntaxhighlight><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</syntaxhighlight><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</syntaxhighlight><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</syntaxhighlight><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</syntaxhighlight><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</syntaxhighlight><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<syntaxhighlight lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</syntaxhighlight><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<syntaxhighlight lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</syntaxhighlight><br />
<br />
==Inbetriebnahme Analogport==<br />
Der Analogport A0 des ESP8266 wird als Reading im LaCrosseGatewayModul aufgeführt.<br />
Um das zu aktivieren, muss man auf der Setup-Page des LGW die Option "Send analog values" ankreuzen.<br />
Der Eingangsspannungsbereich von A0 ist 0V ... 1.0V, was zu einem Reading von 0 ... 1023 führt.<br />
<br />
==Inbetriebnahme von OLED-Display==<br />
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.<br />
<br />
Für die korrekte Darstellung auf dem 1.3" Display, muss die Checkbox 1.3" auf der Setup-Page aktiviert werden <br />
<br />
Hinweis: das 0.96" Display bekommt man auch in einer Varianten, die SPI unterstützt. Diese Variante kann nur nach einem Umbau verwendet werden. <br />
<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
Zusätzlich kann der initiale Mode festgelegt werden (z.B. thp)<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED On"</syntaxhighlight><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED Off"</syntaxhighlight><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED interval=20"</syntaxhighlight><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED mode=ths"</syntaxhighlight><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED mode=thp"</syntaxhighlight><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED mode=thps"</syntaxhighlight><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED mode=f"</syntaxhighlight><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED mode=s"</syntaxhighlight><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</syntaxhighlight><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</syntaxhighlight><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</syntaxhighlight><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</syntaxhighlight><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Inbetriebnahme eines Nextion Displays==<br />
<br />
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. <br />
Die Anbindung an FHEM erfolgt Mithilfe des Nextion Moduls (42_Nextion.pm), welches per FHEM Update verteilt wird. <br />
<br />
Ein Diskussionsthread zum Thema „LaCrosseGateway mit Nextion Display“ findet man {{Link2Forum|Topic=63443|LinkText=hier}}. <br />
<br />
===Voraussetzungen===<br />
Vor der Inbetriebnahme in FHEM, müssen folgende Voraussetzungen erfüllt sein:<br />
*Das Display ist wie [[#Nextion_Display|hier]] beschrieben an das LGW angeschlossen.<br />
*Die [[#Soft_serial_bridge|Soft serial bridge]] auf der LGW Setup-page ist konfiguriert.<br />
*Das LaCrosse Gateway Device ist wie [[#Device_Definition|hier]] beschrieben angelegt.<br />
<br />
===Funktionsumfang===<br />
<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OTA Firmware (.tft File) übertragung an das Display <br />
*Automatische Anpassung der Baudrate auf dem Nextion<br />
*Das LGW schickt (periodisch) Werte an folgende Controls:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Control!! Beschreibung/Anmerkung<br />
|-<br />
| LGW#temp.txt<br />
| Nur wenn ein entsprechender on board sensor vorhanden ist.<br />
|-<br />
| LGW#hum.txt<br />
| Nur wenn ein entsprechender on board sensor vorhanden ist.<br />
|-<br />
| LGW#pres.txt<br />
| Nur wenn ein entsprechender on board sensor vorhanden ist.<br />
|-<br />
| LGW#rssi.txt<br />
| WLAN RSSI Signalstärke<br />
|-<br />
| LGW#ip.txt<br />
| IP-Adresse des LGW's<br />
|-<br />
| LGW#fpm.txt<br />
| Frames Per Minute<br />
|-<br />
| LGW#heap.txt<br />
| Free Heap<br />
|-<br />
| LGW#up.txt<br />
| Uptime<br />
|-<br />
| LGW#ver.txt<br />
| Version<br />
|-<br />
| LGW#wifi (vis)<br />
| Setzt die visibility<br />
|-<br />
| LGW#fhem<br />
| Setzt die visibility<br />
|-<br />
| LGW#cpu1 <br />
| Setzt die visibility<br />
|-<br />
| LGW#cpu2<br />
| Setzt die visibility<br />
|-<br />
| LGW#main<br />
| Sendet, nachdem es sich initialisiert hat, ein "page LGW#main" an das Nextion.<br />
|-<br />
| LGW#info<br />
| Sendet die Info an die LGW#prog page<br />
|-<br />
| LGW#ptext<br />
| Sendet die Info an die LGW#prog page<br />
|-<br />
| LGW#pbar<br />
| Sendet die Info an die LGW#prog page<br />
|}<br />
<br />
*Fortschrittsanzeige beim flashen der Nextion Firmware<br />
<br />
===Device Definition Nextion Modul===<br />
<br />
Die Definition für die Nextion Bridge sieht dann wie folgt aus: <br />
<br />
<code>define <nextion> Nextion <IP-Adresse>:<Port></code><br />
<br />
''<nextion>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
''<Port>'' Ist der auf der Setup-page definierte Port <br />
<br />
'''Beispiel:''' <br />
<syntaxhighlight lang="php">define nextion Nextion 192.168.22.33:86</syntaxhighlight> IP-Adresse ermitteln: Das LaCrosseGateway heist per default Einstellung "LaCrosseGateway", per ping auf den Hostnamen LaCrosseGateway kann die <IP-Adresse> ermittelt werden.<br />
<br />
===Firmware erstellen und flashen ===<br />
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. <br />
<br />
Das LGW kann die Firmware (.tft Datei) zum Display übertragen. Dazu gibt es zwei Varianten:<br />
<br />
'''curl'''<br />
<br />
Syntax lautet:<br />
<br />
<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><br />
<br />
Beispiel:<br />
<br />
<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><br />
<br />
'''Das LaCrosseGateway Modul in FHEM'''<br />
<br />
Syntax lautet:<br />
<br />
<syntaxhighlight lang="php">set <myLaCrosseGateway> nextionUpload</syntaxhighlight><br />
<br />
Wenn das Attribut "tftFile" gesetzt ist, wird die darin angegebene Datei hochgeladen, ansonsten wird versucht, das File „FHEM/firmware/nextion.tft“ hochzuladen.<br />
<br />
===Anwendungsbeispiel===<br />
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.<br />
Das Nextion UI besteht aus folgenden Pages: <br />
{| class="wikitable"<br />
!ID !! Name !! Page !! Beispiel !! Hinweise/Funktion/Bechreibung !! Nextion Debug commands<br />
|-<br />
| 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. ||<br />
|-<br />
| 1 ||Progress||LGW#prog ||[[Datei:lgw_nextion_prog.png|200px|thumb|left|]]<div style="clear:both;"></div>|| Auf dieser Seite wird der WiFi Verbindungsfortschritt angezeit. Alles Werte werden vom LGW befüllt. ||page LGW#prog<br />
vis LGW#pbar,1<br />
<br />
vis LGW#ptext,1<br />
<br />
LGW#pbar.val=50<br />
<br />
LGW#ptext.txt="Connect WiFi (1)"<br />
|-<br />
| 2 ||Main|| LGW#main || [[Datei:lgw_nextion_main.png|200px|thumb|left|]]<div style="clear:both;"></div> ||Dies ist die Haupseite, 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<br />
vis LGW#wifi,1<br />
<br />
vis LGW#fhem,1<br />
<br />
vis LGW#cpu1,1<br />
<br />
vis LGW#cpu2,1<br />
<br />
LGW#rssi.txt="-68"<br />
<br />
tTime.txt="23:45"<br />
<br />
tDate.txt="01.08.2017"<br />
<br />
vis iTemp,1<br />
<br />
LGW#temp.txt="25.7"<br />
<br />
vis iHum,1<br />
<br />
LGW#hum.txt="68%"<br />
<br />
vis iPres,1<br />
<br />
LGW#pres.txt="1024hPa"<br />
<br />
vis iWind,1<br />
<br />
tout_ws.txt="23km/h"<br />
<br />
vis iOutT,1<br />
<br />
tout_t.txt="28°C"<br />
|-<br />
| 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<br />
vis LGW#ip,1<br />
<br />
LGW#ip.txt="192.168.222.1"<br />
<br />
vis LGW#fpm,1<br />
<br />
LGW#fpm.txt="5"<br />
<br />
vis LGW#heap,1<br />
<br />
LGW#heap.txt="16280"<br />
<br />
vis LGW#ver,1<br />
<br />
LGW#ver.txt="1.30"<br />
<br />
vis LGW#up,1<br />
<br />
LGW#up.txt="1Tg.4Std.34Min."<br />
|-<br />
| 4 || Info Page 2 || Info2 || [[Datei:lgw_nextion_info2.png|200px|thumb|left|]]<div style="clear:both;"></div> || tInfo50 und tInf51 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<br />
tInfo60.txt="tInfo60:"<br />
<br />
tInfo61.txt="tInfo61"<br />
<br />
tInfo70.txt="tInfo70:"<br />
<br />
tInfo71.txt="tInfo71"<br />
<br />
tInfo80.txt="tInfo80:"<br />
<br />
tInfo81.txt="tInfo81"<br />
<br />
tInfo90.txt="tInfo90:"<br />
<br />
tInfo91.txt="tInfo91"<br />
|-<br />
| 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<br />
h1.val=25<br />
<br />
h0.val=60<br />
|-<br />
| 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>Weiteren Hinweise zur Funktionsweise sind {{Link2Forum|Topic=63443|Message=576902|LinkText=hier}} zu finden. || page CoCe<br />
lblT1.txt="lbT1"<br />
<br />
lblS1.txt="aus"<br />
<br />
lblT2.txt="lbT2"<br />
<br />
lblS2.txt="an"<br />
<br />
lblT3.txt="lbT4"<br />
<br />
lblS3.txt="zu"<br />
<br />
lblT4.txt="lbT3"<br />
<br />
lblS4.txt="auf"<br />
<br />
lblT5.txt="lbT5"<br />
<br />
lblS5.txt="n.a."<br />
|-<br />
| 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<br />
p0.pic=12<br />
<br />
t0.txt="Mo 01 Aug 2017\rmin:15 max:18"<br />
<br />
p1.pic=16<br />
<br />
t1.txt="Di 02 Aug 2017\rmin:15 max:18"<br />
<br />
p2.pic=17<br />
<br />
t2.txt="Mi 03 Aug 2017\rmin:15 max:18"<br />
<br />
p3.pic=12<br />
<br />
t3.txt="Do 04 Aug 2017\rmin:25 max:28"<br />
<br />
p4.pic=15<br />
<br />
t4.txt="Fr 05 Aug 2017\rmin:28 max:32" <br />
|}<br />
<br />
Hinweis: Alle Contorls die mit dem Namen "LGW#" beginnen sind für das LGW reserviert und werden entsprechend vom Gateway befüllt.<br />
<br />
===Nextion Tipps & Tricks===<br />
====Nextion Commandreferenz====<br />
Sehr hilfreich ist die Nextion instruction Page, welche hier: https://www.itead.cc/wiki/Nextion_Instruction_Set zu finden ist.<br />
<br />
==Serial Transparent Bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<syntaxhighlight lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</syntaxhighlight><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<syntaxhighlight lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </syntaxhighlight><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
=Nano LaCrosse Gateway=<br />
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 jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende Bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung<br />
*[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]<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<syntaxhighlight lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</syntaxhighlight><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
{{Link2Forum|Topic=43672|LinkText=LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino}}<br />
<br />
{{Link2Forum|Topic=45594|LinkText=Platine für LaCrosseGateway: Platinenbestellung}}<br />
<br />
{{Link2Forum|Topic=51329|LinkText=Platine für nanoLGW (LaCrosse Gateway): Layout}}<br />
<br />
{{Link2Forum|Topic=52921|LinkText=Display für LaCrosseGateway}}<br />
<br />
{{Link2Forum|Topic=63443|LinkText=LaCrosseGateway mit Nextion Display}}<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]<br />
[[Kategorie:868MHz]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=27545LaCrosseGateway V1.x2018-07-29T05:54:40Z<p>HCS: </p>
<hr />
<div>Diese Wiki-Seite beschreibt ausschließlich das LaCrosseGateway V1.x, das auf dem ESP8266 basiert.<br/><br />
Für das LaCrosseGateway32 das auf dem ESP32 basiert, wird es eine eigene Seite geben.{{Randnotiz|RNText=Dokumentationsstand Version 1.27}}<br />
<br />
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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
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.<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 "offiziel" unterstützt, da ungetestet, können aber durchaus in bestimmten Fällen verwendet werden:<br />
** V0.9 (da ungetestet, bekommt man aber kaum noch zu kaufen)<br />
** V3.0 - passt nicht auf die Platine von PeMue, ist größer als das 2.0. Auf der Rückseite steht "Lolin".<br />
** Devkits mit einem CH340 USB converter (da ungetestet und teils falsche Bauform und von der USB-Anbindung her teils problematisch)<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*[Optional] Nextion Touch Display zur Darstellung von verschiedenen Informationen oder zum Schalten von Aktoren. <br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0 Minimum===<br />
[[Datei:lgw_Schaltplan_Devkit_minimum.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: Devkit 1.0 Maximalausbau===<br />
[[Datei:lgw_Schaltplan_Devkit_full.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
siehe hier: {{Link2Forum|Topic=45594|LinkText=Thread}}<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
<br />
===MCP23008=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<syntaxhighlight lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</syntaxhighlight><br />
<br />
===Nextion Display===<br />
Angeschlossen wird das Display wie folgt:<br />
GPIO0: TXD -> Nextion RXD<br />
GPIO2: RXD -> Nextion TXD<br />
<br />
Das Display benötigt eine 5V Spannungsversorgung, diese kann vom VIN des DevKit's abgegriffen werden. Vom Betrieb mit 3.3V wird abgeraten.<br />
Ein level shifter für RXD/TXD ist nicht nötig.<br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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.'''<br />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<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><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<syntaxhighlight lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</syntaxhighlight><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<syntaxhighlight lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</syntaxhighlight><br />
Beispiel:<syntaxhighlight lang="php">KV DHT 01 Temperature=21.5,Humidity=62</syntaxhighlight><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<syntaxhighlight lang="php">LC <Address> T=<Temperature>,H=<Humidity></syntaxhighlight><br />
Beispiel:<br />
<syntaxhighlight lang="php">LC 9F T=21.5,H=62</syntaxhighlight><br />
<syntaxhighlight lang="php">LC 9F T=21.5</syntaxhighlight><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren und Aktoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden.<br /><br />
(siehe [[JeeLink#Unterst.C3.BCtzte_Sensoren_und_Aktoren_incl._Wetterstation_WS_1600JeeLink|vom JeeLink unterstützte LaCrosse Sensoren und Aktoren]])<br />
<br />
Zusätzlich zu LaCrosse werden auch die folgenden Geräte unterstützt:<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !! Funktion !! Hinweise<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützt werden bis zu 50 Dosen) || <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
|-<br />
| Nextion Display ||(Max.) 57600 baud || on board ||Touch Display||<br />
<br />
|}<br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
*Software Serial Bridge - Stellt die Soft Serial Schnittstelle transparent auf einem TCP Port.<br />
<br />
==Sourcecode==<br />
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)].<br />
<br />
==Firmware Download==<br />
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.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<syntaxhighlight lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</syntaxhighlight><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<syntaxhighlight lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</syntaxhighlight><br />
<br />
'''''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.''<br />
<br />
=== Linux/Debian/Ubuntu "esptool v2.1"===<br />
<br />
Installieren:<br />
<syntaxhighlight lang="bash"><br />
sudo apt-get esptool<br />
</syntaxhighlight><br />
<br />
''Beispiel mit neuer Syntax bei esptool v2.1:''<br />
<syntaxhighlight lang="bash"> sudo esptool --port /dev/ttyUSB0 write_flash 0x00000 JeeLink_LaCrosseGateway.bin</syntaxhighlight><br />
<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*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.<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<syntaxhighlight lang="php">set myLaCrosseGateway flash</syntaxhighlight> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per FHEM (USB)===<br />
Voraussetzungen:<br />
Auf dem FHEM-Server muss Python und pyserial installiert sein. Die Installation kann z.B. so erfolgen:<br />
*apt-get install python<br />
*wget https://bootstrap.pypa.io/get-pip.py<br />
*python get-pip.py<br />
*pip install pyserial<br />
<br />
Das Attribut "mode" muss auf USB gesetzt sein: attr myLaCrosseGateway mode USB<br />
<br />
Der flash-Vorgang wird gestartet mit: set myLaCrosseGateway flash<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<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><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Soft Serial Bridge===<br />
Das LGW kann optional eine Soft serial bridge (Zuverlässig nur mit bis zu 57600 baud) transparent auf einem TCP Port bereitstellen.<br />
Folgende Parameter können auf der LGW Setup-Page angepasst/konfiguriert werden:<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Beschreibung<br />
|-<br />
| Port<br />
| Der Port, auf dem es angesprochen werden kann<br />
|-<br />
| Baud<br />
| Die Baudrate für die Kommunikation<br />
|-<br />
| Nextion display<br />
| Für den Betrieb eines Nextion Display muss diese Option aktiviert sein.<br />
|-<br />
| Add units<br />
| Fügt an die Werte (Temp,Hum,Pres), die das LGW an das Display schickt, Einheiten an.<br />
|}<br />
<br />
Mithilfe des Soft serial bridge können verschiedene Geräte (nanoCUL, Nextion Display, etc.), welche per seriellen Schnitstelle kommunizieren können, in Betrieb genommen werden.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<syntaxhighlight lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></syntaxhighlight><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<syntaxhighlight lang="php">http://<LGW-IP>/getLogData</syntaxhighlight><br />
<br />
'''''Beispiel:'''''<br />
<syntaxhighlight lang="php">http://192.168.31.211/getLogData</syntaxhighlight><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</syntaxhighlight><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<syntaxhighlight lang="php">sudo apt-get install libwww-perl</syntaxhighlight><br />
alternativ auch mit<br />
<syntaxhighlight lang="php">sudo cpan LWP::UserAgent</syntaxhighlight><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
''42_Nextion.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<syntaxhighlight lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</syntaxhighlight><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
Beispiel: <code>define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</code><br />
''/dev/ttyUSB0'' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<code>ls -l /dev/serial/by-id</code><br />
<br />
Beispiel für die Ausgabe:<br />
<syntaxhighlight lang="text">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</syntaxhighlight><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<code>define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</code><br><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br><br><br />
<br />
Wenn man das LGW ohne WiFi betreibt, dann muss man natürlich auf die Annehmlichkeiten des Web-Frontends verzichten.<br><br />
In diesem Fall kann man die Konfiguration, die man über das Web-Frontend machen würde, über die serielle Schnittstelle machen.<br><br />
<br />
<code>set myLaCrosseGateway raw "SETUP ..."</code><br><br />
Das ... sind die gewünschten Einstellungen. Es müssen nicht alle Einstellungen gesendet werden sondern nur die, die man setzen will.<br><br />
Es werden nur die Einstellungen gesetzt und im EEPROM gespeichert, es wird aber kein Reboot ausgelöst<br><br />
Einen Reboot kann man mit "set myLaCrosseGateway raw 8377e" auslösen.<br><br />
Mehrere Einstellungen können durch Semikolon getrennt angegeben werden.<br><br />
Beispiel:<br />
<code>set myJeeLink213 raw "SETUP UseWiFi false; IO0 OLED mode=thp; IO1 OLED Off; CorrT -2.5; ISID 213"</code><br />
<br />
Man kann auf der seriellen Schnittstelle die aktuellen Einstellungen abrufen.<br />
Das command ist 1g<br><br />
<code>set myLaCrosseGateway raw 1g</code><br><br />
Man bekommt dann so etwas zurück:<br />
<syntaxhighlight lang="text">SETUP ctSSID esesidee; ctPASS PasstWort; staticIP 192.168.31.211; staticMask 255.255.255.0; staticGW 192.168.31.1;<br />
HostName LGW211; StartupDelay 1; ISID 0xD3; Altitude 220; CorrT 0; CorrH 0; DataPort1 81; DataPort2 82; SerialBridgePort 85; <br />
SerialBridgeBaud 38400; UseMDNS true; IO0 OLED mode=s; IO1 OLED mode=thp; IO2 OLED On; IO3 OLED Off; oledStart 120; KVInterval 10; <br />
KVIdentity 211; PCA301Plugs 036180=3,03A094=1,035FF1=6;</syntaxhighlight><br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<syntaxhighlight lang="php">attr myLaCrosseGateway timeout 120,30</syntaxhighlight><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/help]<br />
<br />
<syntaxhighlight lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</syntaxhighlight><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann auf die "Werkseinstellungen" zurückgesetzt werden.<br><br />
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen.<br />
Der Befehl dazu lautet: <syntaxhighlight lang="php">8266e</syntaxhighlight><br />
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.<br />
<br />
Danach startet das LGW wieder als Access Point [[#LaCrosseGateway einrichten|initiale Konfiguration]] und die Konfiguration kann über die "Setup-Page" neu vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<syntaxhighlight lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</syntaxhighlight><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<syntaxhighlight lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</syntaxhighlight><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<syntaxhighlight lang="php">define <name> LaCrosse 00</syntaxhighlight><br />
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:<br />
<br />
Beispiel: 220h legt 220m über NN fest.''<br />
<syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 220h</syntaxhighlight><br />
<br />
'''Besser:''' Alternativ kann die Höhe über NN auch auf der Setup-Page des LGW gesetzt werden.<br><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.<br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<syntaxhighlight lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</syntaxhighlight><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<syntaxhighlight lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</syntaxhighlight><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 0#1r v</syntaxhighlight><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 8842#3r v </syntaxhighlight><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 868300#2f v</syntaxhighlight><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 868295#3f v</syntaxhighlight><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</syntaxhighlight><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</syntaxhighlight><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</syntaxhighlight><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</syntaxhighlight><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</syntaxhighlight><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<syntaxhighlight lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</syntaxhighlight><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<syntaxhighlight lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</syntaxhighlight><br />
<br />
==Inbetriebnahme Analogport==<br />
Der Analogport A0 des ESP8266 wird als Reading im LaCrosseGatewayModul aufgeführt.<br />
Um das zu aktivieren, muss man auf der Setup-Page des LGW die Option "Send analog values" ankreuzen.<br />
Der Eingangsspannungsbereich von A0 ist 0V ... 1.0V, was zu einem Reading von 0 ... 1023 führt.<br />
<br />
==Inbetriebnahme von OLED-Display==<br />
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.<br />
<br />
Für die korrekte Darstellung auf dem 1.3" Display, muss die Checkbox 1.3" auf der Setup-Page aktiviert werden <br />
<br />
Hinweis: das 0.96" Display bekommt man auch in einer Varianten, die SPI unterstützt. Diese Variante kann nur nach einem Umbau verwendet werden. <br />
<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
Zusätzlich kann der initiale Mode festgelegt werden (z.B. thp)<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED On"</syntaxhighlight><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED Off"</syntaxhighlight><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED interval=20"</syntaxhighlight><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED mode=ths"</syntaxhighlight><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED mode=thp"</syntaxhighlight><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED mode=thps"</syntaxhighlight><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED mode=f"</syntaxhighlight><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED mode=s"</syntaxhighlight><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</syntaxhighlight><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</syntaxhighlight><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</syntaxhighlight><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</syntaxhighlight><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Inbetriebnahme eines Nextion Displays==<br />
<br />
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. <br />
Die Anbindung an FHEM erfolgt Mithilfe des Nextion Moduls (42_Nextion.pm), welches per FHEM Update verteilt wird. <br />
<br />
Ein Diskussionsthread zum Thema „LaCrosseGateway mit Nextion Display“ findet man {{Link2Forum|Topic=63443|LinkText=hier}}. <br />
<br />
===Voraussetzungen===<br />
Vor der Inbetriebnahme in FHEM, müssen folgende Voraussetzungen erfüllt sein:<br />
*Das Display ist wie [[#Nextion_Display|hier]] beschrieben an das LGW angeschlossen.<br />
*Die [[#Soft_serial_bridge|Soft serial bridge]] auf der LGW Setup-page ist konfiguriert.<br />
*Das LaCrosse Gateway Device ist wie [[#Device_Definition|hier]] beschrieben angelegt.<br />
<br />
===Funktionsumfang===<br />
<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OTA Firmware (.tft File) übertragung an das Display <br />
*Automatische Anpassung der Baudrate auf dem Nextion<br />
*Das LGW schickt (periodisch) Werte an folgende Controls:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Control!! Beschreibung/Anmerkung<br />
|-<br />
| LGW#temp.txt<br />
| Nur wenn ein entsprechender on board sensor vorhanden ist.<br />
|-<br />
| LGW#hum.txt<br />
| Nur wenn ein entsprechender on board sensor vorhanden ist.<br />
|-<br />
| LGW#pres.txt<br />
| Nur wenn ein entsprechender on board sensor vorhanden ist.<br />
|-<br />
| LGW#rssi.txt<br />
| WLAN RSSI Signalstärke<br />
|-<br />
| LGW#ip.txt<br />
| IP-Adresse des LGW's<br />
|-<br />
| LGW#fpm.txt<br />
| Frames Per Minute<br />
|-<br />
| LGW#heap.txt<br />
| Free Heap<br />
|-<br />
| LGW#up.txt<br />
| Uptime<br />
|-<br />
| LGW#ver.txt<br />
| Version<br />
|-<br />
| LGW#wifi (vis)<br />
| Setzt die visibility<br />
|-<br />
| LGW#fhem<br />
| Setzt die visibility<br />
|-<br />
| LGW#cpu1 <br />
| Setzt die visibility<br />
|-<br />
| LGW#cpu2<br />
| Setzt die visibility<br />
|-<br />
| LGW#main<br />
| Sendet, nachdem es sich initialisiert hat, ein "page LGW#main" an das Nextion.<br />
|-<br />
| LGW#info<br />
| Sendet die Info an die LGW#prog page<br />
|-<br />
| LGW#ptext<br />
| Sendet die Info an die LGW#prog page<br />
|-<br />
| LGW#pbar<br />
| Sendet die Info an die LGW#prog page<br />
|}<br />
<br />
*Fortschrittsanzeige beim flashen der Nextion Firmware<br />
<br />
===Device Definition Nextion Modul===<br />
<br />
Die Definition für die Nextion Bridge sieht dann wie folgt aus: <br />
<br />
<code>define <nextion> Nextion <IP-Adresse>:<Port></code><br />
<br />
''<nextion>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
''<Port>'' Ist der auf der Setup-page definierte Port <br />
<br />
'''Beispiel:''' <br />
<syntaxhighlight lang="php">define nextion Nextion 192.168.22.33:86</syntaxhighlight> IP-Adresse ermitteln: Das LaCrosseGateway heist per default Einstellung "LaCrosseGateway", per ping auf den Hostnamen LaCrosseGateway kann die <IP-Adresse> ermittelt werden.<br />
<br />
===Firmware erstellen und flashen ===<br />
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. <br />
<br />
Das LGW kann die Firmware (.tft Datei) zum Display übertragen. Dazu gibt es zwei Varianten:<br />
<br />
'''curl'''<br />
<br />
Syntax lautet:<br />
<br />
<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><br />
<br />
Beispiel:<br />
<br />
<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><br />
<br />
'''Das LaCrosseGateway Modul in FHEM'''<br />
<br />
Syntax lautet:<br />
<br />
<syntaxhighlight lang="php">set <myLaCrosseGateway> nextionUpload</syntaxhighlight><br />
<br />
Wenn das Attribut "tftFile" gesetzt ist, wird die darin angegebene Datei hochgeladen, ansonsten wird versucht, das File „FHEM/firmware/nextion.tft“ hochzuladen.<br />
<br />
===Anwendungsbeispiel===<br />
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.<br />
Das Nextion UI besteht aus folgenden Pages: <br />
{| class="wikitable"<br />
!ID !! Name !! Page !! Beispiel !! Hinweise/Funktion/Bechreibung !! Nextion Debug commands<br />
|-<br />
| 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. ||<br />
|-<br />
| 1 ||Progress||LGW#prog ||[[Datei:lgw_nextion_prog.png|200px|thumb|left|]]<div style="clear:both;"></div>|| Auf dieser Seite wird der WiFi Verbindungsfortschritt angezeit. Alles Werte werden vom LGW befüllt. ||page LGW#prog<br />
vis LGW#pbar,1<br />
<br />
vis LGW#ptext,1<br />
<br />
LGW#pbar.val=50<br />
<br />
LGW#ptext.txt="Connect WiFi (1)"<br />
|-<br />
| 2 ||Main|| LGW#main || [[Datei:lgw_nextion_main.png|200px|thumb|left|]]<div style="clear:both;"></div> ||Dies ist die Haupseite, 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<br />
vis LGW#wifi,1<br />
<br />
vis LGW#fhem,1<br />
<br />
vis LGW#cpu1,1<br />
<br />
vis LGW#cpu2,1<br />
<br />
LGW#rssi.txt="-68"<br />
<br />
tTime.txt="23:45"<br />
<br />
tDate.txt="01.08.2017"<br />
<br />
vis iTemp,1<br />
<br />
LGW#temp.txt="25.7"<br />
<br />
vis iHum,1<br />
<br />
LGW#hum.txt="68%"<br />
<br />
vis iPres,1<br />
<br />
LGW#pres.txt="1024hPa"<br />
<br />
vis iWind,1<br />
<br />
tout_ws.txt="23km/h"<br />
<br />
vis iOutT,1<br />
<br />
tout_t.txt="28°C"<br />
|-<br />
| 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<br />
vis LGW#ip,1<br />
<br />
LGW#ip.txt="192.168.222.1"<br />
<br />
vis LGW#fpm,1<br />
<br />
LGW#fpm.txt="5"<br />
<br />
vis LGW#heap,1<br />
<br />
LGW#heap.txt="16280"<br />
<br />
vis LGW#ver,1<br />
<br />
LGW#ver.txt="1.30"<br />
<br />
vis LGW#up,1<br />
<br />
LGW#up.txt="1Tg.4Std.34Min."<br />
|-<br />
| 4 || Info Page 2 || Info2 || [[Datei:lgw_nextion_info2.png|200px|thumb|left|]]<div style="clear:both;"></div> || tInfo50 und tInf51 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<br />
tInfo60.txt="tInfo60:"<br />
<br />
tInfo61.txt="tInfo61"<br />
<br />
tInfo70.txt="tInfo70:"<br />
<br />
tInfo71.txt="tInfo71"<br />
<br />
tInfo80.txt="tInfo80:"<br />
<br />
tInfo81.txt="tInfo81"<br />
<br />
tInfo90.txt="tInfo90:"<br />
<br />
tInfo91.txt="tInfo91"<br />
|-<br />
| 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<br />
h1.val=25<br />
<br />
h0.val=60<br />
|-<br />
| 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>Weiteren Hinweise zur Funktionsweise sind {{Link2Forum|Topic=63443|Message=576902|LinkText=hier}} zu finden. || page CoCe<br />
lblT1.txt="lbT1"<br />
<br />
lblS1.txt="aus"<br />
<br />
lblT2.txt="lbT2"<br />
<br />
lblS2.txt="an"<br />
<br />
lblT3.txt="lbT4"<br />
<br />
lblS3.txt="zu"<br />
<br />
lblT4.txt="lbT3"<br />
<br />
lblS4.txt="auf"<br />
<br />
lblT5.txt="lbT5"<br />
<br />
lblS5.txt="n.a."<br />
|-<br />
| 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<br />
p0.pic=12<br />
<br />
t0.txt="Mo 01 Aug 2017\rmin:15 max:18"<br />
<br />
p1.pic=16<br />
<br />
t1.txt="Di 02 Aug 2017\rmin:15 max:18"<br />
<br />
p2.pic=17<br />
<br />
t2.txt="Mi 03 Aug 2017\rmin:15 max:18"<br />
<br />
p3.pic=12<br />
<br />
t3.txt="Do 04 Aug 2017\rmin:25 max:28"<br />
<br />
p4.pic=15<br />
<br />
t4.txt="Fr 05 Aug 2017\rmin:28 max:32" <br />
|}<br />
<br />
Hinweis: Alle Contorls die mit dem Namen "LGW#" beginnen sind für das LGW reserviert und werden entsprechend vom Gateway befüllt.<br />
<br />
===Nextion Tipps & Tricks===<br />
====Nextion Commandreferenz====<br />
Sehr hilfreich ist die Nextion instruction Page, welche hier: https://www.itead.cc/wiki/Nextion_Instruction_Set zu finden ist.<br />
<br />
==Serial Transparent Bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<syntaxhighlight lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</syntaxhighlight><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<syntaxhighlight lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </syntaxhighlight><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
=Nano LaCrosse Gateway=<br />
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 jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende Bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung<br />
*[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]<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<syntaxhighlight lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</syntaxhighlight><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
{{Link2Forum|Topic=43672|LinkText=LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino}}<br />
<br />
{{Link2Forum|Topic=45594|LinkText=Platine für LaCrosseGateway: Platinenbestellung}}<br />
<br />
{{Link2Forum|Topic=51329|LinkText=Platine für nanoLGW (LaCrosse Gateway): Layout}}<br />
<br />
{{Link2Forum|Topic=52921|LinkText=Display für LaCrosseGateway}}<br />
<br />
{{Link2Forum|Topic=63443|LinkText=LaCrosseGateway mit Nextion Display}}<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]<br />
[[Kategorie:868MHz]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=23466LaCrosseGateway V1.x2017-12-06T21:00:21Z<p>HCS: /* Weiterführende Links */</p>
<hr />
<div>Diese Wiki-Seite beschreibt ausschließlich das LaCrosseGateway V1.x, das auf dem ESP8266 basiert.<br/><br />
Für das LaCrosseGateway32 das auf dem ESP32 basiert, wird es eine eigene Seite geben.{{Randnotiz|RNText=Dokumentationsstand Version 1.27}}<br />
<br />
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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
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.<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 "offiziel" unterstützt, da ungetestet, können aber durchaus in bestimmten Fällen verwendet werden:<br />
** V0.9 (da ungetestet, bekommt man aber kaum noch zu kaufen)<br />
** V3.0 - passt nicht auf die Platine von PeMue, ist größer als das 2.0. Auf der Rückseite steht "Lolin".<br />
** Devkits mit einem CH340 USB converter (da ungetestet und teils falsche Bauform und von der USB-Anbindung her teils problematisch)<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*[Optional] Nextion Touch Display zur Darstellung von verschiedenen Informationen oder zum Schalten von Aktoren. <br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0 Minimum===<br />
[[Datei:lgw_Schaltplan_Devkit_minimum.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: Devkit 1.0 Maximalausbau===<br />
[[Datei:lgw_Schaltplan_Devkit_full.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
siehe hier: {{Link2Forum|Topic=45594|LinkText=Thread}}<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
<br />
===MCP23008=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<syntaxhighlight lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</syntaxhighlight><br />
<br />
===Nextion Display===<br />
Angeschlossen wird das Display wie folgt:<br />
GPIO0: TXD -> Nextion RXD<br />
GPIO2: RXD -> Nextion TXD<br />
<br />
Das Display benötigt eine 5V Spannungsversorgung, diese kann vom VIN des DevKit's abgegriffen werden. Vom Betrieb mit 3.3V wird abgeraten.<br />
Ein level shifter für RXD/TXD ist nicht nötig.<br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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.'''<br />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<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><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<syntaxhighlight lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</syntaxhighlight><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<syntaxhighlight lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</syntaxhighlight><br />
Beispiel:<syntaxhighlight lang="php">KV DHT 01 Temperature=21.5,Humidity=62</syntaxhighlight><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<syntaxhighlight lang="php">LC <Address> T=<Temperature>,H=<Humidity></syntaxhighlight><br />
Beispiel:<br />
<syntaxhighlight lang="php">LC 9F T=21.5,H=62</syntaxhighlight><br />
<syntaxhighlight lang="php">LC 9F T=21.5</syntaxhighlight><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren und Aktoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden.<br /><br />
(siehe [[JeeLink#Unterst.C3.BCtzte_Sensoren_und_Aktoren_incl._Wetterstation_WS_1600JeeLink|vom JeeLink unterstützte LaCrosse Sensoren und Aktoren]])<br />
<br />
Zusätzlich zu LaCrosse werden auch die folgenden Geräte unterstützt:<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !! Funktion !! Hinweise<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützt werden bis zu 50 Dosen) || <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose (funktioniert nur mit RFM69, nicht mit RFM12) || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
|-<br />
| Nextion Display ||(Max.) 57600 baud || on board ||Touch Display||<br />
<br />
|}<br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
*Software Serial Bridge - Stellt die Soft Serial Schnittstelle transparent auf einem TCP Port.<br />
<br />
==Sourcecode==<br />
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)].<br />
<br />
==Firmware Download==<br />
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.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<syntaxhighlight lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</syntaxhighlight><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<syntaxhighlight lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</syntaxhighlight><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*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.<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<syntaxhighlight lang="php">set myLaCrosseGateway flash</syntaxhighlight> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per FHEM (USB)===<br />
Voraussetzungen:<br />
Auf dem FHEM-Server muss Python und pyserial installiert sein. Die Installation kann z.B. so erfolgen:<br />
*apt-get install python<br />
*wget https://bootstrap.pypa.io/get-pip.py<br />
*python get-pip.py<br />
*pip install pyserial<br />
<br />
Das Attribut "mode" muss auf USB gesetzt sein: attr myLaCrosseGateway mode USB<br />
<br />
Der flash-Vorgang wird gestartet mit: set myLaCrosseGateway flash<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<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><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Soft Serial Bridge===<br />
Das LGW kann optional eine Soft serial bridge (Zuverlässig nur mit bis zu 57600 baud) transparent auf einem TCP Port bereitstellen.<br />
Folgende Parameter können auf der LGW Setup-Page angepasst/konfiguriert werden:<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Beschreibung<br />
|-<br />
| Port<br />
| Der Port, auf dem es angesprochen werden kann<br />
|-<br />
| Baud<br />
| Die Baudrate für die Kommunikation<br />
|-<br />
| Nextion display<br />
| Für den Betrieb eines Nextion Display muss diese Option aktiviert sein.<br />
|-<br />
| Add units<br />
| Fügt an die Werte (Temp,Hum,Pres), die das LGW an das Display schickt, Einheiten an.<br />
|}<br />
<br />
Mithilfe des Soft serial bridge können verschiedene Geräte (nanoCUL, Nextion Display, etc.), welche per seriellen Schnitstelle kommunizieren können, in Betrieb genommen werden.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<syntaxhighlight lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></syntaxhighlight><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<syntaxhighlight lang="php">http://<LGW-IP>/getLogData</syntaxhighlight><br />
<br />
'''''Beispiel:'''''<br />
<syntaxhighlight lang="php">http://192.168.31.211/getLogData</syntaxhighlight><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</syntaxhighlight><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<syntaxhighlight lang="php">sudo apt-get install libwww-perl</syntaxhighlight><br />
alternativ auch mit<br />
<syntaxhighlight lang="php">sudo cpan LWP::UserAgent</syntaxhighlight><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
''42_Nextion.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<syntaxhighlight lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</syntaxhighlight><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
Beispiel: <code>define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</code><br />
''/dev/ttyUSB0'' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<code>ls -l /dev/serial/by-id</code><br />
<br />
Beispiel für die Ausgabe:<br />
<syntaxhighlight lang="text">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</syntaxhighlight><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<code>define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</code><br><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br><br><br />
<br />
Wenn man das LGW ohne WiFi betreibt, dann muss man natürlich auf die Annehmlichkeiten des Web-Frontends verzichten.<br><br />
In diesem Fall kann man die Konfiguration, die man über das Web-Frontend machen würde, über die serielle Schnittstelle machen.<br><br />
<br />
<code>set myLaCrosseGateway raw "SETUP ..."</code><br><br />
Das ... sind die gewünschten Einstellungen. Es müssen nicht alle Einstellungen gesendet werden sondern nur die, die man setzen will.<br><br />
Es werden nur die Einstellungen gesetzt und im EEPROM gespeichert, es wird aber kein Reboot ausgelöst<br><br />
Einen Reboot kann man mit "set myLaCrosseGateway raw 8377e" auslösen.<br><br />
Mehrere Einstellungen können durch Semikolon getrennt angegeben werden.<br><br />
Beispiel:<br />
<code>set myJeeLink213 raw "SETUP UseWiFi false; IO0 OLED mode=thp; IO1 OLED Off; CorrT -2.5; ISID 213"</code><br />
<br />
Man kann auf der seriellen Schnittstelle die aktuellen Einstellungen abrufen.<br />
Das command ist 1g<br><br />
<code>set myLaCrosseGateway raw 1g</code><br><br />
Man bekommt dann so etwas zurück:<br />
<syntaxhighlight lang="text">SETUP ctSSID esesidee; ctPASS PasstWort; staticIP 192.168.31.211; staticMask 255.255.255.0; staticGW 192.168.31.1;<br />
HostName LGW211; StartupDelay 1; ISID 0xD3; Altitude 220; CorrT 0; CorrH 0; DataPort1 81; DataPort2 82; SerialBridgePort 85; <br />
SerialBridgeBaud 38400; UseMDNS true; IO0 OLED mode=s; IO1 OLED mode=thp; IO2 OLED On; IO3 OLED Off; oledStart 120; KVInterval 10; <br />
KVIdentity 211; PCA301Plugs 036180=3,03A094=1,035FF1=6;</syntaxhighlight><br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<syntaxhighlight lang="php">attr myLaCrosseGateway timeout 120,30</syntaxhighlight><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/help]<br />
<br />
<syntaxhighlight lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</syntaxhighlight><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann auf die "Werkseinstellungen" zurückgesetzt werden.<br><br />
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen.<br />
Der Befehl dazu lautet: <syntaxhighlight lang="php">8266e</syntaxhighlight><br />
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.<br />
<br />
Danach startet das LGW wieder als Access Point [[#LaCrosseGateway einrichten|initiale Konfiguration]] und die Konfiguration kann über die "Setup-Page" neu vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<syntaxhighlight lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</syntaxhighlight><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<syntaxhighlight lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</syntaxhighlight><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<syntaxhighlight lang="php">define <name> LaCrosse 00</syntaxhighlight><br />
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:<br />
<br />
Beispiel: 220h legt 220m über NN fest.''<br />
<syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 220h</syntaxhighlight><br />
<br />
'''Besser:''' Alternativ kann die Höhe über NN auch auf der Setup-Page des LGW gesetzt werden.<br><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.<br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<syntaxhighlight lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</syntaxhighlight><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<syntaxhighlight lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</syntaxhighlight><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 0#1r v</syntaxhighlight><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 8842#3r v </syntaxhighlight><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 868300#2f v</syntaxhighlight><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 868295#3f v</syntaxhighlight><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</syntaxhighlight><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</syntaxhighlight><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</syntaxhighlight><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</syntaxhighlight><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<syntaxhighlight lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</syntaxhighlight><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<syntaxhighlight lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</syntaxhighlight><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<syntaxhighlight lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</syntaxhighlight><br />
<br />
==Inbetriebnahme Analogport==<br />
Der Analogport A0 des ESP8266 wird als Reading im LaCrosseGatewayModul aufgeführt.<br />
Um das zu aktivieren, muss man auf der Setup-Page des LGW die Option "Send analog values" ankreuzen.<br />
Der Eingangsspannungsbereich von A0 ist 0V ... 1.0V, was zu einem Reading von 0 ... 1023 führt.<br />
<br />
==Inbetriebnahme von OLED-Display==<br />
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.<br />
<br />
Für die korrekte Darstellung auf dem 1.3" Display, muss die Checkbox 1.3" auf der Setup-Page aktiviert werden <br />
<br />
Hinweis: das 0.96" Display bekommt man auch in einer Varianten, die SPI unterstützt. Diese Variante kann nur nach einem Umbau verwendet werden. <br />
<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
Zusätzlich kann der initiale Mode festgelegt werden (z.B. thp)<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED On"</syntaxhighlight><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED Off"</syntaxhighlight><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED interval=20"</syntaxhighlight><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED mode=ths"</syntaxhighlight><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED mode=thp"</syntaxhighlight><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED mode=thps"</syntaxhighlight><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED mode=f"</syntaxhighlight><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED mode=s"</syntaxhighlight><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</syntaxhighlight><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</syntaxhighlight><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <syntaxhighlight lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</syntaxhighlight><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <syntaxhighlight lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</syntaxhighlight><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Inbetriebnahme eines Nextion Displays==<br />
<br />
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. <br />
Die Anbindung an FHEM erfolgt Mithilfe des Nextion Moduls (42_Nextion.pm), welches per FHEM Update verteilt wird. <br />
<br />
Ein Diskussionsthread zum Thema „LaCrosseGateway mit Nextion Display“ findet man {{Link2Forum|Topic=63443|LinkText=hier}}. <br />
<br />
===Voraussetzungen===<br />
Vor der Inbetriebnahme in FHEM, müssen folgende Voraussetzungen erfüllt sein:<br />
*Das Display ist wie [[#Nextion_Display|hier]] beschrieben an das LGW angeschlossen.<br />
*Die [[#Soft_serial_bridge|Soft serial bridge]] auf der LGW Setup-page ist konfiguriert.<br />
*Das LaCrosse Gateway Device ist wie [[#Device_Definition|hier]] beschrieben angelegt.<br />
<br />
===Funktionsumfang===<br />
<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OTA Firmware (.tft File) übertragung an das Display <br />
*Automatische Anpassung der Baudrate auf dem Nextion<br />
*Das LGW schickt (periodisch) Werte an folgende Controls:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Control!! Beschreibung/Anmerkung<br />
|-<br />
| LGW#temp.txt<br />
| Nur wenn ein entsprechender on board sensor vorhanden ist.<br />
|-<br />
| LGW#hum.txt<br />
| Nur wenn ein entsprechender on board sensor vorhanden ist.<br />
|-<br />
| LGW#pres.txt<br />
| Nur wenn ein entsprechender on board sensor vorhanden ist.<br />
|-<br />
| LGW#rssi.txt<br />
| WLAN RSSI Signalstärke<br />
|-<br />
| LGW#ip.txt<br />
| IP-Adresse des LGW's<br />
|-<br />
| LGW#fpm.txt<br />
| Frames Per Minute<br />
|-<br />
| LGW#heap.txt<br />
| Free Heap<br />
|-<br />
| LGW#up.txt<br />
| Uptime<br />
|-<br />
| LGW#ver.txt<br />
| Version<br />
|-<br />
| LGW#wifi (vis)<br />
| Setzt die visibility<br />
|-<br />
| LGW#fhem<br />
| Setzt die visibility<br />
|-<br />
| LGW#cpu1 <br />
| Setzt die visibility<br />
|-<br />
| LGW#cpu2<br />
| Setzt die visibility<br />
|-<br />
| LGW#main<br />
| Sendet, nachdem es sich initialisiert hat, ein "page LGW#main" an das Nextion.<br />
|-<br />
| LGW#info<br />
| Sendet die Info an die LGW#prog page<br />
|-<br />
| LGW#ptext<br />
| Sendet die Info an die LGW#prog page<br />
|-<br />
| LGW#pbar<br />
| Sendet die Info an die LGW#prog page<br />
|}<br />
<br />
*Fortschrittsanzeige beim flashen der Nextion Firmware<br />
<br />
===Device Definition Nextion Modul===<br />
<br />
Die Definition für die Nextion Bridge sieht dann wie folgt aus: <br />
<br />
<code>define <nextion> Nextion <IP-Adresse>:<Port></code><br />
<br />
''<nextion>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
''<Port>'' Ist der auf der Setup-page definierte Port <br />
<br />
'''Beispiel:''' <br />
<syntaxhighlight lang="php">define nextion Nextion 192.168.22.33:86</syntaxhighlight> IP-Adresse ermitteln: Das LaCrosseGateway heist per default Einstellung "LaCrosseGateway", per ping auf den Hostnamen LaCrosseGateway kann die <IP-Adresse> ermittelt werden.<br />
<br />
===Firmware erstellen und flashen ===<br />
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. <br />
<br />
Das LGW kann die Firmware (.tft Datei) zum Display übertragen. Dazu gibt es zwei Varianten:<br />
<br />
'''curl'''<br />
<br />
Syntax lautet:<br />
<br />
<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><br />
<br />
Beispiel:<br />
<br />
<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><br />
<br />
'''Das LaCrosseGateway Modul in FHEM'''<br />
<br />
Syntax lautet:<br />
<br />
<syntaxhighlight lang="php">set <myLaCrosseGateway> nextionUpload</syntaxhighlight><br />
<br />
Wenn das Attribut "tftFile" gesetzt ist, wird die darin angegebene Datei hochgeladen, ansonsten wird versucht, das File „FHEM/firmware/nextion.tft“ hochzuladen.<br />
<br />
===Anwendungsbeispiel===<br />
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.8}}), um die Funktionsweise zu demonstrieren.<br />
Das Nextion UI besteht aus folgenden Pages: <br />
{| class="wikitable"<br />
!ID !! Name !! Page !! Beispiel !! Hinweise/Funktion/Bechreibung !! Nextion Debug commands<br />
|-<br />
| 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. ||<br />
|-<br />
| 1 ||Progress||LGW#prog ||[[Datei:lgw_nextion_prog.png|200px|thumb|left|]]<div style="clear:both;"></div>|| Auf dieser Seite wird der WiFi Verbindungsfortschritt angezeit. Alles Werte werden vom LGW befüllt. ||page LGW#prog<br />
vis LGW#pbar,1<br />
<br />
vis LGW#ptext,1<br />
<br />
LGW#pbar.val=50<br />
<br />
LGW#ptext.txt="Connect WiFi (1)"<br />
|-<br />
| 2 ||Main|| LGW#main || [[Datei:lgw_nextion_main.png|200px|thumb|left|]]<div style="clear:both;"></div> ||Dies ist die Haupseite, 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<br />
vis LGW#wifi,1<br />
<br />
vis LGW#fhem,1<br />
<br />
vis LGW#cpu1,1<br />
<br />
vis LGW#cpu2,1<br />
<br />
LGW#rssi.txt="-68"<br />
<br />
tTime.txt="23:45"<br />
<br />
tDate.txt="01.08.2017"<br />
<br />
vis iTemp,1<br />
<br />
LGW#temp.txt="25.7"<br />
<br />
vis iHum,1<br />
<br />
LGW#hum.txt="68%"<br />
<br />
vis iPres,1<br />
<br />
LGW#pres.txt="1024hPa"<br />
<br />
vis iWind,1<br />
<br />
tout_ws.txt="23km/h"<br />
<br />
vis iOutT,1<br />
<br />
tout_t.txt="28°C"<br />
|-<br />
| 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<br />
vis LGW#ip,1<br />
<br />
LGW#ip.txt="192.168.222.1"<br />
<br />
vis LGW#fpm,1<br />
<br />
LGW#fpm.txt="5"<br />
<br />
vis LGW#heap,1<br />
<br />
LGW#heap.txt="16280"<br />
<br />
vis LGW#ver,1<br />
<br />
LGW#ver.txt="1.30"<br />
<br />
vis LGW#up,1<br />
<br />
LGW#up.txt="1Tg.4Std.34Min."<br />
|-<br />
| 4 || Info Page 2 || Info2 || [[Datei:lgw_nextion_info2.png|200px|thumb|left|]]<div style="clear:both;"></div> || tInfo50 und tInf51 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<br />
tInfo60.txt="tInfo60:"<br />
<br />
tInfo61.txt="tInfo61"<br />
<br />
tInfo70.txt="tInfo70:"<br />
<br />
tInfo71.txt="tInfo71"<br />
<br />
tInfo80.txt="tInfo80:"<br />
<br />
tInfo81.txt="tInfo81"<br />
<br />
tInfo90.txt="tInfo90:"<br />
<br />
tInfo91.txt="tInfo91"<br />
|-<br />
| 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<br />
h1.val=25<br />
<br />
h0.val=60<br />
|-<br />
| 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>Weiteren Hinweise zur Funktionsweise sind {{Link2Forum|Topic=63443|Message=576902|LinkText=hier}} zu finden. || page CoCe<br />
lblT1.txt="lbT1"<br />
<br />
lblS1.txt="aus"<br />
<br />
lblT2.txt="lbT2"<br />
<br />
lblS2.txt="an"<br />
<br />
lblT3.txt="lbT4"<br />
<br />
lblS3.txt="zu"<br />
<br />
lblT4.txt="lbT3"<br />
<br />
lblS4.txt="auf"<br />
<br />
lblT5.txt="lbT5"<br />
<br />
lblS5.txt="n.a."<br />
|-<br />
| 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<br />
p0.pic=12<br />
<br />
t0.txt="Mo 01 Aug 2017\rmin:15 max:18"<br />
<br />
p1.pic=16<br />
<br />
t1.txt="Di 02 Aug 2017\rmin:15 max:18"<br />
<br />
p2.pic=17<br />
<br />
t2.txt="Mi 03 Aug 2017\rmin:15 max:18"<br />
<br />
p3.pic=12<br />
<br />
t3.txt="Do 04 Aug 2017\rmin:25 max:28"<br />
<br />
p4.pic=15<br />
<br />
t4.txt="Fr 05 Aug 2017\rmin:28 max:32" <br />
|}<br />
<br />
Hinweis: Alle Contorls die mit dem Namen "LGW#" beginnen sind für das LGW reserviert und werden entsprechend vom Gateway befüllt.<br />
<br />
===Nextion Tipps & Tricks===<br />
====Nextion Commandreferenz====<br />
Sehr hilfreich ist die Nextion instruction Page, welche hier: https://www.itead.cc/wiki/Nextion_Instruction_Set zu finden ist.<br />
<br />
==Serial Transparent Bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<syntaxhighlight lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</syntaxhighlight><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<syntaxhighlight lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </syntaxhighlight><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
=Nano LaCrosse Gateway=<br />
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 jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende Bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung<br />
*[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]<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<syntaxhighlight lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</syntaxhighlight><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
{{Link2Forum|Topic=43672|LinkText=LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino}}<br />
<br />
{{Link2Forum|Topic=45594|LinkText=Platine für LaCrosseGateway: Platinenbestellung}}<br />
<br />
{{Link2Forum|Topic=51329|LinkText=Platine für nanoLGW (LaCrosse Gateway): Layout}}<br />
<br />
{{Link2Forum|Topic=52921|LinkText=Display für LaCrosseGateway}}<br />
<br />
{{Link2Forum|Topic=63443|LinkText=LaCrosseGateway mit Nextion Display}}<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=20306LaCrosseGateway V1.x2017-02-26T09:07:36Z<p>HCS: </p>
<hr />
<div>Diese Wiki-Seite beschreibt ausschließlich das LaCrosseGateway V1.x, das auf dem ESP8266 basiert.<br/><br />
Für das LaCrosseGateway32 das auf dem ESP32 basiert, wird es eine eigene Seite geben.{{Randnotiz|RNText=Dokumentationsstand Version 1.27}}<br />
<br />
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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
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.<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht "offiziel" unterstützt, da ungetestet, können aber durchaus in bestimmten Fällen verwendet werden:<br />
** V0.9 (da ungetestet, bekommt man aber kaum noch zu kaufen)<br />
** V3.0 - passt nicht auf die Platine von PeMue, ist größer als das 2.0. Auf der Rückseite steht "Lolin".<br />
** Devkits mit einem CH340 USB converter (da ungetestet und teils falsche Bauform und von der USB-Anbindung her teils problematisch)<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0 Minimum===<br />
[[Datei:lgw_Schaltplan_Devkit_minimum.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: Devkit 1.0 Maximalausbau===<br />
[[Datei:lgw_Schaltplan_Devkit_full.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
siehe hier: [https://forum.fhem.de/index.php/topic,45594.0.html Thread]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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.'''<br />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren und Aktoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden.<br /><br />
(siehe [[JeeLink#Unterst.C3.BCtzte_Sensoren_und_Aktoren_incl._Wetterstation_WS_1600JeeLink|vom JeeLink unterstützte LaCrosse Sensoren und Aktoren]])<br />
<br />
Zusätzlich zu LaCrosse werden auch die folgenden Geräte unterstützt:<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !! Funktion !! Hinweise<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützt werden bis zu 50 Dosen) || <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose (funktioniert nur mit RFM69, nicht mit RFM12) || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
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)].<br />
<br />
==Firmware Download==<br />
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.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*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.<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per FHEM (USB)===<br />
Voraussetzungen:<br />
Auf dem FHEM-Server muss Python und pyserial installiert sein. Die Installation kann z.B. so erfolgen:<br />
*apt-get install python<br />
*wget https://bootstrap.pypa.io/get-pip.py<br />
*python get-pip.py<br />
*pip install pyserial<br />
<br />
Das Attribut "mode" muss auf USB gesetzt sein: attr myLaCrosseGateway mode USB<br />
<br />
Der flash-Vorgang wird gestartet mit: set myLaCrosseGateway flash<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
Beispiel: <code>define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</code><br />
''/dev/ttyUSB0'' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<code>ls -l /dev/serial/by-id</code><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="text">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<code>define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</code><br><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br><br><br />
<br />
Wenn man das LGW ohne WiFi betreibt, dann muss man natürlich auf die Annehmlichkeiten des Web-Frontends verzichten.<br><br />
In diesem Fall kann man die Konfiguration, die man über das Web-Frontend machen würde, über die serielle Schnittstelle machen.<br><br />
<br />
<code>set myLaCrosseGateway raw "SETUP ..."</code><br><br />
Das ... sind die gewünschten Einstellungen. Es müssen nicht alle Einstellungen gesendet werden sondern nur die, die man setzen will.<br><br />
Es werden nur die Einstellungen gesetzt und im EEPROM gespeichert, es wird aber kein Reboot ausgelöst<br><br />
Einen Reboot kann man mit "set myLaCrosseGateway raw 8377e" auslösen.<br><br />
Mehrere Einstellungen können durch Semikolon getrennt angegeben werden.<br><br />
Beispiel:<br />
<code>set myJeeLink213 raw "SETUP UseWiFi false; IO0 OLED mode=thp; IO1 OLED Off; CorrT -2.5; ISID 213"</code><br />
<br />
Man kann auf der seriellen Schnittstelle die aktuellen Einstellungen abrufen.<br />
Das command ist 1g<br><br />
<code>set myLaCrosseGateway raw 1g</code><br><br />
Man bekommt dann so etwas zurück:<br />
<source lang="text">SETUP ctSSID esesidee; ctPASS PasstWort; staticIP 192.168.31.211; staticMask 255.255.255.0; staticGW 192.168.31.1;<br />
HostName LGW211; StartupDelay 1; ISID 0xD3; Altitude 220; CorrT 0; CorrH 0; DataPort1 81; DataPort2 82; SerialBridgePort 85; <br />
SerialBridgeBaud 38400; UseMDNS true; IO0 OLED mode=s; IO1 OLED mode=thp; IO2 OLED On; IO3 OLED Off; oledStart 120; KVInterval 10; <br />
KVIdentity 211; PCA301Plugs 036180=3,03A094=1,035FF1=6;</source><br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/help]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann auf die "Werkseinstellungen" zurückgesetzt werden.<br><br />
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen.<br />
Der Befehl dazu lautet: <source lang="php">8266e</source><br />
Er kann mit einem Terminalprogramm, von FHEM aus mit <source lang="php">set <myLaCrosseGateway> raw 8266e</source> oder von der Log-Page des LGW gesendet werden.<br />
<br />
Danach startet das LGW wieder als Access Point [[#LaCrosseGateway einrichten|initiale Konfiguration]] und die Konfiguration kann über die "Setup-Page" neu vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
Beispiel: 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
'''Besser:''' Alternativ kann die Höhe über NN auch auf der Setup-Page des LGW gesetzt werden.<br><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.<br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme Analogport==<br />
Der Analogport A0 des ESP8266 wird als Reading im LaCrosseGatewayModul aufgeführt.<br />
Um das zu aktivieren, muss man auf der Setup-page des LGW die Option "Send analog values" ankreuzen.<br />
Der Eingangsspannungsbereich von A0 ist 0V ... 1.0V, was zu einem Reading von 0 ... 1023 führt.<br />
<br />
==Inbetriebnahme von OLED-Display==<br />
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.<br />
Um auf dem 1.3" Display eine korrekte Darstellung zu erhalten, muss man die Checkbox 1.3" ankreuzen.<br />
<br />
Hinweis: das 0.96" Display bekommt man auch in einer Varianten, die SPI unterstützt. Diese Variante kann nur nach einem Umbau verwendet werden. <br />
<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
Zusätzlich kann der initiale Mode festgelegt werden (z.B. thp)<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
=Nano LaCrosse Gateway=<br />
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 jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende Bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung<br />
*[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]<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=Datei:Lgw_Schaltplan_Devkit_full.png&diff=20305Datei:Lgw Schaltplan Devkit full.png2017-02-26T09:04:39Z<p>HCS: HCS lud eine neue Version von Datei:Lgw Schaltplan Devkit full.png hoch</p>
<hr />
<div></div>HCShttp://wiki.fhem.de/w/index.php?title=Datei:Lgw_Schaltplan_Devkit_full.png&diff=20304Datei:Lgw Schaltplan Devkit full.png2017-02-26T09:03:11Z<p>HCS: </p>
<hr />
<div></div>HCShttp://wiki.fhem.de/w/index.php?title=Datei:Lgw_Schaltplan_Devkit_minimum.png&diff=20303Datei:Lgw Schaltplan Devkit minimum.png2017-02-26T09:00:23Z<p>HCS: </p>
<hr />
<div></div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=20302LaCrosseGateway V1.x2017-02-26T08:58:51Z<p>HCS: </p>
<hr />
<div>Diese Wiki-Seite beschreibt ausschließlich das LaCrosseGateway V1.x, das auf dem ESP8266 basiert.<br/><br />
Für das LaCrosseGateway32 das auf dem ESP32 basiert, wird es eine eigene Seite geben.{{Randnotiz|RNText=Dokumentationsstand Version 1.27}}<br />
<br />
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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
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.<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht "offiziel" unterstützt, da ungetestet, können aber durchaus in bestimmten Fällen verwendet werden:<br />
** V0.9 (da ungetestet, bekommt man aber kaum noch zu kaufen)<br />
** V3.0 - passt nicht auf die Platine von PeMue, ist größer als das 2.0. Auf der Rückseite steht "Lolin".<br />
** Devkits mit einem CH340 USB converter (da ungetestet und teils falsche Bauform und von der USB-Anbindung her teils problematisch)<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0 Minimum===<br />
[[Datei:lgw_Schaltplan_Devkit_minimum.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: Devkit 1.0 Maximalausbau===<br />
[[Datei:lgw_Schaltplan_Devkit_full.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platinue.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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.'''<br />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren und Aktoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden.<br /><br />
(siehe [[JeeLink#Unterst.C3.BCtzte_Sensoren_und_Aktoren_incl._Wetterstation_WS_1600JeeLink|vom JeeLink unterstützte LaCrosse Sensoren und Aktoren]])<br />
<br />
Zusätzlich zu LaCrosse werden auch die folgenden Geräte unterstützt:<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !! Funktion !! Hinweise<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützt werden bis zu 50 Dosen) || <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose (funktioniert nur mit RFM69, nicht mit RFM12) || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
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)].<br />
<br />
==Firmware Download==<br />
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.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*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.<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per FHEM (USB)===<br />
Voraussetzungen:<br />
Auf dem FHEM-Server muss Python und pyserial installiert sein. Die Installation kann z.B. so erfolgen:<br />
*apt-get install python<br />
*wget https://bootstrap.pypa.io/get-pip.py<br />
*python get-pip.py<br />
*pip install pyserial<br />
<br />
Das Attribut "mode" muss auf USB gesetzt sein: attr myLaCrosseGateway mode USB<br />
<br />
Der flash-Vorgang wird gestartet mit: set myLaCrosseGateway flash<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
Beispiel: <code>define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</code><br />
''/dev/ttyUSB0'' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<code>ls -l /dev/serial/by-id</code><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="text">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<code>define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</code><br><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br><br><br />
<br />
Wenn man das LGW ohne WiFi betreibt, dann muss man natürlich auf die Annehmlichkeiten des Web-Frontends verzichten.<br><br />
In diesem Fall kann man die Konfiguration, die man über das Web-Frontend machen würde, über die serielle Schnittstelle machen.<br><br />
<br />
<code>set myLaCrosseGateway raw "SETUP ..."</code><br><br />
Das ... sind die gewünschten Einstellungen. Es müssen nicht alle Einstellungen gesendet werden sondern nur die, die man setzen will.<br><br />
Es werden nur die Einstellungen gesetzt und im EEPROM gespeichert, es wird aber kein Reboot ausgelöst<br><br />
Einen Reboot kann man mit "set myLaCrosseGateway raw 8377e" auslösen.<br><br />
Mehrere Einstellungen können durch Semikolon getrennt angegeben werden.<br><br />
Beispiel:<br />
<code>set myJeeLink213 raw "SETUP UseWiFi false; IO0 OLED mode=thp; IO1 OLED Off; CorrT -2.5; ISID 213"</code><br />
<br />
Man kann auf der seriellen Schnittstelle die aktuellen Einstellungen abrufen.<br />
Das command ist 1g<br><br />
<code>set myLaCrosseGateway raw 1g</code><br><br />
Man bekommt dann so etwas zurück:<br />
<source lang="text">SETUP ctSSID esesidee; ctPASS PasstWort; staticIP 192.168.31.211; staticMask 255.255.255.0; staticGW 192.168.31.1;<br />
HostName LGW211; StartupDelay 1; ISID 0xD3; Altitude 220; CorrT 0; CorrH 0; DataPort1 81; DataPort2 82; SerialBridgePort 85; <br />
SerialBridgeBaud 38400; UseMDNS true; IO0 OLED mode=s; IO1 OLED mode=thp; IO2 OLED On; IO3 OLED Off; oledStart 120; KVInterval 10; <br />
KVIdentity 211; PCA301Plugs 036180=3,03A094=1,035FF1=6;</source><br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/help]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann auf die "Werkseinstellungen" zurückgesetzt werden.<br><br />
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen.<br />
Der Befehl dazu lautet: <source lang="php">8266e</source><br />
Er kann mit einem Terminalprogramm, von FHEM aus mit <source lang="php">set <myLaCrosseGateway> raw 8266e</source> oder von der Log-Page des LGW gesendet werden.<br />
<br />
Danach startet das LGW wieder als Access Point [[#LaCrosseGateway einrichten|initiale Konfiguration]] und die Konfiguration kann über die "Setup-Page" neu vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
Beispiel: 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
'''Besser:''' Alternativ kann die Höhe über NN auch auf der Setup-Page des LGW gesetzt werden.<br><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.<br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme Analogport==<br />
Der Analogport A0 des ESP8266 wird als Reading im LaCrosseGatewayModul aufgeführt.<br />
Um das zu aktivieren, muss man auf der Setup-page des LGW die Option "Send analog values" ankreuzen.<br />
Der Eingangsspannungsbereich von A0 ist 0V ... 1.0V, was zu einem Reading von 0 ... 1023 führt.<br />
<br />
==Inbetriebnahme von OLED-Display==<br />
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.<br />
Um auf dem 1.3" Display eine korrekte Darstellung zu erhalten, muss man die Checkbox 1.3" ankreuzen.<br />
<br />
Hinweis: das 0.96" Display bekommt man auch in einer Varianten, die SPI unterstützt. Diese Variante kann nur nach einem Umbau verwendet werden. <br />
<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
Zusätzlich kann der initiale Mode festgelegt werden (z.B. thp)<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
=Nano LaCrosse Gateway=<br />
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 jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende Bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung<br />
*[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]<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=20262LaCrosseGateway V1.x2017-02-24T12:01:03Z<p>HCS: </p>
<hr />
<div>Diese Wiki-Seite beschreibt ausschließlich das LaCrosseGateway V1.x, das auf dem ESP8266 basiert.<br/><br />
Für das LaCrosseGateway32 das auf dem ESP32 basiert, wird es eine eigene Seite geben.{{Randnotiz|RNText=Dokumentationsstand Version 1.27}}<br />
<br />
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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
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.<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht "offiziel" unterstützt, da ungetestet, können aber durchaus in bestimmten Fällen verwendet werden:<br />
** V0.9 (da ungetestet, bekommt man aber kaum noch zu kaufen)<br />
** V3.0 - passt nicht auf die Platine von PeMue, ist größer als das 2.0. Auf der Rückseite steht "Lolin".<br />
** Devkits mit einem CH340 USB converter (da ungetestet und teils falsche Bauform und von der USB-Anbindung her teils problematisch)<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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.'''<br />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren und Aktoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden.<br /><br />
(siehe [[JeeLink#Unterst.C3.BCtzte_Sensoren_und_Aktoren_incl._Wetterstation_WS_1600JeeLink|vom JeeLink unterstützte LaCrosse Sensoren und Aktoren]])<br />
<br />
Zusätzlich zu LaCrosse werden auch die folgenden Geräte unterstützt:<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !! Funktion !! Hinweise<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützt werden bis zu 50 Dosen) || <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose (funktioniert nur mit RFM69, nicht mit RFM12) || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
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)].<br />
<br />
==Firmware Download==<br />
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.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*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.<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per FHEM (USB)===<br />
Voraussetzungen:<br />
Auf dem FHEM-Server muss Python und pyserial installiert sein. Die Installation kann z.B. so erfolgen:<br />
*apt-get install python<br />
*wget https://bootstrap.pypa.io/get-pip.py<br />
*python get-pip.py<br />
*pip install pyserial<br />
<br />
Das Attribut "mode" muss auf USB gesetzt sein: attr myLaCrosseGateway mode USB<br />
<br />
Der flash-Vorgang wird gestartet mit: set myLaCrosseGateway flash<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
Beispiel: <code>define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</code><br />
''/dev/ttyUSB0'' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<code>ls -l /dev/serial/by-id</code><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="text">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<code>define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</code><br><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br><br><br />
<br />
Wenn man das LGW ohne WiFi betreibt, dann muss man natürlich auf die Annehmlichkeiten des Web-Frontends verzichten.<br><br />
In diesem Fall kann man die Konfiguration, die man über das Web-Frontend machen würde, über die serielle Schnittstelle machen.<br><br />
<br />
<code>set myLaCrosseGateway raw "SETUP ..."</code><br><br />
Das ... sind die gewünschten Einstellungen. Es müssen nicht alle Einstellungen gesendet werden sondern nur die, die man setzen will.<br><br />
Es werden nur die Einstellungen gesetzt und im EEPROM gespeichert, es wird aber kein Reboot ausgelöst<br><br />
Einen Reboot kann man mit "set myLaCrosseGateway raw 8377e" auslösen.<br><br />
Mehrere Einstellungen können durch Semikolon getrennt angegeben werden.<br><br />
Beispiel:<br />
<code>set myJeeLink213 raw "SETUP UseWiFi false; IO0 OLED mode=thp; IO1 OLED Off; CorrT -2.5; ISID 213"</code><br />
<br />
Man kann auf der seriellen Schnittstelle die aktuellen Einstellungen abrufen.<br />
Das command ist 1g<br><br />
<code>set myLaCrosseGateway raw 1g</code><br><br />
Man bekommt dann so etwas zurück:<br />
<source lang="text">SETUP ctSSID esesidee; ctPASS PasstWort; staticIP 192.168.31.211; staticMask 255.255.255.0; staticGW 192.168.31.1;<br />
HostName LGW211; StartupDelay 1; ISID 0xD3; Altitude 220; CorrT 0; CorrH 0; DataPort1 81; DataPort2 82; SerialBridgePort 85; <br />
SerialBridgeBaud 38400; UseMDNS true; IO0 OLED mode=s; IO1 OLED mode=thp; IO2 OLED On; IO3 OLED Off; oledStart 120; KVInterval 10; <br />
KVIdentity 211; PCA301Plugs 036180=3,03A094=1,035FF1=6;</source><br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/help]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann auf die "Werkseinstellungen" zurückgesetzt werden.<br><br />
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen.<br />
Der Befehl dazu lautet: <source lang="php">8266e</source><br />
Er kann mit einem Terminalprogramm, von FHEM aus mit <source lang="php">set <myLaCrosseGateway> raw 8266e</source> oder von der Log-Page des LGW gesendet werden.<br />
<br />
Danach startet das LGW wieder als Access Point [[#LaCrosseGateway einrichten|initiale Konfiguration]] und die Konfiguration kann über die "Setup-Page" neu vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
Beispiel: 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
'''Besser:''' Alternativ kann die Höhe über NN auch auf der Setup-Page des LGW gesetzt werden.<br><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.<br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme Analogport==<br />
Der Analogport A0 des ESP8266 wird als Reading im LaCrosseGatewayModul aufgeführt.<br />
Um das zu aktivieren, muss man auf der Setup-page des LGW die Option "Send analog values" ankreuzen.<br />
Der Eingangsspannungsbereich von A0 ist 0V ... 1.0V, was zu einem Reading von 0 ... 1023 führt.<br />
<br />
==Inbetriebnahme von OLED-Display==<br />
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.<br />
Um auf dem 1.3" Display eine korrekte Darstellung zu erhalten, muss man die Checkbox 1.3" ankreuzen.<br />
<br />
Hinweis: das 0.96" Display bekommt man auch in einer Varianten, die SPI unterstützt. Diese Variante kann nur nach einem Umbau verwendet werden. <br />
<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
Zusätzlich kann der initiale Mode festgelegt werden (z.B. thp)<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
=Nano LaCrosse Gateway=<br />
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 jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende Bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung<br />
*[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]<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=20261LaCrosseGateway V1.x2017-02-24T11:59:55Z<p>HCS: /* Platine bestücken (Hinweise und Tipps) */</p>
<hr />
<div>Diese Wiki-Seite beschreibt ausschließlich das LaCrosseGateway V1.x, das auf dem ESP8266 basiert.<br/><br />
Für das LaCrosseGateway32 das auf dem ESP32 basiert, wird es eine eigene Seite geben.{{Randnotiz|RNText=Dokumentationsstand Version 1.25}}<br />
<br />
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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
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.<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht "offiziel" unterstützt, da ungetestet, können aber durchaus in bestimmten Fällen verwendet werden:<br />
** V0.9 (da ungetestet, bekommt man aber kaum noch zu kaufen)<br />
** V3.0 - passt nicht auf die Platine von PeMue, ist größer als das 2.0. Auf der Rückseite steht "Lolin".<br />
** Devkits mit einem CH340 USB converter (da ungetestet und teils falsche Bauform und von der USB-Anbindung her teils problematisch)<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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.'''<br />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren und Aktoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden.<br /><br />
(siehe [[JeeLink#Unterst.C3.BCtzte_Sensoren_und_Aktoren_incl._Wetterstation_WS_1600JeeLink|vom JeeLink unterstützte LaCrosse Sensoren und Aktoren]])<br />
<br />
Zusätzlich zu LaCrosse werden auch die folgenden Geräte unterstützt:<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !! Funktion !! Hinweise<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützt werden bis zu 50 Dosen) || <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose (funktioniert nur mit RFM69, nicht mit RFM12) || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
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)].<br />
<br />
==Firmware Download==<br />
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.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*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.<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per FHEM (USB)===<br />
Voraussetzungen:<br />
Auf dem FHEM-Server muss Python und pyserial installiert sein. Die Installation kann z.B. so erfolgen:<br />
*apt-get install python<br />
*wget https://bootstrap.pypa.io/get-pip.py<br />
*python get-pip.py<br />
*pip install pyserial<br />
<br />
Das Attribut "mode" muss auf USB gesetzt sein: attr myLaCrosseGateway mode USB<br />
<br />
Der flash-Vorgang wird gestartet mit: set myLaCrosseGateway flash<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
Beispiel: <code>define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</code><br />
''/dev/ttyUSB0'' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<code>ls -l /dev/serial/by-id</code><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="text">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<code>define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</code><br><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br><br><br />
<br />
Wenn man das LGW ohne WiFi betreibt, dann muss man natürlich auf die Annehmlichkeiten des Web-Frontends verzichten.<br><br />
In diesem Fall kann man die Konfiguration, die man über das Web-Frontend machen würde, über die serielle Schnittstelle machen.<br><br />
<br />
<code>set myLaCrosseGateway raw "SETUP ..."</code><br><br />
Das ... sind die gewünschten Einstellungen. Es müssen nicht alle Einstellungen gesendet werden sondern nur die, die man setzen will.<br><br />
Es werden nur die Einstellungen gesetzt und im EEPROM gespeichert, es wird aber kein Reboot ausgelöst<br><br />
Einen Reboot kann man mit "set myLaCrosseGateway raw 8377e" auslösen.<br><br />
Mehrere Einstellungen können durch Semikolon getrennt angegeben werden.<br><br />
Beispiel:<br />
<code>set myJeeLink213 raw "SETUP UseWiFi false; IO0 OLED mode=thp; IO1 OLED Off; CorrT -2.5; ISID 213"</code><br />
<br />
Man kann auf der seriellen Schnittstelle die aktuellen Einstellungen abrufen.<br />
Das command ist 1g<br><br />
<code>set myLaCrosseGateway raw 1g</code><br><br />
Man bekommt dann so etwas zurück:<br />
<source lang="text">SETUP ctSSID esesidee; ctPASS PasstWort; staticIP 192.168.31.211; staticMask 255.255.255.0; staticGW 192.168.31.1;<br />
HostName LGW211; StartupDelay 1; ISID 0xD3; Altitude 220; CorrT 0; CorrH 0; DataPort1 81; DataPort2 82; SerialBridgePort 85; <br />
SerialBridgeBaud 38400; UseMDNS true; IO0 OLED mode=s; IO1 OLED mode=thp; IO2 OLED On; IO3 OLED Off; oledStart 120; KVInterval 10; <br />
KVIdentity 211; PCA301Plugs 036180=3,03A094=1,035FF1=6;</source><br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/help]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann auf die "Werkseinstellungen" zurückgesetzt werden.<br><br />
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen.<br />
Der Befehl dazu lautet: <source lang="php">8266e</source><br />
Er kann mit einem Terminalprogramm, von FHEM aus mit <source lang="php">set <myLaCrosseGateway> raw 8266e</source> oder von der Log-Page des LGW gesendet werden.<br />
<br />
Danach startet das LGW wieder als Access Point [[#LaCrosseGateway einrichten|initiale Konfiguration]] und die Konfiguration kann über die "Setup-Page" neu vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
Beispiel: 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
'''Besser:''' Alternativ kann die Höhe über NN auch auf der Setup-Page des LGW gesetzt werden.<br><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.<br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme Analogport==<br />
Der Analogport A0 des ESP8266 wird als Reading im LaCrosseGatewayModul aufgeführt.<br />
Um das zu aktivieren, muss man auf der Setup-page des LGW die Option "Send analog values" ankreuzen.<br />
Der Eingangsspannungsbereich von A0 ist 0V ... 1.0V, was zu einem Reading von 0 ... 1023 führt.<br />
<br />
==Inbetriebnahme von OLED-Display==<br />
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.<br />
Um auf dem 1.3" Display eine korrekte Darstellung zu erhalten, muss man die Checkbox 1.3" ankreuzen.<br />
<br />
Hinweis: das 0.96" Display bekommt man auch in einer Varianten, die SPI unterstützt. Diese Variante kann nur nach einem Umbau verwendet werden. <br />
<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
Zusätzlich kann der initiale Mode festgelegt werden (z.B. thp)<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
=Nano LaCrosse Gateway=<br />
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 jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende Bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung<br />
*[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]<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=20142LaCrosseGateway V1.x2017-02-21T11:39:26Z<p>HCS: /* Firmware aktualisieren */</p>
<hr />
<div>Diese Wiki-Seite beschreibt ausschließlich das LaCrosseGateway V1.x, das auf dem ESP8266 basiert.<br/><br />
Für das LaCrosseGateway32 das auf dem ESP32 basiert, wird es eine eigene Seite geben.{{Randnotiz|RNText=Dokumentationsstand Version 1.25}}<br />
<br />
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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
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.<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht "offiziel" unterstützt, da ungetestet, können aber durchaus in bestimmten Fällen verwendet werden:<br />
** V0.9 (da ungetestet, bekommt man aber kaum noch zu kaufen)<br />
** V3.0 - passt nicht auf die Platine von PeMue, ist größer als das 2.0. Auf der Rückseite steht "Lolin".<br />
** Devkits mit einem CH340 USB converter (da ungetestet und teils falsche Bauform und von der USB-Anbindung her teils problematisch)<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren und Aktoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden.<br /><br />
(siehe [[JeeLink#Unterst.C3.BCtzte_Sensoren_und_Aktoren_incl._Wetterstation_WS_1600JeeLink|vom JeeLink unterstützte LaCrosse Sensoren und Aktoren]])<br />
<br />
Zusätzlich zu LaCrosse werden auch die folgenden Geräte unterstützt:<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !! Funktion !! Hinweise<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützt werden bis zu 50 Dosen) || <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose (funktioniert nur mit RFM69, nicht mit RFM12) || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
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)].<br />
<br />
==Firmware Download==<br />
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.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*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.<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per FHEM (USB)===<br />
Voraussetzungen:<br />
Auf dem FHEM-Server muss Python und pyserial installiert sein. Die Installation kann z.B. so erfolgen:<br />
*apt-get install python<br />
*wget https://bootstrap.pypa.io/get-pip.py<br />
*python get-pip.py<br />
*pip install pyserial<br />
<br />
Das Attribut "mode" muss auf USB gesetzt sein: attr myLaCrosseGateway mode USB<br />
<br />
Der flash-Vorgang wird gestartet mit: set myLaCrosseGateway flash<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
Beispiel: <code>define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</code><br />
''/dev/ttyUSB0'' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<code>ls -l /dev/serial/by-id</code><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="text">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<code>define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</code><br><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br><br><br />
<br />
Wenn man das LGW ohne WiFi betreibt, dann muss man natürlich auf die Annehmlichkeiten des Web-Frontends verzichten.<br><br />
In diesem Fall kann man die Konfiguration, die man über das Web-Frontend machen würde, über die serielle Schnittstelle machen.<br><br />
<br />
<code>set myLaCrosseGateway raw "SETUP ..."</code><br><br />
Das ... sind die gewünschten Einstellungen. Es müssen nicht alle Einstellungen gesendet werden sondern nur die, die man setzen will.<br><br />
Es werden nur die Einstellungen gesetzt und im EEPROM gespeichert, es wird aber kein Reboot ausgelöst<br><br />
Einen Reboot kann man mit "set myLaCrosseGateway raw 8377e" auslösen.<br><br />
Mehrere Einstellungen können durch Semikolon getrennt angegeben werden.<br><br />
Beispiel:<br />
<code>set myJeeLink213 raw "SETUP UseWiFi false; IO0 OLED mode=thp; IO1 OLED Off; CorrT -2.5; ISID 213"</code><br />
<br />
Man kann auf der seriellen Schnittstelle die aktuellen Einstellungen abrufen.<br />
Das command ist 1g<br><br />
<code>set myLaCrosseGateway raw 1g</code><br><br />
Man bekommt dann so etwas zurück:<br />
<source lang="text">SETUP ctSSID esesidee; ctPASS PasstWort; staticIP 192.168.31.211; staticMask 255.255.255.0; staticGW 192.168.31.1;<br />
HostName LGW211; StartupDelay 1; ISID 0xD3; Altitude 220; CorrT 0; CorrH 0; DataPort1 81; DataPort2 82; SerialBridgePort 85; <br />
SerialBridgeBaud 38400; UseMDNS true; IO0 OLED mode=s; IO1 OLED mode=thp; IO2 OLED On; IO3 OLED Off; oledStart 120; KVInterval 10; <br />
KVIdentity 211; PCA301Plugs 036180=3,03A094=1,035FF1=6;</source><br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/help]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann auf die "Werkseinstellungen" zurückgesetzt werden.<br><br />
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen.<br />
Der Befehl dazu lautet: <source lang="php">8266e</source><br />
Er kann mit einem Terminalprogramm, von FHEM aus mit <source lang="php">set <myLaCrosseGateway> raw 8266e</source> oder von der Log-Page des LGW gesendet werden.<br />
<br />
Danach startet das LGW wieder als Access Point [[#LaCrosseGateway einrichten|initiale Konfiguration]] und die Konfiguration kann über die "Setup-Page" neu vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
Beispiel: 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
'''Besser:''' Alternativ kann die Höhe über NN auch auf der Setup-Page des LGW gesetzt werden.<br><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.<br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme Analogport==<br />
Der Analogport A0 des ESP8266 wird als Reading im LaCrosseGatewayModul aufgeführt.<br />
Um das zu aktivieren, muss man auf der Setup-page des LGW die Option "Send analog values" ankreuzen.<br />
Der Eingangsspannungsbereich von A0 ist 0V ... 1.0V, was zu einem Reading von 0 ... 1023 führt.<br />
<br />
==Inbetriebnahme von OLED-Display==<br />
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.<br />
Um auf dem 1.3" Display eine korrekte Darstellung zu erhalten, muss man die Checkbox 1.3" ankreuzen.<br />
<br />
Hinweis: das 0.96" Display bekommt man auch in einer Varianten, die SPI unterstützt. Diese Variante kann nur nach einem Umbau verwendet werden. <br />
<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
Zusätzlich kann der initiale Mode festgelegt werden (z.B. thp)<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
=Nano LaCrosse Gateway=<br />
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 jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende Bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung<br />
*[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]<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=JeeLink&diff=18427JeeLink2017-01-11T20:50:17Z<p>HCS: /* Getestete iT+ Sensoren incl. Wetterstation WS 1600 */</p>
<hr />
<div>'''JeeLink''' ist ein RF-Gerät im Formfaktor eines USB-Sticks mit externer Antenne.<br />
{{Infobox Hardware<br />
|Bild=JeeLink.jpg<br />
|Bildbeschreibung=JeeLink mit Drahtantenne<br />
|HWProtocol=PCA301, EC3000, RoomNode oder LaCrosse und EMT7110<br />
|HWType=[[Interface]]<br />
|HWCategory=<br />
|HWComm=433/868/913 MHz<br />
|HWChannels=?<br />
|HWVoltage=5 V<br />
|HWPowerConsumption=ca. 90 mA<br />
|HWPoweredBy=USB<br />
|HWSize=23*67*9mm<br />
|HWDeviceFHEM=[http://fhem.de/commandref.html#JeeLink 36_JeeLink.pm]<br />
|ModOwner={{Link2FU|430|Andre / justme1968}}<br />
|HWManufacturer=JeeLabs<br />
}}<br />
<br />
== Beschreibung ==<br />
Vergleichbar mit dem [[CUL]] von Busware, ist der JeeLink ein USB-Stick, mit dem Funk-Hausautomations-Komponenten angebunden werden können. CUL und JeeLink unterscheiden sich im Funkmodul (CUL -> CC1101; JeeLink -> RF12B), die nicht miteinander kompatibel sind. Daher kann man auch keinen CUL als JeeLink-Ersatz nutzen!<br />
<br />
Den JeeLink gibt es in einer <br />
* 433 MHz Version<br />
* 868 MHz Version (Standard)<br />
* 915 MHz Version (Betrieb in Europa nicht zugelassen)<br />
<br />
== Vorbereitung JeeLink == <br />
Um mit dem JeeLink die jeweils gewünschten Signale empfangen zu können, ist er zunächst mit der passenden Firmware zu versorgen. Dies kann auf zwei Arten geschehen. Entweder durch das selber kompilieren der Software und das Flashen aus der Arduino IDE oder aus Fhem heraus mit einem aktuellen Firmwareimage das per update mit ausgeliefert wird.<br />
<br />
=== Selber Kompilieren ===<br />
[[Datei:JeeLink_flashen_1.jpg|mini|100px|rechts|Vorbereitung: Arduino einrichten]]<br />
Um den JeeLink mit Fhem benutzen zu können, muss (mit der Arduino Software / Entwicklungsumgebung (IDE)) eine spezifische "Firmware" (ein Sketch) auf dem JeeLink installiert werden. Die generelle Vorbereitung für diese Aktion ist unabhängig vom benötigten Sketch und besteht aus den folgenden Schritten:<br />
* Für Windows oder Mac OS X den passenden [http://www.ftdichip.com/Drivers/VCP.htm FTDI Treiber] installieren, unter Linux ist dieser meist schon vorhanden<br />
* Installation der [http://arduino.cc/de/Guide/HomePage Arduino Software] für die benutzte Plattform (verfügbar sind Windows, Mac OS X und Linux)<br />
* Je nach Sketch einbinden der [https://github.com/jcw/jeelib/archive/master.zip Jeelabs Library] in die Arduino IDE<br />
* Herunterladen des benötigten Sketches (aus [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino FHEM/contrib])<br />
* Anschließen des JeeLink an einen USB-Anschluss des Rechners mit der Arduino IDE<br />
* Start der Arduino Software und JeeLink flashen<br />
<br />
=== JeeLink aus Arduino flashen ===<br />
[[Datei:JeeLink_flashen_2.jpg|mini|100px|rechts|JeeLink Flashen]]<br />
* Anschließen des JeeLink an einen USB-Anschluss des Rechners mit der Arduino IDE<br />
* Start der Arduino Software<br />
* Seriellen Port des JeeLink auswählen<br />
* Einstellungen: in den Tools als Board "Arduino Uno" auswählen<br />
* Sketch mit "Datei öffnen" auswählen<br />
* Upload klicken<br />
<br />
=== JeeLink aus Fhem flashen ===<br />
* Auf dem Fhem System muss <code>avrdude</code> installiert sein. Das kann z.B. über die "normale" Linux Paketverwaltung geschehen.<br />
* mit <code>set <JeeLinkDevice> flash [firmware]</code> wird das Flashen angestossen<br><code>firmware</code> kann LaCrosse, PCA301 oder EC3000 sein. Wenn <code>firmware</code> nicht angegeben wird versucht FHEM den Namen der zu flashenden Firmware aus der zur Zeit installierten Firmware abzuleiten.<br />
* im Fhem Log kann der Ausgang des Flashvorgangs kontrolliert werden<br />
* über das <code>flashCommand</code> Attribut lässt sich das Kommando zum Flashen an besondere Anforderungen anpassen <br />
<br />
'''Vorsicht bei Jeelink Clones!''' <br />
<br />
Jeelink Clones basierend auf dem Arduino Nano haben normalerweise keinen Optibootloader drauf im Gegensatz zum Original JeeLink und JeeNode. <br />
<br />
Konsequenz: <br />
<br />
Beim "Nano Clone" und ähnliches muß man zum flashen in FHEM die Baudrate setzen mit "-b 57600"<br />
<br />
Original JeeLink, original JeeNode, und alle Arduinos, die einen Optibootloader drauf haben flashen in FHEM ohne "-b 57600" <br />
<br />
== Hinweise zum Betrieb mit Fhem == <br />
Um den JeeLink (erstmalig) mit Fhem benutzen zu können, muss dieser erfolgreich geflasht worden sein.<br />
* JeeLink an den Fhem-Rechner anschließen<br />
* Auf Linux Systemen kann es notwendig sein, mit <code>mknod /dev/ttyUSB0 c 188 0</code> das Device anzulegen (bitte erst überprüfen, ob der Stick nicht automatisch erkannt wird)<br />
<br />
=== Definition in fhem.cfg ===<br />
Erforderliche Definitionen in Fhem:<br />
:<code>define myJeeLink JeeLink /dev/ttyUSBx@57600</code><br />
*'''USBx''' ist anzupassen an die aktuell benutzte Schnittstelle, 0 wenn sonst nichts am USB-Port hängt<br />
*x=0,1,2, usw.<br />
<br />
Die [http://fhem.de/commandref.html#autocreate autocreate-Funktion] sollte aktiv sein. Alle erkannten Devices (PCA301, LaCrosse Sensoren incl. IT+ Wetterstation WS1600, EMT7110, EC3000, und RoomNodes) werden dann automatisch angelegt, sobald die jeweiligen Daten empfangen werden.<br />
<br />
Pro Geräte-Art/Protokoll muss ein eigener JeeLink mit dem passenden Sketch zum Empfang dieser Daten vorhanden sein (es kann jeweils nur ein Sketch im JeeLink aktiv sein und es gibt (zumindest derzeit (04/2014)) keinen Sketch, der mehr als eines der Protokolle abdeckt).<br />
<br />
'''Anmerkung:''' Der LaCrosse Sketch deckt sowohl die LaCrosse Temperatursensoren, die IT+ Wetterstation WS1600 als auch den Energieverbrauchssensor EMT7110 ab.<br />
<br />
=== PCA301 Sketch ===<br />
Der Sketch für die Unterstützung der ''PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung'' (PCA301-pcaSerial.zip) kann aus dem [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ FHEM-Repository] heruntergeladen werden. Details zur Benutzung finden sich im Artikel zur [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung|PCA301]].<br />
<br />
Unter Umständen werden die Signale der PCA301 nicht empfangen. Insbesondere mit selbst erstellten "JeeLinks" durch wahrscheinlich hohe Bauteiltoleranzen der RF12B Sendeeinheiten. Mit dem im Sketch voreingestellten rf12_center_freq = 0xA6FE (868,9500 MHz) bekommt man in diesem Fall keine Steckdose angelernt.<br />
<br />
==== Frequenzanpassung über modifizierten Sketch ====<br />
Durch Tests mittels ''set <myJeeLink> raw +'' bzw ''set <myJeeLink> raw -'' kann man dann ermitteln, ob die Funksignale z.B. ab A703 bis A715 empfangen werden. Das entspricht einem Frequenzbereich zwischen 868,9750 MHz und 869,0550 MHz.<br />
Die Mitte ist die Lösung, die man dann im Sketch ändern muss:<br />
:<code>static uint16_t rf12_center_freq = 0xA70C;</code><br />
Anschließend auf den JeeLink neu flashen.<br />
<br />
==== Frequenzanpassung über Attribut initCommands ====<br />
Über das <code>initCommands</code> lässt sich die gefundene Frequenz einstellen, ohne dass die Firmware verändert werden muss. <br />
:<code>attr <JeeLinkDevice> initCommands <hhhh>h</code><br />
<br />
=== LaCrosse Sketch ===<br />
Der Sketch für die Unterstützung der LaCrosse Temperatursensoren, der IT+ Wetterstation WS1600 und des Energieverbrauchssensors EMT7110 so wie auch TechnoLine Sensoren (Temperatur, Luftfeuchte,...).<br><br />
<br />
* Er kann aus dem [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino FHEM-Repository] heruntergeladen werden.<br />
* Alternative ist den Sketch direkt über Fhem zu flashen <code>set <JeeLinkDevice> flash LaCrosse</code> z.B.: <code>set myJeeLink flash LaCrosse</code> zuvor sollte aber ein Fhem update mit <code>update</code> durchgeführt werden. <br />
<br><br />
<br />
'''Sensoren anlernen:<br />
Mit folgenden Befehl hat man die Möglichkeit 60 Sekunden ein Gerät anzulernen. Das Gerät erscheint dann unter der Rubrik LaCrosse. <code>set <JeeLinkDevice> LaCrossePairForSec 60</code> zum Beispiel: <code>set myJeeLink LaCrossePairForSec 60</code>.<br />
<br />
<br />
'''In der neuesten Version unterstützt er auch den SuperJee''' (siehe auch diesen {{Link2Forum|Topic=14786|Message=316924|LinkText=Forenbeitrag}}) mit folgenden Optionen: <br />
<br />
* Option 1 (Dual RFM): <br />
:Es kann ein zweiter RFM12B oder RFM69CW angeschlossen werden. Somit können zwei data rates (z.B. 17241 für TX29DTH und 8842 für WS 1600) gleichzeitig empfangen werden. Das geht natürlich auch mit dem toggle mode, nur ist es bei der Wetterstation ärgerlich, wenn man 30 Sekunden lang nichts empfängt und dadurch die alles entscheidende Windböe verpasst.<br />
* Option 2 (BMP180): <br />
:Da der Luftdruck in den Basisstationen gemessen wird, steht er für FHEM nicht zur Verfügung.<br />
Deshalb kann nun optional ein BMP180 oder BMP085 angeschlossen werden. Auch hier wird automatisch erkannt, ob er vorhanden ist. <br />
:Der BMP180 wird mit 3,3V versorgt und SDA mit PC4 und SCL mit PC5 verbunden (siehe die in diesem {{Link2Forum|Topic=14786|Message=316924|LinkText=Forenbeitrag}} angehängte SuperJee-CL.png) <br />
<br />
==== Übersicht Kommandos ====<br />
<n>a set to 0 if the blue LED bothers<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515) (for RFM #1)<br />
<n>F initial frequency in kHz (5 kHz steps, 860480 ... 879515) (for RFM #2)<br />
<n>h altituide above sea level<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps (for RFM #2)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
v show version<br />
<n>y if 1 all received packets will be retransmitted (Relay mode)<br />
<br />
==== Relay-Betrieb ====<br />
Der LaCrosse Sketch ermöglicht auch den Relay-Betrieb zur Reichweitenverbesserung. Er funktioniert damit ähnlich wie z.&nbsp;B. ein WLAN Range Extender. Wenn der Sketch für den Relay-Betrieb konfiguriert ist, wird jedes empfangene IT+ Datenpaket, das eine gültige Prüfsumme hat, direkt nach dem Empfang wieder gesendet.<br />
<br />
Das Prinzip ist generell recht einfach:<br />
# JeeLink im Sketch als Relais konfigurieren und flashen.<br />
# Auf "halber Strecke" (d.h. irgendwo zwischen dem primären Sender und dem entfernten Empfänger) auf ein USB-Steckernetzteil stecken. Der JeeLink arbeitet in diesem Modus "autonom", er benötigt also lediglich einen Spannungsversorgung.<br />
<br />
Der JeeLink empfängt und decodiert alle Protokolle, die er auch für FHEM unterstützt. Wenn er ein Paket empfangen hat (egal von welchem Sensor) und CRC OK war, dann sendet er es wieder aus. Der JeeLink am FHEM merkt keinen Unterschied. Falls ein Paket es doch bis zum FHEM direkt geschafft hat, kommt es dort zweimal an. Diese Situation muss in Fhem behandelt werden.<br />
<br />
Details zu diesem Betriebsmodus sind in diesen Forenbeiträgen ({{Link2Forum|Topic=14786|Message=165153|LinkText=LaCrosse}} bzw. {{Link2Forum|Topic=26494|Message=196648|LinkText=EMT7110}}) zu finden.<br />
<br />
==== Frequenzanpassung ====<br />
Ab Version LaCrosseITPlusReader.10.1e wurde der Sketch so erweitert, dass man von FHEM aus die Frequenz setzen kann. Dazu versteht der Sketch das neue Kommando "f":<br />
:<code>set myJeeLink raw 868295f</code><br />
setzt die Frequenz auf 868295 kHz.<br />
<br />
Die Frequenz kann im Bereich von 860480 kHz bis 879515 kHz in 5kHz -Schritten eingestellt werden.<br />
Details dazu in diesem {{Link2Forum|Topic=14786|Message=222541}} im Forum. Die Frequenzanpassung ist insbesondere beim 30.3155.WD häufig erforderlich, weshalb er als kritisch einzustufen und nicht zu empfehlen ist (siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}).<br />
<br />
==== Toggle und Datenrate ====<br />
Toggle<br />
t: toggle time<br />
20t = alle 20 Sekunden die Datenrate wechseln<br />
<br />
Datenrate<br />
m: toggle mode<br />
bits: 1= 17.241 kbps, 2= 9.579 kbps, 4= 8.842 kbps<br />
3m ist 17.241 kbps (TX29) und 9.579 kbps (TX35)<br />
<br />
Beispiel initCommands<br />
6m 30t v<br />
Zwischen 8.842 kbps und 9.579 kbps wechseln (4+2=6), alle 30 Sekunden<br />
<br />
==== Getestete iT+ Sensoren incl. Wetterstation WS 1600 ====<br />
{{Randnotiz|RNTyp=y|RNText=Die Ausführungen in diesem Abschnitt gelten ab der Version 10.1q auch für die Wetterstation WS1080.<br />
<br />
'''Wichtig WS1800''': die WS1080 gibt es (unter gleichem Namen) in einer "OOK"- und in einer "FSK"-Version.<br />
* Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version wird nicht unterstützt.<br />
* Die FSK-Version ist zu erkennen an einem runden grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Details dazu in {{Link2Forum|Topic=14786|Message=363766|LinkText=diesem Forenbeitrag}}<br />
<br/><br/>'''Wichtig: TFA 30.3187.IT'''<br><br />
Es wird von Anwendern berichtet, dass sie mehrere TFA 30.3187.IT gekauft haben, die alle die gleiche ID hatten. Dieser Sensor ist also nicht zu empfehlen, wenn man mehrere davon verwenden will.<br />
}}<br />
<br />
Die in der folgenden Liste (Quelle: {{Link2Forum|Topic=14786|Message=164801|LinkText=Fhem Forum}}) aufgeführten Sensoren wurden bisher erfolgreich getestet:<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Link<br />
|-<br />
| TX21IT || 17.241 kbps <br />
|-<br />
| TX25-IT || 17.241 kbps<br />
|-<br />
| TX27-IT || 17.241 kbps<br />
|-<br />
| TX29-IT || 17.241 kbps<br />
|-<br />
| TX29DTH-IT || 17.241 kbps<br />
|-<br />
| TX37 || 17.241 kbps<br />
|-<br />
| TX35TH-IT || 9.579 kbps<br />
|-<br />
| TX35DTH-IT || 9.579 kbps<br />
|-<br />
| 30.3143.IT || 17.241 kbps<br />
|-<br />
| 30.3144.IT || 17.241 kbps || ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps<br />
|-<br />
| 30.3155WD || 9.579 kbps || kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps || Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps || kritisch, siehe Randnotiz<br />
|-<br />
|| WS 1600 || 8.842 kbps || ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
|| WS 1080 || 17.241 kbps || ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|}<br />
<br />
==== EMT7110 ====<br />
Der [[EMT7110]] läuft mit einer Datenrate von 9.579 kbps (Details dazu in diesem {{Link2Forum|Topic=26494|LinkText=Forenthread}}).<br />
<br />
Werden Sensoren mit unterschiedlichen Datenraten gleichzeitig betrieben, ist der Toggle Modus einzustellen, z.B. mit dem Befehl <br />
:<code>initCommands 30t v </code><br />
wobei ''30t'' für "Toggle Modus, alle 30 Sekunden" steht.<br />
<br />
=== Energy Count 3000 Sketch ===<br />
Der Sketch für die Unterstützung der Energy Count 3000 Zwischenstecker kann aus dem [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ FHEM-Repository] heruntergeladen werden.<br />
<br />
Das Fhem Modul dazu (36_EC3000.pm) ist genau wie die Module für JeeLink (36_JeeLink.pm) und PCA301 (36_PCA301.pm) mittlerweile im aktuellen Fhem enthalten.<br />
<br />
=== JeeLabs RoomNode ===<br />
Eine Beschreibung zum Empfang der JeeLabs RoomNodes ist in {{Link2Forum|Topic=11648|Message=92037|LinkText=diesem Forenbeitrag}} enthalten.<br />
<br />
=== JeeLink LED deaktivieren ===<br />
Ein "dauerhaftes" Deaktivieren der LED des JeeLink ist möglich mit<br />
:<code>define not.global notify global:INITIALIZED set myJeeLink led off</code><br />
damit wird, sobald Fhem komplett gestartet ist, von Fhem der Befehl zum Ausschalten der LED gesendet. Alternativ kann mit <br />
:<code>attr myJeeLink initCommands 0a v</code><br />
dem Sketch die Anweisung gegeben werden, bei der Initialisierung die LED zu deaktivieren.<br />
''Quelle: dieser {{Link2Forum|Topic=27161|LinkText=Forenthread}}''<br />
<br />
=== Weitergehende Informationen ===<br />
Hinweise zum Betrieb eines JeeLink mit Fhem finden sich aktuell in größerer Anzahl in verschiedenen Diskussionen im Forum:<br />
* {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301}} - Analyse des Funkprotokolls; Anfänge der Entstehung der PCA301 Unterstützung in Fhem.<br />
* {{Link2Forum|Topic=14786|LinkText=JeeLink / LaCrosse}} - JeeLink Modul zur Einbindung von La Crosse<br />
* {{Link2Forum|Topic=11648|Message=92019|LinkText=JeeLink / EC3000}} - Anfänge der Entstehung der EC3000 Unterstützung in Fhem.<br />
* Hinweise zu {{Link2Forum|Topic=11648|Message=92037|LinkText=JeeLabs RoomNode}} und anderen JeeLab Nodes<br />
* {{Link2Forum|Topic=25399|Message=183910|LinkText=JeeLink mit FHEM2FHEM nutzen}}<br />
<br />
== Bekannte Probleme ==<br />
* Beim Betrieb an einer [[AVM Fritz!Box|FritzBox]] wird der JeeLink unter Umständen als ''Für die Nutzung mit dem USB-Fernanschluss reserviert'' angezeigt. In diesem Fall muss die Reservierung deaktiviert/aufgehoben werden (Details dazu in diesem {{Link2Forum|Topic=16579|LinkText=Forenthread}}).<br />
* Die Version ''v3c'' des JeeLink funktioniert (Stand 06/2015) nur mit dem LaCrosse Sketch. PCA301 und EC3000 Sketch sind auf den JeeLink Classic beschränkt (siehe unter anderem Diskussion im Forum, startend {{Link2Forum|Topic=11648|Message=308267|LinkText=hier}}).<br />
<br />
== Weblinks ==<br />
* [http://jeelabs.com/products/jeelink JeeLabs], JeeLink Hersteller<br />
* [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ PCA301 Sketch] im SVN<br />
* [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ LaCrosse Sketch] im SVN<br />
* [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ EC3000 Sketch] im SVN<br />
* [http://blog.moneybag.de/hausautomation-fhem-mit-funksteckdose-energiemessung-elv-pca-301/ Blog] zum Thema JeeLink zur Anbindung von PCA301 und von LaCrosse Temperatursensoren an Fhem<br />
* {{Link2Forum|Topic=23217|LinkText=LevelSender}} Tankfüllstand mit JeeLink empfangen<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:Other Components]]</div>HCShttp://wiki.fhem.de/w/index.php?title=JeeLink&diff=18426JeeLink2017-01-11T20:49:34Z<p>HCS: /* Getestete iT+ Sensoren incl. Wetterstation WS 1600 */</p>
<hr />
<div>'''JeeLink''' ist ein RF-Gerät im Formfaktor eines USB-Sticks mit externer Antenne.<br />
{{Infobox Hardware<br />
|Bild=JeeLink.jpg<br />
|Bildbeschreibung=JeeLink mit Drahtantenne<br />
|HWProtocol=PCA301, EC3000, RoomNode oder LaCrosse und EMT7110<br />
|HWType=[[Interface]]<br />
|HWCategory=<br />
|HWComm=433/868/913 MHz<br />
|HWChannels=?<br />
|HWVoltage=5 V<br />
|HWPowerConsumption=ca. 90 mA<br />
|HWPoweredBy=USB<br />
|HWSize=23*67*9mm<br />
|HWDeviceFHEM=[http://fhem.de/commandref.html#JeeLink 36_JeeLink.pm]<br />
|ModOwner={{Link2FU|430|Andre / justme1968}}<br />
|HWManufacturer=JeeLabs<br />
}}<br />
<br />
== Beschreibung ==<br />
Vergleichbar mit dem [[CUL]] von Busware, ist der JeeLink ein USB-Stick, mit dem Funk-Hausautomations-Komponenten angebunden werden können. CUL und JeeLink unterscheiden sich im Funkmodul (CUL -> CC1101; JeeLink -> RF12B), die nicht miteinander kompatibel sind. Daher kann man auch keinen CUL als JeeLink-Ersatz nutzen!<br />
<br />
Den JeeLink gibt es in einer <br />
* 433 MHz Version<br />
* 868 MHz Version (Standard)<br />
* 915 MHz Version (Betrieb in Europa nicht zugelassen)<br />
<br />
== Vorbereitung JeeLink == <br />
Um mit dem JeeLink die jeweils gewünschten Signale empfangen zu können, ist er zunächst mit der passenden Firmware zu versorgen. Dies kann auf zwei Arten geschehen. Entweder durch das selber kompilieren der Software und das Flashen aus der Arduino IDE oder aus Fhem heraus mit einem aktuellen Firmwareimage das per update mit ausgeliefert wird.<br />
<br />
=== Selber Kompilieren ===<br />
[[Datei:JeeLink_flashen_1.jpg|mini|100px|rechts|Vorbereitung: Arduino einrichten]]<br />
Um den JeeLink mit Fhem benutzen zu können, muss (mit der Arduino Software / Entwicklungsumgebung (IDE)) eine spezifische "Firmware" (ein Sketch) auf dem JeeLink installiert werden. Die generelle Vorbereitung für diese Aktion ist unabhängig vom benötigten Sketch und besteht aus den folgenden Schritten:<br />
* Für Windows oder Mac OS X den passenden [http://www.ftdichip.com/Drivers/VCP.htm FTDI Treiber] installieren, unter Linux ist dieser meist schon vorhanden<br />
* Installation der [http://arduino.cc/de/Guide/HomePage Arduino Software] für die benutzte Plattform (verfügbar sind Windows, Mac OS X und Linux)<br />
* Je nach Sketch einbinden der [https://github.com/jcw/jeelib/archive/master.zip Jeelabs Library] in die Arduino IDE<br />
* Herunterladen des benötigten Sketches (aus [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino FHEM/contrib])<br />
* Anschließen des JeeLink an einen USB-Anschluss des Rechners mit der Arduino IDE<br />
* Start der Arduino Software und JeeLink flashen<br />
<br />
=== JeeLink aus Arduino flashen ===<br />
[[Datei:JeeLink_flashen_2.jpg|mini|100px|rechts|JeeLink Flashen]]<br />
* Anschließen des JeeLink an einen USB-Anschluss des Rechners mit der Arduino IDE<br />
* Start der Arduino Software<br />
* Seriellen Port des JeeLink auswählen<br />
* Einstellungen: in den Tools als Board "Arduino Uno" auswählen<br />
* Sketch mit "Datei öffnen" auswählen<br />
* Upload klicken<br />
<br />
=== JeeLink aus Fhem flashen ===<br />
* Auf dem Fhem System muss <code>avrdude</code> installiert sein. Das kann z.B. über die "normale" Linux Paketverwaltung geschehen.<br />
* mit <code>set <JeeLinkDevice> flash [firmware]</code> wird das Flashen angestossen<br><code>firmware</code> kann LaCrosse, PCA301 oder EC3000 sein. Wenn <code>firmware</code> nicht angegeben wird versucht FHEM den Namen der zu flashenden Firmware aus der zur Zeit installierten Firmware abzuleiten.<br />
* im Fhem Log kann der Ausgang des Flashvorgangs kontrolliert werden<br />
* über das <code>flashCommand</code> Attribut lässt sich das Kommando zum Flashen an besondere Anforderungen anpassen <br />
<br />
'''Vorsicht bei Jeelink Clones!''' <br />
<br />
Jeelink Clones basierend auf dem Arduino Nano haben normalerweise keinen Optibootloader drauf im Gegensatz zum Original JeeLink und JeeNode. <br />
<br />
Konsequenz: <br />
<br />
Beim "Nano Clone" und ähnliches muß man zum flashen in FHEM die Baudrate setzen mit "-b 57600"<br />
<br />
Original JeeLink, original JeeNode, und alle Arduinos, die einen Optibootloader drauf haben flashen in FHEM ohne "-b 57600" <br />
<br />
== Hinweise zum Betrieb mit Fhem == <br />
Um den JeeLink (erstmalig) mit Fhem benutzen zu können, muss dieser erfolgreich geflasht worden sein.<br />
* JeeLink an den Fhem-Rechner anschließen<br />
* Auf Linux Systemen kann es notwendig sein, mit <code>mknod /dev/ttyUSB0 c 188 0</code> das Device anzulegen (bitte erst überprüfen, ob der Stick nicht automatisch erkannt wird)<br />
<br />
=== Definition in fhem.cfg ===<br />
Erforderliche Definitionen in Fhem:<br />
:<code>define myJeeLink JeeLink /dev/ttyUSBx@57600</code><br />
*'''USBx''' ist anzupassen an die aktuell benutzte Schnittstelle, 0 wenn sonst nichts am USB-Port hängt<br />
*x=0,1,2, usw.<br />
<br />
Die [http://fhem.de/commandref.html#autocreate autocreate-Funktion] sollte aktiv sein. Alle erkannten Devices (PCA301, LaCrosse Sensoren incl. IT+ Wetterstation WS1600, EMT7110, EC3000, und RoomNodes) werden dann automatisch angelegt, sobald die jeweiligen Daten empfangen werden.<br />
<br />
Pro Geräte-Art/Protokoll muss ein eigener JeeLink mit dem passenden Sketch zum Empfang dieser Daten vorhanden sein (es kann jeweils nur ein Sketch im JeeLink aktiv sein und es gibt (zumindest derzeit (04/2014)) keinen Sketch, der mehr als eines der Protokolle abdeckt).<br />
<br />
'''Anmerkung:''' Der LaCrosse Sketch deckt sowohl die LaCrosse Temperatursensoren, die IT+ Wetterstation WS1600 als auch den Energieverbrauchssensor EMT7110 ab.<br />
<br />
=== PCA301 Sketch ===<br />
Der Sketch für die Unterstützung der ''PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung'' (PCA301-pcaSerial.zip) kann aus dem [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ FHEM-Repository] heruntergeladen werden. Details zur Benutzung finden sich im Artikel zur [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung|PCA301]].<br />
<br />
Unter Umständen werden die Signale der PCA301 nicht empfangen. Insbesondere mit selbst erstellten "JeeLinks" durch wahrscheinlich hohe Bauteiltoleranzen der RF12B Sendeeinheiten. Mit dem im Sketch voreingestellten rf12_center_freq = 0xA6FE (868,9500 MHz) bekommt man in diesem Fall keine Steckdose angelernt.<br />
<br />
==== Frequenzanpassung über modifizierten Sketch ====<br />
Durch Tests mittels ''set <myJeeLink> raw +'' bzw ''set <myJeeLink> raw -'' kann man dann ermitteln, ob die Funksignale z.B. ab A703 bis A715 empfangen werden. Das entspricht einem Frequenzbereich zwischen 868,9750 MHz und 869,0550 MHz.<br />
Die Mitte ist die Lösung, die man dann im Sketch ändern muss:<br />
:<code>static uint16_t rf12_center_freq = 0xA70C;</code><br />
Anschließend auf den JeeLink neu flashen.<br />
<br />
==== Frequenzanpassung über Attribut initCommands ====<br />
Über das <code>initCommands</code> lässt sich die gefundene Frequenz einstellen, ohne dass die Firmware verändert werden muss. <br />
:<code>attr <JeeLinkDevice> initCommands <hhhh>h</code><br />
<br />
=== LaCrosse Sketch ===<br />
Der Sketch für die Unterstützung der LaCrosse Temperatursensoren, der IT+ Wetterstation WS1600 und des Energieverbrauchssensors EMT7110 so wie auch TechnoLine Sensoren (Temperatur, Luftfeuchte,...).<br><br />
<br />
* Er kann aus dem [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino FHEM-Repository] heruntergeladen werden.<br />
* Alternative ist den Sketch direkt über Fhem zu flashen <code>set <JeeLinkDevice> flash LaCrosse</code> z.B.: <code>set myJeeLink flash LaCrosse</code> zuvor sollte aber ein Fhem update mit <code>update</code> durchgeführt werden. <br />
<br><br />
<br />
'''Sensoren anlernen:<br />
Mit folgenden Befehl hat man die Möglichkeit 60 Sekunden ein Gerät anzulernen. Das Gerät erscheint dann unter der Rubrik LaCrosse. <code>set <JeeLinkDevice> LaCrossePairForSec 60</code> zum Beispiel: <code>set myJeeLink LaCrossePairForSec 60</code>.<br />
<br />
<br />
'''In der neuesten Version unterstützt er auch den SuperJee''' (siehe auch diesen {{Link2Forum|Topic=14786|Message=316924|LinkText=Forenbeitrag}}) mit folgenden Optionen: <br />
<br />
* Option 1 (Dual RFM): <br />
:Es kann ein zweiter RFM12B oder RFM69CW angeschlossen werden. Somit können zwei data rates (z.B. 17241 für TX29DTH und 8842 für WS 1600) gleichzeitig empfangen werden. Das geht natürlich auch mit dem toggle mode, nur ist es bei der Wetterstation ärgerlich, wenn man 30 Sekunden lang nichts empfängt und dadurch die alles entscheidende Windböe verpasst.<br />
* Option 2 (BMP180): <br />
:Da der Luftdruck in den Basisstationen gemessen wird, steht er für FHEM nicht zur Verfügung.<br />
Deshalb kann nun optional ein BMP180 oder BMP085 angeschlossen werden. Auch hier wird automatisch erkannt, ob er vorhanden ist. <br />
:Der BMP180 wird mit 3,3V versorgt und SDA mit PC4 und SCL mit PC5 verbunden (siehe die in diesem {{Link2Forum|Topic=14786|Message=316924|LinkText=Forenbeitrag}} angehängte SuperJee-CL.png) <br />
<br />
==== Übersicht Kommandos ====<br />
<n>a set to 0 if the blue LED bothers<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515) (for RFM #1)<br />
<n>F initial frequency in kHz (5 kHz steps, 860480 ... 879515) (for RFM #2)<br />
<n>h altituide above sea level<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps (for RFM #2)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
v show version<br />
<n>y if 1 all received packets will be retransmitted (Relay mode)<br />
<br />
==== Relay-Betrieb ====<br />
Der LaCrosse Sketch ermöglicht auch den Relay-Betrieb zur Reichweitenverbesserung. Er funktioniert damit ähnlich wie z.&nbsp;B. ein WLAN Range Extender. Wenn der Sketch für den Relay-Betrieb konfiguriert ist, wird jedes empfangene IT+ Datenpaket, das eine gültige Prüfsumme hat, direkt nach dem Empfang wieder gesendet.<br />
<br />
Das Prinzip ist generell recht einfach:<br />
# JeeLink im Sketch als Relais konfigurieren und flashen.<br />
# Auf "halber Strecke" (d.h. irgendwo zwischen dem primären Sender und dem entfernten Empfänger) auf ein USB-Steckernetzteil stecken. Der JeeLink arbeitet in diesem Modus "autonom", er benötigt also lediglich einen Spannungsversorgung.<br />
<br />
Der JeeLink empfängt und decodiert alle Protokolle, die er auch für FHEM unterstützt. Wenn er ein Paket empfangen hat (egal von welchem Sensor) und CRC OK war, dann sendet er es wieder aus. Der JeeLink am FHEM merkt keinen Unterschied. Falls ein Paket es doch bis zum FHEM direkt geschafft hat, kommt es dort zweimal an. Diese Situation muss in Fhem behandelt werden.<br />
<br />
Details zu diesem Betriebsmodus sind in diesen Forenbeiträgen ({{Link2Forum|Topic=14786|Message=165153|LinkText=LaCrosse}} bzw. {{Link2Forum|Topic=26494|Message=196648|LinkText=EMT7110}}) zu finden.<br />
<br />
==== Frequenzanpassung ====<br />
Ab Version LaCrosseITPlusReader.10.1e wurde der Sketch so erweitert, dass man von FHEM aus die Frequenz setzen kann. Dazu versteht der Sketch das neue Kommando "f":<br />
:<code>set myJeeLink raw 868295f</code><br />
setzt die Frequenz auf 868295 kHz.<br />
<br />
Die Frequenz kann im Bereich von 860480 kHz bis 879515 kHz in 5kHz -Schritten eingestellt werden.<br />
Details dazu in diesem {{Link2Forum|Topic=14786|Message=222541}} im Forum. Die Frequenzanpassung ist insbesondere beim 30.3155.WD häufig erforderlich, weshalb er als kritisch einzustufen und nicht zu empfehlen ist (siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}).<br />
<br />
==== Toggle und Datenrate ====<br />
Toggle<br />
t: toggle time<br />
20t = alle 20 Sekunden die Datenrate wechseln<br />
<br />
Datenrate<br />
m: toggle mode<br />
bits: 1= 17.241 kbps, 2= 9.579 kbps, 4= 8.842 kbps<br />
3m ist 17.241 kbps (TX29) und 9.579 kbps (TX35)<br />
<br />
Beispiel initCommands<br />
6m 30t v<br />
Zwischen 8.842 kbps und 9.579 kbps wechseln (4+2=6), alle 30 Sekunden<br />
<br />
==== Getestete iT+ Sensoren incl. Wetterstation WS 1600 ====<br />
{{Randnotiz|RNTyp=y|RNText=Die Ausführungen in diesem Abschnitt gelten ab der Version 10.1q auch für die Wetterstation WS1080.<br />
<br />
'''Wichtig WS1800''': die WS1080 gibt es (unter gleichem Namen) in einer "OOK"- und in einer "FSK"-Version.<br />
* Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version wird nicht unterstützt.<br />
* Die FSK-Version ist zu erkennen an einem runden grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Details dazu in {{Link2Forum|Topic=14786|Message=363766|LinkText=diesem Forenbeitrag}}<br />
<br/><br/>'''Wichtig: TFA 30.3187.IT'''<br><br />
Es wird von Anwendern berichtet, dass sie mehrere TFA 30.3187.IT gekauft haben, die alle die gleiche ID hatten. Dieser Sensor ist also nicht zu empfehlen, wenn man mehrer davon verwenden will.<br />
}}<br />
<br />
Die in der folgenden Liste (Quelle: {{Link2Forum|Topic=14786|Message=164801|LinkText=Fhem Forum}}) aufgeführten Sensoren wurden bisher erfolgreich getestet:<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Link<br />
|-<br />
| TX21IT || 17.241 kbps <br />
|-<br />
| TX25-IT || 17.241 kbps<br />
|-<br />
| TX27-IT || 17.241 kbps<br />
|-<br />
| TX29-IT || 17.241 kbps<br />
|-<br />
| TX29DTH-IT || 17.241 kbps<br />
|-<br />
| TX37 || 17.241 kbps<br />
|-<br />
| TX35TH-IT || 9.579 kbps<br />
|-<br />
| TX35DTH-IT || 9.579 kbps<br />
|-<br />
| 30.3143.IT || 17.241 kbps<br />
|-<br />
| 30.3144.IT || 17.241 kbps || ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps<br />
|-<br />
| 30.3155WD || 9.579 kbps || kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps || Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps || kritisch, siehe Randnotiz<br />
|-<br />
|| WS 1600 || 8.842 kbps || ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
|| WS 1080 || 17.241 kbps || ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|}<br />
<br />
==== EMT7110 ====<br />
Der [[EMT7110]] läuft mit einer Datenrate von 9.579 kbps (Details dazu in diesem {{Link2Forum|Topic=26494|LinkText=Forenthread}}).<br />
<br />
Werden Sensoren mit unterschiedlichen Datenraten gleichzeitig betrieben, ist der Toggle Modus einzustellen, z.B. mit dem Befehl <br />
:<code>initCommands 30t v </code><br />
wobei ''30t'' für "Toggle Modus, alle 30 Sekunden" steht.<br />
<br />
=== Energy Count 3000 Sketch ===<br />
Der Sketch für die Unterstützung der Energy Count 3000 Zwischenstecker kann aus dem [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ FHEM-Repository] heruntergeladen werden.<br />
<br />
Das Fhem Modul dazu (36_EC3000.pm) ist genau wie die Module für JeeLink (36_JeeLink.pm) und PCA301 (36_PCA301.pm) mittlerweile im aktuellen Fhem enthalten.<br />
<br />
=== JeeLabs RoomNode ===<br />
Eine Beschreibung zum Empfang der JeeLabs RoomNodes ist in {{Link2Forum|Topic=11648|Message=92037|LinkText=diesem Forenbeitrag}} enthalten.<br />
<br />
=== JeeLink LED deaktivieren ===<br />
Ein "dauerhaftes" Deaktivieren der LED des JeeLink ist möglich mit<br />
:<code>define not.global notify global:INITIALIZED set myJeeLink led off</code><br />
damit wird, sobald Fhem komplett gestartet ist, von Fhem der Befehl zum Ausschalten der LED gesendet. Alternativ kann mit <br />
:<code>attr myJeeLink initCommands 0a v</code><br />
dem Sketch die Anweisung gegeben werden, bei der Initialisierung die LED zu deaktivieren.<br />
''Quelle: dieser {{Link2Forum|Topic=27161|LinkText=Forenthread}}''<br />
<br />
=== Weitergehende Informationen ===<br />
Hinweise zum Betrieb eines JeeLink mit Fhem finden sich aktuell in größerer Anzahl in verschiedenen Diskussionen im Forum:<br />
* {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301}} - Analyse des Funkprotokolls; Anfänge der Entstehung der PCA301 Unterstützung in Fhem.<br />
* {{Link2Forum|Topic=14786|LinkText=JeeLink / LaCrosse}} - JeeLink Modul zur Einbindung von La Crosse<br />
* {{Link2Forum|Topic=11648|Message=92019|LinkText=JeeLink / EC3000}} - Anfänge der Entstehung der EC3000 Unterstützung in Fhem.<br />
* Hinweise zu {{Link2Forum|Topic=11648|Message=92037|LinkText=JeeLabs RoomNode}} und anderen JeeLab Nodes<br />
* {{Link2Forum|Topic=25399|Message=183910|LinkText=JeeLink mit FHEM2FHEM nutzen}}<br />
<br />
== Bekannte Probleme ==<br />
* Beim Betrieb an einer [[AVM Fritz!Box|FritzBox]] wird der JeeLink unter Umständen als ''Für die Nutzung mit dem USB-Fernanschluss reserviert'' angezeigt. In diesem Fall muss die Reservierung deaktiviert/aufgehoben werden (Details dazu in diesem {{Link2Forum|Topic=16579|LinkText=Forenthread}}).<br />
* Die Version ''v3c'' des JeeLink funktioniert (Stand 06/2015) nur mit dem LaCrosse Sketch. PCA301 und EC3000 Sketch sind auf den JeeLink Classic beschränkt (siehe unter anderem Diskussion im Forum, startend {{Link2Forum|Topic=11648|Message=308267|LinkText=hier}}).<br />
<br />
== Weblinks ==<br />
* [http://jeelabs.com/products/jeelink JeeLabs], JeeLink Hersteller<br />
* [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ PCA301 Sketch] im SVN<br />
* [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ LaCrosse Sketch] im SVN<br />
* [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ EC3000 Sketch] im SVN<br />
* [http://blog.moneybag.de/hausautomation-fhem-mit-funksteckdose-energiemessung-elv-pca-301/ Blog] zum Thema JeeLink zur Anbindung von PCA301 und von LaCrosse Temperatursensoren an Fhem<br />
* {{Link2Forum|Topic=23217|LinkText=LevelSender}} Tankfüllstand mit JeeLink empfangen<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:Other Components]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=18361LaCrosseGateway V1.x2017-01-07T22:03:33Z<p>HCS: </p>
<hr />
<div>Diese Wiki-Seite beschreibt ausschließlich das LaCrosseGateway V1.x, das auf dem ESP8266 basiert.<br/><br />
Für das LaCrosseGateway32 das auf dem ESP32 basiert, wird es eine eigene Seite geben.{{Randnotiz|RNText=Dokumentationsstand Version 1.25}}<br />
<br />
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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
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.<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht "offiziel" unterstützt, da ungetestet, können aber durchaus in bestimmten Fällen verwendet werden:<br />
** V0.9 (da ungetestet, bekommt man aber kaum noch zu kaufen)<br />
** V3.0 - passt nicht auf die Platine von PeMue, ist größer als das 2.0. Auf der Rückseite steht "Lolin".<br />
** Devkits mit einem CH340 USB converter (da ungetestet und teils falsche Bauform und von der USB-Anbindung her teils problematisch)<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
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)].<br />
<br />
==Firmware Download==<br />
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.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*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.<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
Beispiel: <code>define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</code><br />
''/dev/ttyUSB0'' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<code>ls -l /dev/serial/by-id</code><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="text">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<code>define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</code><br><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br><br><br />
<br />
Wenn man das LGW ohne WiFi betreibt, dann muss man natürlich auf die Annehmlichkeiten des Web-Frontends verzichten.<br><br />
In diesem Fall kann man die Konfiguration, die man über das Web-Frontend machen würde, über die serielle Schnittstelle machen.<br><br />
<br />
<code>set myLaCrosseGateway raw "SETUP ..."</code><br><br />
Das ... sind die gewünschten Einstellungen. Es müssen nicht alle Einstellungen gesendet werden sondern nur die, die man setzen will.<br><br />
Es werden nur die Einstellungen gesetzt und im EEPROM gespeichert, es wird aber kein Reboot ausgelöst<br><br />
Einen Reboot kann man mit "set myLaCrosseGateway raw 8377e" auslösen.<br><br />
Mehrere Einstellungen können durch Semikolon getrennt angegeben werden.<br><br />
Beispiel:<br />
<code>set myJeeLink213 raw "SETUP UseWiFi false; IO0 OLED mode=thp; IO1 OLED Off; CorrT -2.5; ISID 213"</code><br />
<br />
Man kann auf der seriellen Schnittstelle die aktuellen Einstellungen abrufen.<br />
Das command ist 1g<br><br />
<code>set myLaCrosseGateway raw 1g</code><br><br />
Man bekommt dann so etwas zurück:<br />
<source lang="text">SETUP ctSSID esesidee; ctPASS PasstWort; staticIP 192.168.31.211; staticMask 255.255.255.0; staticGW 192.168.31.1;<br />
HostName LGW211; StartupDelay 1; ISID 0xD3; Altitude 220; CorrT 0; CorrH 0; DataPort1 81; DataPort2 82; SerialBridgePort 85; <br />
SerialBridgeBaud 38400; UseMDNS true; IO0 OLED mode=s; IO1 OLED mode=thp; IO2 OLED On; IO3 OLED Off; oledStart 120; KVInterval 10; <br />
KVIdentity 211; PCA301Plugs 036180=3,03A094=1,035FF1=6;</source><br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/help]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann auf die "Werkseinstellungen" zurückgesetzt werden.<br><br />
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen.<br />
Der Befehl dazu lautet: <source lang="php">8266e</source><br />
Er kann mit einem Terminalprogramm, von FHEM aus mit <source lang="php">set <myLaCrosseGateway> raw 8266e</source> oder von der Log-Page des LGW gesendet werden.<br />
<br />
Danach startet das LGW wieder als Access Point [[#LaCrosseGateway einrichten|initiale Konfiguration]] und die Konfiguration kann über die "Setup-Page" neu vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
Beispiel: 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
'''Besser:''' Alternativ kann die Höhe über NN auch auf der Setup-Page des LGW gesetzt werden.<br><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.<br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme Analogport==<br />
Der Analogport A0 des ESP8266 wird als Reading im LaCrosseGatewayModul aufgeführt.<br />
Um das zu aktivieren, muss man auf der Setup-page des LGW die Option "Send analog values" ankreuzen.<br />
Der Eingangsspannungsbereich von A0 ist 0V ... 1.0V, was zu einem Reading von 0 ... 1023 führt.<br />
<br />
==Inbetriebnahme von OLED-Display==<br />
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.<br />
Um auf dem 1.3" Display eine korrekte Darstellung zu erhalten, muss man die Checkbox 1.3" ankreuzen.<br />
<br />
Hinweis: das 0.96" Display bekommt man auch in einer Varianten, die SPI unterstützt. Diese Variante kann nur nach einem Umbau verwendet werden. <br />
<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
Zusätzlich kann der initiale Mode festgelegt werden (z.B. thp)<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
=Nano LaCrosse Gateway=<br />
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 jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende Bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung<br />
*[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]<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=18360LaCrosseGateway V1.x2017-01-07T21:56:29Z<p>HCS: </p>
<hr />
<div>Diese Wiki-Seite beschreibt ausschließlich das LaCrosseGateway V1.x, das auf dem ESP8266 basiert.<br />
Für das LaCrosseGateway32 das auf dem ESP32 basiert, wird es eine eigene Seite geben.<br />
<br />
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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.22}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht "offiziel" unterstützt, da ungetestet, können aber durchaus in bestimmten Fällen verwendet werden:<br />
** V0.9 (da ungetestet, bekommt man aber kaum noch zu kaufen)<br />
** V3.0 - passt nicht auf die Platine von PeMue, ist größer als das 2.0. Auf der Rückseite steht "Lolin".<br />
** Devkits mit einem CH340 USB converter (da ungetestet und teils falsche Bauform und von der USB-Anbindung her teils problematisch)<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
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)].<br />
<br />
==Firmware Download==<br />
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.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*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.<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
Beispiel: <code>define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</code><br />
''/dev/ttyUSB0'' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<code>ls -l /dev/serial/by-id</code><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="text">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<code>define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</code><br><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br><br><br />
<br />
Wenn man das LGW ohne WiFi betreibt, dann muss man natürlich auf die Annehmlichkeiten des Web-Frontends verzichten.<br><br />
In diesem Fall kann man die Konfiguration, die man über das Web-Frontend machen würde, über die serielle Schnittstelle machen.<br><br />
<br />
<code>set myLaCrosseGateway raw "SETUP ..."</code><br><br />
Das ... sind die gewünschten Einstellungen. Es müssen nicht alle Einstellungen gesendet werden sondern nur die, die man setzen will.<br><br />
Es werden nur die Einstellungen gesetzt und im EEPROM gespeichert, es wird aber kein Reboot ausgelöst<br><br />
Einen Reboot kann man mit "set myLaCrosseGateway raw 8377e" auslösen.<br><br />
Mehrere Einstellungen können durch Semikolon getrennt angegeben werden.<br><br />
Beispiel:<br />
<code>set myJeeLink213 raw "SETUP UseWiFi false; IO0 OLED mode=thp; IO1 OLED Off; CorrT -2.5; ISID 213"</code><br />
<br />
Man kann auf der seriellen Schnittstelle die aktuellen Einstellungen abrufen.<br />
Das command ist 1g<br><br />
<code>set myLaCrosseGateway raw 1g</code><br><br />
Man bekommt dann so etwas zurück:<br />
<source lang="text">SETUP ctSSID esesidee; ctPASS PasstWort; staticIP 192.168.31.211; staticMask 255.255.255.0; staticGW 192.168.31.1;<br />
HostName LGW211; StartupDelay 1; ISID 0xD3; Altitude 220; CorrT 0; CorrH 0; DataPort1 81; DataPort2 82; SerialBridgePort 85; <br />
SerialBridgeBaud 38400; UseMDNS true; IO0 OLED mode=s; IO1 OLED mode=thp; IO2 OLED On; IO3 OLED Off; oledStart 120; KVInterval 10; <br />
KVIdentity 211; PCA301Plugs 036180=3,03A094=1,035FF1=6;</source><br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/help]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann auf die "Werkseinstellungen" zurückgesetzt werden.<br><br />
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen.<br />
Der Befehl dazu lautet: <source lang="php">8266e</source><br />
Er kann mit einem Terminalprogramm, von FHEM aus mit <source lang="php">set <myLaCrosseGateway> raw 8266e</source> oder von der Log-Page des LGW gesendet werden.<br />
<br />
Danach startet das LGW wieder als Access Point [[#LaCrosseGateway einrichten|initiale Konfiguration]] und die Konfiguration kann über die "Setup-Page" neu vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
Beispiel: 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
'''Besser:''' Alternativ kann die Höhe über NN auch auf der Setup-Page des LGW gesetzt werden.<br><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.<br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme Analogport==<br />
Der Analogport A0 des ESP8266 wird als Reading im LaCrosseGatewayModul aufgeführt.<br />
Um das zu aktivieren, muss man auf der Setup-page des LGW die Option "Send analog values" ankreuzen.<br />
Der Eingangsspannungsbereich von A0 ist 0V ... 1.0V, was zu einem Reading von 0 ... 1023 führt.<br />
<br />
==Inbetriebnahme von OLED-Display==<br />
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.<br />
Um auf dem 1.3" Display eine korrekte Darstellung zu erhalten, muss man die Checkbox 1.3" ankreuzen.<br />
<br />
Hinweis: das 0.96" Display bekommt man auch in einer Varianten, die SPI unterstützt. Diese Variante kann nur nach einem Umbau verwendet werden. <br />
<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
Zusätzlich kann der initiale Mode festgelegt werden (z.B. thp)<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
=Nano LaCrosse Gateway=<br />
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 jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende Bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung<br />
*[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]<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway&diff=18359LaCrosseGateway2017-01-07T21:53:45Z<p>HCS: HCS verschob die Seite LaCrosseGateway nach LaCrosseGateway V1.x</p>
<hr />
<div>#WEITERLEITUNG [[LaCrosseGateway V1.x]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=18358LaCrosseGateway V1.x2017-01-07T21:53:45Z<p>HCS: HCS verschob die Seite LaCrosseGateway nach LaCrosseGateway V1.x</p>
<hr />
<div>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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.22}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht "offiziel" unterstützt, da ungetestet, können aber durchaus in bestimmten Fällen verwendet werden:<br />
** V0.9 (da ungetestet, bekommt man aber kaum noch zu kaufen)<br />
** V3.0 - passt nicht auf die Platine von PeMue, ist größer als das 2.0. Auf der Rückseite steht "Lolin".<br />
** Devkits mit einem CH340 USB converter (da ungetestet und teils falsche Bauform und von der USB-Anbindung her teils problematisch)<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
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)].<br />
<br />
==Firmware Download==<br />
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.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*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.<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
Beispiel: <code>define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</code><br />
''/dev/ttyUSB0'' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<code>ls -l /dev/serial/by-id</code><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="text">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<code>define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</code><br><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br><br><br />
<br />
Wenn man das LGW ohne WiFi betreibt, dann muss man natürlich auf die Annehmlichkeiten des Web-Frontends verzichten.<br><br />
In diesem Fall kann man die Konfiguration, die man über das Web-Frontend machen würde, über die serielle Schnittstelle machen.<br><br />
<br />
<code>set myLaCrosseGateway raw "SETUP ..."</code><br><br />
Das ... sind die gewünschten Einstellungen. Es müssen nicht alle Einstellungen gesendet werden sondern nur die, die man setzen will.<br><br />
Es werden nur die Einstellungen gesetzt und im EEPROM gespeichert, es wird aber kein Reboot ausgelöst<br><br />
Einen Reboot kann man mit "set myLaCrosseGateway raw 8377e" auslösen.<br><br />
Mehrere Einstellungen können durch Semikolon getrennt angegeben werden.<br><br />
Beispiel:<br />
<code>set myJeeLink213 raw "SETUP UseWiFi false; IO0 OLED mode=thp; IO1 OLED Off; CorrT -2.5; ISID 213"</code><br />
<br />
Man kann auf der seriellen Schnittstelle die aktuellen Einstellungen abrufen.<br />
Das command ist 1g<br><br />
<code>set myLaCrosseGateway raw 1g</code><br><br />
Man bekommt dann so etwas zurück:<br />
<source lang="text">SETUP ctSSID esesidee; ctPASS PasstWort; staticIP 192.168.31.211; staticMask 255.255.255.0; staticGW 192.168.31.1;<br />
HostName LGW211; StartupDelay 1; ISID 0xD3; Altitude 220; CorrT 0; CorrH 0; DataPort1 81; DataPort2 82; SerialBridgePort 85; <br />
SerialBridgeBaud 38400; UseMDNS true; IO0 OLED mode=s; IO1 OLED mode=thp; IO2 OLED On; IO3 OLED Off; oledStart 120; KVInterval 10; <br />
KVIdentity 211; PCA301Plugs 036180=3,03A094=1,035FF1=6;</source><br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/help]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann auf die "Werkseinstellungen" zurückgesetzt werden.<br><br />
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen.<br />
Der Befehl dazu lautet: <source lang="php">8266e</source><br />
Er kann mit einem Terminalprogramm, von FHEM aus mit <source lang="php">set <myLaCrosseGateway> raw 8266e</source> oder von der Log-Page des LGW gesendet werden.<br />
<br />
Danach startet das LGW wieder als Access Point [[#LaCrosseGateway einrichten|initiale Konfiguration]] und die Konfiguration kann über die "Setup-Page" neu vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
Beispiel: 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
'''Besser:''' Alternativ kann die Höhe über NN auch auf der Setup-Page des LGW gesetzt werden.<br><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.<br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme Analogport==<br />
Der Analogport A0 des ESP8266 wird als Reading im LaCrosseGatewayModul aufgeführt.<br />
Um das zu aktivieren, muss man auf der Setup-page des LGW die Option "Send analog values" ankreuzen.<br />
Der Eingangsspannungsbereich von A0 ist 0V ... 1.0V, was zu einem Reading von 0 ... 1023 führt.<br />
<br />
==Inbetriebnahme von OLED-Display==<br />
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.<br />
Um auf dem 1.3" Display eine korrekte Darstellung zu erhalten, muss man die Checkbox 1.3" ankreuzen.<br />
<br />
Hinweis: das 0.96" Display bekommt man auch in einer Varianten, die SPI unterstützt. Diese Variante kann nur nach einem Umbau verwendet werden. <br />
<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
Zusätzlich kann der initiale Mode festgelegt werden (z.B. thp)<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
=Nano LaCrosse Gateway=<br />
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 jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende Bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung<br />
*[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]<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=18357LaCrosseGateway V1.x2017-01-07T21:47:23Z<p>HCS: /* Hinweise zum Betrieb mit FHEM */</p>
<hr />
<div>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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.22}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht "offiziel" unterstützt, da ungetestet, können aber durchaus in bestimmten Fällen verwendet werden:<br />
** V0.9 (da ungetestet, bekommt man aber kaum noch zu kaufen)<br />
** V3.0 - passt nicht auf die Platine von PeMue, ist größer als das 2.0. Auf der Rückseite steht "Lolin".<br />
** Devkits mit einem CH340 USB converter (da ungetestet und teils falsche Bauform und von der USB-Anbindung her teils problematisch)<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
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)].<br />
<br />
==Firmware Download==<br />
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.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*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.<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
Beispiel: <code>define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</code><br />
''/dev/ttyUSB0'' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<code>ls -l /dev/serial/by-id</code><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="text">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<code>define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</code><br><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br><br><br />
<br />
Wenn man das LGW ohne WiFi betreibt, dann muss man natürlich auf die Annehmlichkeiten des Web-Frontends verzichten.<br><br />
In diesem Fall kann man die Konfiguration, die man über das Web-Frontend machen würde, über die serielle Schnittstelle machen.<br><br />
<br />
<code>set myLaCrosseGateway raw "SETUP ..."</code><br><br />
Das ... sind die gewünschten Einstellungen. Es müssen nicht alle Einstellungen gesendet werden sondern nur die, die man setzen will.<br><br />
Es werden nur die Einstellungen gesetzt und im EEPROM gespeichert, es wird aber kein Reboot ausgelöst<br><br />
Einen Reboot kann man mit "set myLaCrosseGateway raw 8377e" auslösen.<br><br />
Mehrere Einstellungen können durch Semikolon getrennt angegeben werden.<br><br />
Beispiel:<br />
<code>set myJeeLink213 raw "SETUP UseWiFi false; IO0 OLED mode=thp; IO1 OLED Off; CorrT -2.5; ISID 213"</code><br />
<br />
Man kann auf der seriellen Schnittstelle die aktuellen Einstellungen abrufen.<br />
Das command ist 1g<br><br />
<code>set myLaCrosseGateway raw 1g</code><br><br />
Man bekommt dann so etwas zurück:<br />
<source lang="text">SETUP ctSSID esesidee; ctPASS PasstWort; staticIP 192.168.31.211; staticMask 255.255.255.0; staticGW 192.168.31.1;<br />
HostName LGW211; StartupDelay 1; ISID 0xD3; Altitude 220; CorrT 0; CorrH 0; DataPort1 81; DataPort2 82; SerialBridgePort 85; <br />
SerialBridgeBaud 38400; UseMDNS true; IO0 OLED mode=s; IO1 OLED mode=thp; IO2 OLED On; IO3 OLED Off; oledStart 120; KVInterval 10; <br />
KVIdentity 211; PCA301Plugs 036180=3,03A094=1,035FF1=6;</source><br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/help]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann auf die "Werkseinstellungen" zurückgesetzt werden.<br><br />
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen.<br />
Der Befehl dazu lautet: <source lang="php">8266e</source><br />
Er kann mit einem Terminalprogramm, von FHEM aus mit <source lang="php">set <myLaCrosseGateway> raw 8266e</source> oder von der Log-Page des LGW gesendet werden.<br />
<br />
Danach startet das LGW wieder als Access Point [[#LaCrosseGateway einrichten|initiale Konfiguration]] und die Konfiguration kann über die "Setup-Page" neu vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
Beispiel: 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
'''Besser:''' Alternativ kann die Höhe über NN auch auf der Setup-Page des LGW gesetzt werden.<br><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.<br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme Analogport==<br />
Der Analogport A0 des ESP8266 wird als Reading im LaCrosseGatewayModul aufgeführt.<br />
Um das zu aktivieren, muss man auf der Setup-page des LGW die Option "Send analog values" ankreuzen.<br />
Der Eingangsspannungsbereich von A0 ist 0V ... 1.0V, was zu einem Reading von 0 ... 1023 führt.<br />
<br />
==Inbetriebnahme von OLED-Display==<br />
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.<br />
Um auf dem 1.3" Display eine korrekte Darstellung zu erhalten, muss man die Checkbox 1.3" ankreuzen.<br />
<br />
Hinweis: das 0.96" Display bekommt man auch in einer Varianten, die SPI unterstützt. Diese Variante kann nur nach einem Umbau verwendet werden. <br />
<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
Zusätzlich kann der initiale Mode festgelegt werden (z.B. thp)<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
=Nano LaCrosse Gateway=<br />
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 jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende Bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung<br />
*[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]<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=18356LaCrosseGateway V1.x2017-01-07T21:42:48Z<p>HCS: /* LaCrosseGateway einrichten */</p>
<hr />
<div>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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.22}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht "offiziel" unterstützt, da ungetestet, können aber durchaus in bestimmten Fällen verwendet werden:<br />
** V0.9 (da ungetestet, bekommt man aber kaum noch zu kaufen)<br />
** V3.0 - passt nicht auf die Platine von PeMue, ist größer als das 2.0. Auf der Rückseite steht "Lolin".<br />
** Devkits mit einem CH340 USB converter (da ungetestet und teils falsche Bauform und von der USB-Anbindung her teils problematisch)<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
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)].<br />
<br />
==Firmware Download==<br />
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.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*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.<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
Beispiel: <code>define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</code><br />
''/dev/ttyUSB0'' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<code>ls -l /dev/serial/by-id</code><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="text">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<code>define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</code><br><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br><br><br />
<br />
Wenn man das LGW ohne WiFi betreibt, dann muss man natürlich auf die Annehmlichkeiten des Web-Frontends verzichten.<br><br />
In diesem Fall kann man die Konfiguration, die man über das Web-Frontend machen würde, über die serielle Schnittstelle machen.<br><br />
<br />
<code>set myLaCrosseGateway raw "SETUP ..."</code><br><br />
Das ... sind die gewünschten Einstellungen. Es müssen nicht alle Einstellungen gesendet werden sondern nur die, die man setzen will.<br><br />
Es werden nur die Einstellungen gesetzt und im EEPROM gespeichert, es wird aber kein Reboot ausgelöst<br><br />
Einen Reboot kann man mit "set myLaCrosseGateway raw 8377e" auslösen.<br><br />
Mehrere Einstellungen können durch Semikolon getrennt angegeben werden.<br><br />
Beispiel:<br />
<code>set myJeeLink213 raw "SETUP UseWiFi false; IO0 OLED mode=thp; IO1 OLED Off; CorrT -2.5; ISID 213"</code><br />
<br />
Man kann auf der seriellen Schnittstelle die aktuellen Einstellungen abrufen.<br />
Das command ist 1g<br><br />
<code>set myLaCrosseGateway raw 1g</code><br><br />
Man bekommt dann so etwas zurück:<br />
<source lang="text">SETUP ctSSID esesidee; ctPASS PasstWort; staticIP 192.168.31.211; staticMask 255.255.255.0; staticGW 192.168.31.1;<br />
HostName LGW211; StartupDelay 1; ISID 0xD3; Altitude 220; CorrT 0; CorrH 0; DataPort1 81; DataPort2 82; SerialBridgePort 85; <br />
SerialBridgeBaud 38400; UseMDNS true; IO0 OLED mode=s; IO1 OLED mode=thp; IO2 OLED On; IO3 OLED Off; oledStart 120; KVInterval 10; <br />
KVIdentity 211; PCA301Plugs 036180=3,03A094=1,035FF1=6;</source><br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/help]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann auf die "Werkseinstellungen" zurückgesetzt werden.<br><br />
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen.<br />
Der Befehl dazu lautet: <source lang="php">8266e</source><br />
Er kann mit einem Terminalprogramm, von FHEM aus mit <source lang="php">set <myLaCrosseGateway> raw 8266e</source> oder von der Log-Page des LGW gesendet werden.<br />
<br />
Danach startet das LGW wieder als Access Point [[#LaCrosseGateway einrichten|initiale Konfiguration]] und die Konfiguration kann über die "Setup-Page" neu vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
Beispiel: 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
'''Besser:''' Alternativ kann die Höhe über NN auch auf der Setup-Page des LGW gesetzt werden.<br><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.<br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme von OLED-Display==<br />
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.<br />
Um auf dem 1.3" Display eine korrekte Darstellung zu erhalten, muss man die Checkbox 1.3" ankreuzen.<br />
<br />
Hinweis: das 0.96" Display bekommt man auch in einer Varianten, die SPI unterstützt. Diese Variante kann nur nach einem Umbau verwendet werden. <br />
<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
Zusätzlich kann der initiale Mode festgelegt werden (z.B. thp)<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
<br />
=Nano LaCrosse Gateway=<br />
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 jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende Bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung<br />
*[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]<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=18355LaCrosseGateway V1.x2017-01-07T21:36:46Z<p>HCS: /* Inbetriebnahme von OLED-Display */</p>
<hr />
<div>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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.22}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht "offiziel" unterstützt, da ungetestet, können aber durchaus in bestimmten Fällen verwendet werden:<br />
** V0.9 (da ungetestet, bekommt man aber kaum noch zu kaufen)<br />
** V3.0 - passt nicht auf die Platine von PeMue, ist größer als das 2.0. Auf der Rückseite steht "Lolin".<br />
** Devkits mit einem CH340 USB converter (da ungetestet und teils falsche Bauform und von der USB-Anbindung her teils problematisch)<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
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)].<br />
<br />
==Firmware Download==<br />
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.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*SSID und das Password eintragen<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
Beispiel: <code>define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</code><br />
''/dev/ttyUSB0'' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<code>ls -l /dev/serial/by-id</code><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="text">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<code>define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</code><br><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br><br><br />
<br />
Wenn man das LGW ohne WiFi betreibt, dann muss man natürlich auf die Annehmlichkeiten des Web-Frontends verzichten.<br><br />
In diesem Fall kann man die Konfiguration, die man über das Web-Frontend machen würde, über die serielle Schnittstelle machen.<br><br />
<br />
<code>set myLaCrosseGateway raw "SETUP ..."</code><br><br />
Das ... sind die gewünschten Einstellungen. Es müssen nicht alle Einstellungen gesendet werden sondern nur die, die man setzen will.<br><br />
Es werden nur die Einstellungen gesetzt und im EEPROM gespeichert, es wird aber kein Reboot ausgelöst<br><br />
Einen Reboot kann man mit "set myLaCrosseGateway raw 8377e" auslösen.<br><br />
Mehrere Einstellungen können durch Semikolon getrennt angegeben werden.<br><br />
Beispiel:<br />
<code>set myJeeLink213 raw "SETUP UseWiFi false; IO0 OLED mode=thp; IO1 OLED Off; CorrT -2.5; ISID 213"</code><br />
<br />
Man kann auf der seriellen Schnittstelle die aktuellen Einstellungen abrufen.<br />
Das command ist 1g<br><br />
<code>set myLaCrosseGateway raw 1g</code><br><br />
Man bekommt dann so etwas zurück:<br />
<source lang="text">SETUP ctSSID esesidee; ctPASS PasstWort; staticIP 192.168.31.211; staticMask 255.255.255.0; staticGW 192.168.31.1;<br />
HostName LGW211; StartupDelay 1; ISID 0xD3; Altitude 220; CorrT 0; CorrH 0; DataPort1 81; DataPort2 82; SerialBridgePort 85; <br />
SerialBridgeBaud 38400; UseMDNS true; IO0 OLED mode=s; IO1 OLED mode=thp; IO2 OLED On; IO3 OLED Off; oledStart 120; KVInterval 10; <br />
KVIdentity 211; PCA301Plugs 036180=3,03A094=1,035FF1=6;</source><br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/help]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann auf die "Werkseinstellungen" zurückgesetzt werden.<br><br />
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen.<br />
Der Befehl dazu lautet: <source lang="php">8266e</source><br />
Er kann mit einem Terminalprogramm, von FHEM aus mit <source lang="php">set <myLaCrosseGateway> raw 8266e</source> oder von der Log-Page des LGW gesendet werden.<br />
<br />
Danach startet das LGW wieder als Access Point [[#LaCrosseGateway einrichten|initiale Konfiguration]] und die Konfiguration kann über die "Setup-Page" neu vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
Beispiel: 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
'''Besser:''' Alternativ kann die Höhe über NN auch auf der Setup-Page des LGW gesetzt werden.<br><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.<br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme von OLED-Display==<br />
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.<br />
Um auf dem 1.3" Display eine korrekte Darstellung zu erhalten, muss man die Checkbox 1.3" ankreuzen.<br />
<br />
Hinweis: das 0.96" Display bekommt man auch in einer Varianten, die SPI unterstützt. Diese Variante kann nur nach einem Umbau verwendet werden. <br />
<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
Zusätzlich kann der initiale Mode festgelegt werden (z.B. thp)<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
<br />
=Nano LaCrosse Gateway=<br />
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 jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende Bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung<br />
*[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]<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=18354LaCrosseGateway V1.x2017-01-07T21:29:15Z<p>HCS: /* OLED Start Modus */</p>
<hr />
<div>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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.22}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht "offiziel" unterstützt, da ungetestet, können aber durchaus in bestimmten Fällen verwendet werden:<br />
** V0.9 (da ungetestet, bekommt man aber kaum noch zu kaufen)<br />
** V3.0 - passt nicht auf die Platine von PeMue, ist größer als das 2.0. Auf der Rückseite steht "Lolin".<br />
** Devkits mit einem CH340 USB converter (da ungetestet und teils falsche Bauform und von der USB-Anbindung her teils problematisch)<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
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)].<br />
<br />
==Firmware Download==<br />
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.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*SSID und das Password eintragen<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
Beispiel: <code>define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</code><br />
''/dev/ttyUSB0'' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<code>ls -l /dev/serial/by-id</code><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="text">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<code>define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</code><br><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br><br><br />
<br />
Wenn man das LGW ohne WiFi betreibt, dann muss man natürlich auf die Annehmlichkeiten des Web-Frontends verzichten.<br><br />
In diesem Fall kann man die Konfiguration, die man über das Web-Frontend machen würde, über die serielle Schnittstelle machen.<br><br />
<br />
<code>set myLaCrosseGateway raw "SETUP ..."</code><br><br />
Das ... sind die gewünschten Einstellungen. Es müssen nicht alle Einstellungen gesendet werden sondern nur die, die man setzen will.<br><br />
Es werden nur die Einstellungen gesetzt und im EEPROM gespeichert, es wird aber kein Reboot ausgelöst<br><br />
Einen Reboot kann man mit "set myLaCrosseGateway raw 8377e" auslösen.<br><br />
Mehrere Einstellungen können durch Semikolon getrennt angegeben werden.<br><br />
Beispiel:<br />
<code>set myJeeLink213 raw "SETUP UseWiFi false; IO0 OLED mode=thp; IO1 OLED Off; CorrT -2.5; ISID 213"</code><br />
<br />
Man kann auf der seriellen Schnittstelle die aktuellen Einstellungen abrufen.<br />
Das command ist 1g<br><br />
<code>set myLaCrosseGateway raw 1g</code><br><br />
Man bekommt dann so etwas zurück:<br />
<source lang="text">SETUP ctSSID esesidee; ctPASS PasstWort; staticIP 192.168.31.211; staticMask 255.255.255.0; staticGW 192.168.31.1;<br />
HostName LGW211; StartupDelay 1; ISID 0xD3; Altitude 220; CorrT 0; CorrH 0; DataPort1 81; DataPort2 82; SerialBridgePort 85; <br />
SerialBridgeBaud 38400; UseMDNS true; IO0 OLED mode=s; IO1 OLED mode=thp; IO2 OLED On; IO3 OLED Off; oledStart 120; KVInterval 10; <br />
KVIdentity 211; PCA301Plugs 036180=3,03A094=1,035FF1=6;</source><br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/help]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann auf die "Werkseinstellungen" zurückgesetzt werden.<br><br />
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen.<br />
Der Befehl dazu lautet: <source lang="php">8266e</source><br />
Er kann mit einem Terminalprogramm, von FHEM aus mit <source lang="php">set <myLaCrosseGateway> raw 8266e</source> oder von der Log-Page des LGW gesendet werden.<br />
<br />
Danach startet das LGW wieder als Access Point [[#LaCrosseGateway einrichten|initiale Konfiguration]] und die Konfiguration kann über die "Setup-Page" neu vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
Beispiel: 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
'''Besser:''' Alternativ kann die Höhe über NN auch auf der Setup-Page des LGW gesetzt werden.<br><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.<br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme von OLED-Display==<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
Zusätzlich kann der initiale Mode festgelegt werden (z.B. thp)<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
<br />
=Nano LaCrosse Gateway=<br />
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 jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende Bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung<br />
*[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]<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=18058LaCrosseGateway V1.x2016-12-27T10:48:56Z<p>HCS: /* Bauteile */</p>
<hr />
<div>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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.22}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht "offiziel" unterstützt, da ungetestet, können aber durchaus in bestimmten Fällen verwendet werden:<br />
** V0.9 (da ungetestet, bekommt man aber eh kaum noch zu kaufen)<br />
** V3.0 - passt nicht auf die Paltine von PeMue, ist größer als das 2.0. Auf der Rückseite steht "Lolin"<br />
** Devkits mit einem CH340 USB converter (da ungetestet und teils falsche Bauform und von der USB-Anbidnung her teils problematisch)<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
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)].<br />
<br />
==Firmware Download==<br />
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.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://svn.fhem.de/trac/export/HEAD/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*SSID und das Password eintragen<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
Beispiel: <code>define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</code><br />
''/dev/ttyUSB0'' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<code>ls -l /dev/serial/by-id</code><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="text">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<code>define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</code><br><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br><br><br />
<br />
Wenn man das LGW ohne WiFi betreibt, dann muss man natürlich auf die Annehmlichkeiten des Web-Frontends verzichten.<br><br />
In diesem Fall kann man die Konfiguration, die man über das Web-Frontend machen würde, über die serielle Schnittstelle machen.<br><br />
<br />
<code>set myLaCrosseGateway raw "SETUP ..."</code><br><br />
Das ... sind die gewünschten Einstellungen. Es müssen nicht alle Einstellungen gesendet werden sondern nur die, die man setzen will.<br><br />
Es werden nur die Einstellungen gesetzt und im EEPROM gespeichert, es wird aber kein Reboot ausgelöst<br><br />
Einen Reboot kann man mit "set myLaCrosseGateway raw 8377e" auslösen.<br><br />
Mehrere Einstellungen können durch Semikolon getrennt angegeben werden.<br><br />
Beispiel:<br />
<code>set myJeeLink213 raw "SETUP UseWiFi false; IO0 OLED mode=thp; IO1 OLED Off; CorrT -2.5; ISID 213"</code><br />
<br />
Man kann auf der seriellen Schnittstelle die aktuellen Einstellungen abrufen.<br />
Das command ist 1g<br><br />
<code>set myLaCrosseGateway raw 1g</code><br><br />
Man bekommt dann so etwas zurück:<br />
<source lang="text">SETUP ctSSID esesidee; ctPASS PasstWort; staticIP 192.168.31.211; staticMask 255.255.255.0; staticGW 192.168.31.1;<br />
HostName LGW211; StartupDelay 1; ISID 0xD3; Altitude 220; CorrT 0; CorrH 0; DataPort1 81; DataPort2 82; SerialBridgePort 85; <br />
SerialBridgeBaud 38400; UseMDNS true; IO0 OLED mode=s; IO1 OLED mode=thp; IO2 OLED On; IO3 OLED Off; oledStart 120; KVInterval 10; <br />
KVIdentity 211; PCA301Plugs 036180=3,03A094=1,035FF1=6;</source><br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/help]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann auf die "Werkseinstellungen" zurückgesetzt werden.<br><br />
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen.<br />
Der Befehl dazu lautet: <source lang="php">8266e</source><br />
Er kann mit einem Terminalprogramm, von FHEM aus mit <source lang="php">set <myLaCrosseGateway> raw 8266e</source> oder von der Log-Page des LGW gesendet werden.<br />
<br />
Danach startet das LGW wieder als Access Point [[#LaCrosseGateway einrichten|initiale Konfiguration]] und die Konfiguration kann über die "Setup-Page" neu vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
Beispiel: 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
'''Besser:''' Alternativ kann die Höhe über NN auch auf der Setup-Page des LGW gesetzt werden.<br><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.<br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme von OLED-Display==<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
<br />
=Nano LaCrosse Gateway=<br />
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 jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende Bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung<br />
*[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]<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=Datei:Lgw_nano_Schaltplan.png&diff=16635Datei:Lgw nano Schaltplan.png2016-10-16T06:57:30Z<p>HCS: HCS lud eine neue Version von Datei:Lgw nano Schaltplan.png hoch</p>
<hr />
<div></div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=16519LaCrosseGateway V1.x2016-10-05T16:05:08Z<p>HCS: </p>
<hr />
<div>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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.22}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht unterstützt:<br />
** V0.9<br />
** V3.0 - passt nicht, ist größer als das 2.0. Auf der Rückseite steht "Lolin"!<br />
** Devkits mit einem CH340 USB converter<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
Der Quellcode des LaCrosse Gateways befindet sich [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/36_LaCrosseGateway.zip?format=raw im FHEM SourceForge Repository (contrib)].<br />
<br />
==Firmware Download==<br />
Die [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] befindet sich auf dem [https://sourceforge.net/projects/fhem/ FHEM SourceForge Repository] und wird per FHEM Update verteilt. Neue Version der [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wird im {{Link2Forum|Topic=43672|LinkText=FHEM Forum "LaCrosse Gateway"}} angekündigt und der Funktionsumfang bzw. die Änderungen beschrieben.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*SSID und das Password eintragen<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
Beispiel: <code>define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</code><br />
''/dev/ttyUSB0'' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<code>ls -l /dev/serial/by-id</code><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="text">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<code>define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</code><br><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br><br><br />
<br />
Wenn man das LGW ohne WiFi betreibt, dann muss man natürlich auf die Annehmlichkeiten des Web-Frontends verzichten.<br><br />
In diesem Fall kann man die Konfiguration, die man über das Web-Frontend machen würde, über die serielle Schnittstelle machen.<br><br />
<br />
<code>set myLaCrosseGateway raw "SETUP ..."</code><br><br />
Das ... sind die gewünschten Einstellungen. Es müssen nicht alle Einstellungen gesendet werden sondern nur die, die man setzen will.<br><br />
Es werden nur die Einstellungen gesetzt und im EEPROM gespeichert, es wird aber kein Reboot ausgelöst<br><br />
Einen Reboot kann man mit "set myLaCrosseGateway raw 8377e" auslösen.<br><br />
Mehrere Einstellungen können durch Semikolon getrennt angegeben werden.<br><br />
Beispiel:<br />
<code>set myJeeLink213 raw "SETUP UseWiFi false; IO0 OLED mode=thp; IO1 OLED Off; CorrT -2.5; ISID 213"</code><br />
<br />
Man kann auf der seriellen Schnittstelle die aktuellen Einstellungen abrufen.<br />
Das command ist 1g<br><br />
<code>set myLaCrosseGateway raw 1g</code><br><br />
Man bekommt dann so etwas zurück:<br />
<source lang="text">SETUP ctSSID esesidee; ctPASS PasstWort; staticIP 192.168.31.211; staticMask 255.255.255.0; staticGW 192.168.31.1;<br />
HostName LGW211; StartupDelay 1; ISID 0xD3; Altitude 220; CorrT 0; CorrH 0; DataPort1 81; DataPort2 82; SerialBridgePort 85; <br />
SerialBridgeBaud 38400; UseMDNS true; IO0 OLED mode=s; IO1 OLED mode=thp; IO2 OLED On; IO3 OLED Off; oledStart 120; KVInterval 10; <br />
KVIdentity 211; PCA301Plugs 036180=3,03A094=1,035FF1=6;</source><br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/help]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann auf die "Werkseinstellungen" zurückgesetzt werden.<br><br />
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen.<br />
Der Befehl dazu lautet: <source lang="php">8266e</source><br />
Er kann mit einem Terminalprogramm, von FHEM aus mit <source lang="php">set <myLaCrosseGateway> raw 8266e</source> oder von der Log-Page des LGW gesendet werden.<br />
<br />
Danach startet das LGW wieder als Access Point [[#LaCrosseGateway einrichten|initiale Konfiguration]] und die Konfiguration kann über die "Setup-Page" neu vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
Beispiel: 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
'''Besser:''' Alternativ kann die Höhe über NN auch auf der Setup-Page des LGW gesetzt werden.<br><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.<br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme von OLED-Display==<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
<br />
=Nano LaCrosse Gateway=<br />
Das nano LaCrosse Gateway verwendet die gleiche [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wie das WiFi LaCrosse Gateway, der signifikante Unterschied ist die kompakte (portable) Bauform. Aufgrund der Bauform können jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende Bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung<br />
*[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]<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=16518LaCrosseGateway V1.x2016-10-05T16:04:20Z<p>HCS: /* USB */</p>
<hr />
<div>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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.21}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht unterstützt:<br />
** V0.9<br />
** V3.0 - passt nicht, ist größer als das 2.0. Auf der Rückseite steht "Lolin"!<br />
** Devkits mit einem CH340 USB converter<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
Der Quellcode des LaCrosse Gateways befindet sich [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/36_LaCrosseGateway.zip?format=raw im FHEM SourceForge Repository (contrib)].<br />
<br />
==Firmware Download==<br />
Die [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] befindet sich auf dem [https://sourceforge.net/projects/fhem/ FHEM SourceForge Repository] und wird per FHEM Update verteilt. Neue Version der [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wird im {{Link2Forum|Topic=43672|LinkText=FHEM Forum "LaCrosse Gateway"}} angekündigt und der Funktionsumfang bzw. die Änderungen beschrieben.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*SSID und das Password eintragen<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
Beispiel: <code>define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</code><br />
''/dev/ttyUSB0'' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<code>ls -l /dev/serial/by-id</code><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="text">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<code>define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</code><br><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br><br><br />
<br />
Wenn man das LGW ohne WiFi betreibt, dann muss man natürlich auf die Annehmlichkeiten des Web-Frontends verzichten.<br><br />
In diesem Fall kann man die Konfiguration, die man über das Web-Frontend machen würde, über die serielle Schnittstelle machen.<br><br />
<br />
<code>set myLaCrosseGateway raw "SETUP ..."</code><br><br />
Das ... sind die gewünschten Einstellungen. Es müssen nicht alle Einstellungen gesendet werden sondern nur die, die man setzen will.<br><br />
Es werden nur die Einstellungen gesetzt und im EEPROM gespeichert, es wird aber kein Reboot ausgelöst<br><br />
Einen Reboot kann man mit "set myLaCrosseGateway raw 8377e" auslösen.<br><br />
Mehrere Einstellungen können durch Semikolon getrennt angegeben werden.<br><br />
Beispiel:<br />
<code>set myJeeLink213 raw "SETUP UseWiFi false; IO0 OLED mode=thp; IO1 OLED Off; CorrT -2.5; ISID 213"</code><br />
<br />
Man kann auf der seriellen Schnittstelle die aktuellen Einstellungen abrufen.<br />
Das command ist 1g<br><br />
<code>set myLaCrosseGateway raw 1g</code><br><br />
Man bekommt dann so etwas zurück:<br />
<source lang="text">SETUP ctSSID esesidee; ctPASS PasstWort; staticIP 192.168.31.211; staticMask 255.255.255.0; staticGW 192.168.31.1;<br />
HostName LGW211; StartupDelay 1; ISID 0xD3; Altitude 220; CorrT 0; CorrH 0; DataPort1 81; DataPort2 82; SerialBridgePort 85; <br />
SerialBridgeBaud 38400; UseMDNS true; IO0 OLED mode=s; IO1 OLED mode=thp; IO2 OLED On; IO3 OLED Off; oledStart 120; KVInterval 10; <br />
KVIdentity 211; PCA301Plugs 036180=3,03A094=1,035FF1=6;</source><br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/help]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann auf die "Werkseinstellungen" zurückgesetzt werden.<br><br />
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen.<br />
Der Befehl dazu lautet: <source lang="php">8266e</source><br />
Er kann mit einem Terminalprogramm, von FHEM aus mit <source lang="php">set <myLaCrosseGateway> raw 8266e</source> oder von der Log-Page des LGW gesendet werden.<br />
<br />
Danach startet das LGW wieder als Access Point [[#LaCrosseGateway einrichten|initiale Konfiguration]] und die Konfiguration kann über die "Setup-Page" neu vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
Beispiel: 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
'''Besser:''' Alternativ kann die Höhe über NN auch auf der Setup-Page des LGW gesetzt werden.<br><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.<br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme von OLED-Display==<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
<br />
=Nano LaCrosse Gateway=<br />
Das nano LaCrosse Gateway verwendet die gleiche [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wie das WiFi LaCrosse Gateway, der signifikante Unterschied ist die kompakte (portable) Bauform. Aufgrund der Bauform können jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende Bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung<br />
*[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]<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=16517LaCrosseGateway V1.x2016-10-05T15:42:32Z<p>HCS: /* Bauteile */</p>
<hr />
<div>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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.21}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht unterstützt:<br />
** V0.9<br />
** V3.0 - passt nicht, ist größer als das 2.0. Auf der Rückseite steht "Lolin"!<br />
** Devkits mit einem CH340 USB converter<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
Der Quellcode des LaCrosse Gateways befindet sich [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/36_LaCrosseGateway.zip?format=raw im FHEM SourceForge Repository (contrib)].<br />
<br />
==Firmware Download==<br />
Die [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] befindet sich auf dem [https://sourceforge.net/projects/fhem/ FHEM SourceForge Repository] und wird per FHEM Update verteilt. Neue Version der [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wird im {{Link2Forum|Topic=43672|LinkText=FHEM Forum "LaCrosse Gateway"}} angekündigt und der Funktionsumfang bzw. die Änderungen beschrieben.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*SSID und das Password eintragen<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</source><br />
*'''/dev/ttyUSB0''' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<source lang="php">ls -l /dev/serial/by-id</source><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="php">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</source><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/help]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann auf die "Werkseinstellungen" zurückgesetzt werden.<br><br />
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen.<br />
Der Befehl dazu lautet: <source lang="php">8266e</source><br />
Er kann mit einem Terminalprogramm, von FHEM aus mit <source lang="php">set <myLaCrosseGateway> raw 8266e</source> oder von der Log-Page des LGW gesendet werden.<br />
<br />
Danach startet das LGW wieder als Access Point [[#LaCrosseGateway einrichten|initiale Konfiguration]] und die Konfiguration kann über die "Setup-Page" neu vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
Beispiel: 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
'''Besser:''' Alternativ kann die Höhe über NN auch auf der Setup-Page des LGW gesetzt werden.<br><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.<br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme von OLED-Display==<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
<br />
=Nano LaCrosse Gateway=<br />
Das nano LaCrosse Gateway verwendet die gleiche [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wie das WiFi LaCrosse Gateway, der signifikante Unterschied ist die kompakte (portable) Bauform. Aufgrund der Bauform können jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende Bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung<br />
*[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]<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=16516LaCrosseGateway V1.x2016-10-05T15:39:24Z<p>HCS: /* Serial transparent bridge */</p>
<hr />
<div>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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.21}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht unterstützt:<br />
** V0.9<br />
** V3.0 - passt nicht, ist größer als das 2.0. Auf der Rückseite steht "Lolin"!<br />
** Devkits mit einem CH340 USB converter<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
Der Quellcode des LaCrosse Gateways befindet sich [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/36_LaCrosseGateway.zip?format=raw im FHEM SourceForge Repository (contrib)].<br />
<br />
==Firmware Download==<br />
Die [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] befindet sich auf dem [https://sourceforge.net/projects/fhem/ FHEM SourceForge Repository] und wird per FHEM Update verteilt. Neue Version der [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wird im {{Link2Forum|Topic=43672|LinkText=FHEM Forum "LaCrosse Gateway"}} angekündigt und der Funktionsumfang bzw. die Änderungen beschrieben.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*SSID und das Password eintragen<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</source><br />
*'''/dev/ttyUSB0''' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<source lang="php">ls -l /dev/serial/by-id</source><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="php">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</source><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/help]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann auf die "Werkseinstellungen" zurückgesetzt werden.<br><br />
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen.<br />
Der Befehl dazu lautet: <source lang="php">8266e</source><br />
Er kann mit einem Terminalprogramm, von FHEM aus mit <source lang="php">set <myLaCrosseGateway> raw 8266e</source> oder von der Log-Page des LGW gesendet werden.<br />
<br />
Danach startet das LGW wieder als Access Point [[#LaCrosseGateway einrichten|initiale Konfiguration]] und die Konfiguration kann über die "Setup-Page" neu vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
Beispiel: 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
'''Besser:''' Alternativ kann die Höhe über NN auch auf der Setup-Page des LGW gesetzt werden.<br><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.<br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme von OLED-Display==<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
<br />
=Nano LaCrosse Gateway=<br />
Das nano LaCrosse Gateway verwendet die gleiche [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wie das WiFi LaCrosse Gateway, der signifikante Unterschied ist die kompakte (portable) Bauform. Aufgrund der Bauform können jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung mit zwei Widerständen<br />
*[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]<br />
*Breakout board mit einem AMS 1117 3.3V<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=16515LaCrosseGateway V1.x2016-10-05T15:30:33Z<p>HCS: /* Inbetriebnahme von BMP180 / BME280 */</p>
<hr />
<div>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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.21}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht unterstützt:<br />
** V0.9<br />
** V3.0 - passt nicht, ist größer als das 2.0. Auf der Rückseite steht "Lolin"!<br />
** Devkits mit einem CH340 USB converter<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
Der Quellcode des LaCrosse Gateways befindet sich [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/36_LaCrosseGateway.zip?format=raw im FHEM SourceForge Repository (contrib)].<br />
<br />
==Firmware Download==<br />
Die [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] befindet sich auf dem [https://sourceforge.net/projects/fhem/ FHEM SourceForge Repository] und wird per FHEM Update verteilt. Neue Version der [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wird im {{Link2Forum|Topic=43672|LinkText=FHEM Forum "LaCrosse Gateway"}} angekündigt und der Funktionsumfang bzw. die Änderungen beschrieben.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*SSID und das Password eintragen<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</source><br />
*'''/dev/ttyUSB0''' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<source lang="php">ls -l /dev/serial/by-id</source><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="php">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</source><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/help]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann auf die "Werkseinstellungen" zurückgesetzt werden.<br><br />
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen.<br />
Der Befehl dazu lautet: <source lang="php">8266e</source><br />
Er kann mit einem Terminalprogramm, von FHEM aus mit <source lang="php">set <myLaCrosseGateway> raw 8266e</source> oder von der Log-Page des LGW gesendet werden.<br />
<br />
Danach startet das LGW wieder als Access Point [[#LaCrosseGateway einrichten|initiale Konfiguration]] und die Konfiguration kann über die "Setup-Page" neu vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
Beispiel: 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
'''Besser:''' Alternativ kann die Höhe über NN auch auf der Setup-Page des LGW gesetzt werden.<br><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.<br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme von OLED-Display==<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die neuen settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
<br />
=Nano LaCrosse Gateway=<br />
Das nano LaCrosse Gateway verwendet die gleiche [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wie das WiFi LaCrosse Gateway, der signifikante Unterschied ist die kompakte (portable) Bauform. Aufgrund der Bauform können jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung mit zwei Widerständen<br />
*[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]<br />
*Breakout board mit einem AMS 1117 3.3V<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=16514LaCrosseGateway V1.x2016-10-05T15:26:30Z<p>HCS: /* LaCrosseGateway zurücksetzen */</p>
<hr />
<div>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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.21}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht unterstützt:<br />
** V0.9<br />
** V3.0 - passt nicht, ist größer als das 2.0. Auf der Rückseite steht "Lolin"!<br />
** Devkits mit einem CH340 USB converter<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
Der Quellcode des LaCrosse Gateways befindet sich [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/36_LaCrosseGateway.zip?format=raw im FHEM SourceForge Repository (contrib)].<br />
<br />
==Firmware Download==<br />
Die [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] befindet sich auf dem [https://sourceforge.net/projects/fhem/ FHEM SourceForge Repository] und wird per FHEM Update verteilt. Neue Version der [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wird im {{Link2Forum|Topic=43672|LinkText=FHEM Forum "LaCrosse Gateway"}} angekündigt und der Funktionsumfang bzw. die Änderungen beschrieben.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*SSID und das Password eintragen<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</source><br />
*'''/dev/ttyUSB0''' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<source lang="php">ls -l /dev/serial/by-id</source><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="php">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</source><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/help]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann auf die "Werkseinstellungen" zurückgesetzt werden.<br><br />
Dadurch werden alle auf der Setup-Page gemachten und im EEPROM gespeicherten Einstellungen verworfen.<br />
Der Befehl dazu lautet: <source lang="php">8266e</source><br />
Er kann mit einem Terminalprogramm, von FHEM aus mit <source lang="php">set <myLaCrosseGateway> raw 8266e</source> oder von der Log-Page des LGW gesendet werden.<br />
<br />
Danach startet das LGW wieder als Access Point [[#LaCrosseGateway einrichten|initiale Konfiguration]] und die Konfiguration kann über die "Setup-Page" neu vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
'''''Beispiel:''' 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme von OLED-Display==<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die neuen settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
<br />
=Nano LaCrosse Gateway=<br />
Das nano LaCrosse Gateway verwendet die gleiche [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wie das WiFi LaCrosse Gateway, der signifikante Unterschied ist die kompakte (portable) Bauform. Aufgrund der Bauform können jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung mit zwei Widerständen<br />
*[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]<br />
*Breakout board mit einem AMS 1117 3.3V<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=16513LaCrosseGateway V1.x2016-10-05T15:19:18Z<p>HCS: /* Liste aller initCommands */</p>
<hr />
<div>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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.21}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht unterstützt:<br />
** V0.9<br />
** V3.0 - passt nicht, ist größer als das 2.0. Auf der Rückseite steht "Lolin"!<br />
** Devkits mit einem CH340 USB converter<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
Der Quellcode des LaCrosse Gateways befindet sich [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/36_LaCrosseGateway.zip?format=raw im FHEM SourceForge Repository (contrib)].<br />
<br />
==Firmware Download==<br />
Die [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] befindet sich auf dem [https://sourceforge.net/projects/fhem/ FHEM SourceForge Repository] und wird per FHEM Update verteilt. Neue Version der [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wird im {{Link2Forum|Topic=43672|LinkText=FHEM Forum "LaCrosse Gateway"}} angekündigt und der Funktionsumfang bzw. die Änderungen beschrieben.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*SSID und das Password eintragen<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</source><br />
*'''/dev/ttyUSB0''' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<source lang="php">ls -l /dev/serial/by-id</source><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="php">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</source><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/help]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann über ein Terminalprogramm, dafür muss das LaCrosseGateway per USB angeschlossen sein, zurückgesetzt werden.<br />
Im Terminalprogramm (Baudrate 57600) den Befehl: <source lang="php">8266e</source> senden.<br />
<br />
Daraufhin wird wieder der Access Point aktiviert auf der die [[#LaCrosseGateway einrichten|initiale Konfiguration]] über die [http://192.168.222.1/setup "Setup"] Seite vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
'''''Beispiel:''' 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme von OLED-Display==<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die neuen settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
<br />
=Nano LaCrosse Gateway=<br />
Das nano LaCrosse Gateway verwendet die gleiche [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wie das WiFi LaCrosse Gateway, der signifikante Unterschied ist die kompakte (portable) Bauform. Aufgrund der Bauform können jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung mit zwei Widerständen<br />
*[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]<br />
*Breakout board mit einem AMS 1117 3.3V<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=16512LaCrosseGateway V1.x2016-10-05T15:18:12Z<p>HCS: /* Reconnect */</p>
<hr />
<div>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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.21}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht unterstützt:<br />
** V0.9<br />
** V3.0 - passt nicht, ist größer als das 2.0. Auf der Rückseite steht "Lolin"!<br />
** Devkits mit einem CH340 USB converter<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
Der Quellcode des LaCrosse Gateways befindet sich [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/36_LaCrosseGateway.zip?format=raw im FHEM SourceForge Repository (contrib)].<br />
<br />
==Firmware Download==<br />
Die [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] befindet sich auf dem [https://sourceforge.net/projects/fhem/ FHEM SourceForge Repository] und wird per FHEM Update verteilt. Neue Version der [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wird im {{Link2Forum|Topic=43672|LinkText=FHEM Forum "LaCrosse Gateway"}} angekündigt und der Funktionsumfang bzw. die Änderungen beschrieben.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*SSID und das Password eintragen<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</source><br />
*'''/dev/ttyUSB0''' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<source lang="php">ls -l /dev/serial/by-id</source><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="php">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</source><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/setup]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann über ein Terminalprogramm, dafür muss das LaCrosseGateway per USB angeschlossen sein, zurückgesetzt werden.<br />
Im Terminalprogramm (Baudrate 57600) den Befehl: <source lang="php">8266e</source> senden.<br />
<br />
Daraufhin wird wieder der Access Point aktiviert auf der die [[#LaCrosseGateway einrichten|initiale Konfiguration]] über die [http://192.168.222.1/setup "Setup"] Seite vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
'''''Beispiel:''' 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme von OLED-Display==<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die neuen settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
<br />
=Nano LaCrosse Gateway=<br />
Das nano LaCrosse Gateway verwendet die gleiche [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wie das WiFi LaCrosse Gateway, der signifikante Unterschied ist die kompakte (portable) Bauform. Aufgrund der Bauform können jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung mit zwei Widerständen<br />
*[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]<br />
*Breakout board mit einem AMS 1117 3.3V<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=16511LaCrosseGateway V1.x2016-10-05T15:16:06Z<p>HCS: /* USB */</p>
<hr />
<div>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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.21}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht unterstützt:<br />
** V0.9<br />
** V3.0 - passt nicht, ist größer als das 2.0. Auf der Rückseite steht "Lolin"!<br />
** Devkits mit einem CH340 USB converter<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
Der Quellcode des LaCrosse Gateways befindet sich [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/36_LaCrosseGateway.zip?format=raw im FHEM SourceForge Repository (contrib)].<br />
<br />
==Firmware Download==<br />
Die [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] befindet sich auf dem [https://sourceforge.net/projects/fhem/ FHEM SourceForge Repository] und wird per FHEM Update verteilt. Neue Version der [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wird im {{Link2Forum|Topic=43672|LinkText=FHEM Forum "LaCrosse Gateway"}} angekündigt und der Funktionsumfang bzw. die Änderungen beschrieben.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*SSID und das Password eintragen<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Wenn man das LGW über USB betreiben will, dann möchte man üblicherweise kein WiFi.<br />
Um das WiFi zu deaktivieren gibt es zwei Möglichkeiten:<br><br />
1.) Man kann mit einen 10k pullup auf 3.3V an MOSI == GPIO13 == D7 "jumpern", dass man kein wifi will. Wenn voranden, wird WiFi sofort beim Start deaktiviert.<br><br />
2.) Man kann WiFi auf der Setup-Page des LGW deaktivieren.<br><br />
<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</source><br />
*'''/dev/ttyUSB0''' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<source lang="php">ls -l /dev/serial/by-id</source><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="php">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</source><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
Während das LaCrosseGateway eine WiFi-Verbindungen 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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
120,30 prüft alle 30 Sekunden, ob seit mindestens 120 Sekunden keine Daten mehr übermittelt wurden (myLaCrosseGateway_TIME) 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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/setup]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann über ein Terminalprogramm, dafür muss das LaCrosseGateway per USB angeschlossen sein, zurückgesetzt werden.<br />
Im Terminalprogramm (Baudrate 57600) den Befehl: <source lang="php">8266e</source> senden.<br />
<br />
Daraufhin wird wieder der Access Point aktiviert auf der die [[#LaCrosseGateway einrichten|initiale Konfiguration]] über die [http://192.168.222.1/setup "Setup"] Seite vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
'''''Beispiel:''' 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme von OLED-Display==<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die neuen settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
<br />
=Nano LaCrosse Gateway=<br />
Das nano LaCrosse Gateway verwendet die gleiche [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wie das WiFi LaCrosse Gateway, der signifikante Unterschied ist die kompakte (portable) Bauform. Aufgrund der Bauform können jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung mit zwei Widerständen<br />
*[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]<br />
*Breakout board mit einem AMS 1117 3.3V<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=16510LaCrosseGateway V1.x2016-10-05T15:11:13Z<p>HCS: /* WLAN */</p>
<hr />
<div>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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.21}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht unterstützt:<br />
** V0.9<br />
** V3.0 - passt nicht, ist größer als das 2.0. Auf der Rückseite steht "Lolin"!<br />
** Devkits mit einem CH340 USB converter<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
Der Quellcode des LaCrosse Gateways befindet sich [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/36_LaCrosseGateway.zip?format=raw im FHEM SourceForge Repository (contrib)].<br />
<br />
==Firmware Download==<br />
Die [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] befindet sich auf dem [https://sourceforge.net/projects/fhem/ FHEM SourceForge Repository] und wird per FHEM Update verteilt. Neue Version der [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wird im {{Link2Forum|Topic=43672|LinkText=FHEM Forum "LaCrosse Gateway"}} angekündigt und der Funktionsumfang bzw. die Änderungen beschrieben.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*SSID und das Password eintragen<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
<br />
===USB===<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</source><br />
*'''/dev/ttyUSB0''' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<source lang="php">ls -l /dev/serial/by-id</source><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="php">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</source><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
Während das LaCrosseGateway eine WiFi-Verbindungen 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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
120,30 prüft alle 30 Sekunden, ob seit mindestens 120 Sekunden keine Daten mehr übermittelt wurden (myLaCrosseGateway_TIME) 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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/setup]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann über ein Terminalprogramm, dafür muss das LaCrosseGateway per USB angeschlossen sein, zurückgesetzt werden.<br />
Im Terminalprogramm (Baudrate 57600) den Befehl: <source lang="php">8266e</source> senden.<br />
<br />
Daraufhin wird wieder der Access Point aktiviert auf der die [[#LaCrosseGateway einrichten|initiale Konfiguration]] über die [http://192.168.222.1/setup "Setup"] Seite vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
'''''Beispiel:''' 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme von OLED-Display==<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die neuen settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
<br />
=Nano LaCrosse Gateway=<br />
Das nano LaCrosse Gateway verwendet die gleiche [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wie das WiFi LaCrosse Gateway, der signifikante Unterschied ist die kompakte (portable) Bauform. Aufgrund der Bauform können jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung mit zwei Widerständen<br />
*[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]<br />
*Breakout board mit einem AMS 1117 3.3V<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=16509LaCrosseGateway V1.x2016-10-05T15:10:20Z<p>HCS: /* Voraussetzungen */</p>
<hr />
<div>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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.21}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht unterstützt:<br />
** V0.9<br />
** V3.0 - passt nicht, ist größer als das 2.0. Auf der Rückseite steht "Lolin"!<br />
** Devkits mit einem CH340 USB converter<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
Der Quellcode des LaCrosse Gateways befindet sich [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/36_LaCrosseGateway.zip?format=raw im FHEM SourceForge Repository (contrib)].<br />
<br />
==Firmware Download==<br />
Die [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] befindet sich auf dem [https://sourceforge.net/projects/fhem/ FHEM SourceForge Repository] und wird per FHEM Update verteilt. Neue Version der [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wird im {{Link2Forum|Topic=43672|LinkText=FHEM Forum "LaCrosse Gateway"}} angekündigt und der Funktionsumfang bzw. die Änderungen beschrieben.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*SSID und das Password eintragen<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Installation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
===USB===<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</source><br />
*'''/dev/ttyUSB0''' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<source lang="php">ls -l /dev/serial/by-id</source><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="php">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</source><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
Während das LaCrosseGateway eine WiFi-Verbindungen 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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
120,30 prüft alle 30 Sekunden, ob seit mindestens 120 Sekunden keine Daten mehr übermittelt wurden (myLaCrosseGateway_TIME) 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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/setup]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann über ein Terminalprogramm, dafür muss das LaCrosseGateway per USB angeschlossen sein, zurückgesetzt werden.<br />
Im Terminalprogramm (Baudrate 57600) den Befehl: <source lang="php">8266e</source> senden.<br />
<br />
Daraufhin wird wieder der Access Point aktiviert auf der die [[#LaCrosseGateway einrichten|initiale Konfiguration]] über die [http://192.168.222.1/setup "Setup"] Seite vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
'''''Beispiel:''' 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme von OLED-Display==<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die neuen settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
<br />
=Nano LaCrosse Gateway=<br />
Das nano LaCrosse Gateway verwendet die gleiche [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wie das WiFi LaCrosse Gateway, der signifikante Unterschied ist die kompakte (portable) Bauform. Aufgrund der Bauform können jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung mit zwei Widerständen<br />
*[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]<br />
*Breakout board mit einem AMS 1117 3.3V<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=16508LaCrosseGateway V1.x2016-10-05T15:08:26Z<p>HCS: /* Serial bridge port und bridge baud */</p>
<hr />
<div>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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.21}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht unterstützt:<br />
** V0.9<br />
** V3.0 - passt nicht, ist größer als das 2.0. Auf der Rückseite steht "Lolin"!<br />
** Devkits mit einem CH340 USB converter<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
Der Quellcode des LaCrosse Gateways befindet sich [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/36_LaCrosseGateway.zip?format=raw im FHEM SourceForge Repository (contrib)].<br />
<br />
==Firmware Download==<br />
Die [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] befindet sich auf dem [https://sourceforge.net/projects/fhem/ FHEM SourceForge Repository] und wird per FHEM Update verteilt. Neue Version der [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wird im {{Link2Forum|Topic=43672|LinkText=FHEM Forum "LaCrosse Gateway"}} angekündigt und der Funktionsumfang bzw. die Änderungen beschrieben.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*SSID und das Password eintragen<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Instllation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
===USB===<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</source><br />
*'''/dev/ttyUSB0''' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<source lang="php">ls -l /dev/serial/by-id</source><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="php">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</source><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
Während das LaCrosseGateway eine WiFi-Verbindungen 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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
120,30 prüft alle 30 Sekunden, ob seit mindestens 120 Sekunden keine Daten mehr übermittelt wurden (myLaCrosseGateway_TIME) 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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/setup]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann über ein Terminalprogramm, dafür muss das LaCrosseGateway per USB angeschlossen sein, zurückgesetzt werden.<br />
Im Terminalprogramm (Baudrate 57600) den Befehl: <source lang="php">8266e</source> senden.<br />
<br />
Daraufhin wird wieder der Access Point aktiviert auf der die [[#LaCrosseGateway einrichten|initiale Konfiguration]] über die [http://192.168.222.1/setup "Setup"] Seite vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
'''''Beispiel:''' 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme von OLED-Display==<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die neuen settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
<br />
=Nano LaCrosse Gateway=<br />
Das nano LaCrosse Gateway verwendet die gleiche [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wie das WiFi LaCrosse Gateway, der signifikante Unterschied ist die kompakte (portable) Bauform. Aufgrund der Bauform können jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung mit zwei Widerständen<br />
*[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]<br />
*Breakout board mit einem AMS 1117 3.3V<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=16507LaCrosseGateway V1.x2016-10-05T15:06:37Z<p>HCS: /* WiFi "Startup-delay" */</p>
<hr />
<div>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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.21}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht unterstützt:<br />
** V0.9<br />
** V3.0 - passt nicht, ist größer als das 2.0. Auf der Rückseite steht "Lolin"!<br />
** Devkits mit einem CH340 USB converter<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
Der Quellcode des LaCrosse Gateways befindet sich [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/36_LaCrosseGateway.zip?format=raw im FHEM SourceForge Repository (contrib)].<br />
<br />
==Firmware Download==<br />
Die [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] befindet sich auf dem [https://sourceforge.net/projects/fhem/ FHEM SourceForge Repository] und wird per FHEM Update verteilt. Neue Version der [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wird im {{Link2Forum|Topic=43672|LinkText=FHEM Forum "LaCrosse Gateway"}} angekündigt und der Funktionsumfang bzw. die Änderungen beschrieben.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*SSID und das Password eintragen<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die neuen settings "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Instllation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
===USB===<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</source><br />
*'''/dev/ttyUSB0''' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<source lang="php">ls -l /dev/serial/by-id</source><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="php">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</source><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
Während das LaCrosseGateway eine WiFi-Verbindungen 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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
120,30 prüft alle 30 Sekunden, ob seit mindestens 120 Sekunden keine Daten mehr übermittelt wurden (myLaCrosseGateway_TIME) 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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/setup]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann über ein Terminalprogramm, dafür muss das LaCrosseGateway per USB angeschlossen sein, zurückgesetzt werden.<br />
Im Terminalprogramm (Baudrate 57600) den Befehl: <source lang="php">8266e</source> senden.<br />
<br />
Daraufhin wird wieder der Access Point aktiviert auf der die [[#LaCrosseGateway einrichten|initiale Konfiguration]] über die [http://192.168.222.1/setup "Setup"] Seite vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
'''''Beispiel:''' 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme von OLED-Display==<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die neuen settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
<br />
=Nano LaCrosse Gateway=<br />
Das nano LaCrosse Gateway verwendet die gleiche [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wie das WiFi LaCrosse Gateway, der signifikante Unterschied ist die kompakte (portable) Bauform. Aufgrund der Bauform können jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung mit zwei Widerständen<br />
*[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]<br />
*Breakout board mit einem AMS 1117 3.3V<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=16506LaCrosseGateway V1.x2016-10-05T15:03:31Z<p>HCS: /* Funktionsweise */</p>
<hr />
<div>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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.21}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht unterstützt:<br />
** V0.9<br />
** V3.0 - passt nicht, ist größer als das 2.0. Auf der Rückseite steht "Lolin"!<br />
** Devkits mit einem CH340 USB converter<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
Der Quellcode des LaCrosse Gateways befindet sich [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/36_LaCrosseGateway.zip?format=raw im FHEM SourceForge Repository (contrib)].<br />
<br />
==Firmware Download==<br />
Die [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] befindet sich auf dem [https://sourceforge.net/projects/fhem/ FHEM SourceForge Repository] und wird per FHEM Update verteilt. Neue Version der [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wird im {{Link2Forum|Topic=43672|LinkText=FHEM Forum "LaCrosse Gateway"}} angekündigt und der Funktionsumfang bzw. die Änderungen beschrieben.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosseGateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*SSID und das Password eintragen<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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 15 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 der LGW mit dem AP verbinden kann.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die neuen settings "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Instllation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
===USB===<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</source><br />
*'''/dev/ttyUSB0''' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<source lang="php">ls -l /dev/serial/by-id</source><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="php">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</source><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
Während das LaCrosseGateway eine WiFi-Verbindungen 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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
120,30 prüft alle 30 Sekunden, ob seit mindestens 120 Sekunden keine Daten mehr übermittelt wurden (myLaCrosseGateway_TIME) 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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/setup]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann über ein Terminalprogramm, dafür muss das LaCrosseGateway per USB angeschlossen sein, zurückgesetzt werden.<br />
Im Terminalprogramm (Baudrate 57600) den Befehl: <source lang="php">8266e</source> senden.<br />
<br />
Daraufhin wird wieder der Access Point aktiviert auf der die [[#LaCrosseGateway einrichten|initiale Konfiguration]] über die [http://192.168.222.1/setup "Setup"] Seite vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
'''''Beispiel:''' 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme von OLED-Display==<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die neuen settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
<br />
=Nano LaCrosse Gateway=<br />
Das nano LaCrosse Gateway verwendet die gleiche [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wie das WiFi LaCrosse Gateway, der signifikante Unterschied ist die kompakte (portable) Bauform. Aufgrund der Bauform können jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung mit zwei Widerständen<br />
*[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]<br />
*Breakout board mit einem AMS 1117 3.3V<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=16505LaCrosseGateway V1.x2016-10-05T15:01:08Z<p>HCS: /* Firmware Download */</p>
<hr />
<div>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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.21}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht unterstützt:<br />
** V0.9<br />
** V3.0 - passt nicht, ist größer als das 2.0. Auf der Rückseite steht "Lolin"!<br />
** Devkits mit einem CH340 USB converter<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
Der Quellcode des LaCrosse Gateways befindet sich [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/36_LaCrosseGateway.zip?format=raw im FHEM SourceForge Repository (contrib)].<br />
<br />
==Firmware Download==<br />
Die [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] befindet sich auf dem [https://sourceforge.net/projects/fhem/ FHEM SourceForge Repository] und wird per FHEM Update verteilt. Neue Version der [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wird im {{Link2Forum|Topic=43672|LinkText=FHEM Forum "LaCrosse Gateway"}} angekündigt und der Funktionsumfang bzw. die Änderungen beschrieben.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosse Gateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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 ESP ist.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*SSID und das Password eintragen<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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 15 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 der LGW mit dem AP verbinden kann.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die neuen settings "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Instllation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
===USB===<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</source><br />
*'''/dev/ttyUSB0''' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<source lang="php">ls -l /dev/serial/by-id</source><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="php">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</source><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
Während das LaCrosseGateway eine WiFi-Verbindungen 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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
120,30 prüft alle 30 Sekunden, ob seit mindestens 120 Sekunden keine Daten mehr übermittelt wurden (myLaCrosseGateway_TIME) 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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/setup]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann über ein Terminalprogramm, dafür muss das LaCrosseGateway per USB angeschlossen sein, zurückgesetzt werden.<br />
Im Terminalprogramm (Baudrate 57600) den Befehl: <source lang="php">8266e</source> senden.<br />
<br />
Daraufhin wird wieder der Access Point aktiviert auf der die [[#LaCrosseGateway einrichten|initiale Konfiguration]] über die [http://192.168.222.1/setup "Setup"] Seite vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
'''''Beispiel:''' 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme von OLED-Display==<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die neuen settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
<br />
=Nano LaCrosse Gateway=<br />
Das nano LaCrosse Gateway verwendet die gleiche [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wie das WiFi LaCrosse Gateway, der signifikante Unterschied ist die kompakte (portable) Bauform. Aufgrund der Bauform können jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung mit zwei Widerständen<br />
*[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]<br />
*Breakout board mit einem AMS 1117 3.3V<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=16495LaCrosseGateway V1.x2016-10-04T11:42:44Z<p>HCS: /* Voraussetzungen */</p>
<hr />
<div>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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.21}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht unterstützt:<br />
** V0.9<br />
** V3.0 - passt nicht, ist größer als das 2.0. Auf der Rückseite steht "Lolin"!<br />
** Devkits mit einem CH340 USB converter<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
Der Quellcode des LaCrosse Gateways befindet sich [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/36_LaCrosseGateway.zip?format=raw im FHEM SourceForge Repository (contrib)].<br />
<br />
==Firmware Download==<br />
Die [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] befindet sich auf dem [https://sourceforge.net/projects/fhem/ FHEM SourceForge Repository] und wird per FHEM Update verteilt. Neue Version der [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wird im {{Link2Forum|Topic=43672|LinkText=FHEM Forum "LaCrosse Gateway"}} angekündigt und der Funktionsumfang bzw. die Änderungen beschrieben.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
'''SDK:'''<br />
Arduino 1.6.9 / Espressiv 1.5.3 / Arduino Core Rev. 14405<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosse Gateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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 ESP ist.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*SSID und das Password eintragen<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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 15 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 der LGW mit dem AP verbinden kann.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die neuen settings "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Instllation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
'''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><br />
Dieses sollte anstatt dem 36_JeeLink.pm vorzugsweise verwendet werden.<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EMT7110.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_Level.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
===USB===<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</source><br />
*'''/dev/ttyUSB0''' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<source lang="php">ls -l /dev/serial/by-id</source><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="php">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</source><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
Während das LaCrosseGateway eine WiFi-Verbindungen 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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
120,30 prüft alle 30 Sekunden, ob seit mindestens 120 Sekunden keine Daten mehr übermittelt wurden (myLaCrosseGateway_TIME) 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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/setup]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann über ein Terminalprogramm, dafür muss das LaCrosseGateway per USB angeschlossen sein, zurückgesetzt werden.<br />
Im Terminalprogramm (Baudrate 57600) den Befehl: <source lang="php">8266e</source> senden.<br />
<br />
Daraufhin wird wieder der Access Point aktiviert auf der die [[#LaCrosseGateway einrichten|initiale Konfiguration]] über die [http://192.168.222.1/setup "Setup"] Seite vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
'''''Beispiel:''' 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme von OLED-Display==<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die neuen settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
<br />
=Nano LaCrosse Gateway=<br />
Das nano LaCrosse Gateway verwendet die gleiche [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wie das WiFi LaCrosse Gateway, der signifikante Unterschied ist die kompakte (portable) Bauform. Aufgrund der Bauform können jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung mit zwei Widerständen<br />
*[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]<br />
*Breakout board mit einem AMS 1117 3.3V<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=16494LaCrosseGateway V1.x2016-10-04T11:29:23Z<p>HCS: </p>
<hr />
<div>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. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.21}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht unterstützt:<br />
** V0.9<br />
** V3.0 - passt nicht, ist größer als das 2.0. Auf der Rückseite steht "Lolin"!<br />
** Devkits mit einem CH340 USB converter<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (LaCrosseGateway, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom LaCrosseGateway FHEM-Modul über IP-Adresse:Port oder Hostname:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
Der Quellcode des LaCrosse Gateways befindet sich [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/36_LaCrosseGateway.zip?format=raw im FHEM SourceForge Repository (contrib)].<br />
<br />
==Firmware Download==<br />
Die [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] befindet sich auf dem [https://sourceforge.net/projects/fhem/ FHEM SourceForge Repository] und wird per FHEM Update verteilt. Neue Version der [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wird im {{Link2Forum|Topic=43672|LinkText=FHEM Forum "LaCrosse Gateway"}} angekündigt und der Funktionsumfang bzw. die Änderungen beschrieben.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
'''SDK:'''<br />
Arduino 1.6.9 / Espressiv 1.5.3 / Arduino Core Rev. 14405<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosseGateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosse Gateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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 ESP ist.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
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.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*SSID und das Password eintragen<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im LaCrosseGateway Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von LaCrosseGateway Device (LaCrosseGateway Modul) aus mit <br />
<source lang="php">set myLaCrosseGateway flash</source> aktualisiert werden.<br />
'''''myLaCrosseGateway''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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 15 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 der LGW mit dem AP verbinden kann.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die neuen settings "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myLaCrosseGateway raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM LaCrosseGateway Modul benötigt.<br />
Auf einem Raspberry Pi kann die Instllation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <IP-Adresse>:81</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden. Anstatt der IP-Adresse kann auch der Hostname vom LaCrosseGateway verwendet werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
===USB===<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myLaCrosseGateway> LaCrosseGateway <USB-Port>@57600</code><br />
<br />
''<myLaCrosseGateway>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/ttyUSB0@57600</source><br />
*'''/dev/ttyUSB0''' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<source lang="php">ls -l /dev/serial/by-id</source><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="php">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<source lang="php">define myLaCrosseGateway LaCrosseGateway /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</source><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br />
<br />
==Reconnect==<br />
Falls das LaCrosseGateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung 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.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myLaCrosseGateway timeout 120,30</source><br />
'''''myLaCrosseGateway''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
Während das LaCrosseGateway eine WiFi-Verbindungen 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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
120,30 prüft alle 30 Sekunden, ob seit mindestens 120 Sekunden keine Daten mehr übermittelt wurden (myLaCrosseGateway_TIME) 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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/setup]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann über ein Terminalprogramm, dafür muss das LaCrosseGateway per USB angeschlossen sein, zurückgesetzt werden.<br />
Im Terminalprogramm (Baudrate 57600) den Befehl: <source lang="php">8266e</source> senden.<br />
<br />
Daraufhin wird wieder der Access Point aktiviert auf der die [[#LaCrosseGateway einrichten|initiale Konfiguration]] über die [http://192.168.222.1/setup "Setup"] Seite vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myLaCrosseGateway LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
'''''Beispiel:''' 220h legt 220m über NN fest.''<br />
<source lang="php">attr myLaCrosseGateway initCommands 220h</source><br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das LaCrosseGateway Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myLaCrosseGateway raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myLaCrosseGateway raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myLaCrosseGateway raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myLaCrosseGateway raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM LaCrosseGateway Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myLaCrosseGateway initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myLaCrosseGateway initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myLaCrosseGateway initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myLaCrosseGateway raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme von OLED-Display==<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des LaCrosseGateway-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myLaCrosseGateway raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myLaCrosseGateway raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myLaCrosseGateway initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die neuen settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
<br />
=Nano LaCrosse Gateway=<br />
Das nano LaCrosse Gateway verwendet die gleiche [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wie das WiFi LaCrosse Gateway, der signifikante Unterschied ist die kompakte (portable) Bauform. Aufgrund der Bauform können jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung mit zwei Widerständen<br />
*[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]<br />
*Breakout board mit einem AMS 1117 3.3V<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCShttp://wiki.fhem.de/w/index.php?title=LaCrosseGateway_V1.x&diff=16489LaCrosseGateway V1.x2016-10-04T11:12:02Z<p>HCS: </p>
<hr />
<div>Das WiFi-LaCrosse-Gateway 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, die als zentrale Steuereinheit dient. <br />
Der signifikante Unterschied zu einem JeeLink USB-Stick ist, der Betrieb über Wireless LAN ([https://de.wikipedia.org/wiki/Wi-Fi WiFi]). <br />
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.<br />
<br />
Der Einsatz eines WiFi-LaCrosse-Gateways bietet folgende Vorteile:<br />
*Kann an eine Stelle platziert werden, an der alle Sensoren optimal empfangen werden, dafür ist nur Strom (5V/1A USB Netzteil) und [https://de.wikipedia.org/wiki/Wi-Fi WiFi] Access Point erforderlich<br />
*Erweiterbar (Derzeit (Stand: 05.2016) ist ca. 30 % Programmspeicher des ESP8266 belegt, im Gegensatz zu 99% bei einem ATMega328, damit steht deutlich mehr Rechenleistung zur Verfügung)<br />
*Im Minimalausbau nur zwei Bauteile NodeMCU DEVKIT 1.0 + RFM69 (siehe Bauteile) nötig{{Randnotiz|RNText=Dokumentationsstand Version 1.21}}<br />
*Alternativ am USB-Port wie ein JeeLink verwendbar<br />
*Einsatz von on board Sensoren / Aktoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]]) möglich<br />
<br />
<br />
<br />
=Hardware=<br />
==Bauteile==<br />
Für das WiFi-LaCrosse-Gateway werden folgende Bauteile verwendet:<br />
*[Option 1] [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#esp-12-e_q ESP8266 ESP-12E Modul].<br />Diese Variante eignet sich für Projekte für die eine kleine Bauform benötigt wird.<br />Für die Inbetriebnahme, insbesondere für das Aufbringen der Firmware, muss das Modul an ein [[Medium:Lgw USB2Serial Adapter.jpg|USB2Serial-Adapter]], angeschlossen werden. Für diese Variante sind Lötkenntnisse erforderlich. <br />
*[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 />[https://forum.fhem.de/index.php/topic,45594.msg430183.html#msg430183 Hinweis:] Folgende Devkits werden nicht unterstützt:<br />
** V0.9<br />
** V3.0 - passt nicht, ist größer als das 2.0. Auf der Rückseite steht "Lolin"!<br />
** Devkits mit einem CH340 USB converter<br />
*[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.<br />
*[Option 4] ESP8266-07 auf einem DEVKIT 1.0. für den Betrieb mit einer externen Wifi Antenne.<br />
**''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.<br />
*[Optional] RFM69CW - Für das Senden und Emfangen funkbasierte LaCrosse Aktoren und Sensoren<br />
*[Optional] On board Sensoren (siehe [[#Unterstützte Sensoren und Aktoren | Unterstützte Sensoren und Aktoren]])<br />
*[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.<br />
*[Optional] OLED-Display SSD1306 I2C zur Darstellung von Daten (Bootvorgang, on board Sensoren, Inhalte aus FHEM)<br />
*[Optional] [[#MCP23008|MCP23008]] zur Bereitstellung (Konfigurierbar) von digitalen 8 Ein- Ausgängen oder Sonderfunktion (OLED)<br />
*Steckbrett (inkl. Kabel/Widerstände)/Lochrasterplatine (Lötkolben, Lötzinn, Widerstände etc.)) / [[#Platine|PeMue Platine]]<br />
<br />
==Schaltung==<br />
===Variante: Devkit 1.0===<br />
[[Datei:lgw_Schaltplan_Devkit.png|400px|thumb|left|Variante: Devkit 1.0]]<br />
<div style="clear:both;"></div><br />
===Variante: ESP8266-12E===<br />
[[Datei:lgw_Schaltplan_FTDI.png|400px|thumb|left|Variante: FTDI]]<br />
<div style="clear:both;"></div><br />
===Variante: Platine (PeMue)===<br />
[[Datei:lgw_Schaltplan_Platine.png|400px|thumb|left|Variante: Platine (PeMue)]]<br />
<div style="clear:both;"></div><br />
===Addon Schaltung=== <br />
[[Datei:lgw_Addon-with-example.png|400px|thumb|left|Die Schaltung des kompletten AddOn mit allen aktuell möglichen Optionen]]<br />
<div style="clear:both;"></div><br />
Siehe [[#Erweiterungsmöglichkeiten | Erweiterungsmöglichkeiten]].<br />
===MCP2308=== <br />
I2C Adresse 0x27 -> A0,A1,A2 = 3.3V<br />
<source lang="php"> <br />
|-------\/-------|<br />
LGW D1 |1 SCL VDD 18| LGW 3.3V <br />
LGW D2 |2 SDA GP7 17| PB7 --/ --- GND or Output<br />
LGW 3.3V |3 A2 GP6 16| PB6 --/ --- GND or Output<br />
LGW 3.3V |4 A1 GP5 15| PB5 --/ --- GND or Output<br />
LGW 3.3V |5 A0 GP4 14| PB4 --/ --- GND or Output<br />
LGW 3.3V |6 RES GP3 13| PB3 --/ --- GND or Output<br />
|7 NC GP2 12| PB2 --/ --- GND or Output<br />
|8 INT GP1 11| PB1 --/ --- GND or Output<br />
LGW GND |9 VSS GP0 10| PB0 --/ --- GND or Output<br />
|----------------|</source><br />
<br />
==Aufbau auf einem Steckbrett==<br />
[[Datei:lgw_Steckbrett.png|600px|thumb|left|LaCrosseGateway Aufbau auf einem Steckbrett]]<br />
<div style="clear:both;"></div><br />
'''''Hinweis:''' Der Sender und Empfänger RFM12, der auf dem Steckbrett zu sehen ist, wird nicht mehr unterstützt.''<br />
<br />
==Platine==<br />
PeMue (vielen Dank) hat {{Link2Forum|Topic=45594|LinkText=hier}} eine Platine (7,1cm x 5,0cm) für das LaCrosseGateway entworfen (Stand 05.2016).<br />
<br />
===Oberseite===<br />
[[Datei:lgw_Platine_Oberseite.jpg|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Unterseite===<br />
[[Datei:lgw_Platine_Unterseite.jpg|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Oberseite===<br />
[[Datei:Lgw_Platine_Devkit_oberseite.png|400px|thumb|left|LaCrosseGateway Platine Oberseite]]<br />
<div style="clear:both;"></div><br />
<br />
===Devkit 1.0 bestückt Unterseite===<br />
[[Datei:lgw_Platine_Devkit_unterseite.png|400px|thumb|left|LaCrosseGateway Platine Unterseite]]<br />
<div style="clear:both;"></div><br />
<br />
===ESP8266-12E bestückt Oberseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280 und DHT22]]<br />
| [[Datei:lgw_Platine_ESP-12E_oberseite_2.jpg|490px|thumb|left|(2) LaCrosseGateway Platine Oberseite mit 2 x RFM69CW, BME280]]<br />
| [[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]]<br />
|}<br />
'''''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.''<br />
<br />
===ESP8266-12E bestückt Unterseite===<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite.png|400px|thumb|left|(1) LaCrosseGateway Platine Unterseite]]<br />
| [[Datei:lgw_Platine_ESP-12E_unterseite_2.jpg|415px|thumb|left|(2) LaCrosseGateway Platine Unterseite mit 2 x RFM69CW, BME280]]<br />
|}<br />
<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*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 />
*Die Antennenlänge für das RFM69CW beträgt 82 mm. Dafür möglichst eindrähtigen Leiter (aus Kupfer) verwenden.<br />
<br />
==Erweiterungsmöglichkeiten==<br />
Das LaCrosseGateway kann optional mit verschiedenen Komponenten erweitert werden.<br />
<br />
Folgende Erweiterungen sind möglich:<br />
*es kann ein eigener Prozessor (mit eigener Firmware) angeschlossen werden, der Daten empfängt und diese dem LGW übergibt.<br />
*es kann z.B. ein NanoCUL angeschlossen werden, dessen serielle Schnittstelle transparent auf einem Port im Web bereitgestellt wird.<br />
*es kann ein vierter und fünfter RFM69CW angeschlossen werden, diese können alles, was die bisherigen drei auch können.<br />
*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.<br />
<br />
Alle diese Daten stellt das LaCrosseGateway per WiFi an FHEM zu, dort wird es von den entsprechenden Modulen (JeeLink, LaCrosse, PCA301, ...) weiterverarbeitet.<br />
<br />
Alle Komponenten werden automatisch erkannt, sofern angeschlossen.<br />
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.<br />
<br />
Der SC16IS750 wird per I2C an das LaCrosseGateway angeschlossen und bietet eine serielle Schnittstelle und 8 Digital I/Os<br />
<br />
<br />
'''Auf dieser Basis sind momentan folgende Erweiterungen möglich:'''<br />
<br />
===SubProzessor===<br />
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.<br />
Ferner ermöglicht es die Implementierung von eigenen Projekten, dabei werden die zeitkritischen Abläufe des LGWs nicht beeinträchtig.<br />
<br />
An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini)<br />
Entweder ein 3.3V / 8MHz oder ein 5V / 16MHz, der aber dann auch mit 3.3V betrieben wird.<br />
<br />
'''''Wichtig:''' Alle LaCrosseGateway Komponenten laufen ausschließlich mit '''3.3V''', aus diesem Grund dürfen keine '''5V''' Komponenten angeschlossen werden.''<br />
<br />
'''Firmware flashen'''<br />
<br />
Die Firmware kann über das LGW auf den SubProzessor (Voraussetzung: Arduino hat einen bootloader) geflasht werden.<br />
<br />
Dazu wird sie auf das LGW hochgeladen (<nowiki>http://<LGW-IP>/ota/addon.hex</nowiki>).<br />
<br />
Das LGW nimmt den Upload entgegen, wandelt das Intel-Hex in binary um und schickt es per STK500-Protokoll an den Arduino.<br />
<br />
Falls ein OLED angeschlossen ist, wird sogar ein progress angezeigt.<br />
<br />
'''Vorgehen Firmware flashen'''<br />
<br />
Die Firmware kann z.B. mithilfe von "curl" mit dem nachfolgendem Befehl hochgeladen werden:<br />
<source 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</source><br />
<br />
'''''Hinweis:''' fielname=addon.hex im Beispiel darf nicht verändert werden, nur /myFolder/LGW-Addon.ino.hex und die IP-Adresse wird entsprechend angepasst.''<br />
<br />
Der Upload dauert etwas, danach sollte bei Erfolg vom LGW ein Protokoll zurückgeschickt bekommen, der wie folgt aussieht:<br />
<source lang="php">Start receiving 'addon.hex'<br />
File: /addon.hex Size: 21417<br />
Starting flash<br />
Sending sync<br />
Enter program mode<br />
Binary size is:7608<br />
Leave Program Mode<br />
Flash finished</source><br />
<br />
Mit dem SubProzessor können die entsprechenden Daten auf zwei mögliche Arten am LGW übermittelt werden:<br />
<br />
'''KeyValueProtokoll (KVP):'''<br />
Format:<source lang="php">KV <Type> <Address> <Key>=<Value>,<Key>=<Value>,<Key>=<Value>, ...</source><br />
Beispiel:<source lang="php">KV DHT 01 Temperature=21.5,Humidity=62</source><br />
<br />
Das LGW übermittelt die Daten als KVP an FHEM und dort entsteht ein KVP Device, das die Daten darstellt.<br />
<br />
'''LaCrosse:'''<br />
<br />
Format:<source lang="php">LC <Address> T=<Temperature>,H=<Humidity></source><br />
Beispiel:<br />
<source lang="php">LC 9F T=21.5,H=62</source><br />
<source lang="php">LC 9F T=21.5</source><br />
Das LGW setzt die Werte in das LaCrosse Protokoll um (wie z.B. ein TX29DTH) und schickt sie an FHEM.<br />
In FHEM entsteht ein LaCrosse Device (autocreate, LaCrossePairForSec ...), als ob es ein LaCrosse Sensor wäre.<br />
<br />
Das [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] ist ein einfaches Beispiel, das diese Technik veranschaulicht.<br />
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<br />
<br />
Der umrandete Bereich [[#Addon Schaltung |Schaltung - "Example"]] "Example" ist das zu [https://forum.fhem.de/index.php?action=dlattach;topic=43672.0;attach=48914 LGW-Addon.ino] passende Beispiel.<br />
<br />
==Unterstützte Sensoren und Aktoren==<br />
Alle Sensoren, die auch vom "LaCrosse Arduino" Sketch unterstützt werden, incl. WS 1600 und WS 1080 (Hinweis beachten)<br />
siehe [[JeeLink#LaCrosse_Sketch |LaCrosse Sketch]]<br />
<br />
{| class="wikitable"<br />
!Bezeichnung !! Datenrate !! Sonstiges !!Funktion !!Link / Hinweise<br />
|-<br />
| TX21IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX25-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX27-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX29DTH-IT || 17.241 kbps ||extern||||<br />
|-<br />
| TX37 || 17.241 kbps ||extern||||<br />
|-<br />
| TX35TH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| TX35DTH-IT || 9.579 kbps ||extern||||<br />
|-<br />
| 30.3143.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3144.IT || 17.241 kbps ||extern|||| ({{Link2Forum|Topic=17662|LinkText=Forenthread}})<br />
|-<br />
| 30.3147.IT || 17.241 kbps ||extern||||<br />
|-<br />
| 30.3155WD || 9.579 kbps ||extern|||| kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}}<br />
|-<br />
| 30.3156WD || 9.579 kbps ||extern|||| Batterie-kritisch. Funktioniert schlecht mit Akkus!<br />
|-<br />
| 30.3187.IT || 17.241 kbps ||extern||||<br />
|-<br />
| WT440XH || 17.241 kbps ||extern||||<br />
|-<br />
| WS 1600 (TX22) || 8.842 kbps || extern |||| ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})<br />
|-<br />
| WS 1080 || 17.241 kbps || extern |||| Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}})<br />
|-<br />
| [[EMT7110]] || 9.579 kbps || extern |||| ({{Link2Forum|Topic=26494|LinkText=Forenthread}})<br />
|-<br />
| LevelSender || 17.241 kbps || extern ||||<br />
|-<br />
| PCA301 ||868950 kHz (868,970 und 868,990 ) 6.631 kbps || extern || Energiemess-Steckdose (Unterstützung werden bis zu 50 Dosen)|| <br />
|-<br />
| EC3000 ||868.300 kHz mit 20.000 kbps|| extern || Energiemess-Steckdose funktioniert nur mit RFM69, nicht mit RFM12 || <br />
|-<br />
| RFM69CW || || on board || Zum Empfangen und Senden von Sensor/Aktor Daten.|| Hinweise DHT22 beachten.<br />
|-<br />
| 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.<br />
|-<br />
| 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.<br />
|-<br />
| LM75 || || on board|| Temperatur || <br />
|-<br />
| DHT22 || ||on board|| Temperatur und Feuchte. || Kann anstatt RFM69 Radio#3 eingesetzt werden.<br />
|-<br />
| SC16IS750 || I2C Adresse: 0x90 ||on board|| OI Erweiterung || <br />
|-<br />
| OLED SSD1306|| I2C Adresse: 0x3C || on board || OLED Display||<br />
|-<br />
| MCP23008|| I2C Adresse: 0x27 || on board || Input/Output Port Expander||<br />
|-<br />
| Piezo Summer |||| on board ||Piezo Buzzer||<br />
<br />
|}<br />
<br />
Hinweis zur WS 1080: Die WS 1080 gibt es (unter gleichem Namen) in einer OOK- und in einer FSK-Version<br />
Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version nicht.<br />
Die FSK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Nur diese Version kann empfangen werden.<br />
Die OOK-Version erkennt man an dem grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS A14C". <br />
<br />
<br />
Alle direkt am LGW anschließbare Sensoren werden automatisch erkannt, wenn sie vorhanden sind.<br />
<br />
<u>Sie werden in folgender Reihenfolge verwendet:</u><br />
<br />
Wenn ein BME280 vorhanden ist, wird dieser verwendet und sonst nichts, da man dann bereits Temperatur, Feuchte und Druck hat.<br />
<br />
Ist kein BME280 vorhanden, wird geschaut, ob ein BMP180 vorhanden ist. Falls ja, haben wir Druck und Temperatur.<br />
<br />
Dann wird geschaut, ob ein DHT22 vorhanden ist. Wenn ja, wird er zusätzlich verwendet, aber vom BMP180 dann nur noch der Druck.<br />
<br />
Temperatur und Feuchte vom DHT22, dass dieses Wertepaar von einem Sensor stammt.<br />
<br />
Wenn kein BMP180 und kein BME180 da ist, sondern nur ein DHT22, dann hat man Temperatur und Feuchte.<br />
<br />
Wenn nichts vorhanden ist (also keiner der bisher genannten Sensoren), wird, falls vorhanden, der LM75 verwendet.<br />
<br />
=Software=<br />
==Funktionsumfang==<br />
*Access Point für die Konfiguration<br />
*Konfiguration über WEB-Frontend (Erreichbar per ''<nowiki>http://IP-Adresse oder Hostname/setup</nowiki>'' auf Port 80 )<br />
**SSID und Password (Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.)<br />
**Statische IP-Adresse anstatt DHCP<br />
**Hostname<br />
*Vom JeeLink FHEM-Modul über IP-Adresse:Port ansprechbar. Der Port ist konfigurierbar.<br />
*Unterstützt bis zu 5 x RFM69CW (Keine Unterstützung für RFM12) <br />
*On board und externe Sensoren und Aktoren ([[#Unterstützte Sensoren und Aktoren |Unterstützte Sensoren und Aktoren]])<br />
*Betrieb nur per USB möglich, als ob es ein JeeLink wäre<br />
*FHEM Anbindung<br />
*Log im Web-Frontend<br />
*Firmware OTA-Update (Firmware-Over-the-Air-Update per FHEM)<br />
*Erweiterungsmöglichkeiten per SC16IS750 (Für Buzzer und für weitere zwei RFM69)<br />
*SubProzessor (An die serielle Schnittstelle des SC16IS750 kann optional ein Arduino angeschlossen werden (z.B. ein Pro Mini))<br />
*Serial bridge (Optional kann die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitgestellt werden)<br />
<br />
==Sourcecode==<br />
Der Quellcode des LaCrosse Gateways befindet sich [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/arduino/36_LaCrosseGateway.zip?format=raw im FHEM SourceForge Repository (contrib)].<br />
<br />
==Firmware Download==<br />
Die [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] befindet sich auf dem [https://sourceforge.net/projects/fhem/ FHEM SourceForge Repository] und wird per FHEM Update verteilt. Neue Version der [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wird im {{Link2Forum|Topic=43672|LinkText=FHEM Forum "LaCrosse Gateway"}} angekündigt und der Funktionsumfang bzw. die Änderungen beschrieben.<br />
<br />
Nach einem FEHM-Update alternativ auch: ''<FHEM-Installations-Verzeichnis>/FHEM/firmware/JeeLink_LaCrosseGateway.bin''<br />
<br />
'''SDK:'''<br />
Arduino 1.6.9 / Espressiv 1.5.3 / Arduino Core Rev. 14405<br />
<br />
==Firmware aufspielen==<br />
Wie bei einem JeeLink muss auch für das LaCrosse Gateway die Firmware aufgespielt werden.<br />
<br />
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.<br />
<br />
Bei einem ESP8266-12E Modul kann die Firmware mithilfe eines Seriell-USB-Konverters aufgespielt werden.<br />
<br />
===Windows/Mac/Linux per "esptool"===<br />
Verifiziert und getestet wurde dieses Vorgehen auf Windows (Windows 10), Mac (El Capitan):<br />
<br />
1) Das [https://github.com/igrr/esptool-ck/releases esptool 0.4.6] für die entsprechende Plattform herunterladen.<br />
<br />
2) Zum Aufspielen der Firmware, muss ein Befehl nach der folgenden Syntax ausgeführt werden:<br />
<source lang="php"><br />
esptool -vv -cp [Port] -cb 921600 -ca 0x00000 -cd nodemcu -cf [Pfad zur Firmware (bin-File)]</source><br />
'''[Port]''' und '''[Pfad zur Firmware (bin-File)]''' müssen angepasst werden.<br />
<br />
''Beispiel (Mac/Linux):''<br />
<br />
<source lang="php">esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 921600 -ca 0x00000 -cd nodemcu -cf JeeLink_LaCrosseGateway.bin</source><br />
<br />
'''''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.''<br />
<br />
===Windows per "nodemcu-flasher"===<br />
<br />
1) [https://github.com/nodemcu/nodemcu-flasher/raw/master/Win32/Release/ESP8266Flasher.exe Espressif Flashtool] downloaden und entpacken:<br />
<br />
2) [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] downloaden<br />
<br />
3) FlashTool starten und wie folgt einstellen:<br />
<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:nodemcu-flasher_1.png|450px|thumb|left|Firmware auswählen]]<br />
| [[Datei:nodemcu-flasher_2.png|450px|thumb|left|Flash Parameter (Advanced Tab) wie abgebildet einstellen]]<br />
|}<br />
<br />
4) COM-Port auswählen und den Flashvorgang starten (Button: '''Flash(F)''') ...<br />
[[Datei:nodemcu-flasher_3.png|450px|thumb|left|COM Port auswählen und das "Flashen" initiieren]]<br />
<div style="clear:both;"></div><br />
<br />
Nach dem Flashen sollte über die serielle Ausgabe des ESP der Start und das Öffen des AccessPoints zu sehen sein.<br />
<br />
'''''Hinweis:''' Die Geschwindigkeit von 921600 baud ist nicht auf jedem Rechner (besonders auf virtualisierten Systemen) machbar. In diesem Fall die Baudrate auf 57600 reduzieren.''<br />
<br />
==Funktionsweise==<br />
Während des Startvorgangs versucht sich das LaCrosse Gateway in einem WLAN anzumelden. Dazu muss es eine SSID und das entsprechende Passwort kennen.<br />
<br />
Beim ersten Start (nach dem initialen Aufspielen der Firmware) sind diese Informationen noch unbekannt. Aus diesem Grund wird folgende Strategie verfolgt:<br />
<br />
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 ESP ist.<br />
<br />
Der Access Point wird aus Sicherheitsgründen nach 15 Minuten wieder geschlossen.<br />
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 http://192.168.222.1/setup] die initiale Konfiguration vorgenommen werden.<br />
Die Konfiguration wird im EEPROM gespeichert und bei zukünftigen Neustarts verwendet.<br />
Die Konfigurationsseite ist auch im "Normalbetrieb" (ohne Access Point) über die Adresse http://''seine aktuelle IP-Adresse''/setup erreichbar.<br />
<br />
Wenn sich das LaCrosse Gateway 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 JeeLink Modul senden und empfangen kann - als wenn es ein JeeLink wäre.<br />
<br />
'''Optische Darstellung der Initialisierung'''<br />
<br />
Beim Start und der Initialisierung wird mit der Board-eigenen LED signalisieren, was gerade passiert:<br />
*5 schnelle blinks direkt nach dem Start, als Zeichen, dass ein Reset stattgefunden hat<br />
*Blinken im Sekundentakt, während versucht wird, sich mit einem WLAN zu verbinden.<br />
*LED aus, wenn der Connect zu einem WLAN geklappt hat und dann vereinzeltes Blinken, wenn Daten an FHEM übermittelt werden<br />
<br />
== LaCrosseGateway einrichten ==<br />
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 [[#Windows per "nodemcu-flasher" |NODEMCU Firmware Programmer]] (''Reiter "Operation -> "STA MAC"'') entnommen werden. <br />
<br />
Sofern diese Vorbereitungen getroffen wurden und alle Informationen vorliegen, kann das LaCrosseGateway eingerichtet werden.<br />
<br />
'''''<u>Für die Konfiguration sind folgende Schritte nötig:</u>'''''<br />
*Mit dem LaCrosseGateway Access Point "LaCrosseGateway_xxxxxx" verbinden (siehe [[#Funktionsweise |Beschreibung Funktionsweise]])<br />
*Mithilfe eines Browsers die [http://192.168.222.1/setup LaCrosseGateway "Setup"-Page] öffnen<br />
*SSID und das Password eintragen<br />
*''[Empfohlen]'' Das Frontend Passwort festlegen<br />
*''[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<br />
*''[Empfohlen]'' Hostnamen festlegen bzw. anpassen<br />
*Alle Angaben mit dem Button "save and restart" bestätigen. Dabei werden die vorgenommen Einstellungen im EEPROM gespeichert und ein Neustart des LaCrosseGateways initiiert.<br />
<br />
Nach dem Neustart verbindet sich das LaCrosseGateway mit dem WLAN-Router. <br />
<br />
Anschließend kann mit der [[#Hinweise zum Betrieb mit FHEM |Inbetriebnahme in FHEM]] fortgefahren werden.<br />
<br />
==Firmware aktualisieren==<br />
<br />
Nachfolgend werden, neben der unter dem Punkt [[#Firmware aufspielen |Firmware aufspielen]] beschriebenen Möglichkeiten, weitere Möglichkeiten zur Aktualisierung der LaCrosseGateway [[LaCrosseGateway#Firmware Download|Firmware]] aufgezeigt.<br />
<br />
Hinweis: Die Einstellungen des LaCrosseGateway werden dabei nicht gelöscht.<br />
<br />
=== Per FHEM (OTA-Update)===<br />
Voraussetzungen:<br />
<br />
*Das LGW muss auf der IP-Adresse, die im JeeLink Modul definiert ist, erreichbar sein<br />
*Es wird kein avrdude benötigt<br />
*Das Attribut "flashCommand" spielt keine Rolle<br />
<br />
Die LaCrosseGateway Firmware kann von JeeLink Device (JeeLink Modul) aus mit <br />
<source lang="php">set myJeeLink flash</source> aktualisiert werden.<br />
'''''myJeeLink''' muss bei Bedarf auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
'''''Hinweis:''' Das Update dauert ca. 30 Sekunden.''<br />
<br />
=== Per CURL ===<br />
Voraussetzungen:<br />
*[https://curl.haxx.se/download.html curl-Tool] installiert <br />
<br />
'''''Beispiel:'''''<br />
<source 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</source><br />
<br />
'''Firmwaredateiname (file=)''' und die '''IP-Adresse''' muss entsprechend angepasst werden.<br />
<br />
=== Per WEB OTA-Update (deprecated)===<br />
<br />
'''''deprecated'''''<br />
<br />
==LaCrosseGateway Web-Frontend==<br />
===Staus-Wert RSSI===<br />
Die WiFi Signalstärke (dBm) (-36 ist besser als -60)<br />
<br />
===Staus-Wert FramesPerMinute===<br />
Dieser gibt an, wie viele frames von Sensoren in der letzten Minute erfolgreich empfangen, dekodiert und verarbeitet wurden.<br />
Es eignet sich zur Überwachung, wenn weniger als ein Grenzwert empfangen wurde, dann kann ein Alarm (Benachrichtigung, Restart etc.) ausgelöst werden.<br />
<br />
===Staus-Wert ReceivedFrames===<br />
Dieser Wert gibt an, wie viele seit dem Start des LGW empfangen wurden.<br />
<br />
===WiFi "Startup-delay"===<br />
<br />
Mit diesen Konfigurationsprameter kann eine Verzögerung (in Sekunden) definiert werden, bis das LGW nach einen Neustart einen ersten Verbindungsversuch zum WiFi Access Point (Router: Fritzbox etc.) startet.<br />
<br />
Eine Anpassung kann für den folgenden Fall sinnvoll sein:<br />
<br />
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 15 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 der LGW mit dem AP verbinden kann.<br />
<br />
===Internal Sensors "Sensor-ID"===<br />
Bei Einsatz von mehr als einem LaCrosseGateway, muss die LaCrosse-ID, mit der die internen Sensoren des Gateways übermittelt werden, angepasst werden. <br />
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.<br />
<br />
'''''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 ein 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 unterschiedliche konfigurieren.<br />
<br />
Die Anpassung der LaCrosse-ID hat keinerlei Einfluss auf die Daten, die von den Radios empfangen werden.<br />
<br />
===Internal Sensors "Altitude"===<br />
Mit diesen Parameter kann die Höhe über NN konfiguriert werden.<br />
<br />
===Internal Sensors "Temperature-/Humidity-correction"===<br />
Für Temperatur und Feuchte kann ein Korrekturwert angegeben werden.<br />
<br />
Der Wert kann entweder ein Offset oder prozentual sein.<br />
<br />
'''Beispiele:'''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Korrekturwert !! Gemessen !! Ergebnis<br />
|-<br />
| -5 <br />
| 20°C<br />
| 15°C<br />
|-<br />
| +3<br />
| 20°C<br />
| 23°C<br />
|-<br />
| -10%<br />
| 20°C<br />
| 18°C<br />
|-<br />
| +20%<br />
| 20°C<br />
| 24°C<br />
|}<br />
<br />
===SC16IS750-Clone===<br />
Wenn aktiviert, wird die I2C clock auf 100 kHz runtergenommen und<br />
es wird an einigen Stellen etwas auf die Bremse getreten, dass ein SC16IS70-Clone, der langsamer<br />
als echte Hardware ist, mitkommt.<br />
Sollte man ohne zwingenden Grund nicht aktivieren.<br />
<br />
===Use MDNS=== <br />
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.<br />
Dies ist beim Entwickeln sinnvoll, kann üblicherweise ausgeschaltet bleiben.<br />
<br />
===MCP23008=== <br />
Konfigurationsmöglichkeit für die 8 IO Pins (siehe auch [[#Inbetriebnahme_von_MCP23008|Inbetriebnahme von MCP23008]]).<br />
<br />
===Serial bridge port und bridge baud===<br />
Das LGW kann nun optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die neuen settings "Serial bridge port" und "Serial bridge baud" auf der "config"-Page des LGWs.<br />
Das LGW überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
<br />
===Statuswerte abrufen===<br />
Mit http://<IP-des-LGW>/state können die Statuswerte, die das LGW-Frontend anzeigt, als XML zur Weiterverarbeitung abgerufen werden.<br />
<br />
Beispiel:<br />
<source lang="php"><LGW><br />
<Info Key="UpTimeSeconds" Value="107086"/><br />
<Info Key="UpTimeText" Value="1Tg. 5Std. 44Min. 46Sek. "/><br />
<Info Key="WIFI" Value="NeverTellThem"/><br />
<Info Key="MacAddress" Value="18:FE:34:9A:6D:48"/><br />
<Info Key="ChipID" Value="10120520"/><br />
<Info Key="ReceivedFrames" Value="93593"/><br />
<Info Key="FramesPerMinute" Value="52"/><br />
</LGW></source><br />
<br />
===Funktionsweise Log===<br />
Das Log ist als Hilfsmittel bei der Fehlersuche gedacht z.B. um bei PCA301 zu verfolgen, wann wer was wie frägt und antwortet oder um zu schauen, ob irgend welche Sensoren überhaupt empfangen werden und die Daten an FHEM geliefert werden.<br />
<br />
[[Datei:lgw_LogPage.png|600px|thumb|left|LaCrosseGateway Log ebfrontend]]<br />
<div style="clear:both;"></div><br />
Mit "Command" kann man Befehle an das LGW senden. Sie entsprechen dem, was man mit "set myJeeLink raw ..." aus FHEM schicken kann.<br />
Die obere Liste enthält die Daten, die an FHEM übermittelt werden (bzw. würden, wenn sich ein FHEM auf das LGW verbunden hat)<br />
Die untere Liste enthält debug-Informationen u.a. wird hier der letzte Systemstart aufgezeichnet.<br />
Die verwendete SDK-Version und der letzte Reset-Grund werden ebenfalls ausgegeben<br />
<br />
Das Log kann per HTTP abgerufen werden:<br />
<source lang="php">http://<LGW-IP>/getLogData</source><br />
<br />
'''''Beispiel:'''''<br />
<source lang="php">http://192.168.31.211/getLogData</source><br />
<br />
das Ergebnis sieht wie folgt aus:<br />
<source 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]<br />
DATA:OK 9 11 130 4 173 125 [92 D5 97 7D 75]<br />
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]<br />
SYS: AddOn: KV ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK VALUES ADDON 01 Voltage=3.33,UpTime=4921<br />
DATA:OK 9 38 1 4 67 65 [99 84 91 41 07]<br />
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]<br />
DATA:OK 9 36 1 4 128 61 [99 05 52 3D 96]<br />
DATA:OK WS 0 4 4 185 255 255 255 255 255 255 255 255 255 0 3 252</source><br />
<br />
'''''DATA:''''' für die obere Liste<br />
<br />
'''''SYS: ''''' für die untere Liste<br />
<br />
<br />
Bei jedem Aufruf werden die seit dem letzten Abruf neu aufgelaufenen Logeinträge geliefert.<br />
Intern werden maximal 40 Einträge gepuffert (aber kein Ringpuffer, weil die ersten 40 mit dem Bootlog erhalten bleiben müssen)<br />
<br />
'''''Hinweis:''''' Aus Performance- und Stabilitätsgründen sollten die Daten nicht zu häufig und nicht von zwei Instanzen gleichzeitig abgerufen werden.<br />
<br />
=Hinweise zum Betrieb mit FHEM=<br />
<br />
<br />
==Voraussetzungen==<br />
Es wird ein [[#LaCrosseGateway einrichten |vorkonfiguriertes]] LaCrosseGateway vorausgesetzt.<br />
<br />
Perl Modul: ''LWP::UserAgent'' - Dieses wird für das Firmware Update per FHEM JeeLink Modul benötigt.<br />
Auf einem Raspberry Pi kann die Instllation wie folgt durchgeführt werden:<br />
<source lang="php">sudo apt-get install libwww-perl</source><br />
alternativ auch mit<br />
<source lang="php">sudo cpan LWP::UserAgent</source><br />
<br />
'''FHEM Module'''<br />
<br />
''36_LaCrosseGeateway.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_KeyValueProtocol.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_JeeLink.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_LaCrosse.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_PCA301.pm'' (wird per FHEM Update verteilt)<br />
<br />
''36_EC3000.pm'' (wird per FHEM Update verteilt)<br />
<br />
==Device Definition==<br />
===WLAN===<br />
Die Definition sieht dann wie folgt aus:<br />
<br />
<code>define <myJeeLink> JeeLink <IP-Adresse>:81</code><br />
<br />
''<myJeeLink>'' kann bei Bedarf angepasst werden.<br />
<br />
''<IP-Adresse>'' muss entsprechend angepasst werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myJeeLink JeeLink 192.168.22.33:81</source><br />
<u>IP-Adresse ermitteln:</u> Das LaCrosseGateway heist per default Einstellung "''LaCrosseGateway''", per ping auf den Hostnamen ''LaCrosseGateway'' kann die <IP-Adresse> ermittelt werden.<br />
===USB===<br />
Für den Betrieb via USB sieht die Definition wie folgt aus:<br />
<br />
<code>define <myJeeLink> JeeLink <USB-Port>@57600</code><br />
<br />
''<myJeeLink>'' kann bei Bedarf angepasst werden.<br />
<br />
''<USB-Port>'' muss entsprechend angepasst werden.<br />
<br />
'''Beispiel:'''<br />
<source lang="php">define myJeeLink JeeLink /dev/ttyUSB0@57600</source><br />
*'''/dev/ttyUSB0''' Falls bereits mehrere USB Geräte angeschlossen sind muss der USB Port angepasst werden.<br />
<br />
<br />
'''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.<br />
<br />
Dieser Befehl zeigt die Serial-ID der angeschlossenen USB-Devices an: <br />
<source lang="php">ls -l /dev/serial/by-id</source><br />
<br />
Beispiel für die Ausgabe:<br />
<source lang="php">lrwxrwxrwx 1 root root 13 Mai 14 10:37 usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0 -> ../../ttyUSB1<br />
lrwxrwxrwx 1 root root 13 Mai 30 11:27 usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 -> ../../ttyUSB2<br />
lrwxrwxrwx 1 root root 13 Apr 16 14:52 usb-Silicon_Labs_ELV_USB-Modul_UM2102_EVFSRFF8COEXIKOT-if00-port0 -> ../../ttyUSB0</source><br />
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.<br />
<br />
Auf Basis dieser Informationen lässt sich folgende Definition erstellen:<br />
<br />
<source lang="php">define myJeeLink JeeLink /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0@57600</source><br />
Wichtig ist es, die Übertragungsrate von 57600 bit/s anzugeben.<br />
<br />
==Reconnect==<br />
Falls das LaCrosse Gateway nicht erreichbar ist (Kein Strom/Stromausfall, WLAN Verbingung unterbrochen etc.), bricht das JeeLink Device die Kommunikation ab. Über das entsprechende ''timeout'' Attribut kann das JeeLink device so konfigurert werden, dass es in regelmässigen Abständen erneut versucht eine Verbindung mit dem LaCrosseGateway herzustellen.<br />
<br />
Konfigurationsempfehlung für ''timeout'' = 120 Sekunden und ''checkInterval'' = 30 Sekunden:<br />
<br />
Der Wert kann in FHEM wie folgt gesetzt werden:<br />
<source lang="php">attr myJeeLink timeout 120,30</source><br />
'''''myJeeLink''' muss auf den Gerätenamen in FHEM angepasst werden.''<br />
<br />
Während das LaCrosseGateway eine WiFi-Verbindungen aufbaut, benötigt das JeeLink-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.<br />
<br />
<br />
'''''Erklärung der Timeout Werte:'''''<br />
120,30 prüft alle 30 Sekunden, ob seit mindestens 120 Sekunden keine Daten mehr übermittelt wurden (myJeeLink_TIME) 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.<br />
<br />
'''''Hinweis:''' Mit diesem Attribut wird lediglich eine neue Verbindung aufgebaut, dabei wird das LaCrosseGateway nicht resetet.''<br />
<br />
==JeeLink Set/Get-Befehle==<br />
Mit dem LaCrosseGateway Skatch funktionieren nur die foldenden JeeLink ''"Set"''-Befehle:<br />
<source lang="php">LaCrossePairForSec, flash, raw und reset</source><br />
'''''Achtung:''' Die Verwendung von hier nicht aufgeführten Befehlen kann zu inkonsistenten Einstellungen des LaCrosseGateway führen.''<br />
<br />
Bisher existieren keine funktionierenden JeeLink ''"Get"'' Befehle.<br />
<br />
==Liste aller initCommands==<br />
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.<br />
<br />
[http://IP-Adresse/setup http://IP-Adresse oder Hostname/setup]<br />
<br />
<source lang="php"><br />
<n>a set to 0 if the blue LED bothers<br />
<n>c use one of the possible data rates (for transmit on RFM #1)<br />
<n>d set to 1 to see debug messages<br />
<8266>e Clear EEPROM<br />
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515)<br />
<n>g get information (1g: get current settings)<br />
<n>h Altitude<br />
<n,f,i>i Init PCA for Radio #<n> to <m>MHz and <i>s Interval<br />
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #1)<br />
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #2)<br />
<n>#<x>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps, 8 : 20.000 kbps (for RFM #x)<br />
<n>o set HF-parameter e.g. 50305o for RFM12 or 1,4o for RFM69<br />
<n>p payload on the serial port (1: all, 2: only undecoded data)<br />
<n>r use one of the possible data rates (for RFM #1)<br />
<n>R use one of the possible data rates (for RFM #2)<br />
<n>#<x>r use one of the possible data rates (for RFM #x)<br />
<x,x,...>s Send to PCA301 (must be 10 byte)<br />
<x,x,...>S Send to CustomSensor<br />
<n>t 0=no toggle, else interval in seconds (for RFM #1)<br />
<n>T 0=no toggle, else interval in seconds (for RFM #2)<br />
<n>#<x>t 0=no toggle, else interval in seconds (for RFM #x)<br />
v show version<br />
<n>w 0=no wifi<br />
<n>z set to 1 to display analyzed frame data instead of the normal data<br />
</source><br />
<br />
==LaCrosseGateway zurücksetzen==<br />
Das LaCrosseGateway kann über ein Terminalprogramm, dafür muss das LaCrosseGateway per USB angeschlossen sein, zurückgesetzt werden.<br />
Im Terminalprogramm (Baudrate 57600) den Befehl: <source lang="php">8266e</source> senden.<br />
<br />
Daraufhin wird wieder der Access Point aktiviert auf der die [[#LaCrosseGateway einrichten|initiale Konfiguration]] über die [http://192.168.222.1/setup "Setup"] Seite vorgenommen werden kann.<br />
<br />
==Sensoren/Aktoren anlegen==<br />
<br />
Voraussetzung: FHEM autocreat ist aktiv.<br />
Die [http://fhem.de/commandref.html#autocreate FHEM autocreate Funktion] ist aktiv.<br />
<br />
Die erkannnten Sensoren und Aktoren werden automatisch erkannt und in FHEM angelegt, sobald Daten empfangen werden.<br />
<br />
Empfangene Sensoren werden nur hinzugefügt werden, wenn man LaCrossePairForSec auf 120 Sekunden gesetzt wird.<br />
<source lang="php">set myJeeLink LaCrossePairForSec 120 ignore_battery</source><br />
<br />
==Inbetriebnahme von BMP180 / BME280==<br />
Damit die Daten der o.g. Sensoren in FHEM zur Verfügung stehen, muss zunächst das FHEM-Device angelegt werden.<br />
<br />
Das Anlegen kann automatisch erfolgen, dafür muss der folgende FHEM Befehl ausgeführt werden:<br />
<source lang="php">set myJeeLink LaCrossePairForSec 120 ignore_battery</source><br />
<br />
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.<br />
<br />
Alternativ kann das FHEM Device manuell angelegt werden:<br />
Die '''''ID''''', mit der das LGW die internen Sensoren sendet, entspricht der konfugurierten [[#Sensor-ID | Sensor-ID]] (Default Wert: 0)<br />
Es verhält sich so, als ob es eine Wetterstation (wie z.B. WS 1600) wäre.<br />
<source lang="php">define <name> LaCrosse 00</source><br />
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:<br />
<br />
'''''Beispiel:''' 220h legt 220m über NN fest.''<br />
<source lang="php">attr myJeeLink initCommands 220h</source><br />
<br />
==Inbetriebnahme Piezo Summer==<br />
<br />
Der Piezo Summer wird in FHEM über das JeeLink Modul angesteuert.<br />
<br />
'''Beispiele:''' <br />
<source lang="php"><br />
set myJeeLink raw 1,60b -> beep ... beep ... beep 60 Sekunden lang<br />
set myJeeLink raw 2,300b -> beep beep ... beep beep ... beep beep 300 Sekunden lang<br />
set myJeeLink raw 3,120b -> beep beep beep ... beep beep beep ... 120 Sekunden lang<br />
set myJeeLink raw 0b -> beep stoppen<br />
</source><br />
<br />
==Inbetriebnahme von RFM69CW==<br />
Mit dem LaCrosseGateway ist es möglich mehrere RFM69CW einzusetzten. Nachfolgend wird die Konfiguration des Senders/Empfängers erläutert.<br />
<br />
Die "Default Werte" (wenn keine Angaben definiert werden) für die data rate sind wie folgt definiert:<br />
<source lang="php"><br />
#1 (Erste) => 17241<br />
#2 (Zweite) => 9579<br />
#3 (Dritte) => 8842<br />
#4 (Vierte) => 20000<br />
#5 (Fünfte) => 17241<br />
</source><br />
<br />
'''''Hinweis:''' Detailinformationen sind auch auf der LaCrosseGateway "Help"-Page zu finden.''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
|-<br />
|colspan="2" style="text-align:center"|'''<Datenrate>#<Radio-Nummer><command>'''<br />
|-<br />
| <code>m t:</code> || ''Toggle-Steuerung'' <br />
|-<br />
| <code>r:</code> || ''Datarate'' <br />
|-<br />
| <code>f:</code> || ''Frequenz'' <br />
|}<br />
<br />
<br />
'''''Beispiele:'''''<br />
<br />
''<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
!Definition !! Erläuterungen <br />
|-<br />
| <source lang="php">attr myJeeLink initCommands 0#1r v</source><br />
| DataRate des ersten RFM setzen<br />
|-<br />
| <source lang="php">attr myJeeLink initCommands 8842#3r v </source><br />
| DataRate des dritten RFM setzen<br />
|-<br />
| <source lang="php">attr myJeeLink initCommands 868300#2f v</source><br />
| Frequenz des zweiten RFM setzten<br />
|-<br />
| <source lang="php">attr myJeeLink initCommands 868295#3f v</source><br />
| Frequenz des dritten RFM setzten<br />
|-<br />
| <source lang="php">attr myJeeLink initCommands 17241#1r 8842#2r v</source><br />
| Zwei RFM69CW mit DataRate 17241 und 8842<br />
|-<br />
| <source lang="php">attr myJeeLink initCommands 3#1m 20#1t 8842#2r v</source><br />
| Zwei RFM69CW mit 20 Sekunden DataRate 17241 toggle 9579 plus 8842 permanent<br />
|-<br />
| <source lang="php">attr myJeeLink initCommands 220h 868295#1f 868310#2f v</source><br />
| Zwei RFMs Frequenz 868295 und 868310 sowie Höhe über NN<br />
|-<br />
| <source lang="php">attr myJeeLink initCommands 868295#1f 3#1m 20#1t 2,868950,60i 8842#3r 220h 0a v</source><br />
| 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 (geht nur bei mir, ist noch nicht in der 1.11 enthalten)<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 gesetzen Daten vom LaCrosseGateway ab, damit sie in FHEM JeeLink Modul aktualisiert werden.<br />
|}<br />
<br />
'''''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.<br />
==Inbetriebnahme von PCA301==<br />
PCA301 im LGW funtioniert ähnlich dem PCA301 Sketch, allerding mit einigen systembedingten Abweichungen.<br />
<br />
Per default ist PCA301 nicht aktiviert, es muss in den initCommands aktiviert werden. Dazu gibt es das command "'''''i'''''".<br />
<br />
'''<RadioNr>,<Frequenz>,<Poll-Intervall>i'''<br />
<br />
Die Initialisierung kann auch erneut geschickt werden, um z.B. das Poll-Intervall zu ändern.<br />
<br />
<br />
'''''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.''<br />
<br />
Das ''Poll-Interval'' sollte nicht extrem heruntergesetzt (nicht unter eine Minute) werden, da PCA301 sonst LaCrosse verdrängt. PCA301 hat hörere Priorität, da es bei der Kommunikation<br />
mit den Dosen keine Antworten überhören darf.<br />
<br />
Unter Umständen muss die Frequenz etwas angepasst werden, wenn das Radio und/oder die Dosen nicht genau auf 868950 liegen.<br />
Das ist daran zu erkennen, dass entweder gar keine Antwort von den Dosen oder verzögerte Antwort ankommt.<br />
Werte von 868960 oder 960970 haben in manchen Fällen Abhilfe gebracht.<br />
<br />
'''''Beispiele:'''''<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterungen <br />
|-<br />
| style="width:40%" | <code>attr myJeeLink initCommands 2,868950,120i v</code><br />
| Initialisiert den zweiten RFM auf 868950 MHz und setzt das Poll-Intervall auf 120 Sekunden<br />
|-<br />
| <code>attr myJeeLink initCommands 1,868950,120i 3#2m 20#2t 220h 0a v</code><br />
| 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<br />
|}<br />
<br />
'''Ablauf:'''<br />
<br />
Nachdem PCA301 initialisiert ist, lauscht das LaCrosseGateway auf der entsprechenden Frequenz.<br />
Sobald eine Dose empfangen wurde, wird sie in der Konfiguration (EEPROM) dauerhaft registriert und ab sofort gepollt.<br />
<br />
Das ''Polling'' funtioniert 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,<br />
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<br />
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.''<br />
<br />
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.<br />
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<br />
Konfiguration auf. Falls die Dose bereits mit einem anderen Kanal bekannt war, wird der Kanal im LaCrosseGateway aktualisisert.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Das PCA301 Modul in FHEM funktioniert komplett wie bisher.<br />
<br />
Weiterführende Themen zum PCA301 sind im Wiki [[PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung]] und PCA301 FHEM Thread {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301 Thread}} beschrieben.<br />
<br />
Die Befehle, die der PCA301-Sketch kennt, gibt es im LaCrosseGateway nur teilweise:<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Befehl (Beschreibung)!! Erläuterungen <br />
|-<br />
| <code>a "turn activity LED on or off</code><br />
| wie bisher<br />
|-<br />
| <code>l "list known devices"</code><br />
| entfallen, kann man nun im Web-Frontend sehen<br />
|-<br />
| <code>q "turn quiet mode on or off"</code><br />
| wie bisher<br />
|-<br />
| <code>r "list recordings"</code><br />
| entfallen<br />
|-<br />
| <code>s "send to plug"</code><br />
| wie bisher<br />
|-<br />
| <code>v "report version and configuration parameters"</code><br />
| wie bisher<br />
|-<br />
| <code>d, e, p "poll / turn a device on / off"</code><br />
| entfallen<br />
|-<br />
| <code>h, +, -, # "modify and display RF12 Frequency register"</code><br />
| entfallen, ersetzt durch das "i" command bzw. das bereits vorhandene "f" command<br />
|}<br />
<br />
==Inbetriebnahme von Energy Count 3000 (EC3000)==<br />
Die EC3000 sendet auf 868.300 kHz mit 20.000 kbps. Dafür wurde eine neue data rate hinzugefügt.<br />
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.<br />
<br />
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<br />
<br />
Um EC3000 dediziert mit einem der drei RFMs zu empfangen muss man einfach die data rate des gewünschten RFM setzen. Beispiel initCommand:<br />
20000#2r<br />
<br />
Um EC3000 in einen data rate toggle mit einzubeziehen muss im m command das 8-wertige bit gesetzt werden.<br />
Wenn man z.B. mit dem zweiten Radio 17k Sensoren (TX29...) und EC3000 empfangen soll (20 Sekunden toggle), wäre das initCommand:<br />
<br />
'''Beispiel:'''<br />
<source lang="php">attr myJeeLink initCommands 9#2m 20#2t v</source><br />
<br />
==Inbetriebnahme von MCP23008==<br />
Auf der LaCrosseGateway "config"-page kann für jeden der 8 IO Pins konfiguriert werden, ob es ein Input oder Output Pin ist.<br />
<br />
'''Input''': Eingang, wird per KVP an FHEM übermittelt. Einsatzzweck: z.B. Anschluß von Pushbuttons.<br />
<br />
'''Output''': Kann von FHEM aus gesetzt werden. Einsatzzweck: z.B. Anschluß von LEDs.<br />
<br />
<br />
Beispiel: ''Input => Eingang, wird per KVP an FHEM übermittelt''<br />
<source lang="php">OK VALUES LGPB 211 GP2=0,GP3=1,GP4=0,GP5=0,GP6=0,GP7=0</source><br />
<br />
Beispiel: ''Output => Kann von FHEM aus gesetzt werden.''<br />
<source lang="php">set myJeeLink raw "MCP GP0=1,GP1=0"</source><br />
<br />
==Inbetriebnahme von OLED-Display==<br />
Der nachfolgende Funktionsumfang ist implementiert:<br />
<br />
*OLED ein- und ausschalten sowie das Senden von individuellen Texten über FHEM mithilfe des JeeLink-Moduls<br />
*OLED Startverhalten konfigurierbar<br />
*Übermittlung des Display Status im KVP<br />
*Anzeige von Statusinformationen in der obersten Zeile mithilfe von Symbolen (siehe Abbildung - von links nach rechts)<br />
**WiFI connect erfolgreich<br />
**Ein FHEM hat sich auf einen DataPort connected<br />
**Ein FHEM hat sich auf den Prozessor an der [[#Serial_transparent_bridge|uart bridge]] connected<br />
**WiFi Signalstärke (dBm). Hinweis: -36 ist besser als -60<br />
[[Datei:lgw_oled_statuszeile.png|400px|thumb|left|OLED Anzeige von Statusinformationen]]<br />
<div style="clear:both;"></div><br />
*Darstellung von bis zu drei Texten und optional ein Symbol.<br />
*Definition des Zeitintvervalls für das Umschalten zur nächsten Seite<br />
*Zuweisung der Modes an die Ports des MCP23008 (Die Konfiguration erfolgt auf der "Setup"-Page)<br />
*Fortschrittsanzeige beim Flashen eines an die serielle Schnittstelle des SC16IS750 angeschlossenen Arduinos (siehe SubProzessor und Serial transparent bridge)<br />
<br />
===OLED Start Modus===<br />
Einstellungsmöglichkeit über die "Config"-Page wie sich das OLED nach einem Start verhalten soll.<br />
Mögliche Optionen: on / off / Anzahl Sekunden, nach denen es ausgeht.<br />
<br />
===Modes===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Prefix !! Parameter !! Erläuterung <br />
|-<br />
| OLED mode= <br />
| t<br />
| Temperatur des internen Sensors<br />
|-<br />
| OLED mode=<br />
| h<br />
| Feuchte des internen Sensors<br />
|-<br />
| OLED mode=<br />
| p<br />
| Druck des internen Sensors<br />
|-<br />
| OLED mode=<br />
| s<br />
| Statuswerte des LGW<br />
|-<br />
| OLED mode=<br />
| f<br />
| von FHEM gesetzter Text<br />
|}<br />
<br />
===Mögliche Symbole===<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Parameter !! Erläuterung !! OLED Darstellung<br />
|-<br />
| t<br />
| Temperature<br />
| [[Datei:lgw_sym_t.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| h<br />
| Humidity<br />
|[[Datei:lgw_sym_h.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| p<br />
| Pressure<br />
|[[Datei:lgw_sym_p.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| s<br />
| System<br />
|[[Datei:lgw_sym_s.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| i<br />
| Info<br />
|[[Datei:lgw_sym_i.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| w<br />
| Warning<br />
|[[Datei:lgw_sym_w.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|-<br />
| e<br />
| Error<br />
|[[Datei:lgw_sym_e.jpg|150px|thumb|left|]]<br />
<div style="clear:both;"></div><br />
|}<br />
<br />
===Beispiele===<br />
<br />
{| class="wikitable" style="margin-left: auto; margin-left: 0px;"<br />
! Definition !! Erläuterung<br />
|-<br />
| style="width:30%" | <source lang="php">set myJeeLink raw "OLED On"</source><br />
| Schaltet ein angeschlossenes Display ein <br />
|-<br />
| <source lang="php">set myJeeLink raw "OLED Off"</source><br />
| Schaltet ein angeschlossenes Display aus <br />
|-<br />
| <source lang="php">set myJeeLink raw "OLED interval=20"</source><br />
| Legt fest, dass (je nach mode) alle 20 Sekunden die nächste Seite angezeigt wird. <br />
|-<br />
| <source lang="php">set myJeeLink raw "OLED mode=ths"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Systemdaten an <br />
|-<br />
| <source lang="php">set myJeeLink raw "OLED mode=thp"</source><br />
| Zeigt nacheinander Temperatur, Feuchte und Luftdruck an<br />
|-<br />
| <source lang="php">set myJeeLink raw "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an<br />
|-<br />
| <source lang="php">set myJeeLink raw "OLED mode=f"</source><br />
| Zeigt ausschließlich den von FHEM festgeleget Text an<br />
|-<br />
| <source lang="php">set myJeeLink raw "OLED mode=s"</source><br />
| Zeigt ausschließlich die Systemdaten an<br />
|-<br />
| <source lang="php">set myJeeLink raw "OLED show=Soll: 20.5,Ist: 19.2,,t"</source><br />
| Zeigt die übergebenen Texte an und links das Symbol für Temperatur<br />
|-<br />
| <source lang="php">set myJeeLink raw "OLED show=55%,,,h"</source><br />
| Zeigt nur den Text "55%" und das Symbol für Feuchte an. Da es nur ein Text ist, wird er größer dargestellt<br />
|-<br />
| <source lang="php">set myJeeLink raw "OLED show=Line 1,Line 2,Line 3"</source><br />
| Zeigt drei Texte aber kein Symbol an.<br />
|-<br />
| <source lang="php">attr myJeeLink initCommands "OLED mode=thps"</source><br />
| Zeigt nacheinander Temperatur, Feuchte, Luftdruck und Systemdaten an. Der Mode wird immer geschickt, wenn FHEM sich neu auf das LGW connected.<br />
|}<br />
<br />
==Serial transparent bridge==<br />
Das LGW kann optional die serielle Schnittstelle des SC16IS750 transparent auf einem TCP Port bereitstellen.<br />
Dazu gibt es die neuen settings ''"Serial bridge port"'' und ''"Serial bridge baud"'' auf der "Setup"-Page" (Web-Frontend) des LaCrosseGateways.<br />
Das LaCrosseGateway überträgt transparent die Daten der seriellen Schnittstelle an FHEM und umgekehrt.<br />
Damit kann z.B. ein NanoCUL an das LaCrosseGateway angeschlossen werden und in FHEM verwenden werden.<br />
<br />
<br />
'''''Vorgehensweise:'''''<br />
*Einen NanoCUL bauen, z.B. auf Basis eines Arduino Pro Mini, flashen und testweise in Betrieb nehmen. <br />
*Den NanoCUL an die serielle Schnittstelle des SC16IS70 anschließen<br />
*Port und baud rate auf der "Setup"-Page des LaCrosseGateways festlegen, z.B. Port 85 und 38400 baud<br />
*CUL in FHEM definieren (Beispiel): <br />
<source lang="php">define CULXYZ CUL <IP-Adresse>:85 0000</source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''<IP-Adresse>''''' Muss entsprechend angepasst werden.<br />
<br />
Sollte das CUL-Device nicht erreichbar sein (Restart, Austausch im Falle eines Deffekts etc.), empfiehlt sich einen reconnect Mechnismus in FHEM zu implementieren.<br />
<br />
Dieser kann wie folgt aussehen: <br />
<br />
<source lang="php">define CULXYZ-Reconnector at +*00:00:30 {\<br />
my $deviceName = "<CULXYZ>";;\<br />
my $version = CommandGet("", $deviceName . " version");;\<br />
my $gotAnswer = index($version, 'No answer') == -1;;\<br />
\<br />
if(!$gotAnswer) {\<br />
fhem("set " . $deviceName . " reopen");;\<br />
}\<br />
\<br />
} </source><br />
'''''<CULXYZ>''''' Muss nach eigenen Bedürfnissen angepasst werden.<br />
<br />
'''''Vorgehen Firmware flashen mit LGW'''''<br />
<br />
Ein bereits in Betrieb genomene NanoCUL kann nach dem gleichen Vorgehen (siehe [[#SubProzessor|"SubProzessor - Vorgehen Firmware flashen"]]) wie ein SubProzessor geflasht werden.<br />
<br />
==Zugriff mit mehreren FHEM Instanzen==<br />
<br />
Bis zu drei FHEM Instanzen können auf das LaCrosseGateway gleichzeitig zugreifen.<br />
Auf der "Setup"-Page des LaCrosseGateways können bis zu drei Ports (Data ports), pro Port eine FHEM Instanz, definiert werden (Reboot erforderlich).<br />
Aus Performancegründen empfiehlt sich nur die benötigten Ports zu definieren.<br />
<br />
'''''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.<br />
<br />
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.<br />
<br />
<br />
=Nano LaCrosse Gateway=<br />
Das nano LaCrosse Gateway verwendet die gleiche [https://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/FHEM/firmware/JeeLink_LaCrosseGateway.bin?format=raw Firmware] wie das WiFi LaCrosse Gateway, der signifikante Unterschied ist die kompakte (portable) Bauform. Aufgrund der Bauform können jeodch nicht alle Bauteile verwendet werden.<br />
Das Gateway eignet sich sehr gut als Entwicklungstick (dies ist der Entstehungsgrund) oder zum Empfangen und Steuern von LaCrosse basierten Sensoren/Aktoren an einem FHEM Server (RPI,Cubietruck, etc.).<br />
<br />
Der Betieb über WiFi, entsprechende Stromversorgung (per USB) vorausgesetzt, ist ebenfalls möglich.<br />
<br />
Weiterführende Informationen zum nano LaCrosse Gateway und Ideensammlung für eine Platine sind im {{Link2Forum|Topic=51329|LinkText=FHEM Forum}} zu finden.<br />
<br />
==Bauteile==<br />
Folgende bauteile werden benötigt:<br />
*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]<br />
*ESP-12E<br />
*Auto-Flash-Reset-Schaltung mit zwei Widerständen<br />
*[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]<br />
*Breakout board mit einem AMS 1117 3.3V<br />
*RFM69CW<br />
*Status-LED<br />
<br />
==Schaltung==<br />
[[Datei:lgw_nano_Schaltplan.png|600px|thumb|left|Schaltplan NanoLGW]]<br />
<div style="clear:both;"></div><br />
<br />
==Selbstbau==<br />
{| class="galleryTable noFloat"<br />
|-<br />
| [[Datei:lgw_nano_Selbstbau1.png|320px|thumb|left|Selbstbau nano LaCrosse Gateway 1]]<br />
| [[Datei:lgw_nano_Selbstbau2.png|300px|thumb|left|Selbstbau nano LaCrosse Gateway 2]]<br />
| [[Datei:lgw_nano_Selbstbau3.png|475px|thumb|left|Selbstbau nano LaCrosse Gateway 3]]<br />
|}<br />
==Platine==<br />
===nano LaCrosse Gateway===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_bestueckt_oberseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Oberseite]]<br />
|[[Datei:Nanolgw_bestueckt_unterseite.jpg|400px|thumb|left|nano LaCrosse Gateway Platine Unterseite]]<br />
|}<br />
===USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_1.jpg|400px|thumb|left|USB2TTL Platine Oberseite]]<br />
|[[Datei:Nanolgw_USB2TTL_2.jpg|400px|thumb|left|USB2TTL Platine Unterseite]]<br />
|}<br />
===nano LaCrosse Gateway inkl. USB2TTL===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_1.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|[[Datei:Nanolgw_oberseite_USB2TTL_2.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Oberseite]]<br />
|}<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_unterseite_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Unterseite]]<br />
|[[Datei:Nanolgw_seitenansicht_USB2TTL.jpg|400px|thumb|left|nano LaCrosse Gateway inkl. USB2TTL Seitenansicht]]<br />
|}<br />
===nano LaCrosse Gateway fertig bestückt inkl. Gehäuse===<br />
{| class="galleryTable noFloat"<br />
|-<br />
|[[Datei:Nanolgw_USB2TTL_fertig_oberseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Oberseite]]<br />
|[[Datei:nanolgw_USB2TTL_fertig_unterseite.jpg|400px|thumb|left|nano LGW fertig bestückt inkl. Gehäuse Unterseite]]<br />
|}<br />
===Platine bestücken (Hinweise und Tipps)===<br />
*Die Beschriftung SJ4 und SJ3 ist auf dem USB2TTL Wandler vertauscht, dies beeinträchtigt aber die Funktion nicht.<br />
*Beim nanoLGW hängt C1 etwas über dem FTDI232RL vom USB2TTL Wandler, daher braucht diese Platine noch eine "Schönheitskorrektur".<br />
<br />
= Tipps & Tricks =<br />
<br />
==Löschen des kompletten Flash des ESP8266 mit dem esptool==<br />
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.<br />
<br />
Mit dem nachfolgenden Befehl kann der Speicher des ESP8266 komplett gelöscht werden.<br />
<br />
'''''Achtung:''' Dabei werden alle Einstellungen unwiderruflich gelöscht''<br />
<source lang="php">./esptool -vv -cp /dev/tty.SLAB_USBtoUART -cb 115200 -ca 0x00000 -cd nodemcu -ce</source><br />
<br />
'''''</dev/tty.SLAB_USBtoUART>''' Muss entsprechend angepasst werden.''<br />
<br />
=Weiterführende Links=<br />
Diskussionsthread aus dem Forum:<br />
<br />
[https://forum.fhem.de/index.php/topic,43672.0.html LaCrosseGateway - LaCrosse, PCA301 und EC3000 über wifi mit ESP8266 ohne Arduino]<br />
<br />
[https://forum.fhem.de/index.php/topic,45594.0.html Platine für LaCrosseGateway: Platinenbestellung]<br />
<br />
[https://forum.fhem.de/index.php/topic,51329.30.html Platine für nanoLGW (LaCrosse Gateway): Layout]<br />
<br />
[https://forum.fhem.de/index.php/topic,52921.0.html Display für LaCrosseGateway]<br />
<br />
[https://forum.fhem.de/index.php/topic,52895.0.html SC16IS750-Software-Clone]<br />
<br />
[[Kategorie:Interfaces]]<br />
[[Kategorie:IP Components]]<br />
[[Kategorie:Other Components]]<br />
[[Kategorie:Temperatursensoren]]<br />
[[Kategorie:Feuchtesensoren]]<br />
[[Kategorie:Wetterstationen]]</div>HCS