OH3 + Shelly + MQTT: Was bei Channels eingeben?
Moderator: seppy
-
- Beiträge: 7
- Registriert: 5. Mai 2021 23:52
OH3 + Shelly + MQTT: Was bei Channels eingeben?
Hallo,
ich kämpfe gerade mit der Installation von OH3 + Shelly2.5 + MQTT (Proxmox LXC mit Ubuntu 20.4).
Nach den Beschreibungen und Videos habe ich bisher folgendes gemacht:
1. Installation Mosquitto (https://neuendorf-online.de/posts/heima ... tallieren/)
2. OH3: Einstellungen - Other services - MQTT system broker connection - Broker Host: localhost
3. OH3: Things - "+" -
* Broker Hostname/IP: localhost
* Broker Port: 1883
* Username: mein_in_Mosquitto_festgelegter_User
* Passwort: mein_in_Mosquitto_festgelegtes_Passwort
-> Ergebnis: MQTT Broker erscheint unter Things als "online"
4. OH3: Things - "+" - MQTT Binding - Generic MQTT Thing (da Scan kein Gerät findet) - MQTT Broker - Create Thing
-> Ergebnis: Generic MQTT Thing erscheint unter Things als "online"
Nach den Beschreibungen müsste ich nun Channels hinzufügen. Wenn ich unter Things Generic MQTT Channels - Add a Channel - On/Off Switch auswähle erscheinen die Eingabefelder:
MQTT State Topic
MQTT Command Topic
Custom On/Open Value 1
Custom Off/Closed Value
Hier komme ich nicht mehr weiter, was hier einzugeben ist.
Wer kann mir denn hier "auf die Sprünge" helfen?
Vielen Dank!
Tony
ich kämpfe gerade mit der Installation von OH3 + Shelly2.5 + MQTT (Proxmox LXC mit Ubuntu 20.4).
Nach den Beschreibungen und Videos habe ich bisher folgendes gemacht:
1. Installation Mosquitto (https://neuendorf-online.de/posts/heima ... tallieren/)
2. OH3: Einstellungen - Other services - MQTT system broker connection - Broker Host: localhost
3. OH3: Things - "+" -
* Broker Hostname/IP: localhost
* Broker Port: 1883
* Username: mein_in_Mosquitto_festgelegter_User
* Passwort: mein_in_Mosquitto_festgelegtes_Passwort
-> Ergebnis: MQTT Broker erscheint unter Things als "online"
4. OH3: Things - "+" - MQTT Binding - Generic MQTT Thing (da Scan kein Gerät findet) - MQTT Broker - Create Thing
-> Ergebnis: Generic MQTT Thing erscheint unter Things als "online"
Nach den Beschreibungen müsste ich nun Channels hinzufügen. Wenn ich unter Things Generic MQTT Channels - Add a Channel - On/Off Switch auswähle erscheinen die Eingabefelder:
MQTT State Topic
MQTT Command Topic
Custom On/Open Value 1
Custom Off/Closed Value
Hier komme ich nicht mehr weiter, was hier einzugeben ist.
Wer kann mir denn hier "auf die Sprünge" helfen?
Vielen Dank!
Tony
- udo1toni
- Beiträge: 13955
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: OH3 + Shelly + MQTT: Was bei Channels eingeben?
Vergiss bitte den Quatsch mit dem System Broker. Du benötigst eine einfache Verbindung zu einem normalen Broker.
Dann legst Du mindestens ein generic Thing an (gewöhnlich aber für jedes Device ein Thing), im Thing wählst Du den vorher angelegten Broker aus der Liste aus.
Unterhalb des Thing legst Du Channel an. Dabei ist das commandTopic dasjenige, über das ein Steuerbefehl zum Device gesendet wird. Das stateTopic erhält die Rückmeldung.
Nehmen wir an, Du hast ein Gerät, welches mit Tasmota geflasht ist, dann sehen die Topics gewöhnlich so aus:
Als Befehl und Rückmeldung verwendet Tasmota hier ON und OFF, das passt also schon. Tasmota kennt auch noch andere Befehle (z.B. TOGGLE zum Umschalten), im Zusammenhang mit openHAB wird aber nur ON und OFF gebraucht.
Den Switch Channel musst Du mit einem Switch Item verbinden, damit Du den Channel steuern kannst. openHAB erledigt das aber auf Wunsch für Dich.
Wenn Du mit mqtt arbeitest, empfiehlt es sich, einen Sniffer einzusetzen, beispielsweise mqtt.fx oder mqtt spy. Der Sniffer läuft auf einem PC (wahlweise kannst Du aber auch eine App für's Smartphone oder Tablet nehmen) und wird ebenfalls mit dem Broker verbunden. Der Sniffer ist also auch nur ein weiterer Client, der aber erlaubt, beliebige Topics zu abonnieren oder zu senden, genau wie auch der Payload frei gewählt werden kann. Damit kannst Du dann verfolgen, was auf der mqtt-Seite passiert oder auch gezielt Befehle senden.
Dann legst Du mindestens ein generic Thing an (gewöhnlich aber für jedes Device ein Thing), im Thing wählst Du den vorher angelegten Broker aus der Liste aus.
Unterhalb des Thing legst Du Channel an. Dabei ist das commandTopic dasjenige, über das ein Steuerbefehl zum Device gesendet wird. Das stateTopic erhält die Rückmeldung.
Nehmen wir an, Du hast ein Gerät, welches mit Tasmota geflasht ist, dann sehen die Topics gewöhnlich so aus:
Code: Alles auswählen
cmnd/myDevice/POWER // Das Topic, um das Relais zu schalten
stat/myDevice/POWER // Das Topic, um den Zustand des Relais zu empfangen
Den Switch Channel musst Du mit einem Switch Item verbinden, damit Du den Channel steuern kannst. openHAB erledigt das aber auf Wunsch für Dich.
Wenn Du mit mqtt arbeitest, empfiehlt es sich, einen Sniffer einzusetzen, beispielsweise mqtt.fx oder mqtt spy. Der Sniffer läuft auf einem PC (wahlweise kannst Du aber auch eine App für's Smartphone oder Tablet nehmen) und wird ebenfalls mit dem Broker verbunden. Der Sniffer ist also auch nur ein weiterer Client, der aber erlaubt, beliebige Topics zu abonnieren oder zu senden, genau wie auch der Payload frei gewählt werden kann. Damit kannst Du dann verfolgen, was auf der mqtt-Seite passiert oder auch gezielt Befehle senden.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 7
- Registriert: 5. Mai 2021 23:52
Re: OH3 + Shelly + MQTT: Was bei Channels eingeben?
Wie geschrieben habe ich Mosquitto installiert. Das müsste doch passen - oder?
Das ist genau mein Problem. Wie finde ich denn heraus, wie bei meinen Shelly2.5 und Shelly1 das cmnd/myDevice/POWER oder stat/myDevice/POWER lautet?udo1toni hat geschrieben: ↑12. Mai 2021 18:13 Unterhalb des Thing legst Du Channel an. Dabei ist das commandTopic dasjenige, über das ein Steuerbefehl zum Device gesendet wird. Das stateTopic erhält die Rückmeldung. Nehmen wir an, Du hast ein Gerät, welches mit Tasmota geflasht ist, dann sehen die Topics gewöhnlich so aus:Code: Alles auswählen
cmnd/myDevice/POWER // Das Topic, um das Relais zu schalten stat/myDevice/POWER // Das Topic, um den Zustand des Relais zu empfangen
Vielen Dank!
Tony
- PeterA
- Beiträge: 1052
- Registriert: 8. Feb 2019 12:12
Re: OH3 + Shelly + MQTT: Was bei Channels eingeben?
Hi,
so sehen die MQTT Topics für den 2.5er aus:
so sehen die MQTT Topics für den 2.5er aus:
Code: Alles auswählen
Type rollershutter : Shellyswitch25_745118_roller "Rolladen DG Flur" [ stateTopic="shellies/shellyswitch25-745118/roller/0/pos", commandTopic="shellies/shellyswitch25-745118/roller/0/command/pos" ]
Type number : Shellyswitch25_745118_temp "Shelly2501temp" [ stateTopic="shellies/shellyswitch25-745118/temperature" ]
Type number : Shellyswitch25_745118_energy "Shelly2501energy" [ stateTopic="shellies/shellyswitch25-745118/relay/energy" ]
Type number : Shellyswitch25_745118_power "Shelly2501power" [ stateTopic="shellies/shellyswitch25-745118/relay/power" ]
- OpenHab 2.4
#PWRUP
#PWRUP
-
- Beiträge: 7
- Registriert: 5. Mai 2021 23:52
Re: OH3 + Shelly + MQTT: Was bei Channels eingeben?
Vielen Dank. Vermutlich stelle ich mich blöd an.
Was gebe ich denn nun konkret bei den Parametern:
MQTT State Topic
MQTT Command Topic
Custom On/Open Value 1
Custom Off/Closed Value
in OH3 ein?
Gerade habe ich es so versucht:
Ich erhalte damit Geräte, die online sind, der Shelly schaltet aber nichts.
Vielen Dank!
Tony
Was gebe ich denn nun konkret bei den Parametern:
MQTT State Topic
MQTT Command Topic
Custom On/Open Value 1
Custom Off/Closed Value
in OH3 ein?
Gerade habe ich es so versucht:
Code: Alles auswählen
UID: mqtt:topic:a20a63889a:7e3f7c641c
label: Licht Ostzimmer
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:a20a63889a
channels:
- id: Licht_Ostzimmer
channelTypeUID: mqtt:switch
label: Licht Ostzimmer
description: ""
configuration:
commandTopic: shellies/shellyswitch25-84CCA8B13969/relay/0/command
stateTopic: shellies/shellyswitch25-84CCA8B13969/relay/0
off: off
on: on
- id: Licht_Ostzimmer_Stehlampe
channelTypeUID: mqtt:switch
label: Licht Ostzimmer Stehlampe
description: ""
configuration:
commandTopic: shellyswitch25-84CCA8B13969/relay/1/command
stateTopic: shellies/shellyswitch25-84CCA8B13969/relay/1
off: off
on: on
Vielen Dank!
Tony
-
- Beiträge: 1
- Registriert: 23. Dez 2020 21:10
Re: OH3 + Shelly + MQTT: Was bei Channels eingeben?
Die ganzen Commands etc sind bei den Shellys beschrieben:
https://shelly-api-docs.shelly.cloud/#c ... t-commands
Ich habe hier als Beispiel eine Küchenlampe.
https://shelly-api-docs.shelly.cloud/#c ... t-commands
Ich habe hier als Beispiel eine Küchenlampe.
Code: Alles auswählen
Thing topic shelly25_Licht_Kueche "Shelly25 Licht Kueche" @ "EG" {
Channels:
Type switch : PowerSwitch1 [ stateTopic="shellies/shelly25_Licht_Kueche/relay/0" , commandTopic="shellies/shelly25_Licht_Kueche/relay/0/command", on="on", off="off" ]
Type number : Power1 [ stateTopic="shellies/shelly25_Licht_Kueche/relay/0/power" ]
Type switch : PowerSwitch2 [ stateTopic="shellies/shelly25_Licht_Kueche/relay/1" , commandTopic="shellies/shelly25_Licht_Kueche/relay/1/command", on="on", off="off" ]
Type number : Power2 [ stateTopic="shellies/shelly25_Licht_Kueche/relay/1/power" ]
Type number : Energy1 [ stateTopic="shellies/shelly25_Licht_Kueche/relay/0/energy", transformationPattern="JS:shelly_energy_kwh.js" ]
Type number : Energy2 [ stateTopic="shellies/shelly25_Licht_Kueche/relay/1/energy", transformationPattern="JS:shelly_energy_kwh.js" ]
Type number : Temperature [ stateTopic="shellies/shelly25_Licht_Kueche/temperature" ]
Type number : Overtemperature [ stateTopic="shellies/shelly25_Licht_Kueche/overtemperature" ]
Type string : ID [ stateTopic="shellies/shelly25_Licht_Kueche/announce", transformationPattern="JSONPATH:$.id"]
Type string : IP [ stateTopic="shellies/shelly25_Licht_Kueche/announce", transformationPattern="JSONPATH:$.ip"]
Type string : FWVersion [ stateTopic="shellies/shelly25_Licht_Kueche/announce", transformationPattern="JSONPATH:$.fw_ver"]
Type string : Devicestate [ stateTopic="shellies/shelly25_Licht_Kueche/online" ]
}
-
- Beiträge: 2
- Registriert: 7. Jun 2021 16:17
Re: OH3 + Shelly + MQTT: Was bei Channels eingeben?
Ich hatte (als openHAB-gerade-Neueinsteiger) das gleiche Problem und bin bei der Suche nach einer Lösung hier über diesen Eintrag gestolpert. Inzwischen läufts bei mir, daher gebe ich mal meinen Senf dazu:
Ausgangssituation: 3 Shellies im Test (Shelly1, Shelly2.5, ShellyPlug). Nach erfolgter MQTT-Konfiguration am Shelly konnte ich den ShellyPlug in der MQTT-Client-App zwar fröhlich funken sehen, von Shelly1 und Shelly2.5 keine Spur. Ein Schalten der Shellies via zum Chanel verlinktem Item war ebenfalls nicht möglich: Die Client-App zeigte an, dass der Befehl raus ging, die Shellies schalteten nicht - auch nicht der Plug, der ja zumindest teilweise irgendwie da war. Auch auf das direkte Absetzen eines MQTT-Topics in der App gab's keine Reaktion.
Nur damit wir wissen, was auf meinem openHAB sonst noch läuft:
Installierte Bindings:
Meine Channeleinstellungen im OpenHAB3-MQTT-Thing:
MQTT State Topic: shellies/shelly_sz_dl/relay/0
MQTT Command Topic: shellies/shelly_sz_dl/relay/0/command
Custom On/Open Value: on
Custom Off/Closed Value: off
QoS: At least once
Retained (Schieber auf an)
Outgoing Value Format : %s
Für den Reiter "Code" ergibt sich damit:
Link zu openHAB3-Item Switch:
Profil: Standard
Beim Shelly2.5 gibt's analog dazu einfach einen zweiten Channel mit "...relay/1..." statt "...relay/0...", der ShellyPlug funktioniert wie ein Shelly1 (andere Channels zu Stromverbrauch etc. mal beiseite gelassen).
Was hat nun meine drei Test-Shellies dazu überredet, doch noch im MQTT-Zirkus mit aufzutreten? Nun, zumindet meine drei Kandidaten verlangen nach jeder (!) Shelly-seitigen Konfiguration im Bereich MQTT einen Device-Reboot. Keine 10 Sekunden später sieht man sie fröhlich in der MQTT-Client-App funken und sie reagieren auf MQTT-Topics.
Edit: Typos korrigiert
Ausgangssituation: 3 Shellies im Test (Shelly1, Shelly2.5, ShellyPlug). Nach erfolgter MQTT-Konfiguration am Shelly konnte ich den ShellyPlug in der MQTT-Client-App zwar fröhlich funken sehen, von Shelly1 und Shelly2.5 keine Spur. Ein Schalten der Shellies via zum Chanel verlinktem Item war ebenfalls nicht möglich: Die Client-App zeigte an, dass der Befehl raus ging, die Shellies schalteten nicht - auch nicht der Plug, der ja zumindest teilweise irgendwie da war. Auch auf das direkte Absetzen eines MQTT-Topics in der App gab's keine Reaktion.
Nur damit wir wissen, was auf meinem openHAB sonst noch läuft:
Installierte Bindings:
- Astro Binding
- HTTP Binding
- MQTT Binding
- NTP Binding
- JSONPath Transformation
- Binary To JSON Transformationen
Meine Channeleinstellungen im OpenHAB3-MQTT-Thing:
MQTT State Topic: shellies/shelly_sz_dl/relay/0
MQTT Command Topic: shellies/shelly_sz_dl/relay/0/command
Custom On/Open Value: on
Custom Off/Closed Value: off
QoS: At least once
Retained (Schieber auf an)
Outgoing Value Format : %s
Für den Reiter "Code" ergibt sich damit:
Code: Alles auswählen
UID: mqtt:topic:Local-MQTT:shelly_sz_dl
label: Schlafzimmer Decke
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:Local-MQTT
location: Schlafzimmer
channels:
id: shelly_sz_dl
channelTypeUID: mqtt:switch
label: Schlafzimmer Decke
description: ""
configuration:
retained: true
postCommand: false
qos: 1
commandTopic: shellies/shelly_sz_dl/relay/0/command
stateTopic: shellies/D4_DL01/relay/0
off: off
on: on
Profil: Standard
Beim Shelly2.5 gibt's analog dazu einfach einen zweiten Channel mit "...relay/1..." statt "...relay/0...", der ShellyPlug funktioniert wie ein Shelly1 (andere Channels zu Stromverbrauch etc. mal beiseite gelassen).
Was hat nun meine drei Test-Shellies dazu überredet, doch noch im MQTT-Zirkus mit aufzutreten? Nun, zumindet meine drei Kandidaten verlangen nach jeder (!) Shelly-seitigen Konfiguration im Bereich MQTT einen Device-Reboot. Keine 10 Sekunden später sieht man sie fröhlich in der MQTT-Client-App funken und sie reagieren auf MQTT-Topics.
Edit: Typos korrigiert