Ankündigung

Einklappen
Keine Ankündigung bisher.

Shelly TRV, Info-Datenstring, parsejson

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Shelly TRV, Info-Datenstring, parsejson

    Hallo, beim Auslesen einzelner Parameter aus einem Info-Datenstring eines Shelly TRV (Heizkörperventil) komme ich nicht weiter. Ich möchte die Variable aus "thermostats/0/pos" auslesen.
    Mit der Expertenzeile: Gaezi_Ventil_Pos= parsejson (TRV_info, $thermostats/0/pos$, $$) bekomme ich keine Daten aus dem folgenden Datenstring:

    image.png
    Wie gehts richtig?

    #2
    Der Ausdruck passt. Wie sieht TRV_info im Debugger aus?

    Kommentar


      #3
      Achte auch Mal auf die Länge von string. Wichtig ist daß der json string korrekt ist.
      Manchmal hab ich die string Größe zu kurz gewählt. Dann gibt's damit natürlich auch Probleme

      Kommentar


        #4
        So sieht der String im Debugger aus:
        image.png

        Kommentar


          #5
          Es fehlt der fürende / im JSONPointer-Ausdruck.

          Nicht gleich gesehen, weil bei MQTT-Topics keiner verwendet wird.

          Kommentar


            #6
            Und es hört nicht mit einer geschweiften Klammer auf somit kein gültiges json. Mach den String mal größer.

            Kommentar


              #7
              Hallo foobar0815 das war der Fehler! Vielen Dank jetzt passen die Daten.

              Kommentar


                #8
                Die nächste ungelöste Aufgabe: Wie kann ich eine Variable via mqtt versenden?
                Mit der Zeile:
                if change ("GäZi Hzg Sollwert aktuell-3/2/25") then publishmqtt (MqttHandleEibPC, $shellies/GaeZi-Thermostat/0/command/target_t$, 0, 0b01, $Gaezi_Solltemp$ , 0u16) endif
                übergebe ich leider nur den Text: -Gaezi_Solltemp-. Ich möchte eine Solltemperatur übertragen.

                Kommentar


                  #9
                  "GäZi Hzg Sollwert aktuell-3/2/25" hat Datentyp u08?

                  Laut https://shelly-api-docs.shelly.cloud...y-trv-overview ist das Topic

                  shellies/shellytrv-<id>/thermostat/0/command/target_t
                  also vmtl $shellies/GaeZi-Thermostat/thermostat/0/command/target_t$

                  Code:
                  if change ("GäZi Hzg Sollwert aktuell-3/2/25") then publishmqtt (MqttHandleEibPC, $shellies/GaeZi-Thermostat/thermostat/0/command/target_t$, 0, 0b01, convert("GäZi Hzg Sollwert aktuell-3/2/25", $$c2) , 0u16) endif
                  $$c2 reicht als Breite für den Wertebereich "target_t accepts number from 4 to 31 set target temperature" und spart damit Speicher.
                  Zuletzt geändert von foobar0815; 13.12.2023, 12:03.

                  Kommentar


                    #10
                    👍

                    Kommentar

                    Lädt...
                    X