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. Blockly
  5. HttpGet liefert 403

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.2k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.2k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.6k

HttpGet liefert 403

Geplant Angeheftet Gesperrt Verschoben Blockly
35 Beiträge 5 Kommentatoren 2.7k Aufrufe 3 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.
  • David G.D David G.

    Hallo,

    in meinem Script zum auflösen von GPS-Koordinaten über OSM habe ich seit dem 14.06 Probleme.

    Anbei der Bereich mit dem HttpGet Block
    Screenshot_20240619_065907_Chrome.jpg

    Ich meine es lief erstmal, seit ich von request umgestellt hatte.

    Nun wird die Adresse nicht mehr aufgelöst. Als response kommt der Status Code 403 (forbidden).

    Wenn ich die generierte URL im Browser aufrufe erhalte ich sofort die json.
    https://nominatim.openstreetmap.org/reverse?lat=51.169926&lon=7.079132&format=json

    Der Test hat im selben Netz stattgefunden, glaube also nicht, dass meine IP geblockt wurde.

    Ro75R Offline
    Ro75R Offline
    Ro75
    schrieb am zuletzt editiert von
    #8

    @david-g ich hatte das selbe Problem und die Lösung. Da kommen mehrere Faktoren.

    1. Rate-Limit von 2500 pro Tag
    2. User-Agent: dieser sollte nicht zu "eindeutig" sein.

    Habe mein Skript umgebaut und ein Random User-Agent eingebaut in Verbindung mit httpget. Und nun geht alles wieder.

    Ro75.

    SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

    HomoranH David G.D 2 Antworten Letzte Antwort
    1
    • Ro75R Ro75

      @david-g ich hatte das selbe Problem und die Lösung. Da kommen mehrere Faktoren.

      1. Rate-Limit von 2500 pro Tag
      2. User-Agent: dieser sollte nicht zu "eindeutig" sein.

      Habe mein Skript umgebaut und ein Random User-Agent eingebaut in Verbindung mit httpget. Und nun geht alles wieder.

      Ro75.

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

      @ro75 sagte in HttpGet liefert 403:

      Rate-Limit von 2500 pro Tag

      das wäre aber schon heftig, wenn das überschritten würde!
      Das sind 1.7 Anfragen pro Minute rund um die Uhr

      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 -

      Ro75R 1 Antwort Letzte Antwort
      0
      • Ro75R Ro75

        @david-g ich hatte das selbe Problem und die Lösung. Da kommen mehrere Faktoren.

        1. Rate-Limit von 2500 pro Tag
        2. User-Agent: dieser sollte nicht zu "eindeutig" sein.

        Habe mein Skript umgebaut und ein Random User-Agent eingebaut in Verbindung mit httpget. Und nun geht alles wieder.

        Ro75.

        David G.D Offline
        David G.D Offline
        David G.
        schrieb am zuletzt editiert von David G.
        #10

        @ro75

        Das hört sich ja gut an.
        Die 2500 habe ich nicht. Bei 2 Adressen alle 5min komme ich auf 576.

        Dann wird es der Useragend sein.
        Ich warte mal, ob @haus-automatisierung einen Vorschlag für eine Lösung mittels Blockly hat.

        Sonst wird es wohl eine JS Funktion werden müssen an die ich die Koordinaten übergebe.

        Edit
        Ich sehe grad, ich aktualisiere doch jede Minute den Standort. Trigger aber nur auf Veränderung.
        Mal sehen, ob ich das minimiert bekomme. Zb Nur wenn die Änderung größer als x Meter ist.

        Zeigt eure Lovelace-Visualisierung klick
        (Auch ideal um sich Anregungen zu holen)

        Meine Tabellen für eure Visualisierung klick

        haus-automatisierungH 1 Antwort Letzte Antwort
        0
        • HomoranH Homoran

          @ro75 sagte in HttpGet liefert 403:

          Rate-Limit von 2500 pro Tag

          das wäre aber schon heftig, wenn das überschritten würde!
          Das sind 1.7 Anfragen pro Minute rund um die Uhr

          Ro75R Offline
          Ro75R Offline
          Ro75
          schrieb am zuletzt editiert von
          #11

          @homoran ja so ist es. Und wenn man weiter googelt kommt der User-Agent ins spiel.

          Hier mal mein Code:

          function GeoState(lat, lon, sDP='') {
              httpGet('https://nominatim.openstreetmap.org/reverse?format=geojson&lat='+lat+'&lon='+lon, { timeout: 15000,"headers":{"User-Agent":"'" + RUA() + "'"}}, (error, response) => {
                  if (!error  && response.statusCode == 200) {
                      var info = JSON.parse(response.data);
                      var dummy = JSON.stringify(info);
                      dummy = JSON.parse(dummy).features[0].properties.address;
                      setState(sDP, JSON.stringify(dummy), true);
                      info = '';
                      dummy = '';
                  } else {
                      console.error('Nominatim: '+response.statusCode);
                  }    
              })
          }
          
          //Aufruf:
          GeoState (getState('owntracks.0.users.XXXXX.latitude').val, getState('owntracks.0.users.XXXXX.longitude').val, XXXXXZIEL_JSONDPXXXXX);
          
          
          function UAChrome() {
              const Plattform = Math.floor(Math.random() * 2)
              const chromeVersion = Math.floor(Math.random() * 20) + 60;
              const webkitVersion = Math.floor(Math.random() * 700) + 500;
              const osPlatform = Plattform == 1 ? 'Win64; x64' : 'Macintosh; Intel Mac OS X 10_15_0';
              const userAgent = `Mozilla/5.0 (${osPlatform}) AppleWebKit/${webkitVersion}.36 (KHTML, like Gecko) Chrome/${chromeVersion}.0.3163.100 Safari/${webkitVersion}.36`;
              return userAgent;
          }
          
          function UAFirefox() {
              const Plattform = Math.floor(Math.random() * 2)
              const firefoxVersion = Math.floor(Math.random() * 5) + 55;
              const geckoVersion = Math.floor(Math.random() * 30) + 20100101;
              const osPlatform = Plattform == 1 ? 'Win64; x64' : 'Macintosh; Intel Mac OS X 10_15_0';
              const userAgent = `Mozilla/5.0 (${osPlatform}; rv: ${firefoxVersion}.0) Gecko/${geckoVersion} Firefox/${firefoxVersion}.0`;
              return userAgent;
          }
          
          function UASafari() {
              const Plattform = Math.floor(Math.random() * 2)
              const safariVersion = Math.floor(Math.random() * 5) + 10;
              const osPlatform = Plattform == 1 ? 'Win64; x64' : 'Macintosh; Intel Mac OS X 10_15_0';
              const userAgent = `Mozilla/5.0 (${osPlatform}) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/${safariVersion}.1.15 Safari/605.1.15`;
              return userAgent;
            }
          
          function UAAndroid() {
              const androidVersion = Math.floor(Math.random() * 5) + 5;
              const chromeVersion = Math.floor(Math.random() * 20) + 60;
              const webkitVersion = Math.floor(Math.random() * 700) + 500;
              const osPlatform = `Linux; Android ${androidVersion}.${Math.floor(Math.random() * 10)}; en-us; Nexus 6 Build/LYZ28M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/${chromeVersion}.0.3163.98 Mobile Safari/${webkitVersion}.36`;
              const userAgent = `Mozilla/5.0 (${osPlatform}`;
              return userAgent;
          }
          
          function UAIos() {
              const iosVersion = Math.floor(Math.random() * 5) + 9;
              const safariVersion = Math.floor(Math.random() * 5) + 600;
              const webkitVersion = Math.floor(Math.random() * 700) + 500;
              const osPlatform = `CPU iPhone OS ${iosVersion}_${Math.floor(Math.random() * 10)} like Mac OS X) AppleWebKit/${webkitVersion}.60 (KHTML, like Gecko) Version/${safariVersion}.0 Mobile/15E148 Safari/${webkitVersion}.60`;
              const userAgent = `Mozilla/5.0 (${osPlatform}`;
              return userAgent;
          }
          
          function RUA() {
              const UA = Math.floor(Math.random() * 4)
              var UserAgent = '';
          
              if (UA == 0) {
                  UserAgent = UAChrome();
              } else if (UA == 1) {
                  UserAgent = UAFirefox();
              } else if (UA == 2) {
                  UserAgent = UASafari();
              } else if (UA == 3) {
                  UserAgent = UAAndroid();
              } else if (UA == 4) {
                  UserAgent = UAIos();
              }
              return UserAgent;
          }
          

          In diesem Beispiel kommt immer ein neuer User-Agent ins spiel. Ich habe das bei mir noch geändert, dass aller 6 Stunden nur ein neuer Agent zum tragen kommt.

          Ro75.

          SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

          1 Antwort Letzte Antwort
          0
          • David G.D David G.

            @ro75

            Das hört sich ja gut an.
            Die 2500 habe ich nicht. Bei 2 Adressen alle 5min komme ich auf 576.

            Dann wird es der Useragend sein.
            Ich warte mal, ob @haus-automatisierung einen Vorschlag für eine Lösung mittels Blockly hat.

            Sonst wird es wohl eine JS Funktion werden müssen an die ich die Koordinaten übergebe.

            Edit
            Ich sehe grad, ich aktualisiere doch jede Minute den Standort. Trigger aber nur auf Veränderung.
            Mal sehen, ob ich das minimiert bekomme. Zb Nur wenn die Änderung größer als x Meter ist.

            haus-automatisierungH Offline
            haus-automatisierungH Offline
            haus-automatisierung
            Developer Most Active
            schrieb am zuletzt editiert von
            #12

            @david-g sagte in HttpGet liefert 403:

            Ich warte mal, ob @haus-automatisierung einen Vorschlag für eine Lösung mittels Blockly hat.

            Ich habe lange überlegt, ob ich eigene HTTP-Header auch im Blockly-Baustein erlaube. Aber nach den letzten Wochen hier, sind die meisten schon mit den einfachsten Bautein-Kombinationen überfordert. Selbst der neue http POST-Baustein überfordert schon die meisten...

            Also ich möchte den erstmal nicht noch komplexer machen.

            🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
            🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
            📚 Meine inoffizielle ioBroker Dokumentation

            1 Antwort Letzte Antwort
            2
            • David G.D David G.

              Hallo,

              in meinem Script zum auflösen von GPS-Koordinaten über OSM habe ich seit dem 14.06 Probleme.

              Anbei der Bereich mit dem HttpGet Block
              Screenshot_20240619_065907_Chrome.jpg

              Ich meine es lief erstmal, seit ich von request umgestellt hatte.

              Nun wird die Adresse nicht mehr aufgelöst. Als response kommt der Status Code 403 (forbidden).

              Wenn ich die generierte URL im Browser aufrufe erhalte ich sofort die json.
              https://nominatim.openstreetmap.org/reverse?lat=51.169926&lon=7.079132&format=json

              Der Test hat im selben Netz stattgefunden, glaube also nicht, dass meine IP geblockt wurde.

              Ro75R Offline
              Ro75R Offline
              Ro75
              schrieb am zuletzt editiert von
              #13

              @david-g sagte in HttpGet liefert 403:

              Der Test hat im selben Netz stattgefunden, glaube also nicht, dass meine IP geblockt wurde.

              Die Beobachtung ist korrekt. Nominatim blockt nicht eine spezielle IP, sondern einen IP-Adressbereich in Verbindung mit dem User-Agent.

              Daher läuft der Aufruf vom PC ohne Probleme und der Linux-Server mit ioBroker (httpget mit vermutlich immer dem gleichen User-Agent - sofern nichts übergeben) wird geblockt.

              Ro75.

              SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

              David G.D 1 Antwort Letzte Antwort
              0
              • Ro75R Ro75

                @david-g sagte in HttpGet liefert 403:

                Der Test hat im selben Netz stattgefunden, glaube also nicht, dass meine IP geblockt wurde.

                Die Beobachtung ist korrekt. Nominatim blockt nicht eine spezielle IP, sondern einen IP-Adressbereich in Verbindung mit dem User-Agent.

                Daher läuft der Aufruf vom PC ohne Probleme und der Linux-Server mit ioBroker (httpget mit vermutlich immer dem gleichen User-Agent - sofern nichts übergeben) wird geblockt.

                Ro75.

                David G.D Offline
                David G.D Offline
                David G.
                schrieb am zuletzt editiert von
                #14

                @ro75

                Weist du, ob man von selber freigegeben wird nach einer gewissen Zeit oder man es beantragen muss?

                Zeigt eure Lovelace-Visualisierung klick
                (Auch ideal um sich Anregungen zu holen)

                Meine Tabellen für eure Visualisierung klick

                Ro75R 1 Antwort Letzte Antwort
                0
                • David G.D David G.

                  @ro75

                  Weist du, ob man von selber freigegeben wird nach einer gewissen Zeit oder man es beantragen muss?

                  Ro75R Offline
                  Ro75R Offline
                  Ro75
                  schrieb am zuletzt editiert von
                  #15

                  @david-g brauchst gar nichts machen. Einfach mal ne Stunde pausieren und zukünftig aber mit dem User-Agent in httpget arbeiten!

                  Ro75.

                  SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

                  David G.D 1 Antwort Letzte Antwort
                  0
                  • Ro75R Ro75

                    @david-g brauchst gar nichts machen. Einfach mal ne Stunde pausieren und zukünftig aber mit dem User-Agent in httpget arbeiten!

                    Ro75.

                    David G.D Offline
                    David G.D Offline
                    David G.
                    schrieb am zuletzt editiert von
                    #16

                    @ro75

                    Bist du auch ein wenig fit in Blockly?

                    Kannst du mir sagen, wie deine beiden Scripte aussehen müssten, um die beiden Funktionen zu befüllen?

                    Screenshot_20240619_130027_Chrome.jpg

                    Zeigt eure Lovelace-Visualisierung klick
                    (Auch ideal um sich Anregungen zu holen)

                    Meine Tabellen für eure Visualisierung klick

                    Ro75R haus-automatisierungH 2 Antworten Letzte Antwort
                    0
                    • David G.D David G.

                      @ro75

                      Bist du auch ein wenig fit in Blockly?

                      Kannst du mir sagen, wie deine beiden Scripte aussehen müssten, um die beiden Funktionen zu befüllen?

                      Screenshot_20240619_130027_Chrome.jpg

                      Ro75R Offline
                      Ro75R Offline
                      Ro75
                      schrieb am zuletzt editiert von
                      #17

                      @david-g Blockly nicht mein Ding. Nur JS.

                      Ro75.

                      SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

                      1 Antwort Letzte Antwort
                      0
                      • David G.D David G.

                        @ro75

                        Bist du auch ein wenig fit in Blockly?

                        Kannst du mir sagen, wie deine beiden Scripte aussehen müssten, um die beiden Funktionen zu befüllen?

                        Screenshot_20240619_130027_Chrome.jpg

                        haus-automatisierungH Offline
                        haus-automatisierungH Offline
                        haus-automatisierung
                        Developer Most Active
                        schrieb am zuletzt editiert von
                        #18

                        @david-g sagte in HttpGet liefert 403:

                        um die beiden Funktionen zu befüllen

                        Warum zwei Funktionen? Eine reicht doch?!

                        🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                        🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                        📚 Meine inoffizielle ioBroker Dokumentation

                        David G.D 1 Antwort Letzte Antwort
                        0
                        • haus-automatisierungH haus-automatisierung

                          @david-g sagte in HttpGet liefert 403:

                          um die beiden Funktionen zu befüllen

                          Warum zwei Funktionen? Eine reicht doch?!

                          David G.D Offline
                          David G.D Offline
                          David G.
                          schrieb am zuletzt editiert von
                          #19

                          @haus-automatisierung

                          Darf auch gerne eine sein wo ich nur Koordinaten übergebe, hatte es nur so aufgeteilt da es von @Ro75 2 Teile waren.

                          Zeigt eure Lovelace-Visualisierung klick
                          (Auch ideal um sich Anregungen zu holen)

                          Meine Tabellen für eure Visualisierung klick

                          Ro75R haus-automatisierungH 2 Antworten Letzte Antwort
                          0
                          • David G.D David G.

                            @haus-automatisierung

                            Darf auch gerne eine sein wo ich nur Koordinaten übergebe, hatte es nur so aufgeteilt da es von @Ro75 2 Teile waren.

                            Ro75R Offline
                            Ro75R Offline
                            Ro75
                            schrieb am zuletzt editiert von
                            #20

                            @david-g der erste Teil war die eigentliche Abfrage von Nominatim. Der zweite Teil ist der zufällige User-Agent, der von der ersten mit aufgerufen wird. Nur bessere Übersicht.

                            Ro75.

                            SERVER = Beelink U59 16GB DDR4 RAM 512GB SSD, FB 7490, FritzDect 200+301+440, ConBee II, Zigbee Aqara Sensoren + NOUS A1Z, NOUS A1T, Philips Hue ** ioBroker, REDIS, influxdb2, Grafana, PiHole, Plex-Mediaserver, paperless-ngx (Docker), MariaDB + phpmyadmin *** VIS-Runtime = Intel NUC 8GB RAM 128GB SSD + 24" Touchscreen

                            1 Antwort Letzte Antwort
                            0
                            • David G.D David G.

                              @haus-automatisierung

                              Darf auch gerne eine sein wo ich nur Koordinaten übergebe, hatte es nur so aufgeteilt da es von @Ro75 2 Teile waren.

                              haus-automatisierungH Offline
                              haus-automatisierungH Offline
                              haus-automatisierung
                              Developer Most Active
                              schrieb am zuletzt editiert von haus-automatisierung
                              #21

                              @david-g

                              <xml xmlns="https://developers.google.com/blockly/xml">
                                <variables>
                                  <variable id="r,(xv@.d$c;=YdJMPX80">lon</variable>
                                  <variable id="g{2,u1PfjN1:=CyqH3*m">lat</variable>
                                  <variable id="-@Osx@[T`D-%M3P0(~3!">sDP</variable>
                                </variables>
                                <block type="procedures_defcustomnoreturn" id="^(d~V_hm.^xis(f6DkUY" x="88" y="188">
                                  <mutation statements="false">
                                    <arg name="lon" varid="r,(xv@.d$c;=YdJMPX80"></arg>
                                    <arg name="lat" varid="g{2,u1PfjN1:=CyqH3*m"></arg>
                                    <arg name="sDP" varid="-@Osx@[T`D-%M3P0(~3!"></arg>
                                  </mutation>
                                  <field name="NAME">osmResolve</field>
                                  <field name="SCRIPT">ZnVuY3Rpb24gVUFDaHJvbWUoKSB7CiAgICBjb25zdCBQbGF0dGZvcm0gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyKQogICAgY29uc3QgY2hyb21lVmVyc2lvbiA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDIwKSArIDYwOwogICAgY29uc3Qgd2Via2l0VmVyc2lvbiA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDcwMCkgKyA1MDA7CiAgICBjb25zdCBvc1BsYXRmb3JtID0gUGxhdHRmb3JtID09IDEgPyAnV2luNjQ7IHg2NCcgOiAnTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xNV8wJzsKICAgIGNvbnN0IHVzZXJBZ2VudCA9IGBNb3ppbGxhLzUuMCAoJHtvc1BsYXRmb3JtfSkgQXBwbGVXZWJLaXQvJHt3ZWJraXRWZXJzaW9ufS4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8ke2Nocm9tZVZlcnNpb259LjAuMzE2My4xMDAgU2FmYXJpLyR7d2Via2l0VmVyc2lvbn0uMzZgOwogICAgcmV0dXJuIHVzZXJBZ2VudDsKfQogCmZ1bmN0aW9uIFVBRmlyZWZveCgpIHsKICAgIGNvbnN0IFBsYXR0Zm9ybSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDIpCiAgICBjb25zdCBmaXJlZm94VmVyc2lvbiA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDUpICsgNTU7CiAgICBjb25zdCBnZWNrb1ZlcnNpb24gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAzMCkgKyAyMDEwMDEwMTsKICAgIGNvbnN0IG9zUGxhdGZvcm0gPSBQbGF0dGZvcm0gPT0gMSA/ICdXaW42NDsgeDY0JyA6ICdNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzE1XzAnOwogICAgY29uc3QgdXNlckFnZW50ID0gYE1vemlsbGEvNS4wICgke29zUGxhdGZvcm19OyBydjogJHtmaXJlZm94VmVyc2lvbn0uMCkgR2Vja28vJHtnZWNrb1ZlcnNpb259IEZpcmVmb3gvJHtmaXJlZm94VmVyc2lvbn0uMGA7CiAgICByZXR1cm4gdXNlckFnZW50Owp9CiAKZnVuY3Rpb24gVUFTYWZhcmkoKSB7CiAgICBjb25zdCBQbGF0dGZvcm0gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyKQogICAgY29uc3Qgc2FmYXJpVmVyc2lvbiA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDUpICsgMTA7CiAgICBjb25zdCBvc1BsYXRmb3JtID0gUGxhdHRmb3JtID09IDEgPyAnV2luNjQ7IHg2NCcgOiAnTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xNV8wJzsKICAgIGNvbnN0IHVzZXJBZ2VudCA9IGBNb3ppbGxhLzUuMCAoJHtvc1BsYXRmb3JtfSkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLyR7c2FmYXJpVmVyc2lvbn0uMS4xNSBTYWZhcmkvNjA1LjEuMTVgOwogICAgcmV0dXJuIHVzZXJBZ2VudDsKICB9CiAKZnVuY3Rpb24gVUFBbmRyb2lkKCkgewogICAgY29uc3QgYW5kcm9pZFZlcnNpb24gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiA1KSArIDU7CiAgICBjb25zdCBjaHJvbWVWZXJzaW9uID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjApICsgNjA7CiAgICBjb25zdCB3ZWJraXRWZXJzaW9uID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNzAwKSArIDUwMDsKICAgIGNvbnN0IG9zUGxhdGZvcm0gPSBgTGludXg7IEFuZHJvaWQgJHthbmRyb2lkVmVyc2lvbn0uJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMCl9OyBlbi11czsgTmV4dXMgNiBCdWlsZC9MWVoyOE0pIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8ke2Nocm9tZVZlcnNpb259LjAuMzE2My45OCBNb2JpbGUgU2FmYXJpLyR7d2Via2l0VmVyc2lvbn0uMzZgOwogICAgY29uc3QgdXNlckFnZW50ID0gYE1vemlsbGEvNS4wICgke29zUGxhdGZvcm19YDsKICAgIHJldHVybiB1c2VyQWdlbnQ7Cn0KIApmdW5jdGlvbiBVQUlvcygpIHsKICAgIGNvbnN0IGlvc1ZlcnNpb24gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiA1KSArIDk7CiAgICBjb25zdCBzYWZhcmlWZXJzaW9uID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNSkgKyA2MDA7CiAgICBjb25zdCB3ZWJraXRWZXJzaW9uID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNzAwKSArIDUwMDsKICAgIGNvbnN0IG9zUGxhdGZvcm0gPSBgQ1BVIGlQaG9uZSBPUyAke2lvc1ZlcnNpb259XyR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTApfSBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC8ke3dlYmtpdFZlcnNpb259LjYwIChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi8ke3NhZmFyaVZlcnNpb259LjAgTW9iaWxlLzE1RTE0OCBTYWZhcmkvJHt3ZWJraXRWZXJzaW9ufS42MGA7CiAgICBjb25zdCB1c2VyQWdlbnQgPSBgTW96aWxsYS81LjAgKCR7b3NQbGF0Zm9ybX1gOwogICAgcmV0dXJuIHVzZXJBZ2VudDsKfQogCmZ1bmN0aW9uIFJVQSgpIHsKICAgIGNvbnN0IFVBID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNCk7CiAKICAgIGlmIChVQSA9PSAwKSB7CiAgICAgICAgcmV0dXJuIFVBQ2hyb21lKCk7CiAgICB9IGVsc2UgaWYgKFVBID09IDEpIHsKICAgICAgICByZXR1cm4gVUFGaXJlZm94KCk7CiAgICB9IGVsc2UgaWYgKFVBID09IDIpIHsKICAgICAgICByZXR1cm4gVUFTYWZhcmkoKTsKICAgIH0gZWxzZSBpZiAoVUEgPT0gMykgewogICAgICAgIHJldHVybiBVQUFuZHJvaWQoKTsKICAgIH0gZWxzZSBpZiAoVUEgPT0gNCkgewogICAgICAgIHJldHVybiBVQUlvcygpOwogICAgfQoKICAgIHJldHVybiAnJzsKfQoKaHR0cEdldCgKICAgIGBodHRwczovL25vbWluYXRpbS5vcGVuc3RyZWV0bWFwLm9yZy9yZXZlcnNlP2Zvcm1hdD1nZW9qc29uJmxhdD0ke2xhdH0mbG9uPSR7bG9ufWAsCiAgICB7CiAgICAgICAgdGltZW91dDogMTUwMDAsCiAgICAgICAgaGVhZGVyczogewogICAgICAgICAgICAnVXNlci1BZ2VudCc6IFJVQSgpLAogICAgICAgIH0sCiAgICB9LAogICAgKGVyciwgcmVzcG9uc2UpID0+IHsKICAgICAgICBpZiAoIWVyciAgJiYgcmVzcG9uc2Uuc3RhdHVzQ29kZSA9PSAyMDApIHsKICAgICAgICAgICAgY29uc3QgaW5mbyA9IEpTT04ucGFyc2UocmVzcG9uc2UuZGF0YSk7CiAgICAgICAgICAgIGNvbnN0IGFkZHJlc3MgPSBpbmZvLmZlYXR1cmVzWzBdLnByb3BlcnRpZXMuYWRkcmVzczsKCiAgICAgICAgICAgIHNldFN0YXRlKHNEUCwgSlNPTi5zdHJpbmdpZnkoYWRkcmVzcyksIHRydWUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYE5vbWluYXRpbTogJHtyZXNwb25zZS5zdGF0dXNDb2RlfWApOwogICAgICAgIH0KICAgIH0KKTsK</field>
                                  <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                </block>
                              </xml>
                              

                              Screenshot 2024-06-19 at 13.35.30.png

                              🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                              🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                              📚 Meine inoffizielle ioBroker Dokumentation

                              David G.D 1 Antwort Letzte Antwort
                              1
                              • haus-automatisierungH haus-automatisierung

                                @david-g

                                <xml xmlns="https://developers.google.com/blockly/xml">
                                  <variables>
                                    <variable id="r,(xv@.d$c;=YdJMPX80">lon</variable>
                                    <variable id="g{2,u1PfjN1:=CyqH3*m">lat</variable>
                                    <variable id="-@Osx@[T`D-%M3P0(~3!">sDP</variable>
                                  </variables>
                                  <block type="procedures_defcustomnoreturn" id="^(d~V_hm.^xis(f6DkUY" x="88" y="188">
                                    <mutation statements="false">
                                      <arg name="lon" varid="r,(xv@.d$c;=YdJMPX80"></arg>
                                      <arg name="lat" varid="g{2,u1PfjN1:=CyqH3*m"></arg>
                                      <arg name="sDP" varid="-@Osx@[T`D-%M3P0(~3!"></arg>
                                    </mutation>
                                    <field name="NAME">osmResolve</field>
                                    <field name="SCRIPT">ZnVuY3Rpb24gVUFDaHJvbWUoKSB7CiAgICBjb25zdCBQbGF0dGZvcm0gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyKQogICAgY29uc3QgY2hyb21lVmVyc2lvbiA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDIwKSArIDYwOwogICAgY29uc3Qgd2Via2l0VmVyc2lvbiA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDcwMCkgKyA1MDA7CiAgICBjb25zdCBvc1BsYXRmb3JtID0gUGxhdHRmb3JtID09IDEgPyAnV2luNjQ7IHg2NCcgOiAnTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xNV8wJzsKICAgIGNvbnN0IHVzZXJBZ2VudCA9IGBNb3ppbGxhLzUuMCAoJHtvc1BsYXRmb3JtfSkgQXBwbGVXZWJLaXQvJHt3ZWJraXRWZXJzaW9ufS4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8ke2Nocm9tZVZlcnNpb259LjAuMzE2My4xMDAgU2FmYXJpLyR7d2Via2l0VmVyc2lvbn0uMzZgOwogICAgcmV0dXJuIHVzZXJBZ2VudDsKfQogCmZ1bmN0aW9uIFVBRmlyZWZveCgpIHsKICAgIGNvbnN0IFBsYXR0Zm9ybSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDIpCiAgICBjb25zdCBmaXJlZm94VmVyc2lvbiA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDUpICsgNTU7CiAgICBjb25zdCBnZWNrb1ZlcnNpb24gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAzMCkgKyAyMDEwMDEwMTsKICAgIGNvbnN0IG9zUGxhdGZvcm0gPSBQbGF0dGZvcm0gPT0gMSA/ICdXaW42NDsgeDY0JyA6ICdNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzE1XzAnOwogICAgY29uc3QgdXNlckFnZW50ID0gYE1vemlsbGEvNS4wICgke29zUGxhdGZvcm19OyBydjogJHtmaXJlZm94VmVyc2lvbn0uMCkgR2Vja28vJHtnZWNrb1ZlcnNpb259IEZpcmVmb3gvJHtmaXJlZm94VmVyc2lvbn0uMGA7CiAgICByZXR1cm4gdXNlckFnZW50Owp9CiAKZnVuY3Rpb24gVUFTYWZhcmkoKSB7CiAgICBjb25zdCBQbGF0dGZvcm0gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyKQogICAgY29uc3Qgc2FmYXJpVmVyc2lvbiA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDUpICsgMTA7CiAgICBjb25zdCBvc1BsYXRmb3JtID0gUGxhdHRmb3JtID09IDEgPyAnV2luNjQ7IHg2NCcgOiAnTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xNV8wJzsKICAgIGNvbnN0IHVzZXJBZ2VudCA9IGBNb3ppbGxhLzUuMCAoJHtvc1BsYXRmb3JtfSkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLyR7c2FmYXJpVmVyc2lvbn0uMS4xNSBTYWZhcmkvNjA1LjEuMTVgOwogICAgcmV0dXJuIHVzZXJBZ2VudDsKICB9CiAKZnVuY3Rpb24gVUFBbmRyb2lkKCkgewogICAgY29uc3QgYW5kcm9pZFZlcnNpb24gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiA1KSArIDU7CiAgICBjb25zdCBjaHJvbWVWZXJzaW9uID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjApICsgNjA7CiAgICBjb25zdCB3ZWJraXRWZXJzaW9uID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNzAwKSArIDUwMDsKICAgIGNvbnN0IG9zUGxhdGZvcm0gPSBgTGludXg7IEFuZHJvaWQgJHthbmRyb2lkVmVyc2lvbn0uJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMCl9OyBlbi11czsgTmV4dXMgNiBCdWlsZC9MWVoyOE0pIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8ke2Nocm9tZVZlcnNpb259LjAuMzE2My45OCBNb2JpbGUgU2FmYXJpLyR7d2Via2l0VmVyc2lvbn0uMzZgOwogICAgY29uc3QgdXNlckFnZW50ID0gYE1vemlsbGEvNS4wICgke29zUGxhdGZvcm19YDsKICAgIHJldHVybiB1c2VyQWdlbnQ7Cn0KIApmdW5jdGlvbiBVQUlvcygpIHsKICAgIGNvbnN0IGlvc1ZlcnNpb24gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiA1KSArIDk7CiAgICBjb25zdCBzYWZhcmlWZXJzaW9uID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNSkgKyA2MDA7CiAgICBjb25zdCB3ZWJraXRWZXJzaW9uID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNzAwKSArIDUwMDsKICAgIGNvbnN0IG9zUGxhdGZvcm0gPSBgQ1BVIGlQaG9uZSBPUyAke2lvc1ZlcnNpb259XyR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTApfSBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC8ke3dlYmtpdFZlcnNpb259LjYwIChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi8ke3NhZmFyaVZlcnNpb259LjAgTW9iaWxlLzE1RTE0OCBTYWZhcmkvJHt3ZWJraXRWZXJzaW9ufS42MGA7CiAgICBjb25zdCB1c2VyQWdlbnQgPSBgTW96aWxsYS81LjAgKCR7b3NQbGF0Zm9ybX1gOwogICAgcmV0dXJuIHVzZXJBZ2VudDsKfQogCmZ1bmN0aW9uIFJVQSgpIHsKICAgIGNvbnN0IFVBID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNCk7CiAKICAgIGlmIChVQSA9PSAwKSB7CiAgICAgICAgcmV0dXJuIFVBQ2hyb21lKCk7CiAgICB9IGVsc2UgaWYgKFVBID09IDEpIHsKICAgICAgICByZXR1cm4gVUFGaXJlZm94KCk7CiAgICB9IGVsc2UgaWYgKFVBID09IDIpIHsKICAgICAgICByZXR1cm4gVUFTYWZhcmkoKTsKICAgIH0gZWxzZSBpZiAoVUEgPT0gMykgewogICAgICAgIHJldHVybiBVQUFuZHJvaWQoKTsKICAgIH0gZWxzZSBpZiAoVUEgPT0gNCkgewogICAgICAgIHJldHVybiBVQUlvcygpOwogICAgfQoKICAgIHJldHVybiAnJzsKfQoKaHR0cEdldCgKICAgIGBodHRwczovL25vbWluYXRpbS5vcGVuc3RyZWV0bWFwLm9yZy9yZXZlcnNlP2Zvcm1hdD1nZW9qc29uJmxhdD0ke2xhdH0mbG9uPSR7bG9ufWAsCiAgICB7CiAgICAgICAgdGltZW91dDogMTUwMDAsCiAgICAgICAgaGVhZGVyczogewogICAgICAgICAgICAnVXNlci1BZ2VudCc6IFJVQSgpLAogICAgICAgIH0sCiAgICB9LAogICAgKGVyciwgcmVzcG9uc2UpID0+IHsKICAgICAgICBpZiAoIWVyciAgJiYgcmVzcG9uc2Uuc3RhdHVzQ29kZSA9PSAyMDApIHsKICAgICAgICAgICAgY29uc3QgaW5mbyA9IEpTT04ucGFyc2UocmVzcG9uc2UuZGF0YSk7CiAgICAgICAgICAgIGNvbnN0IGFkZHJlc3MgPSBpbmZvLmZlYXR1cmVzWzBdLnByb3BlcnRpZXMuYWRkcmVzczsKCiAgICAgICAgICAgIHNldFN0YXRlKHNEUCwgSlNPTi5zdHJpbmdpZnkoYWRkcmVzcyksIHRydWUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYE5vbWluYXRpbTogJHtyZXNwb25zZS5zdGF0dXNDb2RlfWApOwogICAgICAgIH0KICAgIH0KKTsK</field>
                                    <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                  </block>
                                </xml>
                                

                                Screenshot 2024-06-19 at 13.35.30.png

                                David G.D Offline
                                David G.D Offline
                                David G.
                                schrieb am zuletzt editiert von
                                #22

                                @haus-automatisierung

                                Vielen Dank.
                                sDP ist ein DP wo die json reingeschrieben wird?

                                Zeigt eure Lovelace-Visualisierung klick
                                (Auch ideal um sich Anregungen zu holen)

                                Meine Tabellen für eure Visualisierung klick

                                haus-automatisierungH 1 Antwort Letzte Antwort
                                0
                                • David G.D David G.

                                  @haus-automatisierung

                                  Vielen Dank.
                                  sDP ist ein DP wo die json reingeschrieben wird?

                                  haus-automatisierungH Offline
                                  haus-automatisierungH Offline
                                  haus-automatisierung
                                  Developer Most Active
                                  schrieb am zuletzt editiert von haus-automatisierung
                                  #23

                                  @david-g Ja, ist doch der Code von oben den Du selbst geteilt hast :) EDIT: Sorry, war von @Ro75 und nicht von Dir

                                  🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                  🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                  📚 Meine inoffizielle ioBroker Dokumentation

                                  David G.D 1 Antwort Letzte Antwort
                                  0
                                  • haus-automatisierungH haus-automatisierung

                                    @david-g Ja, ist doch der Code von oben den Du selbst geteilt hast :) EDIT: Sorry, war von @Ro75 und nicht von Dir

                                    David G.D Offline
                                    David G.D Offline
                                    David G.
                                    schrieb am zuletzt editiert von
                                    #24

                                    @haus-automatisierung

                                    Danke für deine Umsetzung.
                                    Wie kann ich die Zeile

                                                setState(sDP, JSON.stringify(address), true);
                                    

                                    abändern, damit das Ergebnis in eine Variable geschrieben wird mit der ich in Blockly weiterarbeiten kann?

                                    sDP würde ich dann aus der Funktion entfernen.

                                    Zeigt eure Lovelace-Visualisierung klick
                                    (Auch ideal um sich Anregungen zu holen)

                                    Meine Tabellen für eure Visualisierung klick

                                    haus-automatisierungH 1 Antwort Letzte Antwort
                                    0
                                    • David G.D David G.

                                      @haus-automatisierung

                                      Danke für deine Umsetzung.
                                      Wie kann ich die Zeile

                                                  setState(sDP, JSON.stringify(address), true);
                                      

                                      abändern, damit das Ergebnis in eine Variable geschrieben wird mit der ich in Blockly weiterarbeiten kann?

                                      sDP würde ich dann aus der Funktion entfernen.

                                      haus-automatisierungH Offline
                                      haus-automatisierungH Offline
                                      haus-automatisierung
                                      Developer Most Active
                                      schrieb am zuletzt editiert von
                                      #25

                                      @david-g sagte in HttpGet liefert 403:

                                      abändern, damit das Ergebnis in eine Variable geschrieben wird mit der ich in Blockly weiterarbeiten kann?

                                      Du musst ein Promise zurückliefern. Oder mit httpGetAsync arbeiten...

                                      🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                      🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                      📚 Meine inoffizielle ioBroker Dokumentation

                                      David G.D 1 Antwort Letzte Antwort
                                      0
                                      • haus-automatisierungH haus-automatisierung

                                        @david-g sagte in HttpGet liefert 403:

                                        abändern, damit das Ergebnis in eine Variable geschrieben wird mit der ich in Blockly weiterarbeiten kann?

                                        Du musst ein Promise zurückliefern. Oder mit httpGetAsync arbeiten...

                                        David G.D Offline
                                        David G.D Offline
                                        David G.
                                        schrieb am zuletzt editiert von
                                        #26

                                        @haus-automatisierung

                                        Also nicht einfach

                                        e2cacc71-70b8-4028-a041-92620d22678b-image.png

                                        und anstatt in die Variable in das Result von der Funktion schreiben (habe es bisher nicht geschafft^^)?

                                        Falls das nicht so leicht ist, gehe ich einfach über den DP als Zwischenschritt.

                                        Zeigt eure Lovelace-Visualisierung klick
                                        (Auch ideal um sich Anregungen zu holen)

                                        Meine Tabellen für eure Visualisierung klick

                                        haus-automatisierungH 1 Antwort Letzte Antwort
                                        0
                                        • David G.D David G.

                                          @haus-automatisierung

                                          Also nicht einfach

                                          e2cacc71-70b8-4028-a041-92620d22678b-image.png

                                          und anstatt in die Variable in das Result von der Funktion schreiben (habe es bisher nicht geschafft^^)?

                                          Falls das nicht so leicht ist, gehe ich einfach über den DP als Zwischenschritt.

                                          haus-automatisierungH Offline
                                          haus-automatisierungH Offline
                                          haus-automatisierung
                                          Developer Most Active
                                          schrieb am zuletzt editiert von haus-automatisierung
                                          #27

                                          @david-g Nein, weil httpGet ja asynchron ausgeführt wird und nicht auf den Callback gewartet wird.

                                          <xml xmlns="https://developers.google.com/blockly/xml">
                                            <variables>
                                              <variable id="r,(xv@.d$c;=YdJMPX80">lon</variable>
                                              <variable id="g{2,u1PfjN1:=CyqH3*m">lat</variable>
                                            </variables>
                                            <block type="procedures_defcustomreturn" id="Yf![9|Fz[uw]ZE3)hfFf" x="138" y="288">
                                              <mutation statements="false">
                                                <arg name="lon" varid="r,(xv@.d$c;=YdJMPX80"></arg>
                                                <arg name="lat" varid="g{2,u1PfjN1:=CyqH3*m"></arg>
                                              </mutation>
                                              <field name="NAME">osmResolve</field>
                                              <field name="SCRIPT">ZnVuY3Rpb24gVUFDaHJvbWUoKSB7CiAgICBjb25zdCBQbGF0dGZvcm0gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyKQogICAgY29uc3QgY2hyb21lVmVyc2lvbiA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDIwKSArIDYwOwogICAgY29uc3Qgd2Via2l0VmVyc2lvbiA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDcwMCkgKyA1MDA7CiAgICBjb25zdCBvc1BsYXRmb3JtID0gUGxhdHRmb3JtID09IDEgPyAnV2luNjQ7IHg2NCcgOiAnTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xNV8wJzsKICAgIGNvbnN0IHVzZXJBZ2VudCA9IGBNb3ppbGxhLzUuMCAoJHtvc1BsYXRmb3JtfSkgQXBwbGVXZWJLaXQvJHt3ZWJraXRWZXJzaW9ufS4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8ke2Nocm9tZVZlcnNpb259LjAuMzE2My4xMDAgU2FmYXJpLyR7d2Via2l0VmVyc2lvbn0uMzZgOwogICAgcmV0dXJuIHVzZXJBZ2VudDsKfQogCmZ1bmN0aW9uIFVBRmlyZWZveCgpIHsKICAgIGNvbnN0IFBsYXR0Zm9ybSA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDIpCiAgICBjb25zdCBmaXJlZm94VmVyc2lvbiA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDUpICsgNTU7CiAgICBjb25zdCBnZWNrb1ZlcnNpb24gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAzMCkgKyAyMDEwMDEwMTsKICAgIGNvbnN0IG9zUGxhdGZvcm0gPSBQbGF0dGZvcm0gPT0gMSA/ICdXaW42NDsgeDY0JyA6ICdNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwXzE1XzAnOwogICAgY29uc3QgdXNlckFnZW50ID0gYE1vemlsbGEvNS4wICgke29zUGxhdGZvcm19OyBydjogJHtmaXJlZm94VmVyc2lvbn0uMCkgR2Vja28vJHtnZWNrb1ZlcnNpb259IEZpcmVmb3gvJHtmaXJlZm94VmVyc2lvbn0uMGA7CiAgICByZXR1cm4gdXNlckFnZW50Owp9CiAKZnVuY3Rpb24gVUFTYWZhcmkoKSB7CiAgICBjb25zdCBQbGF0dGZvcm0gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyKQogICAgY29uc3Qgc2FmYXJpVmVyc2lvbiA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDUpICsgMTA7CiAgICBjb25zdCBvc1BsYXRmb3JtID0gUGxhdHRmb3JtID09IDEgPyAnV2luNjQ7IHg2NCcgOiAnTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMF8xNV8wJzsKICAgIGNvbnN0IHVzZXJBZ2VudCA9IGBNb3ppbGxhLzUuMCAoJHtvc1BsYXRmb3JtfSkgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLyR7c2FmYXJpVmVyc2lvbn0uMS4xNSBTYWZhcmkvNjA1LjEuMTVgOwogICAgcmV0dXJuIHVzZXJBZ2VudDsKICB9CiAKZnVuY3Rpb24gVUFBbmRyb2lkKCkgewogICAgY29uc3QgYW5kcm9pZFZlcnNpb24gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiA1KSArIDU7CiAgICBjb25zdCBjaHJvbWVWZXJzaW9uID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjApICsgNjA7CiAgICBjb25zdCB3ZWJraXRWZXJzaW9uID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNzAwKSArIDUwMDsKICAgIGNvbnN0IG9zUGxhdGZvcm0gPSBgTGludXg7IEFuZHJvaWQgJHthbmRyb2lkVmVyc2lvbn0uJHtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAxMCl9OyBlbi11czsgTmV4dXMgNiBCdWlsZC9MWVoyOE0pIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8ke2Nocm9tZVZlcnNpb259LjAuMzE2My45OCBNb2JpbGUgU2FmYXJpLyR7d2Via2l0VmVyc2lvbn0uMzZgOwogICAgY29uc3QgdXNlckFnZW50ID0gYE1vemlsbGEvNS4wICgke29zUGxhdGZvcm19YDsKICAgIHJldHVybiB1c2VyQWdlbnQ7Cn0KIApmdW5jdGlvbiBVQUlvcygpIHsKICAgIGNvbnN0IGlvc1ZlcnNpb24gPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiA1KSArIDk7CiAgICBjb25zdCBzYWZhcmlWZXJzaW9uID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNSkgKyA2MDA7CiAgICBjb25zdCB3ZWJraXRWZXJzaW9uID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNzAwKSArIDUwMDsKICAgIGNvbnN0IG9zUGxhdGZvcm0gPSBgQ1BVIGlQaG9uZSBPUyAke2lvc1ZlcnNpb259XyR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTApfSBsaWtlIE1hYyBPUyBYKSBBcHBsZVdlYktpdC8ke3dlYmtpdFZlcnNpb259LjYwIChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi8ke3NhZmFyaVZlcnNpb259LjAgTW9iaWxlLzE1RTE0OCBTYWZhcmkvJHt3ZWJraXRWZXJzaW9ufS42MGA7CiAgICBjb25zdCB1c2VyQWdlbnQgPSBgTW96aWxsYS81LjAgKCR7b3NQbGF0Zm9ybX1gOwogICAgcmV0dXJuIHVzZXJBZ2VudDsKfQogCmZ1bmN0aW9uIFJVQSgpIHsKICAgIGNvbnN0IFVBID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogNCk7CiAKICAgIGlmIChVQSA9PSAwKSB7CiAgICAgICAgcmV0dXJuIFVBQ2hyb21lKCk7CiAgICB9IGVsc2UgaWYgKFVBID09IDEpIHsKICAgICAgICByZXR1cm4gVUFGaXJlZm94KCk7CiAgICB9IGVsc2UgaWYgKFVBID09IDIpIHsKICAgICAgICByZXR1cm4gVUFTYWZhcmkoKTsKICAgIH0gZWxzZSBpZiAoVUEgPT0gMykgewogICAgICAgIHJldHVybiBVQUFuZHJvaWQoKTsKICAgIH0gZWxzZSBpZiAoVUEgPT0gNCkgewogICAgICAgIHJldHVybiBVQUlvcygpOwogICAgfQoKICAgIHJldHVybiAnJzsKfQoKdHJ5IHsKICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgaHR0cEdldEFzeW5jKAogICAgICAgIGBodHRwczovL25vbWluYXRpbS5vcGVuc3RyZWV0bWFwLm9yZy9yZXZlcnNlP2Zvcm1hdD1nZW9qc29uJmxhdD0ke2xhdH0mbG9uPSR7bG9ufWAsCiAgICAgICAgewogICAgICAgICAgICB0aW1lb3V0OiAxNTAwMCwKICAgICAgICAgICAgaGVhZGVyczogewogICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiBSVUEoKSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgKTsKCiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA9PSAyMDApIHsKICAgICAgICBjb25zdCBpbmZvID0gSlNPTi5wYXJzZShyZXNwb25zZS5kYXRhKTsKCiAgICAgICAgcmV0dXJuIGluZm8uZmVhdHVyZXM/LlswXT8ucHJvcGVydGllcz8uYWRkcmVzcyA/PyB7fTsKICAgIH0KCiAgICByZXR1cm4ge307Cn0gY2F0Y2ggKGVycikgewogICAgcmV0dXJuIHsgZXJyIH07Cn0=</field>
                                              <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                            </block>
                                            <block type="debug" id="oiKGA}Q9)CzpggWzL@D," x="138" y="338">
                                              <field name="Severity">info</field>
                                              <value name="TEXT">
                                                <shadow type="text" id="6vmy!f|F/3]XC|V|^Q+!">
                                                  <field name="TEXT">test</field>
                                                </shadow>
                                                <block type="procedures_callcustomreturn" id="Kbg~m223+L?EN/wyNdQ]">
                                                  <mutation name="osmResolve">
                                                    <arg name="lon"></arg>
                                                    <arg name="lat"></arg>
                                                  </mutation>
                                                  <value name="ARG0">
                                                    <block type="math_number" id="#C5g9?loG*SF1`Go-.B0">
                                                      <field name="NUM">8.5</field>
                                                    </block>
                                                  </value>
                                                  <value name="ARG1">
                                                    <block type="math_number" id="+y%uX{IEB}6~T9CJCZ|s">
                                                      <field name="NUM">51.7</field>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                            </block>
                                          </xml>
                                          

                                          🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                          🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                          📚 Meine inoffizielle ioBroker Dokumentation

                                          David G.D 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

                                          298

                                          Online

                                          32.7k

                                          Benutzer

                                          82.4k

                                          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