SONOFF 4CH Pro mit MQTT unter openHAB 2.5 anbinden

Die alternative Firmware für ESP8266 based devices

Moderatoren: seppy, udo1toni

Antworten
Stargate1212
Beiträge: 10
Registriert: 14. Apr 2020 09:25
Answers: 1

SONOFF 4CH Pro mit MQTT unter openHAB 2.5 anbinden

Beitrag von Stargate1212 »

Hallo ich kriege es nicht hin einen SONOFF 4CH Pro mit geflashten Tasmota mit MQTT in openHAB 2.5 anzubinden.

Was muß ich machen. Bitte Schritt für Schritt. Ich verzweifle. Gruß Stargate1212
Zuletzt geändert von Stargate1212 am 1. Mai 2020 15:15, insgesamt 1-mal geändert.

Benutzeravatar
udo1toni
Beiträge: 3960
Registriert: 11. Apr 2018 18:05
Answers: 40
Wohnort: Darmstadt

Re: SONOFF 4CH Pro mit MQTT unter openHAB 2.5 anbinden

Beitrag von udo1toni »

Es gibt mehrere Möglichkeiten.

Zunächst: Welche Version hast Du geflasht? aktuell ist die 8.2, von der gehe ich jetzt einfach mal aus. Falls es keine zwingenden Gründe für eine andere Version gibt, solltest Du im Zweifel auf die aktuelle Version updaten. Falls Du von einer sehr viel älteren Version kommst und deine Einstellungen behalten willst, musst Du dabei den Updatepfad beachten. Ich persönlich gehe lieber pragmatisch vor, flashe die aktuelle Version und richte anschließend das Gerät komplett neu ein, das ist ja auch in wenigen Schritten erledigt.

mqtt braucht einen sogenannten Broker, der von allen Clients alle publizierten Nachrichten entgegen nimmt und diese an alle Clients verteilt, welche die entsprechenden Topics abonniert haben.

Zunächst musst Du also einen Broker installieren. Nun ist die Frage, welche Plattform Du nutzt ;) und wie Du openHAB installiert hast. Sollte es sich um einen Raspberry mit openHABian handeln, rufst Du openhabian-config auf und suchst im Bereich optional Components (oder so ähnlich...) nach dem mqtt Broker mosquitto. Den installierst Du (und ignorierst gepflegt die Warnung, welche leider in eine falsche Richtung weist).

Solltest Du kein openHABian verwendet haben, kannst Du unter einem aktuellen GNU/Linux oder auch BSD mosquitto mit Bordmitteln installieren, z.B. unter debian/Ubuntu mit sudo apt install mosquitto.

Solltest Du unter Windows unterwegs sein, gibt es sicherlich auch da ein entsprechendes Paket, aber vielleicht ist es dann einfacher, auf den embedded Broker von openHAB, Moquette, zurückzugreifen (zu finden in Paper UI/Addons/Misc/).

ACHTUNG: Entweder Moquette, ODER Mosquitto, nicht beide gleichzeitig installieren!.

Sobald der Broker mal läuft, solltest Du Dich mit einem Tool wie mqtt spy oder mqtt.fx mit dem Broker verbinden können, der Port sollte 1883 sein, die IP-Adresse ist die des Rechners, auf dem der Broker läuft, also gewöhnlich (aber nicht zwingend, es sei denn, Du nutzt Moquette) derselbe Rechner, auf dem auch openHAB läuft.

Wenn Du schon mal mit dem Broker verbunden bist, kannst Du gleich das Topic # abonnieren, das beinhaltet alle Topics, die von Clients gesendet werden.

