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.
  • 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 Online
    David G.D Online
    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 Online
        haus-automatisierungH Online
        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 Online
            David G.D Online
            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 Online
                David G.D Online
                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 Online
                    haus-automatisierungH Online
                    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 Online
                      David G.D Online
                      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 Online
                          haus-automatisierungH Online
                          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 Online
                            David G.D Online
                            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 Online
                              haus-automatisierungH Online
                              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 Online
                                David G.D Online
                                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 Online
                                  haus-automatisierungH Online
                                  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 Online
                                    David G.D Online
                                    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 Online
                                      haus-automatisierungH Online
                                      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
                                      • haus-automatisierungH haus-automatisierung

                                        @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>
                                        
                                        David G.D Online
                                        David G.D Online
                                        David G.
                                        schrieb am zuletzt editiert von
                                        #28

                                        @haus-automatisierung

                                        Danke, teste ich nachher.

                                        Werde bei Gelegenheit mal einen Feature Request beim Places Adapter erstellen, ob man da OSM einbauen kann. Einen Ordner address wo alles aus der json in einem eigenem DP steht.
                                        Im Moment hat der glaube nur Google, was sehr umständlich ist.

                                        Ich mag den Adapter sehr, da man dort alle verschiedenen Adapter die GPS Daten liefern zusammenführen kann. Auch, dass man für ein Gerät Daten von verschiedenen Quellen kombinieren kann.

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

                                        Meine Tabellen für eure Visualisierung klick

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

                                          @haus-automatisierung

                                          Danke, teste ich nachher.

                                          Werde bei Gelegenheit mal einen Feature Request beim Places Adapter erstellen, ob man da OSM einbauen kann. Einen Ordner address wo alles aus der json in einem eigenem DP steht.
                                          Im Moment hat der glaube nur Google, was sehr umständlich ist.

                                          Ich mag den Adapter sehr, da man dort alle verschiedenen Adapter die GPS Daten liefern zusammenführen kann. Auch, dass man für ein Gerät Daten von verschiedenen Quellen kombinieren kann.

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

                                          @david-g Ganz unbedarfte Frage:
                                          wofür braucht man 2500 mal am Tag seinen Standort in Klartext?

                                          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 David G.D 2 Antworten Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          567

                                          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