[gelöst] Für jede Sonoff S20 Dose einen eigenen MQTT-Broker?

Geflasht oder ungeflasht ...

Moderatoren: Cyrelian, udo1toni

Benutzeravatar
earlybird
Beiträge: 43
Registriert: 28. Dez 2018 22:13

[gelöst] Für jede Sonoff S20 Dose einen eigenen MQTT-Broker?

Beitrag von earlybird »

Hallo zusammen,

ich bin neu hier. Mit openHAB2 befasse ich mich erst seit kurzem.
Ich habe jetzt auf einem RaspberryPi 3+ raspbian installiert.
Dann OpenHAB2, Apache2, MariaDB und Nextcloud16.
Jetzt habe ich (mit freundlicher Unterstützung der LUG-Marl :-))
3 Sonoff S20 Steckdosen mit Tasmota geflasht und versuche nun diese
ins System zu integrieren.

Da zu habe ich folgende Fragen:
Benötige ich für jede Sonoff S20 Dose einen eigenen MQTT-Broker?
Kann ich ggf. für die Steckdosen eine eigene Zeitschaltung festlegen? Wenn ja, wo?

Für Eure Hilfe im voraus "herzlichen" Dank

Mit freundlichem Gruß
Jürgen
Zuletzt geändert von earlybird am 5. Aug 2020 23:45, insgesamt 1-mal geändert.

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

Re: Für jede Sonoff S20 Dose einen eigenen MQTT-Broker?

Beitrag von udo1toni »

Nein, Du benötigst nur einen Broker.
Du musst jedes Device unter einem eigenen Topic senden und empfangen lassen. Tipp: Im Sinne der Hierarchie ist es meiner Meinung besser, das FullTopic abweichend zur Default Konfiguration so einzustellen:

Code: Alles auswählen

%topic%/%prefix%/
Was dazu führt, dass man nicht

Code: Alles auswählen

commandTopic="cmnd/meinDevice/POWER", stateTopic="stat/meinDevice/POWER"
schreibt, sondern

Code: Alles auswählen

commandTopic="meinDevice/cmnd/POWER", stateTopic="meinDevice/stat/POWER"
Für die Zeitschaltung kannst Du in openHAB entsprechend Regeln erstellen. Alternativ steht es Dir auch frei, die in Tasmota eingebauten Timer zu verwenden, aber das ist eher suboptimal, schließlich soll openHAB die Kontrolle haben.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
earlybird
Beiträge: 43
Registriert: 28. Dez 2018 22:13

Re: Für jede Sonoff S20 Dose einen eigenen MQTT-Broker?

Beitrag von earlybird »

