openHAB: JeeLink einrichten für LaCrosse Sensoren

openHAB JeeLink Binding

Die Sensoren um die er hier geht werden über das 868 MHz betrieben und sind von verschiedenen Herstellern sehr günstig zu erhalten. Mit einem USB-Adapter sowie dem passenden Binding können sie mit relativ geringem Aufwand in openHAB integriert werden und bieten eine günstige Alternative zu anderen Sensoren.

Ich persönlich habe sie in Räumen zum Einsatz, wo die Zuverlässigkeit und Messgenauigkeit nicht oberste Priorität hat - also beispielsweise Speisekammer, Keller oder Garage.
In diesem Beitrag beschäftigen wir uns mit den notwendigen Komponenten und deren Einbindung in unsere openHAB-Steuerung.

Benötigte Komponenten

Zunächst betrachten wir, welche Komponenten wir für die Einbindung in openHAB benötigen.

Sensoren

An erster Stelle kommen natürlich die Sensoren selbst. Diese werden von verschiedenen Herstellern unter anderem auf amazon.de angeboten. Hier ein Auswahl der Sensoren

Bei Amazon.de kaufen
Affiliate Links / Bilder von der Amazon Product Advertising API

Bei Amazon.de kaufen
Affiliate Links / Bilder von der Amazon Product Advertising API

Bei Amazon.de kaufen
Affiliate Links / Bilder von der Amazon Product Advertising API


Die Sensoren übertragen entweder Temperatur oder Temperatur/Luftfeuchtigkeit.

Wetterschutz

Gemeinsam haben sie alle, dass sie nicht wasserdicht sind. Solltet Ihr also beabsichtigen, einen Sensoren außen zu platzieren, empfiehlt sich der Einsatz eines Wetterschutzes

Bei Amazon.de kaufen
Affiliate Links / Bilder von der Amazon Product Advertising API

JeeLink USB-Adapter

Der Adapter den Ihr verwenden möchtet, muss die oben angesprochenen 868 MHz unterstützen. Wir haben sehr gute Erfahrungen mit dem JeeLink 868 v3 von The JeeLabs aus den Niederlanden.
Dieser kostet zwischen 30 € und 33 € + Versand

JeeLink 868 v3 im JeeLabs Shop

Der Adapter wird, sofern verfügbar, schnell versendet und war innerhalb von 3 Tagen zugestellt. Er kann anschließend mit der passenden Firmware geflashed werden, mehr dazu später.


Installation USB-Adapter

Um den JeeLink USB-Stick in openHAB nutzen zu können, müssen wir leider einige Dinge über die Konsole unseres openHAB-Systems durchführen. Die Schritt sind wie folgt:

openHAB Zugriffsrechte

Zunächst müssen wir sicherstellen, dass unser openHAB User Zugriff auf die USB Schnittstelle hat. Dazu loggen wir uns in die SSH-Konsole unseres openHAB-Systems ein und fügen den Nutzer openhab in die Gruppe dialout ein.


sudo usermod -a -G dialout openhab


Anschließend fügen wir folgende Zeile in die Datei /etc/default/openhab ein. Dies könnt Ihr mit dem Editor Eurer Wahl erledigen.

Code
  1. EXTRA_JAVA_OPTS="-Dgnu.io.rxtx.SerialPorts=/dev/ttyElero:/dev/ttyJeelink:/dev/ttyS0:/dev/ttyAMA0:/dev/ttyUSB0"

Das ganze speichern wir im Anschluss ab.

openHAB Feature installieren

Um Zugriff auf den USB-Stick zu gewährleisten, müssen wir ein Feature in openHAB installieren. Dazu loggen wir uns in die Karaf-Konsole von openHAB ein. Die geschieht mit dem Kommando ssh openhab@localhost -p 8101 . Diesen Befehl bitte in der bereits geöffneten SSH-Sitzung ausführen. Als Passwort geben wir "habopen" ein.



In der Konsole geben wir nun den Befehl feature:install openhab-transport-serial ein. Nach erfolgter Installation können wir die Konsole wieder verlassen mit dem Befehl logout.

Hinweis: Solltet Ihr openHAB2 irgendwann updaten, müsst Ihr dieses Feature erneut installieren.


Binding für Jeelink downloaden und installieren

Das Binding für den Jeelink-USB-Adapter wurde von Volker Bier aus der openHAB Community erstellt - An dieser Stelle nochmals vielen Dank für die Mühe an Volker!