Nun ist es Zeit, den Sonoff mit dem Broker zu verbinden. Du rufst dazu die Webschnittstelle vom Sonoff auf, gehst auf die Konfigurationsseite, dort auf MQTT und trägst die IP des Brokers ein. Auf der gleichen Seite kannst Du einen User und ein Passwort eintragen, das Passwort musst Du natürlich nur dann eingeben (und nutzen, da gibt es ein Kästchen zum aktivieren), wenn Du tatsächlich in Mosquitto User und Passwort gesetzt hast. Moquette bietet keine Option für Zugriffsbeschränkungen, ein Grund, Mosquitto zu nutzen, wenn möglich.

Weiterhin kannst Du einen Clientnamen setzen (der ist interessant, um auf dem Broker im log die Kommunikation nachzuverfolgen, deshalb sollte er eindeutig, also pro Client unterschiedlich sein)

Dann gibt es noch eine Option, das Topic zu setzen. Damit ist allerdings nur der variable Teil des Topics gemeint, welcher sich von Gerät zu Gerät unterscheiden muss, um die Geräte einzeln steuern zu können. Default sind hier die letzten sechs Hex-Ziffern der Mac-Adresse gesetzt, Du kannst aber jeden beliebigen eindeutigen String verwenden (aber am besten nur Buchstaben und Ziffern, keine Sonderzeichen oder Leerzeichen).
Weiterhin kannst Du das Fulltopic anpassen, welches gewöhnlich auf %prefix%/%topic%/ gesetzt ist. %prefix% ist einer der drei Strings stat, cmnd und tele, je nachdem, was man gerade an Informationen braucht oder steuern möchte. Man kann hier also z.B. dafür sorgen, dass das prefix nach dem topic kommt (was hierarchisch logischer wäre).

Wenn das alles eingetragen ist, speicherst Du die Einstellungen und der Sonoff bootet automatisch.

Anschließend solltest Du im oben eingerichteten Client sofort ein bisschen Aktivitäten sehen, Tasmota meldet sich beim Broker an und gibt viele Informationen aus, hübsch verpackt in JSON.

Damit ist der Sonoff auch über den Client steuerbar. Wenn Du das FullTopic nicht angerührt hast und das Topic z.B. auf Sonoff4CHpro eingestellt hast, dann solltest Du aus dem Client heraus ein Topic publizieren können, und zwar cmnd/Sonoff4CHpr/POWER1 mit dem Payload ON. Nun sollte das erste Relais unmittelbar einschalten. Mit dem Payload OFF sollte es wieder aus gehen. Gleichzeitig sollte auch das Topic stat/Sonoff4CHpr/POWER1 mit jeweils passendem Payload vom Sonoff publiziert werden.

Nun also wieder zurück zu openHAB.

openHAB muss nun als Client mit dem Broker sprechen. dazu musst Du das mqtt Addon installieren. Es spielt hier keine Rolle, ob Du den embedded Broker nutzt oder Mosquitto, das hat nichts miteinander zu tun.
Sobald das mqtt Addon installiert ist, richtest Du den mqtt Broker ein (bitte nicht mit dem System Broker verwechseln, der spielt hier keine Rolle). Dabei gibst Du die gleichen Daten an wie schon beim Sonoff. Natürlich bekommt openHAB eine eigene ClientID. der Broker sollte umgehend ONLINE angezeigt werden. Sollte es hier zu einem Communication Error kommen, musst Du auf Suche gehen, was Du falsch eingestellt hast. Der Fehler kann aber nur an der Bridge liegen (die Verbindung zum Broker), da wir ja schon vorher erfolgreich mit dem Broker kommunizieren konnten.

