Zitat von Onkelandy
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
Neues MQTT Plugin
Einklappen
X
-
hi zusammen,
ich habe gerade so ein ping-pong Problem. Wie bekomme ich es smart gelöst, dass ich eine zigbee-Steckdose schalten kann bzw. den Status auslese. Derzeit habe ich es wie folgt aufgebaut:
Code:SteckDosen: Indoor: A: type: dict visu_acl: ro mqtt_topic: z2m/StckDo0890 on_change: - .OnOff = value['state'] OnOff: type: bool visu_acl: rw #mqtt_topic_out: z2m/StckDo0890/set:state #mqtt_bool_values: ['OFF','ON']
Schönes Wochenende allen
Kommentar
-
Ich denke, mit eval und item.property.last_changed_by bzw. item.property.changed_by solltest du das entsprechend filtern können...
Ich kenne aber die Schaltmöglichkeiten deiner Steckdose nicht, daher kann ich das nicht genau sagen. Wenn du es in einem Item einbauen kannst, sollte das Plugin sich nicht selbst triggern... ggf. das mqtt_topic zu mqtt_topic_in ändern und das HIlfsitem ins Hauptitem einbauen?
Kommentar
-
Ich danke dir. Ich habe jetzt einiges rumprobiert (lange Abende sind dann immer schnell weg für eine Zeile Code) und bin fast neben meinen grundlegenden shNG-Verständnis unteranderem an dem Payload Inhalt gescheitert.
Deine Variante A:
ich muss ja filtern, dass nur bei einem trigger vom item Steckdose.A.OnOff durch KNX, VISU oder admin-Backend der MQTT-Befehl abgesendet wird. Wird das item durch das parent-item Steckdose.A verändert, dann soll der MQTT-set-Befehl NICHT gesendet werden. Das item selbst muss aber dennoch den zustand durch die Zuweisung aus Steckdose.A erhalten.
So habe ich es jetzt hinbekommen:
Code:z2m: SteckDosen: Indoor: A: type: dict visu_acl: ro mqtt_topic_in: z2m/StckDo0890 on_change: - .OnOff = value['state'] OnOff: type: bool visu_acl: rw on_change: .OnOffHelper = value if sh..self.property.last_change_by != sh...self else none OnOffHelper: type: bool mqtt_topic_out: z2m/StckDo0890/set:state mqtt_bool_values: ['OFF','ON']
Deine Variante B:
Die Steckdose (Ledvance PLUG EU T / SMART+ Plug EU ) sendet kein TRUE / FALSE sondern ON / OFF. Dies bekomme ich leider nicht von String nach bool umgewandelt. Vermutlich ist es ganz einfach, aber ich begreife es es nicht.
Code:z2m: SteckDosen: Indoor: A: type: bool visu_acl: rw mqtt_topic_in: z2m/StckDo0890/ eval: TRUE if value['state'] == 'ON' else NONE mqtt_topic_out: z2m/StckDo0890/set:state mqtt_bool_values: ['OFF','ON']
Zuletzt geändert von fhartlieb; 16.12.2023, 09:12.
Kommentar
-
Zitat von Morg Beitrag anzeigenWas passiert denn, wenn du mqtt_topic_in und mqtt_topic_out auf demselben Item hast, ohne Helper?
Kommentar
-
Hallo Kollegen,
wünsch Euch allen ein gutes neues Jahr.
Hab mal eine Frage .....
Wenn ich per MQTT die selbe Nachricht ( z.B. Temperatur außen ) an mehrere Geräte senden will,
ist dann "Multiinstance" der richtige Weg?
Code:mqtt_topic_out@instance1: - Dp_ulanzi_4a94/custom/temp_aus mqtt_topic_out@instance2: - awtrix-b86928/custom/temp_aus
Dachte, das so zu lösen: ( läuft aber nicht )
Code:mqtt_topic_out: - Dp_ulanzi_4a94/custom/temp_aus - awtrix-b86928/custom/temp_aus
Zuletzt geändert von Haiphong; 11.01.2024, 19:32.Gruß, JG
Kommentar
-
Ich glaube nicht, wenn ich dich richtig verstanden habe in einem Scenario mit nur einem Broker.
1 x Sender (Publisher) übermittelt an den Broker die Info/ Temperatur
Jeder Client (Subscriber) erhält eine Kopie.
...vorausgesetzt, beide Clients können so konfiguriert werden die selbe Nachricht (Topic) zu empfangen.
Siehe http://blog.doubleslash.de/mqtt-fuer-dummiesZuletzt geändert von KHome; 11.01.2024, 20:16.
Kommentar
-
Multi Instance macht bei dem aktuellen mqtt Plugin keinen Sinn mehr. Ich werde das Flag in den Metadaten auf False setzen.
Multi Instance kommt aus der Zeit, als es das MQTT Modul in SmartHomeNG noch nicht gab und das Plugin die Broker Kommunikation selber abwickelte. Dort war Multi Instance die Möglichkeit mit mehreren Brokern zu kommunizieren.
Das MQTT Modul übernimmt im aktuellen SmartHomeNG die Kommunikation mit dem Broker, und auch nur mit EINEM Broker. Wenn in einer Installation mehrere Broker betrieben werden sollen, werden die Broker so konfiguriert, dass sie miteinander kommunizieren.
SmartHomeNG ist mit dem MQTT Modul ein normaler MQTT Client, der mit einem Broker kommuniziert.
Zur Frage: MQTT funktioniert nicht, wie in der Frage impliziert. Ein MQTT Client "sendet" nicht an einen oder mehrere andere Clients.
Ein Client publiziert eine Nachricht unter einem Topic und andere Clients (einer oder mehrere) abonnieren die Nachrichten, die unter diesem Topic (von dem auch immer) publiziert wurden.
Also die Antwort: Nein, Multi Instance ist nicht der richtige Weg. Dein Ansatz ist falsch. Du musst nicht je Client ein Topic definieren, sondern nur EIN Topic und alle Clients müssen einfach nur das selbe Topic abonnieren.
Viele Grüße
Martin
There is no cloud. It's only someone else's computer.
- Likes 1
Kommentar
-
Vielleicht erklärst du mal dein Szenario (wieso willst du die Temperatur auf zwei Topics senden - bzw. bekommst du von zwei Geräten Temperaturen (und willst du die in ein Item schreiben)?
Dad macht es vielleicht einfacher, dein Problem zu verstehen... ich bekomme dein Szenario jedenfalls noch nicht zusammen
Kommentar
-
Die Geräte sind eine Pixelanzeige / Uhr, die Nachrichen anzeigen und interne Werte senden kann.
a) die Geräte Clients senden ( z.B. Raum-Temperatur ), die Werte müssen je Client auf ein Item
b) die Geräte Clients empfangen ( z.B. Schaltbefehle ), die Werte kommen je Client von einem separatem Item
c) die Geräte Clients empfangen übergeordnete Nachrichen ( z.B. Textnachrichen Außentemperatur),
diese Werte könnten von einem Item kommen ( was aber bisher nicht geht )
Gruß, JG
Kommentar
Kommentar