Den originalen Thread könnt Ihr euch hier anschauen: https://community.openhab.org/…nk-openhab2-binding/15018

Für unsere Anwendung benötigen wir das kompilierte Binding, dass Volker Bier freundlicherweise zum Download bereit stellt unter:

Download JeeLink Binding

Dies können wir direkt über unsere SSH-Konsole mit dem Befehl laden:
wget https://openhab.jfrog.io/openhab/libs-pullrequest-local/org/openhab/binding/org.openhab.binding.jeelink/2.2.0-SNAPSHOT/org.openhab.binding.jeelink-2.2.0-SNAPSHOT.jar
Anschließend kopieren wir die Datei in unseren openHAB-Addons-Ordner

sudo cp org.openhab.binding.jeelink-2.2.0-SNAPSHOT.jar /usr/share/openhab2/addons

Mit einem abschließendem Neustart unseres openHAB-Servers ist die Installation fast abgeschlossen

sudo systemctl restart openhab2.service


Alternativ: Installation über openHAB-SNAPSHOT Version

Auf eigenes Risiko kann man sich die Installation auch erleichtern und die SNAPSHOT-Version von openHAB2 installieren - Hier eine Anleitung hierzu: Code-Quickie: openHAB2 auf aktuellste SNAPSHOT-Version updaten

Danach kann man ganz regulär aus dem Addons-Menü das JeeLink Binding installieren.

USB-Adapter mit LaCrosse-Sketch flashen

Im Normalfall müssen wir zuerst eine passende Firmware, hier Sketch genannt auf unseren JeeLink flashen. Für LaCrosse Sensoren wird der LaCrosse Sketch benötigt. Dazu führen wir folgende Schritte durch

  1. Firmware auf openHAB-Server downloaden
    Firmware downloaden
  2. Inhalt aus /firmware-Ordner im Archiv auf openHAB-Server kopieren (z. B. mit WinSCP)
  3. Installation von avrdude sudo apt-get install avrdude
  4. Firmware flashen sudo avrdude -c arduino -p atmega328p -P /dev/ttyUSB0 -U flash:w:JeeLink_LaCrosse.hex



Ein abschließender Neustart kann nicht Schaden.


Einbinden des Jeelink-USB-Adapter

Wenn wir uns nun in das PaperUI einloggen, muss unter dem Punkt Configuration » Binding das JeeLink Binding auftauchen. Sollte dies nicht der Fall sein, lohnt sich ein Blick in die Logdatei von openHAB unter /var/log/openhab2/openhab.log

Nun können wir den Jeelink-USB-Adapter über unser PaperUI in openHAB einbinden. Dazu klicken wir in der Inbox auf das "+"-Symbol und wählen Jeelink-Binding aus



im folgenden Fenster dann zunächst den JeeLink USB Empfänger aus.



Im Konfigurationsfenster des JeeLink USB Empfängers geben wir unter "Serielle Schnittstelle" die Adresse /dev/ttyUSB0 ein.


Bei Init-Commands sollte 2m 30t 0a veingetragen werden. Das bedeutet:


2m - 9.579 kbps Datenrate benutzen (ist bei den 2X-Sensoren daher 1m mit 3m wechselt man zwischen den beiden Datenraten)

30t - die Datenraten werden alle 30 Sekunden gewechselt. Bei uns ist nur eine Datenrate angegeben - könnte als weggelassen werden

0a - schaltet die blaue Leuchtdiode ab

v - zeigt die Version des Jeelink (z.B. im Terminal) an


(Vielen Dank an unseren Leser Götz für die Bereitstellung dieser Informationen!)




Abschließend klicken wir auf den blauen Haken. Hat alles geklappt, finden wir unseren JeeLink-Adapter mit dem Status online unter Configurations » Things.

Wettersensoren einbinden

Vorbereitend legen wir uns einen Sensor zurecht, bei dem wir die Batterien entfernt haben.
Um nun die Sensoren mit dem JeeLink Empfänger zu verbinden, gehen wir in openHAB wieder auf die Inbox und klicken auf das "+"-Symbol. Anschließend klicken wir auf "Jeelink Binding".



Der automatische Suchlauf startet - Der Adapter geht gleichzeitig in den Binding-Modus – Jetzt müssen die Batterien in den Sensor eingelegt werden. Der Sensor sollte anschließend in der Übersicht erscheinen.

Hinweis
Nach dem Entfernen der Batterie verliert der Sensor seine ID und muss neu angelernt werden.


