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. [gelöst]: Easymeter bzw. Smart Grid Hub über Javascript auslesen (JSON)

NEWS

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

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

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

[gelöst]: Easymeter bzw. Smart Grid Hub über Javascript auslesen (JSON)

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
27 Beiträge 6 Kommentatoren 4.6k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • blauholstenB Offline
    blauholstenB Offline
    blauholsten
    Developer
    schrieb am zuletzt editiert von
    #18

    Kannst ja mal das probieren…

    // Easymeter auslesen
    
    var request = require('request');
    var pfad = "Easymeter.";
    
    var idpower       = pfad + "Leistung";
    var idheute       = pfad + "Ertrag-heute";
    var idgestern     = pfad + "Ertrag-gestern";
    
    var url = 'http://192.168.2.8/json.txt?LogName=xxx&LogPSWD=xxx';
    
     createState(idpower, 0, {
        desc: 'Momentanleistung',
        type: 'number',
        role: 'value',
        unit: 'W'
    });
    
    createState(idheute, 0, {
        desc: 'Ertrag Tag',
        type: 'number',
        role: 'value',
        unit: 'kWh'
    });
    
    createState(idgestern, 0, {
        desc: 'Ertrag Vortag',
        type: 'number',
        role: 'value',
        unit: 'kWh'
    });
    
    function write(values){
                log("Momentanleistung: " + values[2].value,"info");
                log("Ertrag Tag: "       + values[9].value,"info");
                log("Ertrag Vortag: "    + values[10].value,"info");
                setState(idpower  , values[2].value);
                setState(idheute  , values[9].value);
                setState(idgestern, values[10].value);
    } 
    
    function main() {
        request(url, function (err, state, body) {
            if(!err && state.statusCode == 200) {
                try{
                    var values = JSON.parse(body).billingData.values;
                    setTimout(function(){
                    write(values)},100);
                }
                catch(e){
                    log(e + "parsen fehlgeschlagen");
                }
    
            } else {
                log("Fehler: " + err + " bei Abfrage von: " + url, "warn");
            }
        });
    }
    
    schedule("*/10 * * * *", main); // alle 10 Minuten die Werte abfragen
    
    // Beim Skriptstart die Werte abfragen
    setTimeout(main,500);
    

    Entwickler vom: - Viessman Adapter
    - Alarm Adapter

    1 Antwort Letzte Antwort
    0
    • M Offline
      M Offline
      MIKAMI
      schrieb am zuletzt editiert von
      #19

      Hallo Zusammen,

      danke für die Rückmeldungen. Das Script von blauholsten bringt leider ebenfalls einen Fehler:

      javascript.0 2017-01-18 19:20:00.568 info javascript.0 script.js.Scripte.Easymeter_1: TypeError: Cannot read property 'values' of undefinedparsen fehlgeschlagen

      javascript.0 2017-01-18 19:18:42.130 info script.js.Scripte.Easymeter_1: TypeError: Cannot read property 'values' of undefinedparsen fehlgeschlagen

      Das aktualisierte Script von paul53 bringt folgende Logeinträge

      javascript.0 2017-01-18 19:35:12.595 info terminating

      javascript.0 2017-01-18 19:35:12.579 error at emitNone (events.js:72:20)

      javascript.0 2017-01-18 19:35:12.579 error at IncomingMessage.g (events.js:260:16)

      javascript.0 2017-01-18 19:35:12.579 error at IncomingMessage. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1001:12)

      javascript.0 2017-01-18 19:35:12.579 error at Request.emit (events.js:169:7)

      javascript.0 2017-01-18 19:35:12.579 error at emitOne (events.js:77:13)

      javascript.0 2017-01-18 19:35:12.579 error at Request. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1081:10)

      javascript.0 2017-01-18 19:35:12.579 error at Request.emit (events.js:172:7)

      javascript.0 2017-01-18 19:35:12.579 error at emitTwo (events.js:87:13)

      javascript.0 2017-01-18 19:35:12.579 error at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:186:22)

      javascript.0 2017-01-18 19:35:12.579 error at Request._callback (script.js.Scripte.Easymeter_1_2:45:48)

      javascript.0 2017-01-18 19:35:12.579 error TypeError: Cannot read property 'values' of undefined

      javascript.0 2017-01-18 19:35:12.565 error uncaught exception: Cannot read property 'values' of undefined

      Mach ich evt. selbst einen Fehler? Für das Verständnis kann mir evt. mal jemand erklären wie ich hier auf die values [2],[9] und [10] im Script komme wenn im JSON Output die gewünschten Werte an einer anderen Stelle stehen? Warum ist im JSON Output der Wert meistens "value" nur einmal "values" und im Script "values* .value Ist evt. da der Fehler oder liegt es an meinen Nichtwissen bezüglich Javascript und JSON :?

      Danke und Gruß
      
      Michael
      
      1 Antwort Letzte Antwort
      0
      • blauholstenB Offline
        blauholstenB Offline
        blauholsten
        Developer
        schrieb am zuletzt editiert von
        #20

        EDIT: Blödsinniger Post :oops:

        Entwickler vom: - Viessman Adapter
        - Alarm Adapter

        1 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #21

          Füge mal vor oder nach

          var result;
          

          ein und poste das Ergebnis:

          log('body: ' + body);
          

          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

          1 Antwort Letzte Antwort
          0
          • I Offline
            I Offline
            ichderarnd
            schrieb am zuletzt editiert von
            #22

            @MIKAMI:

            Mach ich evt. selbst einen Fehler? Für das Verständnis kann mir evt. mal jemand erklären wie ich hier auf die values [2],[9] und [10] im Script komme wenn im JSON Output die gewünschten Werte an einer anderen Stelle stehen? Warum ist im JSON Output der Wert meistens "value" nur einmal "values" und im Script "values* .value Ist evt. da der Fehler oder liegt es an meinen Nichtwissen bezüglich Javascript und JSON :?

            Danke und Gruß
            
            Michael
            
            Hallo Michael,
            
            
            
            guck Dir mal die Zeile:
            
            
            ````
            var billingData = result["billingData:"];
            ````
            
            aus meinem Code weiter oben im Post an. EFR hat da leider einen Doppelpunkt in das "billingData" gebastelt…
            
            Wenn Du es so löst, sollte es auch mit den anderen Beispielen klappen.
            
            
            
            Viele Grüße
            
            arndl ` 
            
            1 Antwort Letzte Antwort
            0
            • paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #23

              @arndl:

              EFR hat da leider einen Doppelpunkt in das "billingData" gebastelt… `
              Stimmt, habe ich glatt übersehen :? Dann muss die Zeile

                              var values = result.billingData.values;
              

              geändert werden in

                              var values = result["billingData:"].values;
              
              

              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

              1 Antwort Letzte Antwort
              0
              • M Offline
                M Offline
                MIKAMI
                schrieb am zuletzt editiert von
                #24

                Hallo Zusammen,

                vielen Dank für die Unterstützung und Fehlersuche. Ich habe jetzt die Scripte auf meine 2 Smart Grid Hubs erfolgreich angepasst und bekomme die Werte die ich brauche…

                1876_smart_grid_hub.jpg

                Danke und Gruß Michael

                1 Antwort Letzte Antwort
                0
                • paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #25

                  @MIKAMI:

                  Ich habe jetzt die Scripte auf meine 2 Smart Grid Hubs erfolgreich angepasst und bekomme die Werte die ich brauche.. `
                  Dann markiere bitte den Beitrag als [gelöst].

                  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

                  1 Antwort Letzte Antwort
                  0
                  • M Offline
                    M Offline
                    MIKAMI
                    schrieb am zuletzt editiert von
                    #26

                    Betreff markiert als [gelöst]

                    Danke

                    1 Antwort Letzte Antwort
                    0
                    • apollon77A Offline
                      apollon77A Offline
                      apollon77
                      schrieb am zuletzt editiert von
                      #27

                      Alle interessierten können auch gern den neuen Adapter testen …

                      http://forum.iobroker.net/viewtopic.php?f=36&t=5047

                      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                      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

                      507

                      Online

                      32.4k

                      Benutzer

                      81.5k

                      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