Shelly 1PM Mini Status auslesen
Moderator: seppy
-
- Beiträge: 423
- Registriert: 30. Apr 2021 13:13
Re: Shelly 1PM Mini Status auslesen
Moin,
hast Du mal versucht über shellies/shellyrgbw21/color/0/command ein on bzw. off zu senden? Wenn ich die Doku richtig verstehe bedeutet source nur woher der letzte Befehl kam.
hast Du mal versucht über shellies/shellyrgbw21/color/0/command ein on bzw. off zu senden? Wenn ich die Doku richtig verstehe bedeutet source nur woher der letzte Befehl kam.
-
- Beiträge: 121
- Registriert: 23. Mai 2017 08:32
- Wohnort: Duisburg
- Kontaktdaten:
Re: Shelly 1PM Mini Status auslesen
Hallo, das ist meine thing-Eingabe:
Im MQTT-Explorer sehe ich, dass on und off (optisch) an richtiger Stelle ankommt, aber, wie schon gesagt, es tut sich nix, mit und ohne "command" hinter color/0.
Aus der Weboberfläche des Shellys funktioniert das.
Danke und schöne Grüße. PJH
Code: Alles auswählen
Thing topic Lightstrip1 "Shelly RGBW"
{
Channels:
Type switch: shellyrgbw21 "ShellyRGB2-1" [ commandTopic="shellies/shellyrgbw21/color/0/command",
transformationPattern="JSONPATH:$.output",
off="off",
on="on" ]
Type string: json "ShellyRGB2-1 Status" [ stateTopic="shellies/shellyrgbw21/color/0/status" ]
}
Aus der Weboberfläche des Shellys funktioniert das.
Danke und schöne Grüße. PJH
- udo1toni
- Beiträge: 14850
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Shelly 1PM Mini Status auslesen
Versuche bitte zunächst mal, ob Du mit dem MQTT Explorer die Lampe steuern kannst. Dafür gibt es die Publish-Kachel, in der Du das vollständige Topic und die Payload eintragen musst. Außerdem musst Du auswählen, in welchem Format die Payload vorliegt, also im Fallvon command das Format raw anwählen. Über die Publish Schaltfläche sendest Du dann die Nachricht. Erst wenn dieser Teil funktioniert, solltest Du an die Integration in openHAB gehen.
Gewöhnlich reicht ja ein Channel aus, hier ein color Channel im rgb-Modus.
Allerdings unterstützt openHAB kein RGBW, und die Lampe selbst wird mutmaßlich nicht den Weiß-Anteil selbst bestimmen und entsprechend setzen.
Sieht dann als UI-Code so aus:
Da hier mehrere Werte aus dem JSON ausgewertet werden müssen, muss man ankommend auf JavaScript ausweichen (andere Scriptsprachen gingen natürlich auch).
Ausgehend muss das passende JSON ebenso zusammengezimmert werden.
Es gäbe übrigens auch eine Option, den ON/OFF Befehl über JSON auf dem set-Topic zu senden:Da ison vom Typ Boolean ist, Command und State aber gleich sein müssen, bleibt auch hier für das Transformation Pattern nur der "Vorschlaghammer" mit einem Inline Script.
Allerdings benötigt man diesen Channel eigentlich gar nicht, da auch das Color Item auf Wunsch den Zustand ON oder OFF liefern kann (.getStateAs(OnOffType))
Der weiß-Channel müsste im Zweifel als separater Dimmer Channel angelegt werden. Ob die Lampe damit umgehen kann, wenn die Farben unabhängig vom weiß gesendet werden, musst Du aber selbst ausprobieren, ich habe keine solchen Lampen...
Gewöhnlich reicht ja ein Channel aus, hier ein color Channel im rgb-Modus.
Allerdings unterstützt openHAB kein RGBW, und die Lampe selbst wird mutmaßlich nicht den Weiß-Anteil selbst bestimmen und entsprechend setzen.
Sieht dann als UI-Code so aus:
Code: Alles auswählen
UID: mqtt:topic:mosquitto:1d6214d04a
label: Generic MQTT Thing
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:mosquitto
channels:
- id: color
channelTypeUID: mqtt:color
label: color
description: ""
configuration:
commandTopic: shellies/shellyrgbw21/color/0/set
colorMode: RGB
transformationPatternOut:
- ""
stateTopic: shellies/shellyrgbw21/color/0/status
transformationPattern:
- JS:|json=JSON.parse(input); json.red+","+json.green+","+json.blue;
formatBeforePublish: '{"red":%1$d,"green":%2$d,"blue":%3$d}'
Ausgehend muss das passende JSON ebenso zusammengezimmert werden.
Es gäbe übrigens auch eine Option, den ON/OFF Befehl über JSON auf dem set-Topic zu senden:
Code: Alles auswählen
- id: switch
channelTypeUID: mqtt:switch
label: switch
configuration:
formatBeforePublish: '{"turn":"%s"}'
transformationPatternOut:
- ""
commandTopic: shellies/shellyrgbw21/color/0/set
stateTopic: shellies/shellyrgbw21/color/0/status
transformationPattern:
- JS:|json=JSON.parse(input); if(json.ison) "on"; else "off";
off: off
on: on
Allerdings benötigt man diesen Channel eigentlich gar nicht, da auch das Color Item auf Wunsch den Zustand ON oder OFF liefern kann (.getStateAs(OnOffType))
Der weiß-Channel müsste im Zweifel als separater Dimmer Channel angelegt werden. Ob die Lampe damit umgehen kann, wenn die Farben unabhängig vom weiß gesendet werden, musst Du aber selbst ausprobieren, ich habe keine solchen Lampen...
openHAB4.3.0 stable in einem Debian-Container (bookworm) (Proxmox 8.3.1, LXC), mit openHABian eingerichtet
-
- Beiträge: 121
- Registriert: 23. Mai 2017 08:32
- Wohnort: Duisburg
- Kontaktdaten:
Re: Shelly 1PM Mini Status auslesen
Vielen Dank,
ich kann machen, was ich will, ich bekomme den RGBW2 auch mit dem MQTT-Explorer nicht zum Schalten.
Mit der Weboberfläche des Shelly funktioniert es einwandfrei und ich sehe im MQTT-Explorer die Anzeige
shellies
shellyrgbw21
color
0 = on
Ich habe, nach Deinem Vorschlag mit der Formatübergabe raw dann auf diesen Datenpunkt on und/oder off "gepublished".
Die Anzeige nach 0 = ändert sich entweder auf on oder off genau so geschrieben und angezeigt als wenn das Kommando aus der Weboberfläche kommt.
Aber der Shelly schaltet nicht.
Genauso bringe ich das aus openHAB hin, aber wie gesagt, der Shelly schaltet nicht.
Danke nochmals und einen schönen Sonntagsgruß. PJH
ich kann machen, was ich will, ich bekomme den RGBW2 auch mit dem MQTT-Explorer nicht zum Schalten.
Mit der Weboberfläche des Shelly funktioniert es einwandfrei und ich sehe im MQTT-Explorer die Anzeige
shellies
shellyrgbw21
color
0 = on
Ich habe, nach Deinem Vorschlag mit der Formatübergabe raw dann auf diesen Datenpunkt on und/oder off "gepublished".
Die Anzeige nach 0 = ändert sich entweder auf on oder off genau so geschrieben und angezeigt als wenn das Kommando aus der Weboberfläche kommt.
Aber der Shelly schaltet nicht.
Genauso bringe ich das aus openHAB hin, aber wie gesagt, der Shelly schaltet nicht.
Danke nochmals und einen schönen Sonntagsgruß. PJH
-
- Beiträge: 121
- Registriert: 23. Mai 2017 08:32
- Wohnort: Duisburg
- Kontaktdaten:
Re: Shelly 1PM Mini Status auslesen
Ich habe mir einmal angeschaut, was im MQTT-Explorer bei meinen Shelly 1PM Mini angezeigt wird.
@Harka hat recht mit der Annahme, dass bei "source" nur angezeigt wird, woher das Kommando kommt.
So wird bei meinen 1PMs bei "source" angezeigt
wenn das Kommando vom Webinterfcae des 1PM kommt: source:WS_in
kommt das Kommando von openHAB oder vom MQTT-Explorer: source:mqtt.
Beim RGBW2 steht source:http und es ändert sich auch nix, wenn das Schaltkommando aus openHAB oder vom MQTT-Explorer direkt kommt.
Ich habe den Shelly RGBW2 jetzt einmal zurück gesetzt, es ändert sich aber nix.
Schöne Grüße. PJH
@Harka hat recht mit der Annahme, dass bei "source" nur angezeigt wird, woher das Kommando kommt.
So wird bei meinen 1PMs bei "source" angezeigt
wenn das Kommando vom Webinterfcae des 1PM kommt: source:WS_in
kommt das Kommando von openHAB oder vom MQTT-Explorer: source:mqtt.
Beim RGBW2 steht source:http und es ändert sich auch nix, wenn das Schaltkommando aus openHAB oder vom MQTT-Explorer direkt kommt.
Ich habe den Shelly RGBW2 jetzt einmal zurück gesetzt, es ändert sich aber nix.
Schöne Grüße. PJH
- udo1toni
- Beiträge: 14850
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Shelly 1PM Mini Status auslesen
Gibt es evtl. noch einen Schalter, um mqtt zu aktivieren?
openHAB4.3.0 stable in einem Debian-Container (bookworm) (Proxmox 8.3.1, LXC), mit openHABian eingerichtet
-
- Beiträge: 121
- Registriert: 23. Mai 2017 08:32
- Wohnort: Duisburg
- Kontaktdaten:
Re: Shelly 1PM Mini Status auslesen
Hallo, ja, es gibt einen, aber der ist eingeschaltet und mit der richtigen IP-Adresse zu Mosquitto eingerichtet.
Das Ein- Ausschaltkommando kommt ja auch auf dem Mosquitto an, nur es tut sich nix.
Mittlerweile kann ich den RGBW2 über openHAB mit dem Shelli-Binding Ein- und Ausschalten, dafür bekomme ich aber die Werte zur Freistellung "nicht rüber".
Schöne Grüße. PJH
Das Ein- Ausschaltkommando kommt ja auch auf dem Mosquitto an, nur es tut sich nix.
Mittlerweile kann ich den RGBW2 über openHAB mit dem Shelli-Binding Ein- und Ausschalten, dafür bekomme ich aber die Werte zur Freistellung "nicht rüber".
Schöne Grüße. PJH
-
- Beiträge: 225
- Registriert: 7. Jan 2020 14:45
- Kontaktdaten:
Re: Shelly 1PM Mini Status auslesen
Sollte der MQTT command bei Gen2 Geräten nicht so aussehen?
Code: Alles auswählen
<topic_prefix>/command/<component:id>
BYe
Harald
Harald
- udo1toni
- Beiträge: 14850
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Shelly 1PM Mini Status auslesen
Ja, nein, es kommt auf die Version und das Modell an, d.h. man muss in der API Dokumentation nachschauen.
Leider hat sich Shelly dazu entschieden, die ganze Angelegenheit maximal kompliziert zu machen.
Mein Tipp an der Stelle ist eigentlich immer, die Shelly Firmware mit Tasmota zu ersetzen, falls das möglich ist (da sollte man immer die Tasmota Doku zu Rate ziehen, dort ist für eigentlich jedes unterstützte Gerät genau erklärt, wie man das bewerkstelligt).
Ich habe hier nur einen einfachen Shelly Dimmer auf Tasmota geflasht, aber so sieht das dann als things-Definition aus:Ich habe bei mir als fullTopic %topic%/%prefix%/ eingetragen und der Dimmer hat das Topic t_special/shellydim1, so dass sich im MQTT Explorer eine übersichtlichere Struktur ergibt (es gibt noch t_switch, t_shutter usw, weil ich davon buchstäblich Dutzende habe...)
Leider hat sich Shelly dazu entschieden, die ganze Angelegenheit maximal kompliziert zu machen.
Mein Tipp an der Stelle ist eigentlich immer, die Shelly Firmware mit Tasmota zu ersetzen, falls das möglich ist (da sollte man immer die Tasmota Doku zu Rate ziehen, dort ist für eigentlich jedes unterstützte Gerät genau erklärt, wie man das bewerkstelligt).
Ich habe hier nur einen einfachen Shelly Dimmer auf Tasmota geflasht, aber so sieht das dann als things-Definition aus:
Code: Alles auswählen
Thing topic shellyDim_1 "Shelly Dimmer 1" @ "mqtt" [
availabilityTopic="t_special/shellydim1/tele/LWT",
payloadNotAvailable="Offline",
payloadAvailable= "Online"
]{
Channels:
Type dimmer : ch1 "Kanal 1" [ stateTopic="t_special/shellydim1/stat/RESULT", transformationPattern="REGEX:(.*Dimmer.*)∩JSONPATH:$.Dimmer", commandTopic="t_special/shellydim1/cmnd/Dimmer", step="5" ]
Type string : tele "Tele" [ stateTopic="t_special/shellydim1/tele/STATE" ]
Type switch : lwt "LWT" [ stateTopic="t_special/shellydim1/tele/LWT",on="Online",off="Offline" ]
}
openHAB4.3.0 stable in einem Debian-Container (bookworm) (Proxmox 8.3.1, LXC), mit openHABian eingerichtet
-
- Beiträge: 121
- Registriert: 23. Mai 2017 08:32
- Wohnort: Duisburg
- Kontaktdaten:
Re: Shelly 1PM Mini Status auslesen
Schon wieder eine Frage, allerdings zu Shelly Plug S.
Ich bekomme den Plug S über das Shelly Binding in mein openHAB 3.3 zwar eingebunden, aber er geht nicht online.
Und zwar ist das so: Auf die eingestellte IP-Adresse (mit der ich mich über den Browser ohne Probleme verbinden kann) verbindet sich der Plug S nicht, wohl aber auf eine IP-Adresse unter der schon ein Shelly Schalter arbeitet.
Es scheint mir also so zu sein, dass der Shelly Plug S mit dem Binding unter openHAB 3.3 nicht funktioniert.
Hat jemand, der diese Plugs bereits eingebunden hat, einen Tipp, ob es doch geht.
Auch mit MQTT tue ich mich schwer, da muss ich noch basteln, oder kann mir jemand der Forumsteilnehmer eine entsprechend Konfiguration mitteilen?
Vielen Dank und einen schönen Gruß. PJH
Ich bekomme den Plug S über das Shelly Binding in mein openHAB 3.3 zwar eingebunden, aber er geht nicht online.
Und zwar ist das so: Auf die eingestellte IP-Adresse (mit der ich mich über den Browser ohne Probleme verbinden kann) verbindet sich der Plug S nicht, wohl aber auf eine IP-Adresse unter der schon ein Shelly Schalter arbeitet.
Es scheint mir also so zu sein, dass der Shelly Plug S mit dem Binding unter openHAB 3.3 nicht funktioniert.
Hat jemand, der diese Plugs bereits eingebunden hat, einen Tipp, ob es doch geht.
Auch mit MQTT tue ich mich schwer, da muss ich noch basteln, oder kann mir jemand der Forumsteilnehmer eine entsprechend Konfiguration mitteilen?
Vielen Dank und einen schönen Gruß. PJH