Hallo udo1toni,
erstmal "Dankeschön" für die schnelle Antwort.
Leider funktionieren bei bei mir nun alle 3 S20 Steckdosen gleichzeitig. :-(
Wo muss ich den

Code: Alles auswählen

%topic%/%prefix%/
einstellen?
Mit freundlichem Gruß
Jürgen

Stefan Otten
Beiträge: 73
Registriert: 11. Nov 2018 06:51

Re: Für jede Sonoff S20 Dose einen eigenen MQTT-Broker?

Beitrag von Stefan Otten »

Im Konfigurations Menü des Sonoff unter MQTT
Siehe Screenshot, die letzten zwei Einträge.

Jedes Gerät braucht ein eigenes Topic.
Am besten legst Du für Dich einen Baum fest.
Der kann ungefähr so aussehen:

Erdgeschoss/Steckdosen/TV
Erdgeschoss/Steckdosen/Lampe
Erdgeschoss/Steckdosen/Lüfter
TV, Lampe und Lüfter sind als Beispiele für die einzelnen Steckdosen gedacht.

In dem Beispiel von Udo würde es dann konkret so aussehen:

Code: Alles auswählen

commandTopic="Erdgeschoss/Steckdosen/Lampe/cmnd/POWER", stateTopic="Erdgeschoss/Steckdosen/Lampe/stat/POWER"
commandTopic="Erdgeschoss/Steckdosen/TV/cmnd/POWER", stateTopic="Erdgeschoss/Steckdosen/TV/stat/POWER"
Grüße
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

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

Re: Für jede Sonoff S20 Dose einen eigenen MQTT-Broker?

Beitrag von udo1toni »

Wenn alle Steckdosen "gleichzeitig" funktionieren, hast Du entweder das falsche Topic genutzt, oder alle Geräte mit identischem Topic eingerichtet. Selbstverständlich muss jedes Gerät sein eigenes Topic haben.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
earlybird
Beiträge: 43
Registriert: 28. Dez 2018 22:13

Re: Für jede Sonoff S20 Dose einen eigenen MQTT-Broker?

Beitrag von earlybird »

Hallo udo1toni und Hallo Stefan,
das hat leider bei mir nicht funktioniert! :-(
Darum habe ich jetzt die von Stefan vorgeschlagene Struktur eingestellt.
Von der Sonoff Seite kann ich die Steckdose schalten! Von der OpenHAB2-Seite leider nicht.
Hier habe ich mal die Sonoff Einstellungen aufgelistet:

Code: Alles auswählen

Sonoff S2X Modul
Sonoff
Tasmota Version	6.5.0(release-sonoff)
Build-Datum & -Uhrzeit	2019.03.19 12:30:37
Core-/SDK-Version	2_3_0/1.5.3(aec24ac9)
Laufzeit	0T00:00:23
Anz. Flash Schreibzugriffe	242 at 0xF7000
Anzahl Startvorgänge	50
Grund für Neustart	Software/System restart
Name [friendly name] 1	Sonoff
	 
AP1 SSID (RSSI)	XXXXXXXXXXXX (32%)
Hostname	TV-XXXX
IP-Adresse	1XX.XXX.X.X
Gateway	1XX.XXX.X.X
Subnetzmaske	255.255.255.0 
DNS-Server	1XX.XXX.X.X
MAC-Adresse	XX:XX:XX:XX:XX:XX
	 
MQTT Host	1XX.XXX.X.X
MQTT Port	1883
MQTT-Benutzer	XXXXXXXXX
MQTT client	Erdgeschoss_Steckdosen
MQTT topic	TV
MQTT group topic	sonoffs
MQTT full topic	Erdgeschoss/Wohnzimmer/cmnd/TV/
MQTT Fallback-Topic	cmnd/Erdgeschoss_Steckdosen_fb/

full topic (%prefix%/%topic%/)
Erdgeschoss/Wohnzimmer/%topic%/%prefix%
	 
Emulation	Belkin WeMo
mDNS-Ermittlung	deaktiviert
	 
ESP Chip ID	6815555
Flash Chip ID	0x146085
Realer Flash Speicher	1024kB
Ges. Flash Speicher	1024kB
Ben. Flash Speicher	508kB 
Verf. Flash Speicher	492kB
Freier Arbeitsspeicher	14kB
Hier habe ich mal die OpenHAB2 Einstellungen aufgelistet:

Code: Alles auswählen

Configuration Things Erdgeschoss_Steckdose_TV 
Generic MQTT Thing
Name:               Erdgeschoss_Steckdose_TV
Location:   
Bridge Selektion:   MQTT Broker Sonoff-S20-mqtt:broker:MQTTBrokerSonoff- S20

Code: Alles auswählen

Channels
mqtt:topic:Erdgeschoss_Steckdose_TV:Power
Switch
Linked items
Erdgeschoss_Steckdose_TV_Power 
Label:      Power
Type:       Switch

Code: Alles auswählen

Channel configuration
Cannel type:        On/Off switch
Channel id:         Power
Label:              Power
MQTT state topic:   stateTopic="Erdgeschoss/Wohnzimmer/TV/stat/POWER"
MQTT command topic: commandTopic="Erdgeschoss/Wohnzimmer/TV/cmnd/POWER"
Bei den Einstellungen stehen für XXX natürlich Zahlen!
Als Anlage habe ich noch ein Bild von den Sonoff-MQTT-Einstellungen beigefügt.
Wo liegt bei mir der Fehler?
Könnt Ihr mir ggf. helfen?

Mit freundlichem Gruß
Jürgen
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

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

Re: Für jede Sonoff S20 Dose einen eigenen MQTT-Broker?

Beitrag von udo1toni »

Du hast alle Bridges bis auf eine gelöscht?
Die Bridge wird ONLINE angezeigt?
Alle Things sind dieser Bridge zugeordnet?
Die Things werden ebenfalls ONLINE angezeigt?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
earlybird
Beiträge: 43
Registriert: 28. Dez 2018 22:13

Re: Für jede Sonoff S20 Dose einen eigenen MQTT-Broker?

Beitrag von earlybird »

Hallo udo1toni,
das sieht jetzt wie im beigefügten Bild bei mir aus!

Nach dieser Anleitung bin ich vorgegangen :
https://www.youtube.com/watch?v=-8Wwi6MY0e8

Mit freundlichem Gruß
Jürgen

ps
noch ein schönes WE
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Stefan Otten
Beiträge: 73
Registriert: 11. Nov 2018 06:51

Re: Für jede Sonoff S20 Dose einen eigenen MQTT-Broker?

Beitrag von Stefan Otten »

Hallo,

Deine Topics sind falsch angelegt.
schau mal wie es beispielsweise bei mir aussieht:

Code: Alles auswählen

Switch      Licht_Treppe_Wand           "Treppe Wand"           <light>             (Lampen, Treppe)                    [ "Switchable" ]    {mqtt="<[mosquitto:Smarthome/1OG/Treppe/Wand/stat/POWER:state:default], >[mosquitto:Smarthome/1OG/Treppe/Wand/cmnd/power:command:*:${command}]"}
screenshot_85.png
Screenshoot:
In Topic steht "Wand"
In Full Topic steht Smarthome/1OG/Treppe/%topic%/%prefix%

%topic% ist eine Variable und ist in meinem Fall mit "Wand" belegt.
Also heisst das komplette Topic, wie in dem Auszug aus der Things Datei zu sehen:
Smarthome/1OG/Treppe/Wand/

Wichtig, in OH und Tasmota (Sonoff) müssen beide Topics identisch sein.
Also keine Unterstriche anstatt den Schrägstrichen etc.

Kleiner Tipp:
Lade Dir mal MQTTfx oder ähnliches auf den Rechner.
Dann schalte über die Tasmota Weboberfläche Deine Geräte. In MQTTfx kannst Du dann das komplette Topic sehen.
Darüber kannst Du dann auch Testweise schalten etc.


Grüße
Stefan
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

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

Re: Für jede Sonoff S20 Dose einen eigenen MQTT-Broker?

Beitrag von udo1toni »

Vor allem muss hinter das %prefix% auch noch ein Slash.

%prefix% wird durch einen von drei Begriffen ersetzt: cmnd, stat oder tele
%topic% wird durch das ersetzt, was als %topic% definiert ist.

Entsprechend muss man das full topic mit Slashes aufbauen, also so:

Code: Alles auswählen

%prefix%/%topic%/
%topic%/%prefix%/
irgendwas/%topic%/%prefix%/
denn hinter dem full topic kommt noch der konkrete Parameter, z.B. POWER.

Tipp: Gewöhnlich definiert man das full topic bei allen Tasmota Geräten identisch, das Topic wird individuell für jedes Gerät definiert und ist dann eindeutig. Man kann als Topic auch die letzten 6 Stellen der MAC nehmen (auch dafür gibt es eine Variable), dann kann man die Firmware inklusive Einstellungen für alle Geräte identisch halten, das macht das Flashen der Geräte noch bequemer. Spielt allerdings nur beim initialen Flashen eine Rolle, danach bleiben die Einstellungen gewöhnlich erhalten, selbst wenn in der Firmware andere Einstellungen vorgenommen wurden.

Eine Alternative zu mqtt.fx wäre mqtt spy. Es gibt auch verschiedene Apps für Android und iOS (und die kostenlosen funktionieren gut)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten