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. Energieerfassung mittels Weidmann emlog Script (JSON)

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Energieerfassung mittels Weidmann emlog Script (JSON)

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
1 Beiträge 1 Kommentatoren 1.1k Aufrufe 1 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.
  • T Offline
    T Offline
    thomassch
    schrieb am zuletzt editiert von thomassch
    #1

    Hallo Zusammen,

    ich habe mir das Weidmann Gerät emlog vor einiger Zeit gekauft um meine Stromzähler (1x Solar) (1x Bezug + Verbrauch) auszulesen.
    Im Gerät ist intern ein Raspberry verbaut und über die USB Schnittstellen werden Leseköpfe von Weimann angesteckt.
    Es lassen sich bis zu 3 Zähler mit einem Gerät auslesen.

    Das Gerät hat neben einer lokalen Auswertung über ein Windows Programm eine Webauswertung und eine JSON Seite über die man die Werte in IOBroker bekommt. Auch verschickt das Gerät auf Wunsch täglich eine eMail mit einer Verbrauchsdarstellung.
    Auf der SDKarte können noch dazu historische Verbrauchsdaten gespeichert werden (Tag, Monat, Jahr).

    Mittlerweile bin ich aber von der Lösung Weidmann zu einer Raspberry & IOBroker installation mit Smartmeter Adapter von Ingo umgestiegen. Die Leseköpfe
    von Weidmann funktionieren auch dort. Besten Dank nochmal an Ingo für den tollen Adapter.
    Warum? Bei der Lösung mit Weidmann habe ich nach 1-2 Wochen Betrieb leider immer wieder Probleme gehabt und musste das Gerät vor Ort neu starten.
    An was das liegt habe ich leider nicht herausgefunden und bin daher auf die einfachere Lösung mit Smartmeter und PI umgestiegen.

    PS: ich lese damit einem Itron ICE 3000 aus.
    Die Einstellung die ich hier im Forum gefunden habe hat am Anfang nicht geklappt, mit dieser Einstellung funktioniert aber der Zähler nun:

    Screenshot at Feb 07 10-21-34.png

    Falls aber jemand das Weidmann emlog Gerät noch hat, nachfolgende mein altes Script, bitte beachtet:

    • 192.168.xxx.xxx natürlich mit der Webadresse Eures Gerätes ersetzen!
    • Wenn Ihr kein Telegram habt die Zeile 78 aus kommentieren
    /*
    Abfrage per JSON
    Quelle: keine
    
    Die Ergebnisse kann man im JSON Viewer anschauen
    http://www.jsoneditoronline.org/
    
    Die Auswertung erfolgt dann mit dem folgende Script:
    **** Weidmann EmLog  ****
    */
    var logging = false;
    
    var request = require("request");
    var myJson = {};
    var instanz = 'javascript.0'; instanz = instanz + '.';
    var pfad = "EmLog_EnergieZaehler.";
    var idEmLogBezugZaehler180        = pfad + "BezugZaehler_180";
    var idEmLogLieferungZaehler280        = pfad + "LieferungZaehler_280";
    var idEmLogWirkleistung270        = pfad + "Wirkleistung_270";
    var idEmLogWLieferung280        = pfad + "WLieferung_280";
    
    createState(idEmLogBezugZaehler180, 0, {
        name: 'EmLog Strombezugszähler 180',
        desc: 'Bezugsmenge in KWh',
        type: 'number',
        role: 'value',
        unit: 'KWh'
    });
    
    createState(idEmLogLieferungZaehler280, 0, {
        name: 'EmLog StromLieferungzähler 280',
        desc: 'Lieferung Einspeisungsmenge in KWh',
        type: 'number',
        role: 'value',
        unit: 'KWh'
    });
    
    createState(idEmLogWirkleistung270, 0, {
        name: 'EmLog Wirkleistung 270',
        desc: 'Wirkleistung in W',
        type: 'number',
        role: 'value',
        unit: 'W'
    });
    
    createState(idEmLogWLieferung280, 0, {
        name: 'EmLog Leistung Lieferung 280',
        desc: 'Leistung in W',
        type: 'number',
        role: 'value',
        unit: 'W'
    });
    
    
    
    function parseJson(text) {
        if (text === "") return {};
        if (logging) log("readJson-text: " + text);
        try {
            json = JSON.parse(text);
        } catch (ex) {
            json = {};
        }
        if(!json) json = {};
        return json;
    }
    
    function readJson(url, callback) {
        request(url, function (err, state, body){
            if (logging) log("readJSon-url: " + url);
            if (body) {
                if (logging) log("readJSon-body: " + body);
                var json = parseJson(body);
                callback(null, json);
            } else {
                var error = "(" + err + ") ERROR bei Abfrage von: " + url;
                log(error, "error");
                setState("telegram.1.communicate.response", "!!!EmLog Energiezähler: Fehler beim Auslesen: " + err + "  " + url);
                callback(error, null);
            }
        });
    }
    
    
    
    function main() {
        
        // erst mal die Allgemeinen Gesamtdaten des Zaehlers auslesen
        var url = 'http://192.168.xxx.xxx/pages/getinformation.php?export&meterindex=1';
        readJson(url, function(err,json) {
            if(!err) {
                myJson = json;
                //if (logging) log("Json: " + json);
                if (logging) log("BezugZaehler_1.8.0: "    + parseFloat(myJson.Zaehlerstand_Bezug.Stand180),"info"); // Zähler KWh
                if (logging) log("LieferungZaehler_2.8.0: "    + parseFloat(myJson.Zaehlerstand_Lieferung.Stand280),"info"); // Zähler KWh
                if (logging) log("Wirkleistung_2.7.0: "    + parseFloat(myJson.Wirkleistung_Lieferung.Leistung270),"info"); // Leistung W
                if (logging) log("WLieferung_2.8.0: "    + parseFloat(myJson.Kwh_Lieferung.Kwh280+1000),"info"); // Leistung W
    
                setState(instanz+idEmLogBezugZaehler180  ,parseFloat(myJson.Zaehlerstand_Bezug.Stand180));
                if (logging) log("setstate schreibe in Tag: " + instanz+idEmLogBezugZaehler180 + " den Wert:" + parseFloat(myJson.Zaehlerstand_Bezug.Stand180))
                setState(instanz+idEmLogLieferungZaehler280  ,parseFloat(myJson.Zaehlerstand_Lieferung.Stand280));
                if (logging) log("setstate schreibe in Tag: " + instanz+idEmLogLieferungZaehler280 + " den Wert:" + parseFloat(myJson.Zaehlerstand_Lieferung.Stand280))
                setState(instanz+idEmLogWirkleistung270  ,parseFloat(myJson.Wirkleistung_Lieferung.Leistung270));
                if (logging) log("setstate schreibe in Tag: " + instanz+idEmLogWirkleistung270 + " den Wert:" + parseFloat(myJson.Wirkleistung_Lieferung.Leistung270))
                setState(instanz+idEmLogWLieferung280  ,parseFloat(myJson.Kwh_Lieferung.Kwh280)*1000);
                if (logging) log("setstate schreibe in Tag: " + instanz+idEmLogWLieferung280 + " den Wert:" + parseFloat(myJson.Kwh_Lieferung.Kwh280)*1000)
           
            } else {
                if (logging) log("Fehler beim Auslesen des EmLog Zählers über JSON. Keine Daten erhalten.","warn");
                myJson = {};
            }
        });
    
    
    
    }
    
    schedule("0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58 * * * *", function () { // alle 2 Minute die Werte abfragen
        main();
    });
    
    // Beim Skriptstart die Werte abfragen
    setTimeout(main,1500);
    

    Gruss
    Thomas

    ******* iobroker auf Intel PC, Raspberry PI4 + Homematic CCU *******

    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

    681

    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