JeeLink: Unterschied zwischen den Versionen

Aus FHEMWiki
Zur Navigation springen Zur Suche springen
(EC3000 in v3 vs. Classic ergänzt)
K (30.3187.IT hinzugefügt)
Zeile 161: Zeile 161:
|-
|-
| 30.3156WD  ||  9.579 kbps
| 30.3156WD  ||  9.579 kbps
|-
| 30.3187.IT || 17.241 kbps
|-
|-
|| WS 1600  ||  8.842 kbps || ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})
|| WS 1600  ||  8.842 kbps || ({{Link2Forum|Topic=14786|Message=297293|LinkText=Forenbeitrag}})

Version vom 19. Oktober 2015, 16:50 Uhr

JeeLink ist ein RF-Gerät im Formfaktor eines USB-Sticks mit externer Antenne.

JeeLink
JeeLink mit Drahtantenne
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

Vorbereitung: Arduino einrichten

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

JeeLink 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.
  • 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:

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.

PCA301 Sketch

Der Sketch für die Unterstützung der PCA301 Funkschaltsteckdose mit Energieverbrauchsmessung (PCA301-pcaSerial.zip) kann von sourceforge 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 kann von sourceforge heruntergeladen werden.

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)

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:

  1. JeeLink im Sketch als Relais konfigurieren und flashen.
  2. 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 er 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 5 kHz -Schritten eingestellt werden. Details dazu in diesem Beitrag im Forum.

Getestete iT+ Sensoren incl. Wetterstation WS 1600

Die in der folgenden Liste (Quelle: Fhem Forum) aufgeführten Sensoren wurden bisher erfolgreich getestet:

Bezeichnung Datenrate Link
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 ? kbps
30.3155WD 9.579 kbps
30.3156WD 9.579 kbps
30.3187.IT 17.241 kbps
WS 1600 8.842 kbps (Forenbeitrag)

EMT7110

Der EMT7110 läuft mit einer Datenrate von 9.579 kbps (Details dazu in diesem Forenthread).

Werden Sensoren mit unterschiedlichen Datenraten gleichzeitig betrieben, ist der Toggle Modus einzustellen, z.B. mit dem Befehl

initCommands 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 von sourceforge 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:

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