Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Zugangsgeschützte API-Schnittstelle auslesen mit Blockly

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Zugangsgeschützte API-Schnittstelle auslesen mit Blockly

Scheduled Pinned Locked Moved Blockly
78 Posts 7 Posters 9.0k Views 5 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    schnipsel71
    wrote on last edited by
    #1

    Ich möchte per Blockly den Datenpunkt "Battery_C" unseres PV-Managementsystems auslesen. Allerdings ist dazu eine Authorisation über einen Header notwendig und ich weiß nicht, wie man diesen in Blockly implementiert.
    Hier die Beschreibung aus dem API-Manual:
    8fd56ab9-1a6e-44bb-9b84-761727cfd0f1-image.png
    eaec50eb-9c65-417d-9802-852318e3577c-image.png

    Das habe ich bislang geschrieben:
    bcf6e310-1cf6-4cef-8ff1-8207b82c722c-image.png

    Wie kann ich die Zugangsdaten über den Header übergeben?

    haus-automatisierungH OliverIOO David G.D 3 Replies Last reply
    0
    • S schnipsel71

      Ich möchte per Blockly den Datenpunkt "Battery_C" unseres PV-Managementsystems auslesen. Allerdings ist dazu eine Authorisation über einen Header notwendig und ich weiß nicht, wie man diesen in Blockly implementiert.
      Hier die Beschreibung aus dem API-Manual:
      8fd56ab9-1a6e-44bb-9b84-761727cfd0f1-image.png
      eaec50eb-9c65-417d-9802-852318e3577c-image.png

      Das habe ich bislang geschrieben:
      bcf6e310-1cf6-4cef-8ff1-8207b82c722c-image.png

      Wie kann ich die Zugangsdaten über den Header übergeben?

      haus-automatisierungH Offline
      haus-automatisierungH Offline
      haus-automatisierung
      Developer Most Active
      wrote on last edited by
      #2

      @schnipsel71 Mit Blockly aktuell gar nicht

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

      1 Reply Last reply
      0
      • S schnipsel71

        Ich möchte per Blockly den Datenpunkt "Battery_C" unseres PV-Managementsystems auslesen. Allerdings ist dazu eine Authorisation über einen Header notwendig und ich weiß nicht, wie man diesen in Blockly implementiert.
        Hier die Beschreibung aus dem API-Manual:
        8fd56ab9-1a6e-44bb-9b84-761727cfd0f1-image.png
        eaec50eb-9c65-417d-9802-852318e3577c-image.png

        Das habe ich bislang geschrieben:
        bcf6e310-1cf6-4cef-8ff1-8207b82c722c-image.png

        Wie kann ich die Zugangsdaten über den Header übergeben?

        OliverIOO Offline
        OliverIOO Offline
        OliverIO
        wrote on last edited by OliverIO
        #3

        @schnipsel71

        Hast du auch schon Seite 8 deiner Anleitung angeschaut?
        Den code hier als Text posten, dann kann man das auf die neuen methoden umstellen. da wird noch request verwendet.

        Meine Adapter und Widgets
        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
        Links im Profil

        S 1 Reply Last reply
        0
        • OliverIOO OliverIO

          @schnipsel71

          Hast du auch schon Seite 8 deiner Anleitung angeschaut?
          Den code hier als Text posten, dann kann man das auf die neuen methoden umstellen. da wird noch request verwendet.

          S Offline
          S Offline
          schnipsel71
          wrote on last edited by
          #4

          @oliverio Danke für den Hinweis.

          Hier der Code:

          var TimeInterval= setInterval(MyJavascript ,5000);
          
          function MyJavascript(){
          var request = require(’request’);
          var user= "hycube";
          var password= "hycube";
          var options = {
          url: ’http://10.1.1.51/auth/’,
          headers: {
          "Authorization": Buffer.from("Basic " + user + ":" + password).toString(’base64’)
          },
          body: ’<?xml version="1.0" encoding="UTF-8"?> [...]’
          };
          request.post(options, function(error, response, body) {
          if (error) {
          console.log("Ein Fehler ist aufgetreten ")
          } else {
          
          var auth_token= body;
          
          var url = require(’request’);
          var options = {
          url: ’http://10.1.1.51/get_values/’,
          headers: {
          "Authorization": auth_token
          },
          body: ’<?xml version="1.0" encoding="UTF-8"?> [...]’
          };
          
          url.post(options, function(error, response, body) {
          if (error) {
          console.log("Ein Fehler ist aufgetreten ")
          } else {
          var result = JSON.parse(body);
          
          var GridPower= (result["Grid_P"]);
          var BatteryPower=result["Battery_P"];
          var HausPower= result["Home_P"];
          var solar= result["solar1_P"];
          
          setState(’HyWeb.Batterie’, BatteryPower);
          setState(’HyWeb.Grid’, GridPower);
          setState(’HyWeb.Hausverbrauch’, HausPower);
          setState(’HyWeb.Solar’, solar);
          
          }
          });
          
          
          }
          });
          
          
          }
          
          
          OliverIOO 1 Reply Last reply
          0
          • S schnipsel71

            @oliverio Danke für den Hinweis.

            Hier der Code:

            var TimeInterval= setInterval(MyJavascript ,5000);
            
            function MyJavascript(){
            var request = require(’request’);
            var user= "hycube";
            var password= "hycube";
            var options = {
            url: ’http://10.1.1.51/auth/’,
            headers: {
            "Authorization": Buffer.from("Basic " + user + ":" + password).toString(’base64’)
            },
            body: ’<?xml version="1.0" encoding="UTF-8"?> [...]’
            };
            request.post(options, function(error, response, body) {
            if (error) {
            console.log("Ein Fehler ist aufgetreten ")
            } else {
            
            var auth_token= body;
            
            var url = require(’request’);
            var options = {
            url: ’http://10.1.1.51/get_values/’,
            headers: {
            "Authorization": auth_token
            },
            body: ’<?xml version="1.0" encoding="UTF-8"?> [...]’
            };
            
            url.post(options, function(error, response, body) {
            if (error) {
            console.log("Ein Fehler ist aufgetreten ")
            } else {
            var result = JSON.parse(body);
            
            var GridPower= (result["Grid_P"]);
            var BatteryPower=result["Battery_P"];
            var HausPower= result["Home_P"];
            var solar= result["solar1_P"];
            
            setState(’HyWeb.Batterie’, BatteryPower);
            setState(’HyWeb.Grid’, GridPower);
            setState(’HyWeb.Hausverbrauch’, HausPower);
            setState(’HyWeb.Solar’, solar);
            
            }
            });
            
            
            }
            });
            
            
            }
            
            
            OliverIOO Offline
            OliverIOO Offline
            OliverIO
            wrote on last edited by
            #5

            @schnipsel71

            Und, funktioniert er?

            Meine Adapter und Widgets
            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
            Links im Profil

            S 1 Reply Last reply
            0
            • OliverIOO OliverIO

              @schnipsel71

              Und, funktioniert er?

              S Offline
              S Offline
              schnipsel71
              wrote on last edited by
              #6

              @oliverio Das ist der alte Code mit den request-Befehlen. Er funktioniert noch, allerdings bekomme ich alle 5 Sekunden eine Warnung im Log, dass die requests in httpGet umgestellt werden sollen. Und ich weiß leider nicht, wie das geht:

              script.js.Steuerung.Hycube: request package is deprecated - please use httpGet (or a stable lib like axios) instead!
              

              Kann mir jemand helfen?

              T 1 Reply Last reply
              0
              • S schnipsel71

                @oliverio Das ist der alte Code mit den request-Befehlen. Er funktioniert noch, allerdings bekomme ich alle 5 Sekunden eine Warnung im Log, dass die requests in httpGet umgestellt werden sollen. Und ich weiß leider nicht, wie das geht:

                script.js.Steuerung.Hycube: request package is deprecated - please use httpGet (or a stable lib like axios) instead!
                

                Kann mir jemand helfen?

                T Offline
                T Offline
                TT-Tom
                wrote on last edited by TT-Tom
                #7

                @schnipsel71

                probiere mal hiermit, ob du den Token zurück bekommst.

                httpPost(
                    'http://10.1.1.51/auth/',
                    {
                        timeout: 2000,
                        basicAuth: {
                            user: 'hycube',
                            password: 'hycube',
                        },
                    },
                    (error, response) => {
                        if (!error) {
                            console.log(response.statusCode);
                            console.log(response.data);
                            console.log(response.headers);
                        } else {
                            console.error(error);
                        }
                    }
                );
                

                Poste dann mal die Ausgaben vom Log

                Gruß Tom
                https://github.com/tt-tom17
                Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                NSPanel Script Wiki
                https://github.com/joBr99/nspanel-lovelace-ui/wiki

                NSPanel Adapter Wiki
                https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                S 1 Reply Last reply
                0
                • OliverIOO Offline
                  OliverIOO Offline
                  OliverIO
                  wrote on last edited by OliverIO
                  #8

                  @schnipsel71

                  ohne garantie. da ich es ja selbst nicht testen kann.
                  leider ist die doku https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#httppost auch interpretationswürdig.
                  ich gehe mal davon aus, das die parameter von httppost analgo deren von axios.post sind.
                  ich habe den obigen code durch die ki auf axios umschreiben lassen und axios.post, dann durch httpPost ersetzt.

                  ich habe dann noch zusätzlich 2 console.log eingefügt, um zu prüfen, was da für daten zurückkommen, bevor sie weiterverarbeitet werden.

                  bitte mal probieren.
                  Ich weiß nicht, ob die Datenpunktnamen angepasst werden sollten.
                  Sollte da nicht was wie

                  0_userdata.HyWeb.Batterie
                  

                  oder

                  javascript.0.HyWeb.Batterie
                  

                  stehen?
                  an andere Stellen sollte man eigentlich nicht schreiben.
                  Die datenpunkte sollten auch schon existieren.

                  var TimeInterval= setInterval(MyJavascript ,5000);
                  
                  async function MyJavascript() {
                    const user = "hycube";
                    const password = "hycube";
                    const authUrl = 'http://10.1.1.51/auth/';
                    const getValuesUrl = 'http://10.1.1.51/get_values/';
                  
                    try {
                      const authResponse = await httpPost(authUrl, null, {
                        headers: {
                          'Authorization': `Basic ${Buffer.from(`${user}:${password}`).toString('base64')}`
                        }
                      });
                      console.log(authResponse.data);
                      const authToken = authResponse.data;
                  
                      const getValuesResponse = await httpPost(getValuesUrl, null, {
                        headers: {
                          'Authorization': authToken
                        }
                      });
                      console.log(getValuesResponse.data);
                      const result = getValuesResponse.data;
                  
                      const GridPower = result["Grid_P"];
                      const BatteryPower = result["Battery_P"];
                      const HausPower = result["Home_P"];
                      const solar = result["solar1_P"];
                  
                      setState('HyWeb.Batterie', BatteryPower);
                      setState('HyWeb.Grid', GridPower);
                      setState('HyWeb.Hausverbrauch', HausPower);
                      setState('HyWeb.Solar', solar);
                    } catch (error) {
                      console.log("An error occurred:", error.message);
                    }
                  }
                  

                  Meine Adapter und Widgets
                  TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                  Links im Profil

                  haus-automatisierungH S 2 Replies Last reply
                  0
                  • OliverIOO OliverIO

                    @schnipsel71

                    ohne garantie. da ich es ja selbst nicht testen kann.
                    leider ist die doku https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#httppost auch interpretationswürdig.
                    ich gehe mal davon aus, das die parameter von httppost analgo deren von axios.post sind.
                    ich habe den obigen code durch die ki auf axios umschreiben lassen und axios.post, dann durch httpPost ersetzt.

                    ich habe dann noch zusätzlich 2 console.log eingefügt, um zu prüfen, was da für daten zurückkommen, bevor sie weiterverarbeitet werden.

                    bitte mal probieren.
                    Ich weiß nicht, ob die Datenpunktnamen angepasst werden sollten.
                    Sollte da nicht was wie

                    0_userdata.HyWeb.Batterie
                    

                    oder

                    javascript.0.HyWeb.Batterie
                    

                    stehen?
                    an andere Stellen sollte man eigentlich nicht schreiben.
                    Die datenpunkte sollten auch schon existieren.

                    var TimeInterval= setInterval(MyJavascript ,5000);
                    
                    async function MyJavascript() {
                      const user = "hycube";
                      const password = "hycube";
                      const authUrl = 'http://10.1.1.51/auth/';
                      const getValuesUrl = 'http://10.1.1.51/get_values/';
                    
                      try {
                        const authResponse = await httpPost(authUrl, null, {
                          headers: {
                            'Authorization': `Basic ${Buffer.from(`${user}:${password}`).toString('base64')}`
                          }
                        });
                        console.log(authResponse.data);
                        const authToken = authResponse.data;
                    
                        const getValuesResponse = await httpPost(getValuesUrl, null, {
                          headers: {
                            'Authorization': authToken
                          }
                        });
                        console.log(getValuesResponse.data);
                        const result = getValuesResponse.data;
                    
                        const GridPower = result["Grid_P"];
                        const BatteryPower = result["Battery_P"];
                        const HausPower = result["Home_P"];
                        const solar = result["solar1_P"];
                    
                        setState('HyWeb.Batterie', BatteryPower);
                        setState('HyWeb.Grid', GridPower);
                        setState('HyWeb.Hausverbrauch', HausPower);
                        setState('HyWeb.Solar', solar);
                      } catch (error) {
                        console.log("An error occurred:", error.message);
                      }
                    }
                    
                    haus-automatisierungH Offline
                    haus-automatisierungH Offline
                    haus-automatisierung
                    Developer Most Active
                    wrote on last edited by
                    #9

                    @oliverio sagte in Zugangsgeschützte API-Schnittstelle auslesen mit Blockly:

                    leider ist die doku https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#httppost auch interpretationswürdig

                    Lass mich gerne wissen was dir fehlt oder erstelle einen PR

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

                    OliverIOO 1 Reply Last reply
                    0
                    • haus-automatisierungH haus-automatisierung

                      @oliverio sagte in Zugangsgeschützte API-Schnittstelle auslesen mit Blockly:

                      leider ist die doku https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#httppost auch interpretationswürdig

                      Lass mich gerne wissen was dir fehlt oder erstelle einen PR

                      OliverIOO Offline
                      OliverIOO Offline
                      OliverIO
                      wrote on last edited by OliverIO
                      #10

                      @haus-automatisierung

                      zumindest mal die Erwähnung der möglichen Parameter

                      httpGet(url[, config])
                      httpPost(url[, data[, config]])

                      und ggfs. einen Verweis auf die Axios Dokumentation., was das Config-Objekt alles kann

                      In der Dokumentation sehe ich nur einen Aufruf.
                      Den ersten Parameter mit url können die meisten noch erkennen,
                      das der 2.Parameter ein optinaler Datenblock ist oder was es für Config-Möglichkeiten gibt, ist für die meisten hier wahre Magie.

                      ohne die Referenz auf Axios können viele, die das nicht wissen, im Internet nicht nach Alternativ-Beispiele suchen und sind dann unbedingt hier aufs Forum angewiesen.

                      Ich kann da gern einen PR machen
                      https://github.com/ioBroker/ioBroker.javascript/pull/1637

                      Meine Adapter und Widgets
                      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                      Links im Profil

                      haus-automatisierungH 1 Reply Last reply
                      0
                      • OliverIOO OliverIO

                        @haus-automatisierung

                        zumindest mal die Erwähnung der möglichen Parameter

                        httpGet(url[, config])
                        httpPost(url[, data[, config]])

                        und ggfs. einen Verweis auf die Axios Dokumentation., was das Config-Objekt alles kann

                        In der Dokumentation sehe ich nur einen Aufruf.
                        Den ersten Parameter mit url können die meisten noch erkennen,
                        das der 2.Parameter ein optinaler Datenblock ist oder was es für Config-Möglichkeiten gibt, ist für die meisten hier wahre Magie.

                        ohne die Referenz auf Axios können viele, die das nicht wissen, im Internet nicht nach Alternativ-Beispiele suchen und sind dann unbedingt hier aufs Forum angewiesen.

                        Ich kann da gern einen PR machen
                        https://github.com/ioBroker/ioBroker.javascript/pull/1637

                        haus-automatisierungH Offline
                        haus-automatisierungH Offline
                        haus-automatisierung
                        Developer Most Active
                        wrote on last edited by haus-automatisierung
                        #11

                        @oliverio sagte in Zugangsgeschützte API-Schnittstelle auslesen mit Blockly:

                        zumindest mal die Erwähnung der möglichen Parameter

                        Das geben doch alles die Typings vor. Bisher werden daher in keiner Funktion alle Parameter genau in der Doku erklärt.

                        https://github.com/ioBroker/ioBroker.javascript/blob/bdfc9031a32b4f7c7b08203a389e968961aa73cb/lib/javascript.d.ts#L1330-L1340

                        Screenshot 2024-07-12 at 19.33.21.png

                        @oliverio sagte in Zugangsgeschützte API-Schnittstelle auslesen mit Blockly:

                        und ggfs. einen Verweis auf die Axios Dokumentation., was das Config-Objekt alles kann

                        Da findet intern ein Mapping statt. Ziel ist es, unabhängig von einer Bibliothek zu sein. Daher ist die Referenz auf axios falsch. Es wird nicht alles 1:1 an axios weitergegeben. Um in Zukunft die Lib austauschen zu können und nicht wieder in die Problematik (wie bei request) zu laufen.

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

                        OliverIOO 1 Reply Last reply
                        0
                        • T TT-Tom

                          @schnipsel71

                          probiere mal hiermit, ob du den Token zurück bekommst.

                          httpPost(
                              'http://10.1.1.51/auth/',
                              {
                                  timeout: 2000,
                                  basicAuth: {
                                      user: 'hycube',
                                      password: 'hycube',
                                  },
                              },
                              (error, response) => {
                                  if (!error) {
                                      console.log(response.statusCode);
                                      console.log(response.data);
                                      console.log(response.headers);
                                  } else {
                                      console.error(error);
                                  }
                              }
                          );
                          

                          Poste dann mal die Ausgaben vom Log

                          S Offline
                          S Offline
                          schnipsel71
                          wrote on last edited by
                          #12

                          @tt-tom Ich bekomme 2 Sekunden nach Start des Programms nur das hier:

                          javascript.0 908	2024-07-13 01:10:42.983	error	script.js.common.Hycube_neu: timeout of 2000ms exceeded
                          
                          OliverIOO T 2 Replies Last reply
                          0
                          • haus-automatisierungH haus-automatisierung

                            @oliverio sagte in Zugangsgeschützte API-Schnittstelle auslesen mit Blockly:

                            zumindest mal die Erwähnung der möglichen Parameter

                            Das geben doch alles die Typings vor. Bisher werden daher in keiner Funktion alle Parameter genau in der Doku erklärt.

                            https://github.com/ioBroker/ioBroker.javascript/blob/bdfc9031a32b4f7c7b08203a389e968961aa73cb/lib/javascript.d.ts#L1330-L1340

                            Screenshot 2024-07-12 at 19.33.21.png

                            @oliverio sagte in Zugangsgeschützte API-Schnittstelle auslesen mit Blockly:

                            und ggfs. einen Verweis auf die Axios Dokumentation., was das Config-Objekt alles kann

                            Da findet intern ein Mapping statt. Ziel ist es, unabhängig von einer Bibliothek zu sein. Daher ist die Referenz auf axios falsch. Es wird nicht alles 1:1 an axios weitergegeben. Um in Zukunft die Lib austauschen zu können und nicht wieder in die Problematik (wie bei request) zu laufen.

                            OliverIOO Offline
                            OliverIOO Offline
                            OliverIO
                            wrote on last edited by
                            #13

                            @haus-automatisierung

                            Schnipsel hat keine Ahnung von typings
                            Und ich hab es trocken ohne live ein Script zu erstellen.

                            Meine Adapter und Widgets
                            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                            Links im Profil

                            1 Reply Last reply
                            0
                            • S schnipsel71

                              @tt-tom Ich bekomme 2 Sekunden nach Start des Programms nur das hier:

                              javascript.0 908	2024-07-13 01:10:42.983	error	script.js.common.Hycube_neu: timeout of 2000ms exceeded
                              
                              OliverIOO Offline
                              OliverIOO Offline
                              OliverIO
                              wrote on last edited by
                              #14

                              @schnipsel71

                              Dann hat das nach 2 Sekunden das Gerät nicht reagiert. Steht da die richtige IP Adresse drin ?

                              Meine Adapter und Widgets
                              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                              Links im Profil

                              S 1 Reply Last reply
                              0
                              • S schnipsel71

                                @tt-tom Ich bekomme 2 Sekunden nach Start des Programms nur das hier:

                                javascript.0 908	2024-07-13 01:10:42.983	error	script.js.common.Hycube_neu: timeout of 2000ms exceeded
                                
                                T Offline
                                T Offline
                                TT-Tom
                                wrote on last edited by
                                #15

                                @schnipsel71 wenn die url stimmt dann setze den timeout einfach mal höher 3000 oder mehr.

                                Gruß Tom
                                https://github.com/tt-tom17
                                Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                                NSPanel Script Wiki
                                https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                NSPanel Adapter Wiki
                                https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                                S 1 Reply Last reply
                                0
                                • OliverIOO OliverIO

                                  @schnipsel71

                                  ohne garantie. da ich es ja selbst nicht testen kann.
                                  leider ist die doku https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#httppost auch interpretationswürdig.
                                  ich gehe mal davon aus, das die parameter von httppost analgo deren von axios.post sind.
                                  ich habe den obigen code durch die ki auf axios umschreiben lassen und axios.post, dann durch httpPost ersetzt.

                                  ich habe dann noch zusätzlich 2 console.log eingefügt, um zu prüfen, was da für daten zurückkommen, bevor sie weiterverarbeitet werden.

                                  bitte mal probieren.
                                  Ich weiß nicht, ob die Datenpunktnamen angepasst werden sollten.
                                  Sollte da nicht was wie

                                  0_userdata.HyWeb.Batterie
                                  

                                  oder

                                  javascript.0.HyWeb.Batterie
                                  

                                  stehen?
                                  an andere Stellen sollte man eigentlich nicht schreiben.
                                  Die datenpunkte sollten auch schon existieren.

                                  var TimeInterval= setInterval(MyJavascript ,5000);
                                  
                                  async function MyJavascript() {
                                    const user = "hycube";
                                    const password = "hycube";
                                    const authUrl = 'http://10.1.1.51/auth/';
                                    const getValuesUrl = 'http://10.1.1.51/get_values/';
                                  
                                    try {
                                      const authResponse = await httpPost(authUrl, null, {
                                        headers: {
                                          'Authorization': `Basic ${Buffer.from(`${user}:${password}`).toString('base64')}`
                                        }
                                      });
                                      console.log(authResponse.data);
                                      const authToken = authResponse.data;
                                  
                                      const getValuesResponse = await httpPost(getValuesUrl, null, {
                                        headers: {
                                          'Authorization': authToken
                                        }
                                      });
                                      console.log(getValuesResponse.data);
                                      const result = getValuesResponse.data;
                                  
                                      const GridPower = result["Grid_P"];
                                      const BatteryPower = result["Battery_P"];
                                      const HausPower = result["Home_P"];
                                      const solar = result["solar1_P"];
                                  
                                      setState('HyWeb.Batterie', BatteryPower);
                                      setState('HyWeb.Grid', GridPower);
                                      setState('HyWeb.Hausverbrauch', HausPower);
                                      setState('HyWeb.Solar', solar);
                                    } catch (error) {
                                      console.log("An error occurred:", error.message);
                                    }
                                  }
                                  
                                  S Offline
                                  S Offline
                                  schnipsel71
                                  wrote on last edited by
                                  #16

                                  @oliverio Ich habe einen Unterordner "HyWebNeu" und die vier Variablen darin manuell eingerichtet, dein Code so abgeändert:

                                      setState('0_userdata.0.HyWebNeu.Batterie', BatteryPower);
                                      setState('0_userdata.0.HyWebNeu.Grid', GridPower);
                                      setState('0_userdata.0.HyWebNeu.Hausverbrauch', HausPower);
                                      setState('0_userdata.0.HyWebNeu.Solar', solar);
                                  

                                  Aber es erscheint dennoch alle fünf Sekunden diese Fehlermeldung:

                                  javascript.0 908	2024-07-13 01:27:34.284	info	script.js.common.HycubeOliverIO: An error occurred:
                                  
                                  T 1 Reply Last reply
                                  0
                                  • S schnipsel71

                                    @oliverio Ich habe einen Unterordner "HyWebNeu" und die vier Variablen darin manuell eingerichtet, dein Code so abgeändert:

                                        setState('0_userdata.0.HyWebNeu.Batterie', BatteryPower);
                                        setState('0_userdata.0.HyWebNeu.Grid', GridPower);
                                        setState('0_userdata.0.HyWebNeu.Hausverbrauch', HausPower);
                                        setState('0_userdata.0.HyWebNeu.Solar', solar);
                                    

                                    Aber es erscheint dennoch alle fünf Sekunden diese Fehlermeldung:

                                    javascript.0 908	2024-07-13 01:27:34.284	info	script.js.common.HycubeOliverIO: An error occurred:
                                    
                                    T Offline
                                    T Offline
                                    TT-Tom
                                    wrote on last edited by
                                    #17

                                    @schnipsel71 sind das alle Meldungen die du bekommst??

                                    Gruß Tom
                                    https://github.com/tt-tom17
                                    Wenn meine Hilfe erfolgreich war, benutze bitte das Voting unten rechts im Beitrag

                                    NSPanel Script Wiki
                                    https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                    NSPanel Adapter Wiki
                                    https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki

                                    S 1 Reply Last reply
                                    0
                                    • OliverIOO OliverIO

                                      @schnipsel71

                                      Dann hat das nach 2 Sekunden das Gerät nicht reagiert. Steht da die richtige IP Adresse drin ?

                                      S Offline
                                      S Offline
                                      schnipsel71
                                      wrote on last edited by
                                      #18

                                      @oliverio Ja, die ist richtig.

                                      1 Reply Last reply
                                      0
                                      • T TT-Tom

                                        @schnipsel71 wenn die url stimmt dann setze den timeout einfach mal höher 3000 oder mehr.

                                        S Offline
                                        S Offline
                                        schnipsel71
                                        wrote on last edited by
                                        #19

                                        @tt-tom Hab' ich gemacht. Die gleiche Fehlermeldung kommt aber wieder nach 2 Sekunden.

                                        T 1 Reply Last reply
                                        0
                                        • T TT-Tom

                                          @schnipsel71 sind das alle Meldungen die du bekommst??

                                          S Offline
                                          S Offline
                                          schnipsel71
                                          wrote on last edited by
                                          #20

                                          @tt-tom Ja, leider.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          736

                                          Online

                                          32.6k

                                          Users

                                          82.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe