ShellyPlus2PM frage nach MQTT Thing

Geflasht oder ungeflasht ...

Moderator: seppy

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

Re: ShellyPlus2PM frage nach MQTT Thing

Beitrag von udo1toni »

Ah. Dann schreibst Du in formatBeforePublish einfach pos,%s und es sollte funktionieren.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: ShellyPlus2PM frage nach MQTT Thing

Beitrag von PeterA »

Code: Alles auswählen

commandTopic="shellyplus2pm-c4d8d5517818/command/cover:0", formatBeforePublish="pos,%s"
So sieht das nun aus.

Ankommen tut aber nur die Zahl.
Screenshot 2025-02-17 182555.png

Code: Alles auswählen

pos,40
will der aber haben....

https://shelly-api-docs.shelly.cloud/ge ... tt-control
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
- OpenHab 2.4
#PWRUP

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

Re: ShellyPlus2PM frage nach MQTT Thing

Beitrag von udo1toni »

Hast Du openHAB mal neu gestartet? Nur zur Sicherheit...

EDIT: Wer auch immer das verbrochen hat, es steht in der Doku, dass der rollershutter Channel kein formatBeforePublish unterstützt.

Mein Tipp an der Stelle: mach einen Issue dazu auf, das kann ja alles nicht wahr sein...

EDIT2: Aber über eine Transformation geht es:

Code: Alles auswählen

transformationPatternOut="DSL:|\"pos,\"+input"
formatBeforePublish musst Du natürlich raus nehmen...

Ach so, weil Du ja mit openHAB2.4 unterwegs bist, kannst Du keinen Inline Code ausführen und leider auch kein DSL. Entsprechend musst Du es mit eine JavaScript machen.

Eine Datei /etc/openhab2/transform/posOut.js, Inhalt:

Code: Alles auswählen

(function(data) {
    return "pos," + data;
  })(input);
Und im Channel:

Code: Alles auswählen

transformationPatternOut="JS:posOut.js"
Unter openHAB2.4 muss der JavaScript-Transformation Service installiert sein.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: ShellyPlus2PM frage nach MQTT Thing

Beitrag von PeterA »

Ok, hab das mal so eingepflegt und wenn ich nun über die UI z.B. auf 40% fahren möchte kommt das im Log:

Code: Alles auswählen

[WARN ] [t.generic.ChannelStateTransformation] - Executing the JSONPATH-transformation failed: Invalid path '$.pos' in '40'
Und über MQTT geht nix raus...

EDIT: FUNKTIONIERT! nach einem OpenHab restart. Der Wahnsinn!

EDIT2:

Vielen Dank Udo!
- OpenHab 2.4
#PWRUP

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

Re: ShellyPlus2PM frage nach MQTT Thing

Beitrag von udo1toni »

Gerne :)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: ShellyPlus2PM frage nach MQTT Thing

Beitrag von PeterA »

Aalso vermutlich haben wir uns zu früh gefreut...

Zwischenzeitlich hatte ich zum Testen ein Backup meines OH2.4 auf 2.5.15 gehoben weil ich natürlich sehen will
was nach dem Update noch Funktioniert oder eben auch nicht.
Bei der ganzen Testerrei mit dem Shelly und MQTT hatte ich das leider vergessen.

So wie Du es vorgeschlagen hast kommt beim Shelly nur der Zahlenwert an "pos," fehlt.
Daraus schließe ich das OH 2.4 diese JS Transform noch nicht kann ob wohl das Installiert ist ?
Leider erscheint im Log keine Fehlermeldung.

Gruß Peter
- OpenHab 2.4
#PWRUP

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: ShellyPlus2PM frage nach MQTT Thing

Beitrag von PeterA »

Der Shelly versteht aber auch http Befehle:

Cover position in %:

Code: Alles auswählen

http://192.168.xxx.xxx/roller/0?go=to_pos&roller_pos=75
Ich habe hier ein paar Shellys (1er) die ich so ähnlich anspreche.

Das wird ja direkt im Item definiert z.B.:

Code: Alles auswählen

 {http=">[ON:POST:http://192.168.2.42/relay/0?turn=on] >[OFF:POST:http://192.168.2.42/relay/0?turn=off]"}
Könnte man das als "Command" nutzen ?

Oder den http Befehl über eine Rule absetzen ? Also so etwas in der Art:

Code: Alles auswählen

http://192.168.xxx.xxx/roller/0?go=to_pos&roller_pos=s%
?
- OpenHab 2.4
#PWRUP

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

Re: ShellyPlus2PM frage nach MQTT Thing

Beitrag von udo1toni »

Nein, ich denke, das Problem ist hier ein anderes, nämlich dass sich die Schlüsselworte seit openHAB2.4 geändert haben.
Leider gibt es in openHAB 2.4 keinen "angenehmen" Weg, das zu verifizieren (die Doku ist nicht mehr online verfügbar).

Ganz grob:
1. Über Paper UI ein generic mqtt Thing anlegen und die fraglichen Felder mit "irgendwas" befüllen (Du willst ja später per Text konfigurieren).
2. Nachdem das Thing gespeichert ist und Du geprüft hast, dass die betreffenden Daten auch weiterhin über Paper UI sichtbar sind, wechselöst Du in die REST API und lässt Dir dort das Thing zeigen (die UID kennst Du ja)
Die REST API liefert JSON aus, dabei sind die Schlüsselworte identisch mit denen, die Du in der Textkonfiguration verwenden musst.

Denke daran, dass im Juni openHAB5.0 kommt :) In Anbetracht dessen, dass es keine Doku mehr gibt, solltest Du wirklich mal wenigstens das Update auf 2.5.12 machen.
Die Release Notes zu allen Versionen stehen weiterhin auf github zur Verfügung, dort kannst Du also schauen, was sich seit 2.4.0 an breaking Changes bis zu 2.5.12 angesammelt hat - je nach eingesetzten Bindings kannst Du komplett ohne Änderungen durchkommen oder auch Dinge komplett ändern müssen, aber je länger Du es vor Dir herschiebst, umso schlimmer wird es.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: ShellyPlus2PM frage nach MQTT Thing

Beitrag von PeterA »

Ok danke für diesen Hinweis noch.
Habe ja eine SD Card mit einem 2.5.15 (von 2.4)
Das ging soweit auch durch bis auf ein Binding für Sony Geräte
welches Stand meines Wissens in 2.5.15 nicht mehr verfügbar ist.
Somit wäre ein Teil vom Heimkino über OH nicht mehr bedienbar.
Klar die IR Remote gibt es noch aber der WAF würde deutlich sinken 😜.
- OpenHab 2.4
#PWRUP

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

Re: ShellyPlus2PM frage nach MQTT Thing

Beitrag von udo1toni »

Du meinst 2.5.12 :) Welches Binding ist das? Du könntest versuchen, ob das Binding von 2.4 unter 2.5.12 läuft, wobei mir an dieser Stelle schwant, dass 2.5.12 schon weitgehend von Eclipse rückgebaut war. Es kann also sein, dass das Binding tatsächlich nicht laufen wird, weil Bibliotheken unter anderem Namen erreichbar sind, aber probieren kannst Du es ja auf jeden Fall.

Wobei ich gerade im Archiv schaue, und unter OH2.4 gab es kein sony Binding, wohl aber unter OH2.5 (sogar 2, Sonyaudio und Sonyprojector)
Es kann also vielleicht sein, dass dieses Binding ein manuell hinzugefügtes Binding ist? Eventuell musst Du "nur" die Geräte komplett neu anlegen, mit dem neuen Binding...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten