JeeLink: Unterschied zwischen den Versionen
JoeAll (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Dadoc (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(24 dazwischenliegende Versionen von 11 Benutzern werden nicht angezeigt) | |||
Zeile 26: | Zeile 26: | ||
== Vorbereitung JeeLink == | == Vorbereitung JeeLink == | ||
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 | 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. | ||
=== Selber Kompilieren === | === Selber Kompilieren === | ||
[[Datei:JeeLink_flashen_1.jpg|mini|100px|rechts|Vorbereitung: Arduino einrichten]] | [[Datei:JeeLink_flashen_1.jpg|mini|100px|rechts|Vorbereitung: Arduino einrichten]] | ||
Um den JeeLink mit | 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: | ||
* 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 | * 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 | ||
* Installation der [http://arduino.cc/de/Guide/HomePage Arduino Software] für die benutzte Plattform (verfügbar sind Windows, Mac OS X und Linux) | * Installation der [http://arduino.cc/de/Guide/HomePage Arduino Software] für die benutzte Plattform (verfügbar sind Windows, Mac OS X und Linux) | ||
* Je nach Sketch einbinden der [https://github.com/jcw/jeelib/archive/master.zip Jeelabs Library] in die Arduino IDE | * Je nach Sketch einbinden der [https://github.com/jcw/jeelib/archive/master.zip Jeelabs Library] in die Arduino IDE | ||
* Herunterladen des benötigten Sketches (aus [ | * Herunterladen des benötigten Sketches (aus [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino FHEM/contrib]) | ||
* Anschließen des JeeLink an einen USB-Anschluss des Rechners mit der Arduino IDE | * Anschließen des JeeLink an einen USB-Anschluss des Rechners mit der Arduino IDE | ||
* Start der Arduino Software und JeeLink flashen | * Start der Arduino Software und JeeLink flashen | ||
Zeile 47: | Zeile 47: | ||
* Upload klicken | * Upload klicken | ||
=== JeeLink aus | === JeeLink aus FHEM flashen === | ||
* Auf dem | * Auf dem FHEM System muss "avrdude" installiert sein. Das kann z.B. über die "normale" Linux Paketverwaltung geschehen. | ||
* mit <code>set <JeeLinkDevice> flash [firmware]</code> wird das Flashen angestossen | : Auf dem Raspberry (Raspbian Linux) funktioniert die Installation von "avrdude" mit <code>sudo apt-get update</code> und danach <code>sudo apt-get install avrdude</code> | ||
* im | * mit <code>set <JeeLinkDevice> flash [firmware]</code> wird das Flashen angestossen | ||
: <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. | |||
* im FHEM Log kann der Ausgang des Flashvorgangs kontrolliert werden | |||
* über das <code>flashCommand</code> Attribut lässt sich das Kommando zum Flashen an besondere Anforderungen anpassen | * über das <code>flashCommand</code> Attribut lässt sich das Kommando zum Flashen an besondere Anforderungen anpassen | ||
'''Vorsicht bei Jeelink Clones!''' | '''Vorsicht bei Jeelink Clones!''' | ||
Jeelink Clones basierend auf dem Arduino Nano haben normalerweise keinen Optibootloader drauf im Gegensatz zum Original JeeLink und JeeNode. | Jeelink Clones, basierend auf dem Arduino Nano, haben normalerweise keinen Optibootloader drauf - im Gegensatz zum Original JeeLink und JeeNode. | ||
Konsequenz: | Konsequenz: | ||
Zeile 61: | Zeile 64: | ||
Beim "Nano Clone" und ähnliches muß man zum flashen in FHEM die Baudrate setzen mit "-b 57600" | Beim "Nano Clone" und ähnliches muß man zum flashen in FHEM die Baudrate setzen mit "-b 57600" | ||
Original JeeLink, original JeeNode, und alle Arduinos, die einen Optibootloader drauf haben flashen in FHEM ohne "-b 57600" | Original JeeLink, original JeeNode, und alle Arduinos, die einen Optibootloader drauf haben, flashen in FHEM ohne "-b 57600" | ||
== Hinweise zum Betrieb mit | == Hinweise zum Betrieb mit FHEM == | ||
Um den JeeLink (erstmalig) mit | Um den JeeLink (erstmalig) mit FHEM benutzen zu können, muss dieser erfolgreich geflasht worden sein. | ||
* JeeLink an den | * JeeLink an den FHEM-Rechner anschließen | ||
* 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) | * 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) | ||
=== Definition in fhem.cfg === | === Definition in fhem.cfg === | ||
Erforderliche Definitionen in | Erforderliche Definitionen in FHEM ([[Konfiguration]]): | ||
:<code>define myJeeLink JeeLink /dev/ttyUSBx@57600</code> | :<code>define myJeeLink JeeLink /dev/ttyUSBx@57600</code> | ||
*'''USBx''' ist anzupassen an die aktuell benutzte Schnittstelle, 0 wenn sonst nichts am USB-Port hängt | *'''USBx''' ist anzupassen an die aktuell benutzte Schnittstelle, 0 wenn sonst nichts am USB-Port hängt | ||
*x=0,1,2, usw. | *x=0,1,2, usw. | ||
Die [ | Die [[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. | ||
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). | 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). | ||
'''Anmerkung:''' Der LaCrosse Sketch deckt sowohl die LaCrosse Temperatursensoren, die IT+ Wetterstation WS1600 als auch den Energieverbrauchssensor EMT7110 ab. | '''Anmerkung:''' Der LaCrosse Sketch deckt sowohl die LaCrosse Temperatursensoren, die IT+ Wetterstation WS1600 als auch den Energieverbrauchssensor EMT7110 ab. | ||
=== RAW / HEX-Modus aktivieren === | |||
Um die vom JeeLink empfangenen Daten - etwa zu Analysezwecken - im Rohformat in das fhem-Log zu schreiben, kann man den JeeLink mit '''1d''' in den Debug-Modus versetzen: | |||
:<code>set myJeeLink raw 1d</code> | |||
Dann sollten Daten wie in diesem Beispiel (empfangen von einem SBS-WS-600/Ecowitt WH2650) im Log sichtbar sein: | |||
:<code>2022.05.30 17:14:04 3: myJeeLink: Unknown code End receiving, HEX raw data: 24 EA 4F 82 5C 21 3A 9 0 2F 7 6D A 25 76 B , help me!</code> | |||
die Zahl '''24''' am Beginn des Raw Codes weist auf den Außensensor der im Beispiel genannten Wetterstation hin; Code, der mit '''E''' beginnt, stammt dagegen vom Innensensor der Station (im Beispiel WH25 / WH32B): | |||
:<code>2022.05.30 17:14:15 3: myJeeLink: Unknown code End receiving, HEX raw data: E8 42 58 27 26 EA B9 0 0 0 0 0 0 0 0 0 , help me!</code> | |||
Um zum normalen Modus zurückzukehren, kann man den JeeLink einfach zurücksetzen: | |||
:<code>set myJeeLink reset</code> | |||
=== PCA301 Sketch === | === PCA301 Sketch === | ||
Der Sketch für die Unterstützung der ''PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung'' (PCA301-pcaSerial.zip) kann | 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]]. | ||
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. | 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. | ||
Zeile 96: | Zeile 108: | ||
=== LaCrosse Sketch === | === LaCrosse Sketch === | ||
Der Sketch für die Unterstützung der LaCrosse Temperatursensoren, der IT+ Wetterstation WS1600 | 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,...). | ||
* Er kann aus dem [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino FHEM-Repository] heruntergeladen werden. | |||
* 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. | |||
'''Sensoren anlernen: | |||
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>. | |||
'''In der neuesten Version unterstützt er auch den SuperJee''' (siehe auch diesen {{Link2Forum|Topic=14786|Message=316924|LinkText=Forenbeitrag}}) mit folgenden Optionen: | '''In der neuesten Version unterstützt er auch den SuperJee''' (siehe auch diesen {{Link2Forum|Topic=14786|Message=316924|LinkText=Forenbeitrag}}) mit folgenden Optionen: | ||
Zeile 106: | Zeile 124: | ||
Deshalb kann nun optional ein BMP180 oder BMP085 angeschlossen werden. Auch hier wird automatisch erkannt, ob er vorhanden ist. | Deshalb kann nun optional ein BMP180 oder BMP085 angeschlossen werden. Auch hier wird automatisch erkannt, ob er vorhanden ist. | ||
: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) | :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) | ||
==== Übersicht Kommandos ==== | |||
<n>a set to 0 if the blue LED bothers | |||
<n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515) (for RFM #1) | |||
<n>F initial frequency in kHz (5 kHz steps, 860480 ... 879515) (for RFM #2) | |||
<n>h altituide above sea level | |||
<n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps (for RFM #1) | |||
<n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps (for RFM #2) | |||
<n>r use one of the possible data rates (for RFM #1) | |||
<n>R use one of the possible data rates (for RFM #2) | |||
<n>t 0=no toggle, else interval in seconds (for RFM #1) | |||
<n>T 0=no toggle, else interval in seconds (for RFM #2) | |||
v show version | |||
<n>y if 1 all received packets will be retransmitted (Relay mode) | |||
==== Relay-Betrieb ==== | ==== Relay-Betrieb ==== | ||
Zeile 111: | Zeile 143: | ||
Das Prinzip ist generell recht einfach: | Das Prinzip ist generell recht einfach: | ||
# JeeLink im Sketch als Relais konfigurieren und flashen. | # JeeLink im Sketch als Relais konfigurieren und flashen: Um den Relay Betrieb einzuschalten, muss im Sketch der Parameter <code>bool RELAY = 1;</code> auf den Wert 1 gesetzt werden. Falls die LED stört, kann diese im Sketch durch Setzen des Parameters <code>#define ENABLE_ACTIVITY_LED 0</code> auf 0 gesetzt werden. | ||
# 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. | # 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. | ||
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 | 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. | ||
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. | 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. | ||
Zeile 126: | Zeile 158: | ||
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}}). | 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}}). | ||
==== | ==== Toggle und Datenrate ==== | ||
Toggle | |||
t: toggle time | |||
20t = alle 20 Sekunden die Datenrate wechseln | |||
Datenrate | |||
m: toggle mode | |||
bits: 1= 17.241 kbps, 2= 9.579 kbps, 4= 8.842 kbps | |||
3m ist 17.241 kbps (TX29) und 9.579 kbps (TX35) | |||
Beispiel initCommands | |||
6m 30t v | |||
Zwischen 8.842 kbps und 9.579 kbps wechseln (4+2=6), alle 30 Sekunden | |||
==== Unterstützte Sensoren und Aktoren incl. Wetterstation WS 1600 ==== | |||
{{Randnotiz|RNTyp=y|RNText=Die Ausführungen in diesem Abschnitt gelten ab der Version 10.1q auch für die Wetterstation WS1080. | {{Randnotiz|RNTyp=y|RNText=Die Ausführungen in diesem Abschnitt gelten ab der Version 10.1q auch für die Wetterstation WS1080. | ||
''' | '''Wichtig WS1800''': die WS1080 gibt es (unter gleichem Namen) in einer "OOK"- und in einer "FSK"-Version. | ||
* Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version wird nicht unterstützt. | * Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version wird nicht unterstützt. | ||
* 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}} | * 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}} | ||
}} | }} | ||
Die in der folgenden Liste (Quelle: {{Link2Forum|Topic=14786|Message=164801|LinkText= | |||
Die in der folgenden Liste (Quelle: {{Link2Forum|Topic=14786|Message=164801|LinkText=FHEM Forum}}) aufgeführten Sensoren wurden bisher erfolgreich getestet: | |||
{| class="wikitable" | {| class="wikitable" | ||
!Bezeichnung !! Datenrate !! Link | !Bezeichnung !! Datenrate !! Link / Hinweise | ||
|- | |||
| TX21IT || 17.241 kbps || | |||
|- | |||
| TX25-IT || 17.241 kbps || | |||
|- | |||
| TX27-IT || 17.241 kbps || | |||
|- | |- | ||
| | | TX29-IT || 17.241 kbps || | ||
|- | |- | ||
| | | TX29DTH-IT || 17.241 kbps || | ||
|- | |- | ||
| | | TX37 || 17.241 kbps || | ||
|- | |- | ||
| | | TX35TH-IT || 9.579 kbps || | ||
|- | |- | ||
| | | TX35DTH-IT || 9.579 kbps || | ||
|- | |- | ||
| | | 30.3143.IT || 17.241 kbps || | ||
|- | |- | ||
| | | 30.3144.IT || 17.241 kbps || ({{Link2Forum|Topic=17662|LinkText=Forenthread}}) | ||
|- | |- | ||
| | | 30.3147.IT || 17.241 kbps || | ||
|- | |- | ||
| 30. | | 30.3155WD || 9.579 kbps || kritisch; nicht zu empfehlen; siehe {{Link2Forum|Topic=14786|Message=352550|LinkText=Forenbeitrag}} | ||
|- | |- | ||
| 30. | | 30.3156WD || 9.579 kbps || Batterie-kritisch. Funktioniert schlecht mit Akkus! | ||
|- | |- | ||
| 30. | | 30.3187.IT || 17.241 kbps || haben alle die gleiche ID, daher nur einzeln verwendbar ({{Link2Forum|Topic=64636|LinkText=Forenthread}}) | ||
|- | |- | ||
| | | WT440XH || 17.241 kbps || | ||
|- | |- | ||
| | | WS 1600 (TX22) || 8.842 kbps || ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}}) | ||
|- | |- | ||
| | | WS 1080 || 17.241 kbps || Bitte Hinweise beachten! ({{Link2Forum|Topic=14786|Message=363766|LinkText=Forenbeitrag}}) | ||
|- | |- | ||
| | | [[EMT7110]] || 9.579 kbps || ({{Link2Forum|Topic=26494|LinkText=Forenthread}}) | ||
|- | |- | ||
| | | LevelSender || 17.241 kbps || ({{Link2Forum|Topic=23217|LinkText=Forenthread}}) | ||
|} | |} | ||
Werden Sensoren mit unterschiedlichen Datenraten gleichzeitig betrieben, ist der Toggle Modus einzustellen, z.B. mit dem Befehl | Werden Sensoren mit unterschiedlichen Datenraten gleichzeitig betrieben, ist der Toggle Modus einzustellen, z.B. mit dem Befehl | ||
:<code>initCommands 30t v </code> | :<code>initCommands 6m 30t v </code> | ||
wobei ''30t'' für "Toggle Modus, alle 30 Sekunden" steht. | wobei ''30t'' für "Toggle Modus, alle 30 Sekunden" steht. | ||
=== Energy Count 3000 Sketch === | === Energy Count 3000 Sketch === | ||
Der Sketch für die Unterstützung der Energy Count 3000 Zwischenstecker kann | 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. | ||
Das | 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. | ||
=== JeeLabs RoomNode === | === JeeLabs RoomNode === | ||
Zeile 189: | Zeile 240: | ||
Ein "dauerhaftes" Deaktivieren der LED des JeeLink ist möglich mit | Ein "dauerhaftes" Deaktivieren der LED des JeeLink ist möglich mit | ||
:<code>define not.global notify global:INITIALIZED set myJeeLink led off</code> | :<code>define not.global notify global:INITIALIZED set myJeeLink led off</code> | ||
damit wird, sobald | damit wird, sobald FHEM komplett gestartet ist, von FHEM der Befehl zum Ausschalten der LED gesendet. Alternativ kann mit | ||
:<code>attr myJeeLink initCommands 0a v</code> | :<code>attr myJeeLink initCommands 0a v</code> | ||
dem Sketch die Anweisung gegeben werden, bei der Initialisierung die LED zu deaktivieren. | dem Sketch die Anweisung gegeben werden, bei der Initialisierung die LED zu deaktivieren. | ||
Zeile 195: | Zeile 246: | ||
=== Weitergehende Informationen === | === Weitergehende Informationen === | ||
Hinweise zum Betrieb eines JeeLink mit | Hinweise zum Betrieb eines JeeLink mit FHEM finden sich aktuell in größerer Anzahl in verschiedenen Diskussionen im Forum: | ||
* {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301}} - Analyse des Funkprotokolls; Anfänge der Entstehung der PCA301 Unterstützung in | * {{Link2Forum|Topic=11648|LinkText=JeeLink / PCA301}} - Analyse des Funkprotokolls; Anfänge der Entstehung der PCA301 Unterstützung in FHEM. | ||
* {{Link2Forum|Topic=14786|LinkText=JeeLink / LaCrosse}} - JeeLink Modul zur Einbindung von La Crosse | * {{Link2Forum|Topic=14786|LinkText=JeeLink / LaCrosse}} - JeeLink Modul zur Einbindung von La Crosse | ||
* {{Link2Forum|Topic=11648|Message=92019|LinkText=JeeLink / EC3000}} - Anfänge der Entstehung der EC3000 Unterstützung in | * {{Link2Forum|Topic=11648|Message=92019|LinkText=JeeLink / EC3000}} - Anfänge der Entstehung der EC3000 Unterstützung in FHEM. | ||
* Hinweise zu {{Link2Forum|Topic=11648|Message=92037|LinkText=JeeLabs RoomNode}} und anderen JeeLab Nodes | * Hinweise zu {{Link2Forum|Topic=11648|Message=92037|LinkText=JeeLabs RoomNode}} und anderen JeeLab Nodes | ||
* {{Link2Forum|Topic=25399|Message=183910|LinkText=JeeLink mit FHEM2FHEM nutzen}} | * {{Link2Forum|Topic=25399|Message=183910|LinkText=JeeLink mit FHEM2FHEM nutzen}} | ||
Zeile 208: | Zeile 259: | ||
== Weblinks == | == Weblinks == | ||
* [http://jeelabs.com/products/jeelink JeeLabs], JeeLink Hersteller | * [http://jeelabs.com/products/jeelink JeeLabs], JeeLink Hersteller | ||
* [ | * [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ PCA301 Sketch] im SVN | ||
* [ | * [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ LaCrosse Sketch] im SVN | ||
* [ | * [https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/ EC3000 Sketch] im SVN | ||
* [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 | * [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 | ||
* {{Link2Forum|Topic=23217|LinkText=LevelSender}} Tankfüllstand mit JeeLink empfangen | * {{Link2Forum|Topic=23217|LinkText=LevelSender}} Tankfüllstand mit JeeLink empfangen | ||
[[Kategorie:Interfaces]] | [[Kategorie:Interfaces]] | ||
[[Kategorie:Other Components]] | [[Kategorie:Other Components]] | ||
[[Kategorie:868MHz]] | |||
[[Kategorie:433MHz]] |
Aktuelle Version vom 31. Mai 2022, 12:34 Uhr
JeeLink ist ein RF-Gerät im Formfaktor eines USB-Sticks mit externer Antenne.
JeeLink | |
---|---|
Allgemein | |
Protokoll | PCA301, EC3000, RoomNode oder LaCrosse und EMT7110 |
Typ | Interface |
Kategorie | |
Technische Details | |
Kommunikation | 433/868/913 MHz |
Kanäle | ? |
Betriebsspannung | 5 V |
Leistungsaufnahme | ca. 90 mA |
Versorgung | USB |
Abmessungen | 23*67*9mm |
Sonstiges | |
Modulname | 36_JeeLink.pm |
Ersteller | Andre / justme1968 |
Hersteller | JeeLabs |
Beschreibung
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!
Den JeeLink gibt es in einer
- 433 MHz Version
- 868 MHz Version (Standard)
- 915 MHz Version (Betrieb in Europa nicht zugelassen)
Vorbereitung JeeLink
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.
Selber Kompilieren
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:
- Für Windows oder Mac OS X den passenden FTDI Treiber installieren, unter Linux ist dieser meist schon vorhanden
- Installation der Arduino Software für die benutzte Plattform (verfügbar sind Windows, Mac OS X und Linux)
- Je nach Sketch einbinden der Jeelabs Library in die Arduino IDE
- Herunterladen des benötigten Sketches (aus FHEM/contrib)
- Anschließen des JeeLink an einen USB-Anschluss des Rechners mit der Arduino IDE
- Start der Arduino Software und JeeLink flashen
JeeLink aus Arduino flashen
- Anschließen des JeeLink an einen USB-Anschluss des Rechners mit der Arduino IDE
- Start der Arduino Software
- Seriellen Port des JeeLink auswählen
- Einstellungen: in den Tools als Board "Arduino Uno" auswählen
- Sketch mit "Datei öffnen" auswählen
- Upload klicken
JeeLink aus FHEM flashen
- Auf dem FHEM System muss "avrdude" installiert sein. Das kann z.B. über die "normale" Linux Paketverwaltung geschehen.
- Auf dem Raspberry (Raspbian Linux) funktioniert die Installation von "avrdude" mit
sudo apt-get update
und danachsudo apt-get install avrdude
- mit
set <JeeLinkDevice> flash [firmware]
wird das Flashen angestossen
firmware
kann LaCrosse, PCA301 oder EC3000 sein.- Wenn
firmware
nicht angegeben wird, versucht FHEM, den Namen der zu flashenden Firmware aus der zur Zeit installierten Firmware abzuleiten.
- im FHEM Log kann der Ausgang des Flashvorgangs kontrolliert werden
- über das
flashCommand
Attribut lässt sich das Kommando zum Flashen an besondere Anforderungen anpassen
Vorsicht bei Jeelink Clones!
Jeelink Clones, basierend auf dem Arduino Nano, haben normalerweise keinen Optibootloader drauf - im Gegensatz zum Original JeeLink und JeeNode.
Konsequenz:
Beim "Nano Clone" und ähnliches muß man zum flashen in FHEM die Baudrate setzen mit "-b 57600"
Original JeeLink, original JeeNode, und alle Arduinos, die einen Optibootloader drauf haben, flashen in FHEM ohne "-b 57600"
Hinweise zum Betrieb mit FHEM
Um den JeeLink (erstmalig) mit FHEM benutzen zu können, muss dieser erfolgreich geflasht worden sein.
- JeeLink an den FHEM-Rechner anschließen
- Auf Linux Systemen kann es notwendig sein, mit
mknod /dev/ttyUSB0 c 188 0
das Device anzulegen (bitte erst überprüfen, ob der Stick nicht automatisch erkannt wird)
Definition in fhem.cfg
Erforderliche Definitionen in FHEM (Konfiguration):
define myJeeLink JeeLink /dev/ttyUSBx@57600
- USBx ist anzupassen an die aktuell benutzte Schnittstelle, 0 wenn sonst nichts am USB-Port hängt
- x=0,1,2, usw.
Die 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.
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).
Anmerkung: Der LaCrosse Sketch deckt sowohl die LaCrosse Temperatursensoren, die IT+ Wetterstation WS1600 als auch den Energieverbrauchssensor EMT7110 ab.
RAW / HEX-Modus aktivieren
Um die vom JeeLink empfangenen Daten - etwa zu Analysezwecken - im Rohformat in das fhem-Log zu schreiben, kann man den JeeLink mit 1d in den Debug-Modus versetzen:
set myJeeLink raw 1d
Dann sollten Daten wie in diesem Beispiel (empfangen von einem SBS-WS-600/Ecowitt WH2650) im Log sichtbar sein:
2022.05.30 17:14:04 3: myJeeLink: Unknown code End receiving, HEX raw data: 24 EA 4F 82 5C 21 3A 9 0 2F 7 6D A 25 76 B , help me!
die Zahl 24 am Beginn des Raw Codes weist auf den Außensensor der im Beispiel genannten Wetterstation hin; Code, der mit E beginnt, stammt dagegen vom Innensensor der Station (im Beispiel WH25 / WH32B):
2022.05.30 17:14:15 3: myJeeLink: Unknown code End receiving, HEX raw data: E8 42 58 27 26 EA B9 0 0 0 0 0 0 0 0 0 , help me!
Um zum normalen Modus zurückzukehren, kann man den JeeLink einfach zurücksetzen:
set myJeeLink reset
PCA301 Sketch
Der Sketch für die Unterstützung der PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung (PCA301-pcaSerial.zip) kann aus dem FHEM-Repository heruntergeladen werden. Details zur Benutzung finden sich im Artikel zur PCA301.
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.
Frequenzanpassung über modifizierten Sketch
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. Die Mitte ist die Lösung, die man dann im Sketch ändern muss:
static uint16_t rf12_center_freq = 0xA70C;
Anschließend auf den JeeLink neu flashen.
Frequenzanpassung über Attribut initCommands
Über das initCommands
lässt sich die gefundene Frequenz einstellen, ohne dass die Firmware verändert werden muss.
attr <JeeLinkDevice> initCommands <hhhh>h
LaCrosse Sketch
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,...).
- Er kann aus dem FHEM-Repository heruntergeladen werden.
- Alternative ist den Sketch direkt über FHEM zu flashen
set <JeeLinkDevice> flash LaCrosse
z.B.:set myJeeLink flash LaCrosse
zuvor sollte aber ein FHEM update mitupdate
durchgeführt werden.
Sensoren anlernen:
Mit folgenden Befehl hat man die Möglichkeit 60 Sekunden ein Gerät anzulernen. Das Gerät erscheint dann unter der Rubrik LaCrosse. set <JeeLinkDevice> LaCrossePairForSec 60
zum Beispiel: set myJeeLink LaCrossePairForSec 60
.
In der neuesten Version unterstützt er auch den SuperJee (siehe auch diesen Forenbeitrag) mit folgenden Optionen:
- Option 1 (Dual RFM):
- 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.
- Option 2 (BMP180):
- Da der Luftdruck in den Basisstationen gemessen wird, steht er für FHEM nicht zur Verfügung.
Deshalb kann nun optional ein BMP180 oder BMP085 angeschlossen werden. Auch hier wird automatisch erkannt, ob er vorhanden ist.
- Der BMP180 wird mit 3,3V versorgt und SDA mit PC4 und SCL mit PC5 verbunden (siehe die in diesem Forenbeitrag angehängte SuperJee-CL.png)
Übersicht Kommandos
<n>a set to 0 if the blue LED bothers <n>f initial frequency in kHz (5 kHz steps, 860480 ... 879515) (for RFM #1) <n>F initial frequency in kHz (5 kHz steps, 860480 ... 879515) (for RFM #2) <n>h altituide above sea level <n>m bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps (for RFM #1) <n>M bits 1: 17.241 kbps, 2 : 9.579 kbps, 4 : 8.842 kbps (for RFM #2) <n>r use one of the possible data rates (for RFM #1) <n>R use one of the possible data rates (for RFM #2) <n>t 0=no toggle, else interval in seconds (for RFM #1) <n>T 0=no toggle, else interval in seconds (for RFM #2) v show version <n>y if 1 all received packets will be retransmitted (Relay mode)
Relay-Betrieb
Der LaCrosse Sketch ermöglicht auch den Relay-Betrieb zur Reichweitenverbesserung. Er funktioniert damit ähnlich wie z. 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.
Das Prinzip ist generell recht einfach:
- JeeLink im Sketch als Relais konfigurieren und flashen: Um den Relay Betrieb einzuschalten, muss im Sketch der Parameter
bool RELAY = 1;
auf den Wert 1 gesetzt werden. Falls die LED stört, kann diese im Sketch durch Setzen des Parameters#define ENABLE_ACTIVITY_LED 0
auf 0 gesetzt werden. - 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.
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.
Details zu diesem Betriebsmodus sind in diesen Forenbeiträgen (LaCrosse bzw. EMT7110) zu finden.
Frequenzanpassung
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":
set myJeeLink raw 868295f
setzt die Frequenz auf 868295 kHz.
Die Frequenz kann im Bereich von 860480 kHz bis 879515 kHz in 5kHz -Schritten eingestellt werden. Details dazu in diesem Beitrag im Forum. Die Frequenzanpassung ist insbesondere beim 30.3155.WD häufig erforderlich, weshalb er als kritisch einzustufen und nicht zu empfehlen ist (siehe Forenbeitrag).
Toggle und Datenrate
Toggle
t: toggle time 20t = alle 20 Sekunden die Datenrate wechseln
Datenrate
m: toggle mode bits: 1= 17.241 kbps, 2= 9.579 kbps, 4= 8.842 kbps 3m ist 17.241 kbps (TX29) und 9.579 kbps (TX35)
Beispiel initCommands
6m 30t v Zwischen 8.842 kbps und 9.579 kbps wechseln (4+2=6), alle 30 Sekunden
Unterstützte Sensoren und Aktoren incl. Wetterstation WS 1600
![Emblem-question-yellow.svg](/w/images/thumb/a/aa/Emblem-question-yellow.svg/20px-Emblem-question-yellow.svg.png)
Wichtig WS1800: die WS1080 gibt es (unter gleichem Namen) in einer "OOK"- und in einer "FSK"-Version.
- Der LaCrosse Sketch und das LaCrosseGateway können nur die FSK-Version empfangen, die OOK-Version wird nicht unterstützt.
- Die FSK-Version ist zu erkennen an einem runden grünen Aufkleber im Batteriefach der Station mit dem Aufdruck "PASS 7". Details dazu in diesem Forenbeitrag
Die in der folgenden Liste (Quelle: FHEM Forum) aufgeführten Sensoren wurden bisher erfolgreich getestet:
Bezeichnung | Datenrate | Link / Hinweise |
---|---|---|
TX21IT | 17.241 kbps | |
TX25-IT | 17.241 kbps | |
TX27-IT | 17.241 kbps | |
TX29-IT | 17.241 kbps | |
TX29DTH-IT | 17.241 kbps | |
TX37 | 17.241 kbps | |
TX35TH-IT | 9.579 kbps | |
TX35DTH-IT | 9.579 kbps | |
30.3143.IT | 17.241 kbps | |
30.3144.IT | 17.241 kbps | (Forenthread) |
30.3147.IT | 17.241 kbps | |
30.3155WD | 9.579 kbps | kritisch; nicht zu empfehlen; siehe Forenbeitrag |
30.3156WD | 9.579 kbps | Batterie-kritisch. Funktioniert schlecht mit Akkus! |
30.3187.IT | 17.241 kbps | haben alle die gleiche ID, daher nur einzeln verwendbar (Forenthread) |
WT440XH | 17.241 kbps | |
WS 1600 (TX22) | 8.842 kbps | (Forenbeitrag) |
WS 1080 | 17.241 kbps | Bitte Hinweise beachten! (Forenbeitrag) |
EMT7110 | 9.579 kbps | (Forenthread) |
LevelSender | 17.241 kbps | (Forenthread) |
Werden Sensoren mit unterschiedlichen Datenraten gleichzeitig betrieben, ist der Toggle Modus einzustellen, z.B. mit dem Befehl
initCommands 6m 30t v
wobei 30t für "Toggle Modus, alle 30 Sekunden" steht.
Energy Count 3000 Sketch
Der Sketch für die Unterstützung der Energy Count 3000 Zwischenstecker kann aus dem FHEM-Repository heruntergeladen werden.
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.
JeeLabs RoomNode
Eine Beschreibung zum Empfang der JeeLabs RoomNodes ist in diesem Forenbeitrag enthalten.
JeeLink LED deaktivieren
Ein "dauerhaftes" Deaktivieren der LED des JeeLink ist möglich mit
define not.global notify global:INITIALIZED set myJeeLink led off
damit wird, sobald FHEM komplett gestartet ist, von FHEM der Befehl zum Ausschalten der LED gesendet. Alternativ kann mit
attr myJeeLink initCommands 0a v
dem Sketch die Anweisung gegeben werden, bei der Initialisierung die LED zu deaktivieren. Quelle: dieser Forenthread
Weitergehende Informationen
Hinweise zum Betrieb eines JeeLink mit FHEM finden sich aktuell in größerer Anzahl in verschiedenen Diskussionen im Forum:
- JeeLink / PCA301 - Analyse des Funkprotokolls; Anfänge der Entstehung der PCA301 Unterstützung in FHEM.
- JeeLink / LaCrosse - JeeLink Modul zur Einbindung von La Crosse
- JeeLink / EC3000 - Anfänge der Entstehung der EC3000 Unterstützung in FHEM.
- Hinweise zu JeeLabs RoomNode und anderen JeeLab Nodes
- JeeLink mit FHEM2FHEM nutzen
Bekannte Probleme
- Beim Betrieb an einer 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 Forenthread).
- 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 hier).
Weblinks
- JeeLabs, JeeLink Hersteller
- PCA301 Sketch im SVN
- LaCrosse Sketch im SVN
- EC3000 Sketch im SVN
- Blog zum Thema JeeLink zur Anbindung von PCA301 und von LaCrosse Temperatursensoren an FHEM
- LevelSender Tankfüllstand mit JeeLink empfangen