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. Skripten / Logik
  4. URL Request mit Blockly

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.5k

URL Request mit Blockly

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
12 Beiträge 3 Kommentatoren 4.6k Aufrufe
  • Ä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.
  • G Offline
    G Offline
    George_Best
    schrieb am zuletzt editiert von
    #3

    Ich komm einfach nicht weiter…

    Wie kann ich denn mein Objekt````
    arr_test

    
    Ich hoffe mir kann jemand helfen - ich versuch' es schon den ganzen Tag.
    1 Antwort Letzte Antwort
    0
    • DutchmanD Offline
      DutchmanD Offline
      Dutchman
      Developer Most Active Administrators
      schrieb am zuletzt editiert von
      #4

      Was möchtest du genau erreichen?

      Es sieht für mich so aus als ob die Webseite eine json oder XML zurück gibt.

      Wilste diese nun in ein object ablegen oder die darin enthaltenen Werte?

      Ein bespiel wie man json aus einer url abfragen kann habe ich letztens nach verlinkt, suche Mal nach Domoticz (bin gerade an Jahres sorry)

      –-----------------------

      Send from mobile device

      1 Antwort Letzte Antwort
      0
      • G Offline
        G Offline
        George_Best
        schrieb am zuletzt editiert von
        #5

        @Dutchman:

        Es sieht für mich so aus als ob die Webseite eine json oder XML zurück gibt.

        Wilste diese nun in ein object ablegen oder die darin enthaltenen Werte?

        e `

        Ich möchte den Zustand meiner ETA-Heizung auslesen. Die Heizung gibt mir auf den Request

        http://192.168.178.13:8080/user/var//112/10021/0/0/12000
        

        eine Antwort

        "version":"1.0","xmlns":"http://www.eta.co.at/rest/v1","value": "_":"2006","uri":"/user/var//112/10021/0/0/12000","strValue":"Heizen","unit":"","decPlaces":"0","scaleFactor":"1","advTextOffset":"2000"
        

        Ich habe es bereits geschafft in einem Javascript (siehe oben) den Antwort-String (oder XML?) in eine (scheinbar lokale) Variable```
        arr_test = [][/code] zu schreiben.

        Nun würde ich gerne auf diese Variable bzw. auf den String in einem anderen Javascript und/oder Blockly daraufzugreifen. Und genau daran scheitere ich.

        1 Antwort Letzte Antwort
        0
        • DutchmanD Offline
          DutchmanD Offline
          Dutchman
          Developer Most Active Administrators
          schrieb am zuletzt editiert von
          #6

          Und brauchst dir dafür den kompletten String oder eine Variable aus diesem String ?

          –-----------------------

          Send from mobile device

          1 Antwort Letzte Antwort
          0
          • G Offline
            G Offline
            George_Best
            schrieb am zuletzt editiert von
            #7

            Den kompletten String.

            Den Wert bekomm ich über Parser oder in Blockly via URL-Request. Der Wert ist aber leider nur ein Code (z.b. 2006). Im String steht der Status im Klartext (strValue":"Heizen").

            1 Antwort Letzte Antwort
            0
            • DutchmanD Offline
              DutchmanD Offline
              Dutchman
              Developer Most Active Administrators
              schrieb am zuletzt editiert von
              #8

              Ok,

              Variabelen existieren nur im entsprechenden Script. Wenn du auch aus anderen scripten darauf zugreifen möchtest solltest du mit objecten arbeiten

              1. erstellen dir ein neues object nach beliebigen Namen

              2. schreibe den String in das object

              3. in anderen Script: hohle die den Wert aus den object

              –-----------------------

              Send from mobile device

              1 Antwort Letzte Antwort
              0
              • G Offline
                G Offline
                George_Best
                schrieb am zuletzt editiert von
                #9

                Guten Morgen,

                vielen herzlichen Dank, Dutchman, für deine Unterstützung und deine Geduld.

                Ich stelle mich leider viel zu blöd an.

                Ich habe jetzt ein Objekt````
                javascript.0.Test_Objekt_JS

                
                (sieht als RAW so aus: 
                >! {
                >! "common": {
                >! "name": "Test_Objekt_JS",
                >! "role": "",
                >! "type": "object",
                >! "desc": "Manuell erzeugt",
                >! "read": true,
                >! "write": true
                >! },
                >! "native": {},
                >! "acl": {
                >! "object": 1638,
                >! "owner": "system.user.admin",
                >! "ownerGroup": "system.group.administrator",
                >! "state": 1638
                >! },
                >! "_id": "javascript.0.Test_Objekt_JS",
                >! "type": "state"
                >! })
                
                Aber wie schreibe ich den String nun in dieses Objekt?
                

                "javascript.0.Test_Objekt_JS"/Test_Objekt_JS/ = arr_test;

                javascript.0.Test_Objekt_JS = arr_test;

                Test_Objekt_JS = arr_test;

                
                Sorry - aber ich komm immer noch nicht weiter. Über jegliche Hilfe bin ich sehr, sehr dankbar!
                1 Antwort Letzte Antwort
                0
                • DutchmanD Offline
                  DutchmanD Offline
                  Dutchman
                  Developer Most Active Administrators
                  schrieb am zuletzt editiert von
                  #10

                  @George_Best:

                  Guten Morgen,

                  vielen herzlichen Dank, Dutchman, für deine Unterstützung und deine Geduld. `

                  gerne :)

                  @George_Best:

                  Ich stelle mich leider viel zu blöd an. `

                  Ganz und garnicht du probierst und man muss ja erstmal rausfinden wie alles geht ;)

                  @George_Best:

                  Ich habe jetzt ein Objekt````
                  javascript.0.Test_Objekt_JS

                  
                  Aber wie schreibe ich den String nun in dieses Objekt?
                  

                  "javascript.0.Test_Objekt_JS"/Test_Objekt_JS/ = arr_test;
                  ````erscheint eine Fehlermeldung "ReferenceError: Invalid left-hand side in assignment" `

                  Object mit daten fuellen machst du mit setstate, in deinem fall muesste das dan sein:

                  setState (javascript.0.Test_Objekt_JS, arr_test);
                  
                  

                  siehe dazu fuer mehr informationen die javascript adapter docu: https://github.com/ioBroker/ioBroker.ja … d#setstate

                  1 Antwort Letzte Antwort
                  0
                  • AlCalzoneA Offline
                    AlCalzoneA Offline
                    AlCalzone
                    Developer
                    schrieb am zuletzt editiert von
                    #11

                    @Dutchman:

                    setState (javascript.0.Test_Objekt_JS, arr_test);
                    
                    ```` `  
                    

                    Das muss

                    setState("javascript.0.Test_Objekt_JS", arr_test);
                    

                    heißen (mit Anführungszeichen).

                    Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                    1 Antwort Letzte Antwort
                    0
                    • G Offline
                      G Offline
                      George_Best
                      schrieb am zuletzt editiert von
                      #12

                      Ich werd narrisch :D

                      Genau so funktioniert es! Vielen, herzlichen Dank an Dutchman und AlCalzone.

                      Ich hatte schon in vielen anderen Foren-Beiträgen den Hinweis mit setState gelesen. Ich konnte es aber nie richtig in meinem Script umsetzen (habe z.B. setState("javascript.0.Test_Objekt_JS").val = arr_test; versucht usw…). Aber jetzt habe ich es verstanden.

                      Ich poste hier mal für alle anderen Suchenden meine Lösung.

                      Use-Case: Meine ETA-Heizung (mit Web-Server) liefert mir auf einen URL-Request eine entsprechende Antwort als XML (siehe Beispiel oben). Ich möchte nun diese Antwort in ein (globales) Objekt speichern. Ziel ist diesen String in JS/ Blockly/ vis weiterzuverwenden.

                      Das Objekt "javascript.0.Test_Objekt_JS" bzw. Datenpunkt habe ich in ioBroker im Reiter "Objekte" als Objekt definiert

                      Das Script sieht so aus:

                      var parseString = require('xml2js').parseString;
                      var request = require('request');
                      arr_test = [];
                      
                      request('http://192.168.178.13:8080/user/var//112/10021/0/0/12000', function (error, response, body) {
                          if (!error && response.statusCode == 200) {
                            parseString(body, {
                                  explicitArray: false,
                                  mergeAttrs: true
                               }, 
                               function (err, result) {
                                  if (err) {
                                     log("Fehler: " + err);
                                  } else {
                      
                                    arr_test = (JSON.stringify(result.eta));
                                    setState("javascript.0.Test_Objekt_JS", arr_test);
                                  }
                               });
                         } else  {
                           log(error);
                         }
                      });
                      

                      Kleiner Schönheitsfehler: Es erscheint im log die Warnung````
                      10:52:30.773 [warn] javascript.0 at script.js.Skript1:30:15
                      10:52:30.778 [warn] javascript.0 at Request._callback (script.js.Skript1:20:7)

                      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

                      732

                      Online

                      32.4k

                      Benutzer

                      81.6k

                      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