openHAB IX: Fritz!Box und OH 3.0

This entry is part 9 of 11 in the series openHAB
Geschätzte Lesezeit: 5 Minuten.

Seit meinem Update auf openHAB 3.0 funktioniert die Einbindung meiner Fritz!Box 7590 nicht mehr. Es wird Zeit, das zu beheben.

Ich möchte zwei Dinge realisieren:

  • Ein An/Aus-Schalter für das Gäste-WLAN
  • Anwesenheitserkennung durch Erkennung, welches Smartphone im WLAN eingewählt ist

Einen besonderen Dank möchte ich übrigens an die Leser Christian und Ralf aussprechen, die mich darauf hingewiesen haben, dass das alte Binding nicht mehr funktioniert – und die durch Nachfragen dafür gesorgt haben, dass ich mich mit dem Thema auseinander gesetzt habe.

Grundkonfiguration

Los geht es. Administration > Einstellungen > Bindings > +. Hier finden sich zwei Bindings, die prinzipiell in Frage kämen:

  • AVM FRITZ! Binding – dies scheint speziell für die Smart-Home-Features der Fritz!Box zu sein, die ich nicht benutze. Das heißt, dies ist das falsche Binding.
  • TR-064 Binding – hier finden sich viele Channels für die Fritz!Box, insbesondere sind die LAN channels interessant. Dies ist das richtige Binding.

Also gut. Ich installiere das Binding TR-064 in der Version 3.0.0. Leider finden sich keine neuen Things in meiner Inbox, ich muss das Binding also manuell konfigurieren. Glücklicherweise habe ich das ja schon einmal gemacht, daher kann ich hoffentlich viel kopieren. Und tatsächlich steht in der Dokumentation, dass das Gateway-Device manuell verbunden werden muss, der Rest funktioniert dann angeblich automatisch. Okay, dann mache ich das so.

Ich klicke Einstellungen > Things > + und wähle das TR-064-Binding. Hier wird mir direkt eine Fritz!Box vorgeschlagen, also wähne ich diese aus. Ich gebe IP-Adresse, username und Passwort ein und klicke auf Create Thing. Und siehe da, die Fritz!Box ist vorhanden, und der Status ist online. Das ist ja extrem einfach – ich mag openHAB 3.

Ich klicke das Thing an, und wähle oben Channel. Ich möchte jetzt probeweise mal die Uptime verlinken, also klicke ich auf diesen Channel und erzeuge ein neues Item für diesen Channel. Okay, jetzt sehe ich die Fritz!Box-Uptime in Sekunden. Das ist natürlich recht albern, aber es funktioniert.

Gäste-WLAN

Okay, ich möchte ja eigentlich den Schalter für das Gäste-WLAN. Also gehe ich erneut unter Einstellungen > Things > + auf das TR064-Binding. Diesmal drücke ich Scan. Jetzt wird mir ein LAN-Device angezeigt – aus der Dokumentation weiß ich, dass dieses den Channel für das WLAN besitzt. Also füge ich es hinzu, und erzeuge erneut über die Channels ein entsprechendes Item für das Gäste-WLAN. Es wird automatisch vorgeschlagen, dass es ein Switch sein soll. Das ist alles extrem einfach und straight-forward (wenn man weiß, wo man suchen muss) – ich finde das super!

Anwesenheit im WLAN

Okay, kommen wir zum (vermutlich) schwierigen Teil. Ich möchte erkennen, ob jemand anwesend ist, indem ich prüfe, ob sich das entsprechende Smartphone im WLAN befindet.

Mein erster Gedanke war, dass ich vermutlich irgendwie einen Eintrag in einer .items-Datei ergänzen muss. Aber dieser Thread hat mich auf den richtigen Weg geführt. Das Konzept ist, dass das Binding für jede MAC-Adresse einen eigenen Channel anlegen kann, den macOnline-Channel. Dazu muss man dem Binding nur sagen, welche MAC-Adressen man denn bitte überwacht haben will.

Also gehe ich über Things > LANDevice in die Konfiguration des Fritzbox-LANDevices. Im unteren Teil gibt es den Punkt Configuration, dort trage ich unter MAC Online die MAC-Adresse meines Telefons ein. Die findet man übrigens am einfachsten in der Netzwerkübersicht des Fritzbox-Menüs.

2021-01-24_fritzbox-maconline

Anschließend klicke ich auf Channels und füge den (jetzt erstmals erscheinenden) MAC Online-Channel mit der richtigen MAC-Adresse einem neuen Item hinzu. Und schon funktioniert es, ich bekomme als Status tatsächlich „ON“ angezeigt.

2021-01-24_fritzbox-maconline-2

Dieses Item kann ich jetzt nutzen, um meine Anwesenheit zu detektieren. Alles funktioniert, Haken dran.

openHAB VIII: Update auf openHAB 3.0

This entry is part 8 of 11 in the series openHAB
Geschätzte Lesezeit: 7 Minuten.

Es gibt eine neue Version, und ich möchte auf openHAB 3 aktualisieren. Vielleicht lösen sich so die Probleme mit homematic von selbst.

Also gut. Ich folge dieser Anleitung. Die sieht nämlich sehr leicht aus. Spoiler: Leider wird sich herausstellen, dass es nicht ganz so einfach ist.

Tag 1: Erst einmal alles kaputtmachen

Tolle Überschrift, oder?

Die folgenden Schritte werden alle per SSH in der Konsole durchgeführt. Zuerst mache ich ein Backup, mit diesem Befehl:

sudo $OPENHAB_RUNTIME/bin/backup

Dann öffne ich das openHAB-Konfigurations-Tool:

sudo openhabian-config

