Ankündigung

Einklappen
Keine Ankündigung bisher.

Wie JSON Wert je Bedingung ?

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

    Wie JSON Wert je Bedingung ?

    Hallo alle zusammen,

    ich habe folgenden JSON String
    Code:
    "daypart": {
            "cloudCover": {
                "day": 71,
                "night": 68
            },​
    und würde den gern je nach Day oder Night die Werte für die Viso ausgeben. Hat jemand eine Idee mit welchen Baustein ich das realisieren kann ?

    Vielen Dank
    Marhal

    #2
    Servus,
    ich mach das mit dem JSON Extractor 19001208.....

    Kommentar


      #3
      Hallo Heimerl,

      danke für dein Tipp. Aber wie machst du toggelst du die Werte ? Also wenn ich halt Temperatur Tag & Temperatur Nacht habe. Das er halt je Tag/Nach den Wert ändert.

      Gruß
      Marhal

      Kommentar


        #4
        Hallo,
        probier es mal so
        Pfad1: daypart|cloudCover|day
        Pfad2: daypart|cloudCover|night

        könnte auch sein, dass du das "|" durch ":" oder ";" ersetzen musst....

        Gruss

        Kommentar


          #5
          Da wird nix getoggelt. day in ein Tag iKO und night in ein Nacht-iKO. Wann Tag und wann Nacht ist, musst du selbst entscheiden. Z.B per Wetter LBS
          Zuletzt geändert von jonofe; 13.11.2022, 10:39.

          Kommentar


            #6
            Danke euch Zwei,

            wie ich die Werte aus dem JSON bekomme weiß ich. Ich habe gehofft das es ein Baustein gibt, wo ich es direkt einrichten kann. Sprich ich gebe ihm dem Wert Day mit. Und er gibt halt dann den Wert für Day aus. Gebe ich halt den Wert Night mit holt er sich aus den JSON die Nacht werte.

            Oder nutzt ihr für eure Visu eh nur z.b den Day Wert ?

            Gruß
            Marhal

            Kommentar


              #7
              Hallo Zusammen,

              ich hänge mich mal ans Thema JSON mit an.

              Habe folgenden JSON:

              [{"deviceType":4,"nukiId":xxxxxxx,"name":"Haust\ u00 fcre","firmwareVersion":"3.4.10","lastKnownState": {"mode":2,"state":1,"stateName":"locked","batte ryC ritical":false,"batteryCharging":false,"batteryCha rgeState":100,"timestamp":"2022-11-14T21:00:06+00:00"}}]

              nutze den JSON Extractor v0.4

              bekomme aber keine Werte am Ausgang

              z.B. für die nukild müsste ich doch folgendes unter E2 eingeben:

              deviceType|nukild

              oder für den stateName:

              deviceType|nukild​|name|firmwareVersion|lastKnownS tate|stateName

              Bin ich da auf dem Holzweg?

              Kommentar


                #8
                Hallo RossS,

                ich teste das immer so das ich im Notepad++ die JSON Plugins installiere, der Kann dir dann ein String wie du hast, schön aufschlüsseln und anzeigen welche Felder wo runter sind. Ich habe das mit deinem String auch versucht. Da gibt er mir Zurück das es kein gültiger JSON String ist. Vielleicht schaust du dir das genau noch mal an
                Denn deine Aufschlüsselung mit dem Trenner sehen soweit gut aus

                Gruß
                Marhal

                Kommentar


                  #9
                  Hi

                  Zitat von RossS Beitrag anzeigen
                  Habe folgenden JSON:

                  [{"deviceType":4,"nukiId":xxxxxxx,"name":"Haust\ u00 fcre","firmwareVersion":"3.4.10","lastKnownState": {"mode":2,"state":1,"stateName":"locked","batte ryC ritical":false,"batteryCharging":false,"batteryCha rgeState":100,"timestamp":"2022-11-14T21:00:06+00:00"}}]
                  Da hat's Leerzeichen in einem Key, bist Du sicher, dass das so stimmt? In einem richtigen Editor sieht das dann so aus:

                  Code:
                  [
                    {
                      "deviceType": 4,
                      "nukiId": "xxxxxxx",
                      "name": "Haust\u00fcre",
                      "firmwareVersion": "3.4.10",
                      "lastKnownState": {
                        "mode": 2,
                        "state": 1,
                        "stateName": "locked",
                        "batte ryC ritical": false,
                        "batteryCharging": false,
                        "batteryCha rgeState": 100,
                        "timestamp": "2022-11-14T21:00:06+00:00"
                      }
                    }
                  ]
                  Der Pfad für stateName sollte damit m.M.n. so sein:

                  Code:
                  /0/lastKnownState/stateName
                  Zuletzt geändert von starwarsfan; 16.11.2022, 21:04.
                  Kind regards,
                  Yves

                  Kommentar


                    #10
                    Zitat von starwarsfan Beitrag anzeigen
                    Der Pfad für stateName sollte damit m.M.n. so sein:
                    Zitat von starwarsfan Beitrag anzeigen
                    /0/lastKnownState/stateName
                    Ja so sollte der Pfad korrekt sein.

                    In der korrekten Syntax für den JSON EXtractor LBS sieht das dann so aus:

                    0|lastKnownState|stateName

                    Kommentar


                      #11
                      Zitat von jonofe Beitrag anzeigen


                      Ja so sollte der Pfad korrekt sein.

                      In der korrekten Syntax für den JSON EXtractor LBS sieht das dann so aus:

                      0|lastKnownState|stateName

                      was soll ich sagen fuktioniert!! vielen DANK

                      Danke an alle Beteiligten!


                      Verständnisfrage warum die "0" vorneweg?

                      Kommentar


                        #12
                        Zitat von RossS Beitrag anzeigen
                        Verständnisfrage warum die "0" vorneweg?
                        In JSON repräsentiert [] ein Array, während {} ein Objekt beschreibt.
                        In JSON sind diese Arrays numerisch indiziert, d.h. mit der "0" vorneweg bekommst du das erste Element in den eckigen Klammern.
                        In dem Fall ist da nur ein Objekt, nämlich das hier:

                        Code:
                        {
                           "deviceType": 4,
                           "nukiId": "xxxxxxx",
                           "name": "Haust\u00fcre",
                           "firmwareVersion": "3.4.10",
                           "lastKnownState": {
                              "mode": 2,
                              "state": 1,
                              "stateName": "locked",
                              "batte ryC ritical": false,
                              "batteryCharging": false,
                              "batteryCha rgeState": 100,
                              "timestamp": "2022-11-14T21:00:06+00:00"
                           }
                        }​
                        Aus diesem Objekt nimmst du dann das Element "lastKnownState", d.h.

                        Code:
                        {
                              "mode": 2,
                              "state": 1,
                              "stateName": "locked",
                              "batte ryC ritical": false,
                              "batteryCharging": false,
                              "batteryCha rgeState": 100,
                              "timestamp": "2022-11-14T21:00:06+00:00"
                           }​
                        Hieraus dann final das Element stateName, d.h. locked

                        Am besten kann man das in einem Online JSON Viewer sehen:

                        json.png

                        Kommentar


                          #13
                          Super, vielen Dank für die ausführliche Erklärung.
                          Man lernt nie aus!

                          Kommentar

                          Lädt...
                          X