Hat bis hierher alles geklappt, legst Du ein generic mqtt Thing an. Dies repräsentiert in openHAB den kompletten Sonoff 4CH Pro. Achte darauf, dass dieses Thing auch der Bridge zugeordnet ist (das ist die Verbindung zum Broker).
Nun legst Du in diesem Thing einen Channel an. Dieser Channel repräsentiert ein Relais. Es gibt zwei wesentliche Konfigurationsparameter, das stateTopic und das commandTopic. das stateTopic lautet in unserem Beispiel stat/Sonoff4CHpr/POWER1, das commandTopic lautet passend cmnd/Sonoff4CHpr/POWER1.
Weitere Parameter sollten unnötig sein.
Nun legst Du drei weitere Channel an, die für die drei anderen Relais sind. Sie unterscheiden sich nur durch das letzte Zeichen des Topics, also statt 1 eine 2, 3 bzw. 4.
Es gibt noch ein paar andere interessante Topics, z.B. die Empfangsqualität, welche Du unter tele/Sonoff4CHpro/STATUS (? ... bin gerade nicht sicher, das genaue Topic betreffend) zu sehen bekommst. Tasmota sendet in einem festen Zeitabstand (kann man einstellen) Informationen über den Zustand. Dieses Topic bekommst Du im Client zu sehen, wenn Du # abonniert hast. Der Status wird als JSON übergeben, das heißt, um das auswerten zu können, musst Du den JSONPATH Transformation Service installiert haben. weiterhin musst Du zusätzlich zum korrekten stateTopic (ein commandTopic gibt es hier logischerweise nicht) noch eine incomming Transformation eintragen, welche JSONPATH:$.Wifi.RSSI heißen müsste. Geliefert bekommst Du dann eine Zahl von 0 bis 100, wobei die 100 wohl nur erreicht werden wird, wenn Du die Antennen von Sonoff Modul und AccessPoint direkt aneinander hältst. :)

Je nachdem, wie Du openHAB konfiguriert hast - Stichwort Simple Mode - musst Du zum Abschluss noch für jeden Channel ein Item anlegen und mit dem Channel verlinken.

Eine Alternative zur manuellen Konfiguration ist es, in Tasmota die Home Assistant Konvention zu aktivieren (das geht in der Tasmota Konsole mittels SetOption19 1). Dann startest Du sicherheitshalber den Sonoff einmal durch. Anschließend sollte openHAB (eine schon eingerichtete und funktionierende Verbindung zum Broker mal vorausgesetzt) direkt den Sonoff 4CH Pro als Thing per Autodiscovery finden und einrichten. Die Parameter unterscheiden sich dabei stark von den manuell gesetzten und von mir oben beschriebenen.

Ich hoffe, das war kleinteilig genug und Du bist bisher noch nicht an der Bleiwüste verzweifelt...

Stargate1212
Beiträge: 10
Registriert: 14. Apr 2020 09:25
Answers: 1

Re: SONOFF 4CH Pro mit MQTT unter openHAB 2.5 anbinden

Beitrag von Stargate1212 »

Wow. Das ist ja geil. Vielen Dank, ich bin dir sehr dankbar.

Also ich habe Tasmota 8.2 geflasht, Raspberry mit OpenHAB 2.5 als Image auf SD-Karte geflasht.
Benutze den "MQTT Broker Moquette" + das "MQTT Binding"
Habe deine Anweisungen befolgt und habe nun ein Control womit ich das 1. Relais steuern kann.
Ich würde aber lieber im Editor entsprechende things, item und sitemap bearbeiten wollen.
Kannst du mir diese noch als Beispiel posten?

LG Stargate1212

Benutzeravatar
udo1toni
Beiträge: 3960
Registriert: 11. Apr 2018 18:05
Answers: 40
Wohnort: Darmstadt

Re: SONOFF 4CH Pro mit MQTT unter openHAB 2.5 anbinden

Beitrag von udo1toni »

Du kannst Bridge, Thing und Channel - genau wie die Items - selbstverständlich auch mittels Textdateien vornehmen.

Ich möchte zuerst dringend zu VisualStudio Code als Editor raten. Im eingebauten Market Place des Editors kann man das openHAB Plugin herunterladen und installieren. Das Plugin muss konfiguriert werden, damit es sich mit dem openHAB Server verbinden kann. Dann bietet VSCode Autocompletion und Fehlererkennung. Das läuft über LSP.