Mich begrüßt direkt diese Meldung:
2021-01-02-update-1

Wenn das Update empfohlen ist, dann mache ich das doch direkt. Ich wähle also Continue, und das System rattert vor sich hin.

Nach ein paar Augenblicken kommt der nächste Screen:
2021-01-02-update-2

Öh, ja, ich möchte openHAB 3. Also wähle ich mit dem Cursor den unteren Branch, und drücke Enter.

Es folgt das Hauptmenü. Ich wähle den zweiten Menüpunkt Upgrade System.
2021-01-02-update-3

Das System arbeitet jetzt. Nach einer Weile erhalte ich folgenden Dialog:
2021-01-02-update-4

Öh, ja, also wenn ich Java 11 brauche, dann soll das bitte auch installiert werden. Continue.

Anschließend geht es zurück in das hauptmenü. Hier wähle ich nun Punkt 3, Install openHAB. In der beschreibung steht ja, dass hier openHAB 3 installiert wird, also sollte das passen.
2021-01-02-update-5

Als nächstes werde ich gefragt, ob ich ein Backup anlegen möchte. Das habe ich zwar schon vorhin manuell gemacht, aber es schadet ja nicht. Continue.
2021-01-02-update-6

Und eine Warnmeldung, dass das Update zu openHAB 3 nicht rückgängig zu machen ist. Jaja, Continue.
2021-01-02-update-7

Jetzt rödelt das System. Nach einer Weile erhalte ich eine Erfolgsmeldung:
2021-01-02-update-10

Und direkt danach folgt eine Fehlermeldung:
2021-01-02-update-8

Das ist seltsam. Mal sehen, ob es funktioniert hat. Ich gebe http://openhab/8080 in den Browser ein.

2021-01-02-update-8-2

Okay, da ist also etwas kaputt. Ein Reboot (sudo reboot) hilft nichts. Eine schnelle Google-Recherche führt mich zu dieser Diskussion. Hier wird der Fehler genau beschrieben, aber es wird gesagt, dass das ab openHAB 2.5.1 behoben sein sollte. Ich habe doch openHAB 3 installiert?

Ich gehe also erneut per SSH auf den RasPi. Der Begrüßungsdialog von openhabian sagt aber immernoch, dass ich openHAB 2.5 installiert hätte. Seltsam. Da hat wohl etwas nicht geklappt.

Also nochmal.

sudo openhabian-config

Diesman wähle ich Menüpunkt 1, Select Branch. Und siehe da, ich habe angeblich noch den stable-Branch ausgewählt. Ich muss das Sternchen auf openHAB3 verschieben, und erst dann Enter drücken. Aber wie geht das? Keine Ahnung. Ich drücke wild auf meiner Tastatur herum, und irgendwann ist das Sternchen an der richtigen Stelle. Ich glaube, die Leertaste war richtig, aber ich bin mir nicht sicher. Egal.

2021-01-02-update-9

Weiter geht es. Punkt 3, Install openHAB.
2021-01-02-update-10

Diesmal erhalte ich nur die Erfolgsmeldung, und keine Fehlermeldung. Und der Screen per SSH sieht so aus:

2021-01-02-update-11

Das ist doch super! Erstmal rebooten (sudo reboot), und dann auf zu http://openhab/8080:
2021-01-02-update-8-2

Verdammt.

Okay, die obige Lösung sagte, man müsse openHAB einfach nur löschen und neu installieren. Das würde ich gerne vermeiden, vielleicht geht es auch anders.

Eine andere Lösung sagt, man solle den Cache leeren.

openhab-cli stop
openhab-cli clean-cache
openhab-cli start

Und nun geht es erneut zu http://openhab/8080: Die Website ist nicht erreichbar. ERR_CONNECTION_REFUSED. Verdammt.

Tag 2: Reparieren

Sieh mal einer an, jemand anderes hat den gleichen Fehler wie ich. Die Lösung: Zwinge das System, Java 11 zu nutzen. Nur wie das geht, steht hier leider nicht.

Besser gesagt, da steht, derjenige habe es über das openHAB-Konfigurations-Tool geschafft:

sudo openhabian-config

Okay, ich wähle erstmal Menüpunkt 10, Apply Improvements > Packages. Kann ja nicht schaden. Der Installer läuft erfolgreich durch – aber das war nicht, was ich gesucht habe.

Menüpunkt 40, openHAB Related, listet als Punkt 46 Zulu Java 11 auf.
2021-01-02-update-12

Super, das will ich installieren, in der 32-Bit-Variante. Der Installer läuft erneut erfolgreich durch:
2021-01-02-update-13

Okay, Reboot.

Und siehe da, es funktioniert! Ich werde in das initiale Setup von openHAB 3 geleitet:
2021-01-02-update-14

2021-01-02-update-15

Ich vergebe einen Admin-Account, lege ein paar Daten und meinen Standort fest, und komme in die neutrale Übersichtsseite. Super!

2021-01-02-update-16

Jetzt muss ich das „nur noch“ konfigurieren.

Etwas rumspielen zeigt mir, dass meine Things, Channels und Rules übernommen wurden. Meine Sitemap auch, aber irgendwie funktioniert diese (noch) nicht. Anscheinend gab es da Änderungen. Glücklicherweise sind die wichtigsten Änderungen dokumentiert, insbesondere der Abschnitt über erforderliche manuelle Anpassungen ist sehr interessant. Besonders relevant für mich: Das Gardena-Binding ist komplett neu geschrieben worden. Das muss ich mir ansehen.

Außerdem wird das Fritzbox-064-Binding nicht mehr unterstützt. Vielen Dank an Christian für den Hinweis! Auch hier muss ich eine Lösung finden, die ich hier dokumentieren werde.