Bei unseren Sensoren werden Temperaturen korrekt angezeigt - Die Luftfeuchtigkeitswerte stimmen jedoch nicht, vielleicht hat hier jemand einen Hinweis was getan werden muss, dass diese korrekt angezeigt werden. Gerne auch in den Kommentaren.

Viel Spaß beim Ausprobieren!

    Über den Autor

    Gründer und Autor von worldoftech.de

    Seit 25 Jahren im Bereich IT unterwegs, leidenschaftlicher Computerspieler, Technik-Freak und begeistert von allem was einen Motor (Auto/Motorrad/Flugzeug) hat.


    Nutzt Zuhause openHAB2 zusammen mit HomeMatic Komponenten sowie netatmo als Wetterstation. InfluxDB und Grafana zur Auswertung. Weitere Gadgets von Xiaomi, Sonos und Samsung

    Patrick Team

    Kommentare 8

    • Erstmal vielen Dank, hat bei mir beim ersten Mal auch super funktioniert.
      Ich hatte einen Raspi 1 mit OpenHAB und konnte den Adapter sowie die Temperatursensoren problemlos einbinden.


      Da der Raspi 1 allerdings für OpenHAB zu langsam war, bin ich auf einen Raspi 3 umgestiegen und habe die Anleitung nochmal durchgespielt - ohne das erneute Flashen des JeeLinks.


      Ich kriege jetzt beim Versuch den Adapter in OpenHAB einzubinden (JeeLink USB Empfänger) reproduzierbar immer diese Fehlermeldung:


      Code
      1. 2018-03-18 14:53:51.730 [hingStatusInfoChangedEvent] - 'jeelink:jeelinkUsb:bf4a8c92' changed from UNINITIALIZED to INITIALIZING
      2. 2018-03-18 14:53:51.735 [hingStatusInfoChangedEvent] - 'jeelink:jeelinkUsb:bf4a8c92' changed from INITIALIZING to OFFLINE (COMMUNICATION_ERROR): Port not found: /dev/ttyUSB0


      Ich habe keinen Weg gefunden, den Adapter einzubinden. Woran kann das liegen?

    • Vielen Dank für die super tolle Beschreibung. Hat alles wie beschrieben funktioniert!

    • Die Anleitung hat bei mir mir bis zum letzten Schritt funktioniert. Mein Sensor TX29-IT wird nicht gefunden. Welche Möglichkeiten gibt es die Ursache für das Problem zu finden?


      Vielen Dank für die tolle Anleitung
      Marv

      • Bei mir klappt auch alles bis zum letzten Schritt. Der Sensor (TX35DTH-IT) wird dann nicht erkannt. Die Log-Dateien zeigen nichts Auffälliges. Das Openhab2-System wurde neu aufgesetzt und die Anleitungen Schritt für Schritt abgearbeitet.

      • Ich habe es jetzt hinbekommen. Als init commands beim Thing "JeeLink Receiver" habe ich Folgendes eingegeben: 2m 30t 0a v


        Bedeutung:
        2m 9.579 kbps Datenrate benutzen , ist bei den 2X-Sensoren daher 1m
        mit 3m wechselt man zwischen den beiden Datenraten, funktioniert bei mir nicht


        30t die Datenraten werden alle 30 Sekunden gewechselt, hier ist nur eine Datenrate angegeben, bleibt also
        sollte man weglassen können, aber never change a running system


        0a schaltet die blaue Leuchtdiode ab


        v zeigt die Version des Jeelink (z.B. im Terminal) an


        Mit diesen EInstellungen sehe ich plötzlich mehrere Sensoren. Durch Batterien neu einlegen konnte ich dann ermitteln, dass eine neue ID auftauchte, die dann zu meinem Sensor gehören muss.

      • Hallo Götz,
        vielen Dank für den Kommentar - Werde in nächster Zeit den Beitrag nochmals überarbeiten und Dein Feedback auch mit einfließen lassen.

    • Ich habe openhab2 installiert. Dort gibt es die Datei openhab nicht nur openhab2. Diese ist aber schreibgeschützt. D.h. ich bleibe an dem Schritt hängen. Ist das die falsche Datei oder bekomme ich den Schreibschutz irgendwie weg (:w! oder :!w gehen nicht)?
      Grüße

      • Hallo,
        Du musst den Editor als Root-User starten (also mittels "sudo nano" oder "sudo vi"