Auf dem (Windows?) Desktop PC verbindest Du die Netzwerkfreigabe openhab-conf vom Raspberry mit einem Laufwerksbuchstaben. UNC-Pfade funktionieren leider nicht sauber.

In VSCode öffnest Du diesen LAufwerksbuchstaben als Arbeitsordner. Du solltest nun den Konfigurationsbaum sehen, insbesondere die Verzeichnisse things, items und sitemaps sind für Dich wichtig.
In things legst Du eine Datei mqtt.things an (Der Name ist eigentlich egal, nur die Endung muss stimmen). Inhalt der Datei ist die Bridge, alle zugehörigen Things und alle Channel. sieht so aus:

Code: Alles auswählen

Bridge mqtt:broker:mymqtt "Moquette" @ "mqtt" [
    host="127.0.0.1",
    port=1883,
    clientID="openHAB2"
 ] {
     Thing topic sonoff4CH_pro "Sonoff 4 CH Pro" @ "mqtt" {
        Channels:
            Type switch : ch1 "Channel 1" [ stateTopic= "stat/sonoff4chpro/POWER1", commandTopic="cmnd/sonoff4chpro/POWER1" ]
            Type switch : ch2 "Channel 2" [ stateTopic= "stat/sonoff4chpro/POWER2", commandTopic="cmnd/sonoff4chpro/POWER2" ]
            Type switch : ch3 "Channel 3" [ stateTopic= "stat/sonoff4chpro/POWER3", commandTopic="cmnd/sonoff4chpro/POWER3" ]
            Type switch : ch4 "Channel 4" [ stateTopic= "stat/sonoff4chpro/POWER4", commandTopic="cmnd/sonoff4chpro/POWER4" ]
      }
}
Die Topics musst Du natürlich anpassen.

Im Verzeichnis items legst Du eine Datei mqtt.items an (es gilt das gleiche wie oben; Du kannst auch alle Items in eine Datei packen, wenn Du willst.)

Diese Datei kannst Du automatisch von VSCode füllen lassen. Sobald Du die Bridge mitsamt Thing und Channels angelegt hast, solltest Du auf der linken Seite auf die openHAB-Anzeige umschalten können. Dort solltest Du eine Liste aller Things und Items sehen können (Du musst die Liste allerdings manuell aktualisieren ,mit dem Kreispfeil-Knopf)
Dann klickst Du rechts auf das Thing und wählst aus dem Kontextmenü Create Items from Channels. Wichtig ist natürlich, dass Du zuerst die items-Datei auswählst, damit das Plugin weiß, wo es die Items erzeugen soll.
Du kannst anschließend alles an den Items anpassen, außer natürlich den Channel-Link :)

Sobald Du die Datei speicherst, sind die Items aktiv, das heißt, Du kannst sie wiederum über die openHAB-Anzeige sehen (aktualisieren nicht vergessen).

Auf gleichem Weg kannst Du die Items in die Sitemap einbauen lassen.

Die über Paper UI erstellte Bridge samt Thing solltest Du natürlich zuerst löschen...

Stargate1212
Beiträge: 10
Registriert: 14. Apr 2020 09:25
Answers: 1

Re: SONOFF 4CH Pro mit MQTT unter openHAB 2.5 anbinden

Beitrag von Stargate1212 »

Vielen lieben Dank.

Hatte den ganzen Tag Zeit rumzufummeln, und habe es gerade eben auch geschafft. Manchmal sieht man den Wald vor lauter Bäumen nicht :lol:

Tt49
Beiträge: 2
Registriert: 6. Jan 2018 01:01

Re: SONOFF 4CH Pro mit MQTT unter openHAB 2.5 anbinden

Beitrag von Tt49 »

Hallo udo1toni,

vielen Dank für deine ausführliche Anleitung. Damit habe ich es auch hinbekommen. Danke!

Antworten