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

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Status einlesen und in einzelne Variablen zerlegen

NEWS

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

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

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

Status einlesen und in einzelne Variablen zerlegen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
21 Beiträge 12 Kommentatoren 4.6k Aufrufe 6 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.
  • B Offline
    B Offline
    Brati
    schrieb am zuletzt editiert von
    #11

    Hmm,

    du müsstest dir mal das JSON aufgliedern und einlesen, dass kann ich aber auch nur über probieren.

    Der Anfang wäre, dass du das JSON einliest:

    var link    = "",
    	request = require('request'),
    	parseString = require('xml2js').parseString,
    	logging = true;
    
    
    
    var xml, result;
    
        link        = 'http://go-eCharger/status';
        request(link, function (error, response, body) {
                    parseString(body, function (err, result) {
                            if (logging) log("XML Objekt: " + result);
                            xml = JSON.stringify(result);
                            if (logging) log("XML Objekt: " + xml);
                            
                            log ("amp:  " + xml.amp.value);
                            log ("tmp:  " + xml.tmp.value);
                            
                        });
                  
        
        
        });   // Ende request 
    

    Du musst in der JS Instanz unbedingt das npm Modul "xml2js" hinzufügen.

    Das ist ungetestet und sollte die Werte für amp und tmp im log ausgeben. Ansonsten könnte man sich mit split auch noch alles zerlegen.

    Grüße

    Brati

    CCU2 - 46 Geräte, ioBroker auf Intel NUC (DN2820FYKH) mit Tab als Frontend, Projekt Gartenhaus mit HM

    paul53P 1 Antwort Letzte Antwort
    0
    • B Brati

      Hmm,

      du müsstest dir mal das JSON aufgliedern und einlesen, dass kann ich aber auch nur über probieren.

      Der Anfang wäre, dass du das JSON einliest:

      var link    = "",
      	request = require('request'),
      	parseString = require('xml2js').parseString,
      	logging = true;
      
      
      
      var xml, result;
      
          link        = 'http://go-eCharger/status';
          request(link, function (error, response, body) {
                      parseString(body, function (err, result) {
                              if (logging) log("XML Objekt: " + result);
                              xml = JSON.stringify(result);
                              if (logging) log("XML Objekt: " + xml);
                              
                              log ("amp:  " + xml.amp.value);
                              log ("tmp:  " + xml.tmp.value);
                              
                          });
                    
          
          
          });   // Ende request 
      

      Du musst in der JS Instanz unbedingt das npm Modul "xml2js" hinzufügen.

      Das ist ungetestet und sollte die Werte für amp und tmp im log ausgeben. Ansonsten könnte man sich mit split auch noch alles zerlegen.

      Grüße

      Brati

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #12

      @Brati sagte:

      npm Modul "xml2js" hinzufügen.

      Wozu ? Wo siehst Du XML-Code ?

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      B 1 Antwort Letzte Antwort
      0
      • bahnuhrB Online
        bahnuhrB Online
        bahnuhr
        Forum Testing Most Active
        schrieb am zuletzt editiert von
        #13

        Hallo,
        von mir auch ein kleines Script (ich hole damit den json meines Mähroboters (robonect) und weise die Werte Variablen zu.
        Danach kannst du diese Variablen in VIS darstellen.

        
        function weiter() {
            var request = require('request');
            request('http://192.168.xxx......', function (error, response, body) {
                if (!error && response.statusCode == 200) {
                    var obj = JSON.parse(body);
                        setState('javascript.0.Status.Mähroboter.Battery', obj.status.battery);
                        setState('javascript.0.Status.Mähroboter.Hours', obj.status.hours);
                        setState('javascript.0.Status.Mähroboter.Messer', obj.blades.quality);
                } else {
                    log("Error = " + error);
                }
                });
        }
        
        
        
        // alle 2 Minuten ------------------------------------------------------------------------------------------------------------------------
        
        schedule("*/2 * * * *", function () {
            weiter();           // Werte holen
        });
        
        

        Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
        Danke.
        gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
        ScreenToGif :https://www.screentogif.com/downloads.html

        1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @Brati sagte:

          npm Modul "xml2js" hinzufügen.

          Wozu ? Wo siehst Du XML-Code ?

          B Offline
          B Offline
          Brati
          schrieb am zuletzt editiert von
          #14

          @paul53 sagte in Status einlesen und in einzelne Variablen zerlegen:

          @Brati sagte:

          npm Modul "xml2js" hinzufügen.

          Wozu ? Wo siehst Du XML-Code ?

          Nigends :). Bin immer froh wenn es klappt.

          CCU2 - 46 Geräte, ioBroker auf Intel NUC (DN2820FYKH) mit Tab als Frontend, Projekt Gartenhaus mit HM

          1 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            Schwarzwald-Stromer
            schrieb am zuletzt editiert von Schwarzwald-Stromer
            #15

            Mit ioBroker den go-E Charger auslesen, den Werten aus dem json array Variablen zuordnen und diese an Objekte übergeben, damit von anderen Programmteilen darauf zugegriffen werden kann.

            • Im Tutorial des go-E Charger die gewünschten Werte markieren

            • In Admin ioBroker in der gewünschten JavaScript Instanz dann Objekte anlegen bei mir in javascript.0/Energie/
              (ich hab da noch ein paar andere drin, da ich die Ladung in Abhängigkeit von PV_Leistung und aktuellem Verbrauch im Haus steuern möchte. Das Programm ist aber noch nicht fertig).
              Bildschirmfoto 2019-03-24 um 11.05.25.png

            • In Admin ioBroker zu Skripte wechseln, mit + eine neue Gruppe anlegen (bei mir Eigene Skripte),
              dann in der neuen Gruppe ein neues Skript (mittlere Auswahl JS -JavaScript anlegen (Abfrage go-E Charger)

            • Mit copy & paste nachfolgende Zeilen einfügen:

            var alwx, alw0, etox, etoxd, nrg, nrg_x, nrg_4x, nrg_4xd, nrg_7x, nrg_7xd
            // Trigger 1 min
            schedule("*/1 * * * *", function () {
            try {
            require("request")('http://xxx.xxx.xxx.xxx/status', function (error, response, result) {
            setState("javascript.0.Energie.go-E_Abfrage"/go-E_Abfrage/, result, true);
            }).on("error", function (e) {console.error(e);});
            } catch (e) { console.error(e); }

            data = (function () { try {return JSON.parse(getState("javascript.0.Energie.go-E_Abfrage").val);} catch(e) {return {};}})();

            var alwx = parseInt(data["alw"]);
            setState("javascript.0.Energie.alw_0"/alw_0/, alwx, true);

            var etoxd = parseInt(data["eto"]);
            //Umrechnung in 1kWh
            var etox = etoxd / 1000;
            setState("javascript.0.Energie.eto_0"/eto_0/, etox, true);

            var nrg = data["nrg"]

            var nrg_0x = parseInt(nrg[0])
            setState("javascript.0.Energie.nrg_0"/nrg_0/, nrg_0x, true);

            var nrg_4xd = parseInt(nrg[4])
            //Umrechnung in 1A
            var nrg_4x = nrg_4xd / 10
            setState("javascript.0.Energie.nrg_4"/nrg_4/, nrg_4x, true);

            var nrg_7xd = parseInt(nrg[7])
            //Umrechnung in 1kW
            var nrg_7x = nrg_7xd / 10
            setState("javascript.0.Energie.nrg_7"/nrg_7/, nrg_7x, true);
            });

            • Die xxx.xxx.xxx. der IP Adresse noch durch die des eigenen go-E ersetzen und das Script starten,
              Objektansicht aktualisieren. In der Objektansicht sollten jetzt die gleichen Werte stehen, wie bei der direkten Abfrage des go-E Chargers über den Browser. Evtl. die Javascript Instanz auch noch neu starten

            • Dieses Script wird automatisch/ zeitgesteuert ausgeführt. Den Trigger hierzu könnt ihr übernehmen oder Euch mit Blockly einen "basteln" und die Zeile dann in dieses Skript reinkopieren. Wer andere Variablen benötigt muss dann zuerst wieder die Objekte anlegen und dann das Script anpassen

            Viel Erfolg
            Jürgen

            F 1 Antwort Letzte Antwort
            0
            • S Schwarzwald-Stromer

              Mit ioBroker den go-E Charger auslesen, den Werten aus dem json array Variablen zuordnen und diese an Objekte übergeben, damit von anderen Programmteilen darauf zugegriffen werden kann.

              • Im Tutorial des go-E Charger die gewünschten Werte markieren

              • In Admin ioBroker in der gewünschten JavaScript Instanz dann Objekte anlegen bei mir in javascript.0/Energie/
                (ich hab da noch ein paar andere drin, da ich die Ladung in Abhängigkeit von PV_Leistung und aktuellem Verbrauch im Haus steuern möchte. Das Programm ist aber noch nicht fertig).
                Bildschirmfoto 2019-03-24 um 11.05.25.png

              • In Admin ioBroker zu Skripte wechseln, mit + eine neue Gruppe anlegen (bei mir Eigene Skripte),
                dann in der neuen Gruppe ein neues Skript (mittlere Auswahl JS -JavaScript anlegen (Abfrage go-E Charger)

              • Mit copy & paste nachfolgende Zeilen einfügen:

              var alwx, alw0, etox, etoxd, nrg, nrg_x, nrg_4x, nrg_4xd, nrg_7x, nrg_7xd
              // Trigger 1 min
              schedule("*/1 * * * *", function () {
              try {
              require("request")('http://xxx.xxx.xxx.xxx/status', function (error, response, result) {
              setState("javascript.0.Energie.go-E_Abfrage"/go-E_Abfrage/, result, true);
              }).on("error", function (e) {console.error(e);});
              } catch (e) { console.error(e); }

              data = (function () { try {return JSON.parse(getState("javascript.0.Energie.go-E_Abfrage").val);} catch(e) {return {};}})();

              var alwx = parseInt(data["alw"]);
              setState("javascript.0.Energie.alw_0"/alw_0/, alwx, true);

              var etoxd = parseInt(data["eto"]);
              //Umrechnung in 1kWh
              var etox = etoxd / 1000;
              setState("javascript.0.Energie.eto_0"/eto_0/, etox, true);

              var nrg = data["nrg"]

              var nrg_0x = parseInt(nrg[0])
              setState("javascript.0.Energie.nrg_0"/nrg_0/, nrg_0x, true);

              var nrg_4xd = parseInt(nrg[4])
              //Umrechnung in 1A
              var nrg_4x = nrg_4xd / 10
              setState("javascript.0.Energie.nrg_4"/nrg_4/, nrg_4x, true);

              var nrg_7xd = parseInt(nrg[7])
              //Umrechnung in 1kW
              var nrg_7x = nrg_7xd / 10
              setState("javascript.0.Energie.nrg_7"/nrg_7/, nrg_7x, true);
              });

              • Die xxx.xxx.xxx. der IP Adresse noch durch die des eigenen go-E ersetzen und das Script starten,
                Objektansicht aktualisieren. In der Objektansicht sollten jetzt die gleichen Werte stehen, wie bei der direkten Abfrage des go-E Chargers über den Browser. Evtl. die Javascript Instanz auch noch neu starten

              • Dieses Script wird automatisch/ zeitgesteuert ausgeführt. Den Trigger hierzu könnt ihr übernehmen oder Euch mit Blockly einen "basteln" und die Zeile dann in dieses Skript reinkopieren. Wer andere Variablen benötigt muss dann zuerst wieder die Objekte anlegen und dann das Script anpassen

              Viel Erfolg
              Jürgen

              F Offline
              F Offline
              FriMatze
              schrieb am zuletzt editiert von
              #16

              @Schwarzwald-Stromer
              Moin Schwarzwald-Stromer,

              ich bin leider auch nur ein Copy und Paste nutzer. Und leider komme ich mit den ersten beiden Punkten nicht klar :(

              Im Tutorial des go-E Charger die gewünschten Werte markieren

              In Admin ioBroker in der gewünschten JavaScript Instanz dann Objekte anlegen bei mir in javascript.0/Energie/

              Magst du mir da weiterhelfen?

              S 1 Antwort Letzte Antwort
              0
              • F FriMatze

                @Schwarzwald-Stromer
                Moin Schwarzwald-Stromer,

                ich bin leider auch nur ein Copy und Paste nutzer. Und leider komme ich mit den ersten beiden Punkten nicht klar :(

                Im Tutorial des go-E Charger die gewünschten Werte markieren

                In Admin ioBroker in der gewünschten JavaScript Instanz dann Objekte anlegen bei mir in javascript.0/Energie/

                Magst du mir da weiterhelfen?

                S Offline
                S Offline
                Schwarzwald-Stromer
                schrieb am zuletzt editiert von
                #17

                @FriMatze Sorry, kann dir leider auch nicht helfen, habe hierzu auch Unterstützung gebraucht.
                Punkt 1 markieren, ist ja nur auf dem Papier in der go-eCharger API Spezifikation , damit man keine Variable vergisst.

                1 Antwort Letzte Antwort
                0
                • F Offline
                  F Offline
                  FriMatze
                  schrieb am zuletzt editiert von
                  #18

                  Moin zusammen,

                  mit meiner Frage hatte ich natürlich erhofft den bequemen weg gehen zu können. Habe mich dann selber noch mal mit dem Thema beschäftigt und musste dann schnell feststellen das ich ganz falsch gedacht habe. Darum kam auch nicht auf die Lösung. Als der Knoten dann geplatzt war, ging alles ganz schnell.
                  Habe alles über Blockly schnell und einfach gelöst, siehe Bilder.

                  Ich habe in der Homematic 2 Variabeln angelegt:
                  go-eCharger Automatic & go-eCharger Manuell.

                  Im Automatik Modus wird ausschließlich Überschuss bzw. aus meinem E3DC Hausakku geladen.

                  Die Daten aus dem E3DC System werden über die MODBus Schnittstelle abgerufen.

                  Bild 1 zeigt das das Batteriestatus und PV-Leistung die Ampere Stufe vom go-eCharger steuern.

                  Bild 2 zeigt das das der go-eCharger abgestellt wird, wenn der Akku vom E3DC System bei 20% ist. Dann schaffe ICH die Nacht und muss nichts einkaufen. Zum Herbst hin muss ich evtl. die Zahl anpassen.

                  Es läuft seitdem genauso wie ich es mir gewünscht habe.

                  Steuerung1.png

                  Steuerung2.png

                  E 1 Antwort Letzte Antwort
                  0
                  • F FriMatze

                    Moin zusammen,

                    mit meiner Frage hatte ich natürlich erhofft den bequemen weg gehen zu können. Habe mich dann selber noch mal mit dem Thema beschäftigt und musste dann schnell feststellen das ich ganz falsch gedacht habe. Darum kam auch nicht auf die Lösung. Als der Knoten dann geplatzt war, ging alles ganz schnell.
                    Habe alles über Blockly schnell und einfach gelöst, siehe Bilder.

                    Ich habe in der Homematic 2 Variabeln angelegt:
                    go-eCharger Automatic & go-eCharger Manuell.

                    Im Automatik Modus wird ausschließlich Überschuss bzw. aus meinem E3DC Hausakku geladen.

                    Die Daten aus dem E3DC System werden über die MODBus Schnittstelle abgerufen.

                    Bild 1 zeigt das das Batteriestatus und PV-Leistung die Ampere Stufe vom go-eCharger steuern.

                    Bild 2 zeigt das das der go-eCharger abgestellt wird, wenn der Akku vom E3DC System bei 20% ist. Dann schaffe ICH die Nacht und muss nichts einkaufen. Zum Herbst hin muss ich evtl. die Zahl anpassen.

                    Es läuft seitdem genauso wie ich es mir gewünscht habe.

                    Steuerung1.png

                    Steuerung2.png

                    E Offline
                    E Offline
                    Elektro_G
                    schrieb am zuletzt editiert von
                    #19

                    @FriMatze Kannst du den go e Charger empfehlen? ich bekomme bald auch einen Stromer und suche schon mal nach einer Wallbox die sich gut ioBroker auslesen und steuern lässt. OpenWB gibt es da ja auch.

                    1 Antwort Letzte Antwort
                    0
                    • I Offline
                      I Offline
                      Ioniq-2018
                      schrieb am zuletzt editiert von
                      #20

                      Ich werde die (oder den?) GO-e holen und dann hoffe ich ein Porgramm schreiben zu können, welches den PV-Überschuss optimal ins Auto bringt. Momentan kann ich nur EIN/AUS steuern.

                      lobomauL 1 Antwort Letzte Antwort
                      0
                      • I Ioniq-2018

                        Ich werde die (oder den?) GO-e holen und dann hoffe ich ein Porgramm schreiben zu können, welches den PV-Überschuss optimal ins Auto bringt. Momentan kann ich nur EIN/AUS steuern.

                        lobomauL Offline
                        lobomauL Offline
                        lobomau
                        schrieb am zuletzt editiert von
                        #21

                        @Ioniq-2018 und? go-echarger geholt und Programm geschrieben? Ich fange gerade damit an.

                        @Elektro_G ich kann den go-echarger grundsätzlich empfehlen. Welcher Vorteil der OpenWB hat, ist dass man da auch 1-phasig auf 3-phasig per App(?) umschalten kann.
                        Ich persönlich vermisse es nicht, da meine PV-Anlage nur 4 kWp groß ist. D.h. ich lasse den go-echarger nur auf einer Phase laufen. Ich habe festgestellt, dass ich mit 3,7 kW Ladeleistung (16A, 1p) locker hinkomme. Das ergibt immerhin 37 kWh in 10 Stunden und somit ca. 200km.
                        Im Notfall kann ich immer noch kurz in Keller und manuell am Stromkasten auf drei Phasen und somit 11 kW umschalten.

                        Host: NUC8i3 mit Proxmox:

                        • ioBroker CT Debian 13, npm 10.9.3, nodejs 22.20.0
                        • Slave: Pi4
                        1 Antwort Letzte Antwort
                        0
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        520

                        Online

                        32.4k

                        Benutzer

                        81.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