Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Jarvis - Schalter via MQTT

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Jarvis - Schalter via MQTT

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      Sineos last edited by

      Ich würde gerne in Jarvis einen Schalter einrichten, der über MQTT geschaltet wird, allerdings ist der Schaltpunkt ein JSON string:

      • An: {"STATE": "ON"}
      • Aus: {"STATE": "OFF"}

      Der einzige Weg, wie ich es hinbekommen habe, ist über einen "Hilfs-DP" und ein Java-Script, welches den Wert entsprechend hinbiegt:

      on({id: '0_userdata.0.test', change: 'any', ack: false}, function (obj) {
          if (obj.state.val) {
              setState("mqtt.0.zigbee2mqtt.RelayLightHallEG.set", "{\"state\": \"ON\"}");
          } else {
              setState("mqtt.0.zigbee2mqtt.RelayLightHallEG.set", "{\"state\": \"OFF\"}");
          }
      });
      

      Das kann aber doch nicht die Lösung sein, oder?

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @Sineos last edited by paul53

        @sineos sagte: Das kann aber doch nicht die Lösung sein, oder?

        Nein, es geht auch mit einem Alias vom Typ "boolean" ohne Skript mit
        common.alias.write = "JSON.stringify({state: val ? 'ON' : 'OFF'})"

        1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active last edited by mickym

          @sineos

          Nach ziemlich viel rumprobieren habe ich es denke ich hinbekommen - es entsprechend zu setzen - allerdings ist der Status ja ein anderer Datenpunkt:

          37893b6a-f5bf-479f-a15d-f245a3a4ef9c-image.png

          Im Prinzip wirst Du beim zigbee2mqtt um einen Alias nicht drum rumkommen, da du ja unterschiedliche Werte zum Setzen und Lesen brauchst.

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @mickym last edited by paul53

            @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'"

            1 Reply Last reply Reply Quote 0
            • mickym
              mickym Most Active last edited by mickym

              @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.

              635ed647-29cb-462e-9ef4-425f66f70187-image.png

              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:

              2c4d30bf-8716-402e-9661-2d8ee1109bc8-image.png

              S 1 Reply Last reply Reply Quote 1
              • M
                MCU last edited by MCU

                @sineos Probier mal in die Datenpunkt-Eigenschaften JSON.parse direkt einzutragen.
                https://mcuiobroker.gitbook.io/jarvis-infos/jarvis/besonderheiten-v3/geraet/datenpunkt-eigenschaft/json-parse

                Klappt nicht, nur als Anzeige.

                1 Reply Last reply Reply Quote 0
                • S
                  Sineos @mickym last edited by

                  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.

                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @Sineos last edited by mickym

                    @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.

                    1 Reply Last reply Reply Quote 0
                    • M
                      MCU last edited by MCU

                      @sineos Versuch mal:
                      In den Datenpunkt-Eigenschaften vom Gerät

                      {"on":"{\"state\": \"ON\"}","off":"{\"state\": \"OFF\"}"}
                      

                      Funktioniert mit v3.1.0-alpha.35, auch mit v3.0.11
                      99d98e41-484d-4e8f-be55-e47e6fc5a425-image.png
                      bbc1bb5e-5f0d-4a97-9094-56f11583b61d-image.png

                      Nur das Setzen vom Schalter (jarvis) ausgehend, nicht, wenn es als DP (ioBroker) geändert wird.

                      mickym 1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @MCU last edited by mickym

                        @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

                        M 1 Reply Last reply Reply Quote 0
                        • M
                          MCU @mickym last edited by

                          @mickym Wenn ich es richtig überblicke, hast du es im alias gemacht? Es soll aber in die Datenpunkt Eigenschaften vom Gerät (jarvis).

                          mickym 1 Reply Last reply Reply Quote 0
                          • mickym
                            mickym Most Active @MCU last edited by mickym

                            @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:

                            926fba0e-bd1d-441b-9006-89c9f5bd4078-image.png

                            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.

                            1 Reply Last reply Reply Quote 0
                            • S
                              Sineos last edited by Sineos

                              @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:

                              5e696a31-6dfd-43f9-8e9d-45c4248686da-grafik.png
                              a13225d5-6859-49ca-a348-0b42fc9e6b99-grafik.png
                              f8929904-5d74-4c28-810b-5a4ec7276466-grafik.png

                              M 1 Reply Last reply Reply Quote 0
                              • M
                                MCU @Sineos last edited by

                                @sineos Wer möchte kann v3.1.0-alpha.45 testen?
                                jarvis v3 - alpha.44 JSONparse Switch.gif

                                Datenpunkt-Eigenschaften

                                {"on":"{\"STATE\":\"ON\"}","off":"{\"STATE\":\"OFF\"}"}
                                

                                cf6215c3-03d0-4ae1-a72a-df22fa06d496-image.png

                                1 Reply Last reply Reply Quote 0
                                • First post
                                  Last post

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                885
                                Online

                                31.8k
                                Users

                                80.0k
                                Topics

                                1.3m
                                Posts

                                4
                                14
                                784
                                Loading More Posts
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes
                                Reply
                                • Reply as topic
                                Log in to reply
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                The ioBroker Community 2014-2023
                                logo