NEWS
Jarvis - Schalter via MQTT
-
@mickym sagte: unterschiedliche Werte zum Setzen und Lesen brauchst.
Wenn der Wert zum Lesen das gleiche JSON-Format hat:
common.alias.read = "JSON.parse(val).state == 'ON'"
-
@paul53 sagte in Jarvis - Schalter via MQTT:
JSON.parse(val).state == 'ON'
Danke schön - nein ist nicht ganz gleich - aber hat dieselbe Eigenschaft. Ich habs mal aus meinen Datenpunkten kopiert und mit Deinen Funktionen müsste dass der entsprechende Alias so konfiguriert werden - das muss man dann natürlich noch auf die richtigen mqtt Datenpunkte mappen.
Ich habs nur auf dem Testsystem mal simuliert im Prodsystem ist das natürlich unter dem mqtt Adapter aber da habe ich kein Jarvis drauf:
-
@sineos Probier mal in die Datenpunkt-Eigenschaften JSON.parse direkt einzutragen.
https://mcuiobroker.gitbook.io/jarvis-infos/jarvis/besonderheiten-v3/geraet/datenpunkt-eigenschaft/json-parseKlappt nicht, nur als Anzeige.
-
Vielen Dank an alle für den Input.
@mickym Deine Lösung klappt. Hatt vor dem JS script auch schon mit den Alises experimentiert, aber übersehen, das JSON richtig zu konvertieren. Vielen Dank.
@mickym said in Jarvis - Schalter via MQTT:
Im Prinzip wirst Du beim zigbee2mqtt um einen Alias nicht drum rumkommen, da du ja unterschiedliche Werte zum Setzen und Lesen brauchst.
Ja, ist es schade, dass Jarvis hier keine flexible interne Lösung kennt, eine entsprechenden Payload zu generieren und zwischen CMD und STATUS Kanälen zu unterscheiden.
Ich habs in Jarvis auch mit{"setOn":"{\"state\": \"ON\"}","setOff":"{\"state\": \"OFF\"}"}
versucht, aber das funktioniert genau einmal und dann hängt der Switch.Aber trotzdem ist Jarvis eine tolle Sache. Vorallem für so Vis-Deppen wie mich. Brauch das nur um den WAF zu gewährleisten.
-
@sineos wenn es nur ein Datenpunkt wäre hätte der String mit on: anstelle von setOn: funktioniert- siehe mein Screenshot. Aber das hilft ja nichts. MQTT verwendet bzw. muss für den State und das Schalten 2 unterschiedliche Punkte verwenden, da MQTT ja nicht mit einem ACK-Flag arbeitet bzw. arbeiten kann
Ich nutze ja auch das NodeRed Dashboard - finde aber Jarvis durchaus interessant, da man ebenfalls schnell zu Ergebnissen kommt, aber mit dem fixen Design so eine Zwischenlösung zwischen vis und dem responsive Design des NodeRed Dashboards darstellt..
Vielleicht eine Idee an die Jarvis Entwickler für eine Version 4.
-
@sineos Versuch mal:
In denDatenpunkt-Eigenschaften
vom Gerät{"on":"{\"state\": \"ON\"}","off":"{\"state\": \"OFF\"}"}
Funktioniert mit v3.1.0-alpha.35, auch mit v3.0.11
Nur das Setzen vom Schalter (jarvis) ausgehend, nicht, wenn es als DP (ioBroker) geändert wird.
-
@mcu das hab ich doch schon gemacht - siehe unten. Das funktioniert- hilft ihm aber nicht, da er unterschiedliche Datenpunkte für das Setzen und als trigger braucht, die geparst werden müssen.Schau mal mein Screenshot
-
@mickym Wenn ich es richtig überblicke, hast du es im alias gemacht? Es soll aber in die Datenpunkt Eigenschaften vom Gerät (jarvis).
-
@mcu sagte in Jarvis - Schalter via MQTT:
@mickym Wenn ich es richtig überblicke, hast du es im alias gemacht? Es soll aber in die Datenpunkt Eigenschaften vom Gerät (jarvis).
Hab ich doch gerade erklärt, dass man wahrscheinlich nicht um einen Alias kommt, weil man unterschiedliche Punkte zum Setzen des States und des Status benötigt.
Schau mal mein 1. Posting in diesem Thread: https://forum.iobroker.net/topic/57483/jarvis-schalter-via-mqtt/11
und den Screenshot:
Außerdem habe ich in meinem vorletzten Post ja geschrieben, dass er on: und off: anstelle von setOn: und setOff: benutzen soll.
Wie gesagt das hilft alles nichts - ich hab auch bei Trigger und Anzeige schon mit unterschiedlichen Punkten versucht - aber man brauch eben 2 verschiedene Konvertierungsfunktionen und das bietet momentan anscheinend nur der Alias.
Aber scheint, als ob Du meine Posts in dem Thread gar nicht liest.
-
@mickym said in Jarvis - Schalter via MQTT:
Ich nutze ja auch das NodeRed Dashboard - finde aber Jarvis durchaus interessant, da man ebenfalls schnell zu Ergebnissen kommt, aber mit dem fixen Design so eine Zwischenlösung zwischen vis und dem responsive Design des NodeRed Dashboards darstellt..
Absolut an diesem Punkt bin ich auch gerade. 99% meiner Logik ist in NR untergebracht und dort auch mit den (etwas deprimierenden) Dashboard-Funktionen umgesezt.
Wegen einem Gerätedefekt hab ich aber die Struktur jetzt an vielen Stellen geändert- Homematic von dediziertem Pi auf Proxmox
- ioBroker, Grafana und Influx auch auf Proxmox
- NR vorher via Redmatic in homematic integriert, jetzt komplett in iob NR umgezogen. Hier wäre mir aber eine dedizierte Installation die mit iob sprechen kann immer noch am liebsten (bin aber zu faul alles über MQTT zu machen). Komme immer mehr von den zu hoch verdichteten Lösungen weg, da ich mir jetzt schon mehrfach damit die Finger verbrannt habe. Deswegen bleibt es auch bei zigbee2mqtt und kein Umzug in den iob Adapter
- Aus Interesse mal alles noch in eine homeassistant Installation gepackt. Auch sehr schick, aber bei Konfigurationen / Logiken über YAML und Jinja bekomme ich Herzrhythmusstörungen.
Wie @mickym beschrieben hat:
- Speziell bei zigbee2mqtt, aber generell auch bei MQTT ist oft den Kommando-Kanal ein anderer als der Status-Kanal
- Zustände sollen nicht "optimistisch" gesetzt werden, also setzen und hoffen, dass es geklappt hat
- Die Anzeige soll sich nach dem tatsächlichen Resultat richten
- Jarvis kennt momentan keine Unterscheidung zwischen Kommando und Status-Kanal
--> Damit bleibt nur die beiden Kanäle über ein Alias zu koppeln:
-
@sineos Wer möchte kann v3.1.0-alpha.45 testen?
Datenpunkt-Eigenschaften
{"on":"{\"STATE\":\"ON\"}","off":"{\"STATE\":\"OFF\"}"}