SONOFF basic flashen und in openHAB einbinden

Aus CyberWiki
Zur Navigation springen Zur Suche springen

SONOFF in openHAB einbinden

Voraussetzung: geflashter SONOFF mit TASMOTA firmware.

Installation des MQTT-Server auf dem Raspberry Pi (mit Putty connecten)

sudo openhabian-config
Optional Components/Mosquitto (ohne password)

Danach müssen in der Weboberfläche von openHAB die MQTT-Bindings installiert und ein Schalter gesetzt werden.

X Configuration/System -> Include Legacy 1.x Bindings -> ON und SAVE
PAPER UI/Add-ons/BINDINGS -> MQTT Binding INSTALL
X PAPER UI/Add-ons/BINDINGS -> MQTT Binding (1.x) INSTALL

Nur dann findet man die Datei mqtt.cfg.

X Editieren config-Datei des MQTT-Server

sudo nano /etc/openhab2/services/mqtt.cfg

Hier wird die URL zum MQTT broker eingetragen (im oberen Teil der Datei). brokername ist beliebig, z.B. smarthome.

mqtt:brokername.url=tcp://localhost:1883 (ohne # am Anfang)

Konfiguration MQTT Broker

Inbox +
Klick MQTT Binding/ADD MANUALLY/MQTT Broker
Name=beliebiger Name z.B. ohbroker
Thing ID=ohbroker
Broker Hostname/IP=localhost
SHOW MORE
Broker Port=1883
Username=smarthome (bei mir g..i, g..i)
Password=smarthome (oder natürlich eine andere Kombination)

Mit Klick auf das blaue Häckchen wird der Broker gespeichert und sollte als ONLINE angezeigt werden.
Anschließend werden die Geräte verknüpft.

Things
blaues +
MQTT Binding/ADD MANUALLY/Generic MQTT Thing
Name=biotoppumpe
Thing ID=biotoppumpe
Location bezieht sich auf die sitemap!
Bridge Selection=Auswahl ohbroker - mqtt:broker:smarthome

Mit Klick auf das blaue Häckchen wird das Thing gespeichert. Der Status von biotoppumpe sollte ONLINE sein. Mit Klick auf biotoppumpe wird das Thing bearbeitet.

Channels +
Auswahl Channel type -> On/Off switch
Channel id=Power
Label=Power
MQTT state topic=stat/biotoppumpe/POWER
MQTT command topic=cmnd/biotoppumpe/POWER
SAVE

Die Befehle können mit MQTT.fx durch subscribe herausgefunden werden.

Programm MQTT.fx

Dient zur Überprüfung des MQTT-Server und zum Absetzen von Befehlen. Darin müssen folgende Einstellungen vorgenommen werden:

Profil Name (z.B. smarthome) 
Broker Address = IP des Raspberry Pi [alternativ ist der hostname möglich]
Broker Port 1883
Client ID = wenn leer -> Generate
User Credentials: User Name (openhabian) und Password

Startseite des SONOFF aufrufen (mit IP des SONOFF im Browser)

Hier ist bei Host die Eingabe der IP-Adresse erforderlich. Der hostname funktioniert nicht, jedenfalls nicht trivial. Sinnvoll ist es daher, im Router Immer die gleiche IP-Adresse verwenden: zu aktivieren, oder man vergibt für den openHAB-Server eine statische IP-Adresse. Topic ist der Name, mit dem der SONOFF im MQTT.fx-Client und in openHAB angesprochen wird.

Einstellungen/MQTT konfigurieren
Host=IP-Adresse des Raspberry Pi
Port=1883
Benutzer und password des MQTT-Server
Topic=biotoppumpe

Nach dem Speichern kann getestet werden, ob die Verbindung funktioniert.

MQTT.fx

Eingabe Brokername (smarthome) -> Connect (rechts sollte ein grünes Symbol erscheinen)

Mit Klick auf Subscribe (Karteireiter) wählt man das zu beobachtende Gerät aus, indem man in die darunterliegende Befehlszeile

stat/biotoppumpe/RESULT -> Subscribe

eingibt. Drückt man am SONOFF den kleinen Ein- und Ausschalter, sollten die Ereignisse im rechten Teil des Fensters gelistet werden. Damit ist der SONOFF sauber verbunden. In weiterer Folge können hier auch die aus openHAB abgesetzten Befehle verfolgt werden. Das Gerät wird solange beobachtet, bis man auf Unsubscribe klickt.

Wählt man -> Publish (Karteireiter) und gibt in die Kommandozeile

cmnd/biotoppumpe/POWER -> Publish

ein, kann man im darunterliegenden, größeren Feld ON und OFF gefolgt von Klick auf Publish neben der Kommandozeile eingeben. Der SONOFF sollte sich entsprechend ein- und ausschalten. Mit Disconnect beendet man die Beobachtung des MQTT-Brokers.
Weitere Erklärungen zu MQTT und MQTT.fx lassen sich mit einer Websuche finden.

Konfiguration in openHAB

Die Konfigurationsdateien kann man mit Nano editieren (z.B. nano /etc/openhab2/items/switch.items), einfacher ist es aber, die Dateien mit Notepad++ in den Unterordnern des freigegebenen (Windows)Ordners openHAB-conf zu erstellen/bearbeiten.
Zuerst wird im Unterordner eine .items-Datei erstellt, z.B. switch.itmes. Hier wird folgende Commandline eingetragen (eine Zeile!):

Switch Switch01 "Biotoppumpe" <pump> {mqtt=">[brokername:cmnd/Name_des_SONOFF/POWER:command:ON:1],>[brokername:cmnd/Name_des_SONOFF/POWER:command:OFF:0],<[brokername:stat/Name_des_SONOFF/POWER:state:default]"}

brokername und Name_des_SONOFF müssen natürlich geändert werden. <pump> ist optional, kann also weggelassen werden und ändert das Schaltericon auf ein Pumpenicon. Mit state wird der Zustand des SONOFF angezeigt, > bedeutet ausgehender Befehl, < bedeutet eingehender Befehl.
Damit ist die .items-Datei eingerichtet.

Nun wird noch eine .sitemap-Datei benötigt. Als Beispiel default.sitemap. Sie liegt im (Windows)Ordner openHAB-conf/sitemaps. Sie enthält:

sitemap default label="My Smart Home" {
    Frame label="Biotopsteuerung" {
        Switch item=Switch01 label="Biotoppumpe"
    }
}

Damit kann die Webseite von openHAB aufgerufen werden. Im BASIC UI sollte die Biotoppumpe als Pumpensymbol erscheinen. Damit ist auch demonstriert, wie mit wenigen Zeilen neue Devices hinzugefügt werden können.