Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Einsteigerfragen
  4. [gelöst] json abfragen - Objekte erstellen

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    348

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

[gelöst] json abfragen - Objekte erstellen

Geplant Angeheftet Gesperrt Verschoben Einsteigerfragen
abfragenjsonobjekte
51 Beiträge 5 Kommentatoren 2.2k Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • rtwlR rtwl

    @mickym
    Vielen Dank für deine Erklärung. Da ich ja ganz neu in der Materie bin, hab ich jetzt beim lesen (während der Arbeitspause) mal keine Idee wie ich das ganze implementiert bekomme ☺️
    aber am Abend dann werde ich mich hinsetzen und schauen ob ich es schaffe.
    Wäre gut, wenn du mir bei folgefragen dann eventuell noch weiter unterstützen könntest.

    liv-in-skyL Offline
    liv-in-skyL Offline
    liv-in-sky
    schrieb am zuletzt editiert von liv-in-sky
    #4

    @rtwl

    oder ohne nodered - mit einem javascript

    let helper=JSON.parse(getState("0_userdata.0.TESTDatenpunktAnlegen.MyTestData").val)
    
     var keysFirst = Object.keys(helper);
      
      //  log(keysFirst.toString())
     //   log(Object.keys(helper.channel0).toString())
    
    for(let u=0;u<keysFirst.length;u++){
        //  log(helper.keysFirst[u])
       let keysSecond=Object.keys(helper[keysFirst[u]]);
    
      //  log(keysSecond[0])
      for(let uu=0;uu<keysSecond.length;uu++){
           let einheit;
           if(keysSecond[uu].includes("temp") ) einheit="°C";
           if(keysSecond[uu].includes("hum") ) einheit="%";
           if(keysSecond[uu].includes("chid") ) einheit="";
            let theVal=helper[keysFirst[u]][keysSecond[uu]] ; // log(theVal)
            if(existsState('0_userdata.0.TESTDatenpunktAnlegen.'+keysFirst[u]+'.'+keysSecond[uu])) setState('0_userdata.0.TESTDatenpunktAnlegen.'+keysFirst[u]+'.'+keysSecond[uu],theVal);
             else createState('0_userdata.0.TESTDatenpunktAnlegen.'+keysFirst[u]+'.'+keysSecond[uu], theVal, { name: keysSecond[uu], unit: einheit});
          
       
          }
    
    
    }
    

    der dp in der ersten zeile muss von dir eingestellt werden - die daten müssen ja irgendwo herkommen - in diesem fall , von einem dp

    Image 5.png

    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

    1 Antwort Letzte Antwort
    0
    • rtwlR rtwl

      Ich hab es zwar mit dem Adapter "Systeminfo Adapter to get data from systems" geschafft meine json abzufragen, und die benötigten Werte als Objekte zu speichern, aber das vermutlich nicht so optimal gelöst, da dieser Adapter laut log anscheinend bald entfernt wird.

      Daher die Frage, was ein einfacherer Weg wäre eine Json abzufragen und die Werte als Objekte zu speichern?
      Da ich kompletter Anfänger bin (mit ein wenig Hausverstand und den Mut zum testen/probieren) wäre ich froh wenn mir hier jemand helfen könnte.

      die json hier im Spoiler:

      {
       "channel0": {
         "temperature": "23.3",
         "humidity": "0",
         "chid": "0"
       },
       "channel1": {
         "temperature": "",
         "humidity": "",
         "chid": "0"
       },
       "channel2": {
         "temperature": "22.8",
         "humidity": "28",
         "chid": "C0"
       },
       "channel3": {
         "temperature": "26.4",
         "humidity": "6",
         "chid": "4F"
       },
       "channel4": {
         "temperature": "23.7",
         "humidity": "15",
         "chid": "B5"
       },
       "channel5": {
         "temperature": "22.9",
         "humidity": "17",
         "chid": "B0"
       },
       "channel6": {
         "temperature": "22.3",
         "humidity": "36",
         "chid": "3D"
       },
       "channel7": {
         "temperature": "23.6",
         "humidity": "32",
         "chid": "54"
       },
       "channel8": {
         "temperature": "5.5",
         "humidity": "65",
         "chid": "77"
       },
       "channel9": {
         "temperature": "23.8",
         "humidity": "33",
         "chid": "30"
       },
       "channel10": {
         "temperature": "3.8",
         "humidity": "67",
         "chid": "C1"
       },
       "channel11": {
         "temperature": "3.2",
         "humidity": "69",
         "weather id": 804,
         "chid": "0"
       },
       "chhead": "0"
      }
      

      PS: ioBroker ist bei mir seit gestern auf einem Raspi installiert.

      mickymM Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von
      #5

      @rtwl Um die gleiche Funktionalität des Javascripts mit NodeRed zu implementieren - ergänzt Du den Flow um die eingerahmten Nodes:

      d455a2d5-5a4e-4962-a545-54b5c332d45e-image.png

      Damit werden dann auch numerische Werte mit den entsprechenden Units erstellt:

      ea8b4609-053a-4543-a3bf-1500e3b0759b-image.png

      Hier noch der Code für die eingerahmten Nodes:

      [
         {
             "id": "d0c6fba4707a4e76",
             "type": "change",
             "z": "54b226bc.0793e8",
             "name": "",
             "rules": [
                 {
                     "t": "set",
                     "p": "key",
                     "pt": "msg",
                     "to": "topic",
                     "tot": "msg"
                 },
                 {
                     "t": "change",
                     "p": "key",
                     "pt": "msg",
                     "from": ".*\\.(.*)$",
                     "fromt": "re",
                     "to": "$1",
                     "tot": "str"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 590,
             "y": 2780,
             "wires": [
                 [
                     "158ec84a1b8fc50c"
                 ]
             ]
         },
         {
             "id": "158ec84a1b8fc50c",
             "type": "switch",
             "z": "54b226bc.0793e8",
             "name": "",
             "property": "key",
             "propertyType": "msg",
             "rules": [
                 {
                     "t": "eq",
                     "v": "temperature",
                     "vt": "str"
                 },
                 {
                     "t": "eq",
                     "v": "humidity",
                     "vt": "str"
                 },
                 {
                     "t": "else"
                 }
             ],
             "checkall": "true",
             "repair": false,
             "outputs": 3,
             "x": 770,
             "y": 2780,
             "wires": [
                 [
                     "e73b7b8152f09240"
                 ],
                 [
                     "f97af63bc52b6f0c"
                 ],
                 [
                     "46cc9ab14e59223b"
                 ]
             ]
         },
         {
             "id": "e73b7b8152f09240",
             "type": "change",
             "z": "54b226bc.0793e8",
             "name": "",
             "rules": [
                 {
                     "t": "set",
                     "p": "stateUnit",
                     "pt": "msg",
                     "to": "°C",
                     "tot": "str"
                 },
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "payload = \"\" ? 0 : $number(payload)",
                     "tot": "jsonata"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 950,
             "y": 2740,
             "wires": [
                 [
                     "4f135de5123e98f1"
                 ]
             ]
         },
         {
             "id": "f97af63bc52b6f0c",
             "type": "change",
             "z": "54b226bc.0793e8",
             "name": "",
             "rules": [
                 {
                     "t": "set",
                     "p": "stateUnit",
                     "pt": "msg",
                     "to": "%",
                     "tot": "str"
                 },
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "payload = \"\" ? 0 : $number(payload)",
                     "tot": "jsonata"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 950,
             "y": 2780,
             "wires": [
                 [
                     "4f135de5123e98f1"
                 ]
             ]
         },
         {
             "id": "46cc9ab14e59223b",
             "type": "change",
             "z": "54b226bc.0793e8",
             "name": "do nothing",
             "rules": [],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 950,
             "y": 2820,
             "wires": [
                 [
                     "4f135de5123e98f1"
                 ]
             ]
         }
      ]
      

      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

      1 Antwort Letzte Antwort
      1
      • HomoranH Nicht stören
        HomoranH Nicht stören
        Homoran
        Global Moderator Administrators
        schrieb am zuletzt editiert von
        #6

        Aber ihr habt schon gelesen:

        @rtwl sagte in json abfragen - Objekte erstellen:

        Da ich kompletter Anfänger bin
        ...
        ioBroker ist bei mir seit gestern auf einem Raspi installiert.

        und wir uns hier im Einsteiger-Unterforum befinden, wo

        @homoran sagte in Diskussionsthread zum neuen Unterforum für Einsteiger:

        Fortgeschrittene und "Nerds" können und sollen dort natürlich auch antworten und helfen..
        Aber bitte in laienverständlicher Form.

        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        mickymM 1 Antwort Letzte Antwort
        0
        • HomoranH Homoran

          Aber ihr habt schon gelesen:

          @rtwl sagte in json abfragen - Objekte erstellen:

          Da ich kompletter Anfänger bin
          ...
          ioBroker ist bei mir seit gestern auf einem Raspi installiert.

          und wir uns hier im Einsteiger-Unterforum befinden, wo

          @homoran sagte in Diskussionsthread zum neuen Unterforum für Einsteiger:

          Fortgeschrittene und "Nerds" können und sollen dort natürlich auch antworten und helfen..
          Aber bitte in laienverständlicher Form.

          mickymM Online
          mickymM Online
          mickym
          Most Active
          schrieb am zuletzt editiert von
          #7

          @homoran Nun ja - ich habe es glaube ich nicht, dass @liv-in-sky oder ich mit vielen Fachwörtern geschrieben haben, sondern wir beide haben dem TE fertige Lösungen für sein Problem geboten - halt mit unterschiedlichen Tools.

          Ich habe den 2. Flow nur nachgeschoben, damit man hier nicht Äpfel mit Birnen vergleicht.

          Du kannst ja gerne noch eine fertige Blockly-Lösung beisteuern.
          Die Aufgabe bzw. die Fragestellung des TE war doch nur, wie er den JSON in eine Objektstruktur im iobroker bekommt.

          Wenn dann noch konkrete Fragen sind, helfen wir doch gerne weiter. Und wenn diese Lösung nicht für Anfänger taugt, könnte man ggf. den Thread verschieben?

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          HomoranH 1 Antwort Letzte Antwort
          0
          • mickymM mickym

            @homoran Nun ja - ich habe es glaube ich nicht, dass @liv-in-sky oder ich mit vielen Fachwörtern geschrieben haben, sondern wir beide haben dem TE fertige Lösungen für sein Problem geboten - halt mit unterschiedlichen Tools.

            Ich habe den 2. Flow nur nachgeschoben, damit man hier nicht Äpfel mit Birnen vergleicht.

            Du kannst ja gerne noch eine fertige Blockly-Lösung beisteuern.
            Die Aufgabe bzw. die Fragestellung des TE war doch nur, wie er den JSON in eine Objektstruktur im iobroker bekommt.

            Wenn dann noch konkrete Fragen sind, helfen wir doch gerne weiter. Und wenn diese Lösung nicht für Anfänger taugt, könnte man ggf. den Thread verschieben?

            HomoranH Nicht stören
            HomoranH Nicht stören
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von Homoran
            #8

            @mickym dazu müsste ich erst einmal verstehen, was @rtwl wirklich will.
            Nach euren Antworten bin ich mir da gar nicht mehr so sicher.

            Die Aussage:
            @rtwl sagte in json abfragen - Objekte erstellen:

            Ich hab es zwar mit dem Adapter "Systeminfo Adapter to get data from systems" geschafft meine json abzufragen

            sagt mir gar nichts :-)

            Weder der Adapter, noch (oder vielleicht deswegen) wie man damit eine JSON abfragt - und wo?
            Ob jetzt das JSON irgendwo bereits vorliegt, oder ob es erneut abgefragt werden soll, womöglich direkt zerlegt

            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            mickymM liv-in-skyL rtwlR 3 Antworten Letzte Antwort
            0
            • HomoranH Homoran

              @mickym dazu müsste ich erst einmal verstehen, was @rtwl wirklich will.
              Nach euren Antworten bin ich mir da gar nicht mehr so sicher.

              Die Aussage:
              @rtwl sagte in json abfragen - Objekte erstellen:

              Ich hab es zwar mit dem Adapter "Systeminfo Adapter to get data from systems" geschafft meine json abzufragen

              sagt mir gar nichts :-)

              Weder der Adapter, noch (oder vielleicht deswegen) wie man damit eine JSON abfragt - und wo?
              Ob jetzt das JSON irgendwo bereits vorliegt, oder ob es erneut abgefragt werden soll, womöglich direkt zerlegt

              mickymM Online
              mickymM Online
              mickym
              Most Active
              schrieb am zuletzt editiert von mickym
              #9

              @homoran sagte in json abfragen - Objekte erstellen:

              Die Aussage:
              @rtwl sagte in json abfragen - Objekte erstellen:

              Ich hab es zwar mit dem Adapter "Systeminfo Adapter to get data from systems" geschafft meine json abzufragen

              sagt mir gar nichts
              Weder der Adapter, noch (oder vielleicht deswegen) wie man damit eine JSON abfragt - und wo?
              Ob jetzt das JSON irgendwo bereits vorliegt, oder ob es erneut abgefragt werden soll, womöglich direkt zerlegt

              OK da gebe ich Dir Recht, dass das nicht aus dem Eingangsposting hervorgeht. Ich habe den JSON String als gegeben vorausgesetzt, woher der auch immer kommt und die Aufgabenstellung darin gesehen, dass dieser als einzelne Datenpunkte zerlegt und im iobroker sichtbar sein sollten.

              Das kann aber letztlich nur der TE beantworten und wird sich wahrscheinlich im Verlauf bei weiteren Fragen noch ergeben. Da bin ich zuversichtlich. ;)

              Letztlich kann nur der TE beurteilen, ob wir ihm eine Hilfe sind oder mehr zur Verwirrung beitragen.

              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

              1 Antwort Letzte Antwort
              1
              • HomoranH Homoran

                @mickym dazu müsste ich erst einmal verstehen, was @rtwl wirklich will.
                Nach euren Antworten bin ich mir da gar nicht mehr so sicher.

                Die Aussage:
                @rtwl sagte in json abfragen - Objekte erstellen:

                Ich hab es zwar mit dem Adapter "Systeminfo Adapter to get data from systems" geschafft meine json abzufragen

                sagt mir gar nichts :-)

                Weder der Adapter, noch (oder vielleicht deswegen) wie man damit eine JSON abfragt - und wo?
                Ob jetzt das JSON irgendwo bereits vorliegt, oder ob es erneut abgefragt werden soll, womöglich direkt zerlegt

                liv-in-skyL Offline
                liv-in-skyL Offline
                liv-in-sky
                schrieb am zuletzt editiert von
                #10

                @homoran

                ich denke mal, er wird schon nachfragen, wenn es irgendwo hakt.

                nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                1 Antwort Letzte Antwort
                0
                • HomoranH Nicht stören
                  HomoranH Nicht stören
                  Homoran
                  Global Moderator Administrators
                  schrieb am zuletzt editiert von
                  #11

                  zum Abschrecken (@rtwl ist nicht ernst gemeint :-) ) habe ich mal versucht etwas zu zaubern.
                  Ich kann es aber auch nicht wirklich.

                  JSON_lesen.png


                  Wenn ich das hier
                  @rtwl sagte in json abfragen - Objekte erstellen:

                  die Werte als Objekte zu speichern?

                  richtig verstehe, nämlich, dass du alle Ergebnisse in Datenpunkte setzen willst, benötigst du 33 Datenpunkte.
                  Die lassen sich (vielleicht) automatisch erzeugen.
                  Das hatte ich (zum ersten mal selber) versucht.

                  der dritte Wert (chid) pro Channel hatte ich als ChannelID angenommen.
                  leider ist diese nicht eindeutig

                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                  1 Antwort Letzte Antwort
                  0
                  • rtwlR Offline
                    rtwlR Offline
                    rtwl
                    schrieb am zuletzt editiert von
                    #12

                    Vielen Dank vorerst an alle. Ich sitze immer noch bei der Arbeit fest 😬
                    kurz gesagt. Mich verwirrt so ziemlich alles was ihr geschrieben habt. Aber ich kenne iobroker noch nicht so auswendig um es nachvollziehen zu können. Aber ich teste dann gern am Abend und werde mich ziemlich sicher mit weiteren Fragen melden.

                    die json kommt von einem externen Gerät und kann jederzeit per URL im Netzwerk abgerufen werden (http://IP/weather.json) Diese soll dann auch als Quelle verwendet werden.

                    den datenpunkt CHID aus der json wird nicht benötigt. Lediglich Temperatur und Luftfeuchtigkeitswerte.

                    die Lösungen in den Screenshots gefallen mir sehr gut, so wäre auch meine Wunsch Lösung dafür.

                    mein generelles Ziel ist es später mal die VIS damit zu befüllen bzw auch logiken daraus zu erstellen zb je nach Temperatur mach dies oder das usw. Aber dazu erst wenn ich soweit bin.

                    -Peter

                    HomoranH 1 Antwort Letzte Antwort
                    0
                    • rtwlR rtwl

                      Vielen Dank vorerst an alle. Ich sitze immer noch bei der Arbeit fest 😬
                      kurz gesagt. Mich verwirrt so ziemlich alles was ihr geschrieben habt. Aber ich kenne iobroker noch nicht so auswendig um es nachvollziehen zu können. Aber ich teste dann gern am Abend und werde mich ziemlich sicher mit weiteren Fragen melden.

                      die json kommt von einem externen Gerät und kann jederzeit per URL im Netzwerk abgerufen werden (http://IP/weather.json) Diese soll dann auch als Quelle verwendet werden.

                      den datenpunkt CHID aus der json wird nicht benötigt. Lediglich Temperatur und Luftfeuchtigkeitswerte.

                      die Lösungen in den Screenshots gefallen mir sehr gut, so wäre auch meine Wunsch Lösung dafür.

                      mein generelles Ziel ist es später mal die VIS damit zu befüllen bzw auch logiken daraus zu erstellen zb je nach Temperatur mach dies oder das usw. Aber dazu erst wenn ich soweit bin.

                      HomoranH Nicht stören
                      HomoranH Nicht stören
                      Homoran
                      Global Moderator Administrators
                      schrieb am zuletzt editiert von Homoran
                      #13

                      @rtwl sagte in json abfragen - Objekte erstellen:

                      Mich verwirrt so ziemlich alles was ihr geschrieben habt.

                      das hatte ich befürchtet!

                      Lösch alles in deinem Geiste, was bisher da steht.
                      Wenn du von der Arbeit kommst fangen wir nochmal ganz von vorne an - Step by Step!!!

                      @rtwl sagte in json abfragen - Objekte erstellen:

                      die Lösungen in den Screenshots gefallen mir sehr gut, so wäre auch meine Wunsch Lösung dafür.

                      aber du willst es ja selber schaffen! Hut ab dafür!
                      Die "fertigen" Ergebnisse sollen dir jetzt nur zeigen, dass es geht


                      @rtwl sagte in json abfragen - Objekte erstellen:

                      den datenpunkt CHID aus der json wird nicht benötigt.

                      den könnte man zur Identifikation der Daten nutzen.
                      Wenn die Daten ganz sicher immer in der selben Reihenfolge kommen, kann man die CHID natürlich "vergessen"

                      Dann musst du dir die Datenpunkte aber manuell, ggf. mit sprechenden Namen, selber in einer sinnvollen Struktur anlegen.

                      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                      1 Antwort Letzte Antwort
                      0
                      • mickymM Online
                        mickymM Online
                        mickym
                        Most Active
                        schrieb am zuletzt editiert von mickym
                        #14

                        Nun ja - auch wenn ich dem Globalen Moderator mal widersprechen möchte, alles aus dem Geiste zu löschen, solltest Du Dich @rtwl immer ganz systematisch Deiner Aufgabenstellung nähern und das ist erst mal unabhängig von den Tools - wo bei ich auf diese noch zu sprechen komme.

                        Um sich dem ganzen logisch zu nähern gibt es ein einheitliches Schema - das man grundsätzlich im Kopf durchgehen sollte.

                        Fangen wir mal an:

                        1. Auslöser (= Trigger)

                        Egal was Du mit Deinem Hausautomationssystem machen möchtest brauchst Du immer einen Auslöser. Auslöser gibt es viele, aber Du musst Dir immer !!! am Anfang überlegen, wer oder was meinen Flow, meine Aktion auslösen soll.

                        Was gibt es für Auslöser:

                        • Sensoren: Sensoren liefern Daten und man kann nun entscheiden, ob man auf diese Daten reagieren möchte oder nicht. Im iobroker werden diese Sensoren oft über Adapter als Daten in den Objekten/Zuständen (=states) zur Verfügung gestellt. Manchmal triggern Sensoren auch nur und Du musst Dich selbst drum kümmern, Dir die Daten zu holen.
                        • Der Anwender, Mensch, der im Prinzip auf eine Taste in einer Visualisierung manuell einen Prozess anstößt.
                        • Ein zeitliches Ereignis: Das kann periodisch sein oder zu einem bestimmten Zeitpunkt.

                        Oft verknüpft man diese Auslöser miteinander. Also es soll nur auf eine Bewegung hin ein Licht geschaltet werden, wenn es Nacht ist. Ein Sensor liefert also den Trigger, der mit dem Zeitpunkt geprüft wird um dann eine Aktion auszulösen.

                        1. Das Sammeln von Daten:
                          Oft liefer die Sensoren über die Adapter automatisch die Daten. In Deinem Fall jedoch musst Du die Daten erst holen, in dem Du eine URL aufrufst und über eine API (Application Programming Interface) Dir diese Daten besorgst. Oft muss man sich auch von mehreren Stellen Daten holen, um später die geeignete Logik abzubilden. Man kann sich die Daten anfangs besorgen oder man besorgt sie sich, während man die Daten aufbereitet.

                        2. Die Datenverarbeitung:
                          Hier werden die Daten ggf. logisch miteinander in Beziehung gesetzt, um gewisse komplexere Zustände zu definieren, oder die Daten werden nur aufbereitet, wie in unseren Beispielen um eine Temperatur in °C oder die Luftfeuchtigkeit in % in den Datenpunkten anzeigen zu lassen.

                        3. Die Ausgabe - in Deinem Fall eben in die Datenpunkte. Es kann aber natürlich auch ein Schalten eines Gerätes, das Abspielen von Sound, ein E-Mail Ausgabe - was auch immer sein. Letztlich die Aktion, die Du beabsichtigst.

                        Die Tools mit den Du Auslöser verarbeiten oder erzeugen kannst, Daten sammeln kannst und verarbeiten kannst hast Du hier kennengelernt.

                        Dabei wird das halt nur unterschiedlich visualisiert, aber in der Regel werden die Daten sequentiell verarbeitet.

                        Hier mal die 3 Möglichkeiten zusammengefasst (in Node Red würdest Du Schleifen halt als Linien sehen, die sich überschneiden). Im Gegensatz zu den beiden anderen Tools ist der Programmfluss aber durch die Linien grafisch dargestellt:

                        screen.png

                        Du siehst letztlich arbeitet man sich beim Blockly und JS von oben nach unten durch, wobei durch Schleifen und Funktionen auch da drin gesprungen wird.

                        In NodeRed bewegt man sich in der Regel von links nach rechts, so wie Du einen Text lesen würdest.

                        Also Trigger, Daten holen, Daten verarbeiten, Ausgabe.

                        So nun zu Deiner Aufgabenstellung:

                        die json kommt von einem externen Gerät und kann jederzeit per URL im Netzwerk abgerufen werden (http://IP/weather.json) Diese soll dann auch als Quelle verwendet werden.

                        Im Allgemeinen kann ich DIr nur empfehlen immer die ganze Aufgabenstellung zu beschreiben, sonst gibt es solche Fragen wie @Homoran gestellt hat. ;)

                        @mickym dazu müsste ich erst einmal verstehen, was @rtwl wirklich will.

                        Nach euren Antworten bin ich mir da gar nicht mehr so sicher

                        Im Prinzip ist es nun klarer geworden, wobei Du noch entscheiden müsstest, wie oft Du Dir diese Daten holen möchtest.

                        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                        HomoranH 1 Antwort Letzte Antwort
                        0
                        • mickymM mickym

                          Nun ja - auch wenn ich dem Globalen Moderator mal widersprechen möchte, alles aus dem Geiste zu löschen, solltest Du Dich @rtwl immer ganz systematisch Deiner Aufgabenstellung nähern und das ist erst mal unabhängig von den Tools - wo bei ich auf diese noch zu sprechen komme.

                          Um sich dem ganzen logisch zu nähern gibt es ein einheitliches Schema - das man grundsätzlich im Kopf durchgehen sollte.

                          Fangen wir mal an:

                          1. Auslöser (= Trigger)

                          Egal was Du mit Deinem Hausautomationssystem machen möchtest brauchst Du immer einen Auslöser. Auslöser gibt es viele, aber Du musst Dir immer !!! am Anfang überlegen, wer oder was meinen Flow, meine Aktion auslösen soll.

                          Was gibt es für Auslöser:

                          • Sensoren: Sensoren liefern Daten und man kann nun entscheiden, ob man auf diese Daten reagieren möchte oder nicht. Im iobroker werden diese Sensoren oft über Adapter als Daten in den Objekten/Zuständen (=states) zur Verfügung gestellt. Manchmal triggern Sensoren auch nur und Du musst Dich selbst drum kümmern, Dir die Daten zu holen.
                          • Der Anwender, Mensch, der im Prinzip auf eine Taste in einer Visualisierung manuell einen Prozess anstößt.
                          • Ein zeitliches Ereignis: Das kann periodisch sein oder zu einem bestimmten Zeitpunkt.

                          Oft verknüpft man diese Auslöser miteinander. Also es soll nur auf eine Bewegung hin ein Licht geschaltet werden, wenn es Nacht ist. Ein Sensor liefert also den Trigger, der mit dem Zeitpunkt geprüft wird um dann eine Aktion auszulösen.

                          1. Das Sammeln von Daten:
                            Oft liefer die Sensoren über die Adapter automatisch die Daten. In Deinem Fall jedoch musst Du die Daten erst holen, in dem Du eine URL aufrufst und über eine API (Application Programming Interface) Dir diese Daten besorgst. Oft muss man sich auch von mehreren Stellen Daten holen, um später die geeignete Logik abzubilden. Man kann sich die Daten anfangs besorgen oder man besorgt sie sich, während man die Daten aufbereitet.

                          2. Die Datenverarbeitung:
                            Hier werden die Daten ggf. logisch miteinander in Beziehung gesetzt, um gewisse komplexere Zustände zu definieren, oder die Daten werden nur aufbereitet, wie in unseren Beispielen um eine Temperatur in °C oder die Luftfeuchtigkeit in % in den Datenpunkten anzeigen zu lassen.

                          3. Die Ausgabe - in Deinem Fall eben in die Datenpunkte. Es kann aber natürlich auch ein Schalten eines Gerätes, das Abspielen von Sound, ein E-Mail Ausgabe - was auch immer sein. Letztlich die Aktion, die Du beabsichtigst.

                          Die Tools mit den Du Auslöser verarbeiten oder erzeugen kannst, Daten sammeln kannst und verarbeiten kannst hast Du hier kennengelernt.

                          Dabei wird das halt nur unterschiedlich visualisiert, aber in der Regel werden die Daten sequentiell verarbeitet.

                          Hier mal die 3 Möglichkeiten zusammengefasst (in Node Red würdest Du Schleifen halt als Linien sehen, die sich überschneiden). Im Gegensatz zu den beiden anderen Tools ist der Programmfluss aber durch die Linien grafisch dargestellt:

                          screen.png

                          Du siehst letztlich arbeitet man sich beim Blockly und JS von oben nach unten durch, wobei durch Schleifen und Funktionen auch da drin gesprungen wird.

                          In NodeRed bewegt man sich in der Regel von links nach rechts, so wie Du einen Text lesen würdest.

                          Also Trigger, Daten holen, Daten verarbeiten, Ausgabe.

                          So nun zu Deiner Aufgabenstellung:

                          die json kommt von einem externen Gerät und kann jederzeit per URL im Netzwerk abgerufen werden (http://IP/weather.json) Diese soll dann auch als Quelle verwendet werden.

                          Im Allgemeinen kann ich DIr nur empfehlen immer die ganze Aufgabenstellung zu beschreiben, sonst gibt es solche Fragen wie @Homoran gestellt hat. ;)

                          @mickym dazu müsste ich erst einmal verstehen, was @rtwl wirklich will.

                          Nach euren Antworten bin ich mir da gar nicht mehr so sicher

                          Im Prinzip ist es nun klarer geworden, wobei Du noch entscheiden müsstest, wie oft Du Dir diese Daten holen möchtest.

                          HomoranH Nicht stören
                          HomoranH Nicht stören
                          Homoran
                          Global Moderator Administrators
                          schrieb am zuletzt editiert von Homoran
                          #15

                          @mickym sagte in json abfragen - Objekte erstellen:

                          auch wenn ich dem Globalen Moderator mal widersprechen möchte, alles aus dem Geiste zu löschen,

                          ...und dein Pamphlet, was ihn möglicherweise wieder unnötig erschlägt, wollte ich nach dem Leeren des Zwischenspeichers mit ihm erarbeiten, damit es einen höheren Lerneffekt hat, was er ja von uns erbeten hatte

                          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                          mickymM 1 Antwort Letzte Antwort
                          0
                          • HomoranH Homoran

                            @mickym sagte in json abfragen - Objekte erstellen:

                            auch wenn ich dem Globalen Moderator mal widersprechen möchte, alles aus dem Geiste zu löschen,

                            ...und dein Pamphlet, was ihn möglicherweise wieder unnötig erschlägt, wollte ich nach dem Leeren des Zwischenspeichers mit ihm erarbeiten, damit es einen höheren Lerneffekt hat, was er ja von uns erbeten hatte

                            mickymM Online
                            mickymM Online
                            mickym
                            Most Active
                            schrieb am zuletzt editiert von
                            #16

                            @homoran Ok ich halte mich raus.

                            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                            HomoranH 1 Antwort Letzte Antwort
                            0
                            • mickymM mickym

                              @homoran Ok ich halte mich raus.

                              HomoranH Nicht stören
                              HomoranH Nicht stören
                              Homoran
                              Global Moderator Administrators
                              schrieb am zuletzt editiert von
                              #17

                              @mickym sagte in json abfragen - Objekte erstellen:

                              @homoran Ok ich halte mich raus.

                              das Schlimme ist ja, dass da bei dir alles richtig ist.
                              Nur das ist für Einsteiger zuviel Information auf einmal.

                              Man muss selektiv auf mögliche Verständnishürden eingehen können, bevor der nächste Schritt gemacht wird

                              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                              mickymM 1 Antwort Letzte Antwort
                              0
                              • HomoranH Homoran

                                @mickym sagte in json abfragen - Objekte erstellen:

                                @homoran Ok ich halte mich raus.

                                das Schlimme ist ja, dass da bei dir alles richtig ist.
                                Nur das ist für Einsteiger zuviel Information auf einmal.

                                Man muss selektiv auf mögliche Verständnishürden eingehen können, bevor der nächste Schritt gemacht wird

                                mickymM Online
                                mickymM Online
                                mickym
                                Most Active
                                schrieb am zuletzt editiert von
                                #18

                                @homoran Nun jeder hat seine eigenen didaktischen Vorstellungen, wie er einen Zusammenhang glaubt verständlich vermitteln zu können und ich denke ich habe in diversen Threads durchaus gezeigt, dass ich hierbei schon manchem geholfen habe. Wenn Deine Vorgehensweise dann aber die einzig richtige ist, dann will ich mich hier nicht streiten oder auch nicht mehr die Mühe machen, einen Sachverhalt auf meine Weise darzustellen.

                                Wie gesagt mach Du es so, wie Du es Dir vorstellst - ich bin hier erst mal raus, außer mir werden konkrete Fragen von @rtwl gestellt.

                                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                HomoranH 1 Antwort Letzte Antwort
                                0
                                • mickymM mickym

                                  @homoran Nun jeder hat seine eigenen didaktischen Vorstellungen, wie er einen Zusammenhang glaubt verständlich vermitteln zu können und ich denke ich habe in diversen Threads durchaus gezeigt, dass ich hierbei schon manchem geholfen habe. Wenn Deine Vorgehensweise dann aber die einzig richtige ist, dann will ich mich hier nicht streiten oder auch nicht mehr die Mühe machen, einen Sachverhalt auf meine Weise darzustellen.

                                  Wie gesagt mach Du es so, wie Du es Dir vorstellst - ich bin hier erst mal raus, außer mir werden konkrete Fragen von @rtwl gestellt.

                                  HomoranH Nicht stören
                                  HomoranH Nicht stören
                                  Homoran
                                  Global Moderator Administrators
                                  schrieb am zuletzt editiert von Homoran
                                  #19

                                  @mickym sagte in json abfragen - Objekte erstellen:

                                  Wenn Deine Vorgehensweise dann aber die einzig richtige ist,

                                  das würde ich niemals behaupten!

                                  @mickym sagte in json abfragen - Objekte erstellen:

                                  außer mir werden konkrete Fragen von @rtwl gestellt.

                                  und genau darauf warte ich. Und ich dachte, das hätte ich auch so dargestellt, dass wir erst abwarten bis @rtwl sich eingelesen hat und dann Fragen stellt.

                                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                  1 Antwort Letzte Antwort
                                  0
                                  • rtwlR Offline
                                    rtwlR Offline
                                    rtwl
                                    schrieb am zuletzt editiert von
                                    #20

                                    zuerst einmal: Danke allen.

                                    Dein ewig langer Post unter:

                                    @mickym sagte in json abfragen - Objekte erstellen:

                                    Fangen wir mal an:

                                    ...hat mir schon geholfen, und eigentlich nicht erschreckt. Aber das konnte @Homoran natürlich nicht wissen. Ich finde beide Ansätze durchaus interessant und für mich als möglichkeit zum Lernen durchaus okay. Auch wenn ich jetzt noch nicht alles verstehe, werde ich den Beitrag in 1 Woche, 3 Monaten oder einem Jahr erneut lesen und dann "achsooo, das haben die gemeint" sagen.
                                    Nochmal kurz zu mir: Ich habe ein ausgesprochen gutes Excel wissen, und hab schon die verzweigtesten und verschachtelsten Excel Formeln erstellt. Am logischem denken wirds bei mir nicht scheitern. Auch hab ich aktuell die logiken meiner smarten Wohnung mittels Tasker (Android) erstellt und läuft wie es soll. Aber auch das natürlich mit Unterstützung.
                                    Demnächst steht der Umzug ins neue Haus an, und dafür hab ich mir den Raspberry mit ioBroker zugelegt, um die Steuerung auf eben diesen umzustellen.

                                    Da ich von javascript null Ahnung hab, und Blockly optisch mehr zusagt als nodered, würde ich gerne den weg mit Blockly gehen, falls das dann möglich ist.

                                    Am liebsten hätte ich eigentlich ein "fast" fertiges blockly-skript welches ich dann importieren und studieren kann, um daraus zu lernen.

                                    Als erste Frage: Welchen Block nimmt man um die json Daten von meiner URL in EINEN Datenpunkt (nennt man das überhaupt so?) zu bekommen. @Homoran Du hast ja im Screenshot die Daten als "Text" eingefügt.

                                    Vielen Dank schonmal.

                                    -Peter

                                    HomoranH 2 Antworten Letzte Antwort
                                    0
                                    • HomoranH Homoran

                                      @mickym dazu müsste ich erst einmal verstehen, was @rtwl wirklich will.
                                      Nach euren Antworten bin ich mir da gar nicht mehr so sicher.

                                      Die Aussage:
                                      @rtwl sagte in json abfragen - Objekte erstellen:

                                      Ich hab es zwar mit dem Adapter "Systeminfo Adapter to get data from systems" geschafft meine json abzufragen

                                      sagt mir gar nichts :-)

                                      Weder der Adapter, noch (oder vielleicht deswegen) wie man damit eine JSON abfragt - und wo?
                                      Ob jetzt das JSON irgendwo bereits vorliegt, oder ob es erneut abgefragt werden soll, womöglich direkt zerlegt

                                      rtwlR Offline
                                      rtwlR Offline
                                      rtwl
                                      schrieb am zuletzt editiert von
                                      #21

                                      @homoran sagte in json abfragen - Objekte erstellen:

                                      Die Aussage:
                                      @rtwl sagte in json abfragen - Objekte erstellen:

                                      Ich hab es zwar mit dem Adapter "Systeminfo Adapter to get data from systems" geschafft meine json abzufragen

                                      sagt mir gar nichts

                                      Hier meine bisherige "Lösung" (falls man das so sagen kann) - im Spoiler
                                      Falls es doch/euch interessiert :)


                                      Der Adapter:
                                      a749ced7-f97d-4462-bcf6-08441d57926a-image.png

                                      Die Einstellungen im Adapter: (zum testen nur 3 Ausgewählte Channels)
                                      4ab93c91-25a7-4978-9938-611fbc2a6008-image.png

                                      Die Objekte:
                                      e268c135-1768-4e8d-b811-3acbf63e6137-image.png

                                      Aber das ganze ist weniger Übersichtlich.

                                      -Peter

                                      1 Antwort Letzte Antwort
                                      0
                                      • rtwlR rtwl

                                        zuerst einmal: Danke allen.

                                        Dein ewig langer Post unter:

                                        @mickym sagte in json abfragen - Objekte erstellen:

                                        Fangen wir mal an:

                                        ...hat mir schon geholfen, und eigentlich nicht erschreckt. Aber das konnte @Homoran natürlich nicht wissen. Ich finde beide Ansätze durchaus interessant und für mich als möglichkeit zum Lernen durchaus okay. Auch wenn ich jetzt noch nicht alles verstehe, werde ich den Beitrag in 1 Woche, 3 Monaten oder einem Jahr erneut lesen und dann "achsooo, das haben die gemeint" sagen.
                                        Nochmal kurz zu mir: Ich habe ein ausgesprochen gutes Excel wissen, und hab schon die verzweigtesten und verschachtelsten Excel Formeln erstellt. Am logischem denken wirds bei mir nicht scheitern. Auch hab ich aktuell die logiken meiner smarten Wohnung mittels Tasker (Android) erstellt und läuft wie es soll. Aber auch das natürlich mit Unterstützung.
                                        Demnächst steht der Umzug ins neue Haus an, und dafür hab ich mir den Raspberry mit ioBroker zugelegt, um die Steuerung auf eben diesen umzustellen.

                                        Da ich von javascript null Ahnung hab, und Blockly optisch mehr zusagt als nodered, würde ich gerne den weg mit Blockly gehen, falls das dann möglich ist.

                                        Am liebsten hätte ich eigentlich ein "fast" fertiges blockly-skript welches ich dann importieren und studieren kann, um daraus zu lernen.

                                        Als erste Frage: Welchen Block nimmt man um die json Daten von meiner URL in EINEN Datenpunkt (nennt man das überhaupt so?) zu bekommen. @Homoran Du hast ja im Screenshot die Daten als "Text" eingefügt.

                                        Vielen Dank schonmal.

                                        HomoranH Nicht stören
                                        HomoranH Nicht stören
                                        Homoran
                                        Global Moderator Administrators
                                        schrieb am zuletzt editiert von Homoran
                                        #22

                                        @rtwl Danke für die Klar- und Vorstellung :-)

                                        @rtwl sagte in json abfragen - Objekte erstellen:

                                        würde ich gerne den weg mit Blockly gehen, falls das dann möglich ist.

                                        möglich ist es, ob es bei deinem Vorgehen beim Einsteigerniveau bleibt, werden wir dann sehen.
                                        Was ich als Endziel hatte bekomme ich selber noch nicht hin.

                                        @rtwl sagte in json abfragen - Objekte erstellen:

                                        Welchen Block nimmt man um die json Daten von meiner URL in EINEN Datenpunkt (nennt man das überhaupt so?) zu bekommen

                                        ja, so heisst das.
                                        Aber jetzt frage ich mich, warum in nur einen DP?

                                        Wenn ich das richtig verstanden hatte wolltest du etwas visualisieren.
                                        Da es sich um Temperatur und Feuchte handelt, wahrscheinlich auch irgendwann mal den Verlauf als Grafik.

                                        Dann braucht es natürlich (einzelne) Zahlen
                                        Bei deinen 12 Sensoren wären das dann 24 DPs vom Typ Zahl

                                        @rtwl sagte in json abfragen - Objekte erstellen:

                                        Du hast ja im Screenshot die Daten als "Text" eingefügt.

                                        weil ich es nur als debug Output ausgegeben hatte

                                        EDIT:
                                        Ich dachte du hast das JSON als ganzes in EINEM Datenpunkt

                                        @rtwl sagte in json abfragen - Objekte erstellen:

                                        Aber das ganze ist weniger Übersichtlich.

                                        aber anders wird es auf anderem Weg auch nicht
                                        Und alles was du brauchst hast du da

                                        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                        1 Antwort Letzte Antwort
                                        0
                                        • rtwlR Offline
                                          rtwlR Offline
                                          rtwl
                                          schrieb am zuletzt editiert von
                                          #23

                                          Mit EINEM Datenpunkt hab ich gemeint, dass ich dann weiter arbeiten kann, bzw lerne wie man quasi Datenpunkte erstellt. Natürlich ist das Ziel immer noch, alle 24 DPs zu erstellen jeweils mit der korrekten Zahl.

                                          Warum ich eine neue Lösung suche ist die Warnung im Log: "adapter.objects.getObjectList is deprecated, and will be removed in the future. Please use adapter.getObjectList/Async. Report this to Developer!"

                                          -Peter

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          737

                                          Online

                                          32.5k

                                          Benutzer

                                          81.8k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe