Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. FRONIUS Adapter Entwicklung eingestellt?

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    FRONIUS Adapter Entwicklung eingestellt?

    This topic has been deleted. Only users with topic management privileges can see it.
    • nkleber
      nkleber @JJPhoenix79 last edited by

      @jjphoenix79 Die Daten kannst du nur aus der differenz zwischen WR und Smartmeter rechnen. Diese werden nicht über die API zur verfügung gestellt. Das Solarweb portal berechnet diese Daten auch selbst

      gruß Norbert

      1 Reply Last reply Reply Quote 1
      • da_Woody
        da_Woody @JJPhoenix79 last edited by

        @jjphoenix79
        1e80bb4a-7868-4fba-95f5-1e470cf9084b-grafik.png

        1 Reply Last reply Reply Quote 0
        • J
          JJPhoenix79 last edited by

          @nkleber said in FRONIUS Adapter Entwicklung eingestellt?:

          @jjphoenix79 Die Daten kannst du nur aus der differenz zwischen WR und Smartmeter rechnen. Diese werden nicht über die API zur verfügung gestellt. Das Solarweb portal berechnet diese Daten auch selbst

          gruß Norbert

          @da_woody said in FRONIUS Adapter Entwicklung eingestellt?:

          @jjphoenix79
          1e80bb4a-7868-4fba-95f5-1e470cf9084b-grafik.png

          Ok, danke euch beider erstmal. Da ich mich auch parallel noch mit dem Modbus beschäftige, warte ich hiermit noch etwas.

          Möchte gern ohne Cloud, die entsprechenden Daten meiner beider WR ink des SM haben, wenn das denn damit geht.

          jmeister79 1 Reply Last reply Reply Quote 0
          • jmeister79
            jmeister79 @JJPhoenix79 last edited by

            @jjphoenix79 Die Berechnungen machste dann einfach im iobroker selber, ist kinderleicht.

            1 Reply Last reply Reply Quote 0
            • Alen
              Alen last edited by

              Gibt es in der neuen 2er API eigentlich einen Datenpunkt mit dem aktuellen Tagesverbrauch (Energie) ? Ich konnte nichts finden. Falls nicht, wie könnte man diesem am besten selbst berechnen?

              Gruss
              Alen

              jmeister79 1 Reply Last reply Reply Quote 0
              • jmeister79
                jmeister79 @Alen last edited by

                @alen hab nix gesehen aber ich erfasse alles selber.

                ich mach das so:

                Ich machd as mit nem Array aus Sensoren,. ist aber analog zu einzelwerten:

                hier:
                "Fronius","WH","javascript.0.Zaehler.PVZaehlerFronius_abs","TDWMY"

                TWDMY heißt täglich wöchentlich usw... wenn Interesse am ganzen script besteht melde dich

                on({id: "fronius.0.inverter.1.TOTAL_ENERGY", change: 'ne'}, function (obj) {
                //schedule("* * * * *", function () {
                    setState("javascript.0.Verbrauch.Fronius_daily_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehlerFronius_abs").val - getState("javascript.0.Verbrauch.Fronius_daily_last").val)*1000)/1000, true);
                    setState("javascript.0.Verbrauch.Fronius_weekly_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehlerFronius_abs").val - getState("javascript.0.Verbrauch.Fronius_weekly_last").val)*1000)/1000, true);
                    setState("javascript.0.Verbrauch.Fronius_monthly_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehlerFronius_abs").val - getState("javascript.0.Verbrauch.Fronius_monthly_last").val)*1000)/1000, true);
                    setState("javascript.0.Verbrauch.Fronius_yearly_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehlerFronius_abs").val - getState("javascript.0.Verbrauch.Fronius_yearly_last").val)*1000)/1000, true);
                });
                
                schedule("57 23 * * *", function () {
                    for (var n = 0; n < ArrayOfSensors.length; n+=4) { // for every third    
                        if (ArrayOfSensors[n+3].includes('D') ){   
                            var actvalue = getState(ArrayOfSensors[n+2]).val;
                            var lastvalue = getState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily_last').val;
                            var [verbrauch, letzter] = intervallVerbrauch(actvalue, lastvalue);
                            setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily',verbrauch, true);    //Summe des Tages
                            setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily_last', letzter, true); //letzter Zählerstand
                            setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily_actual', 0, true); //
                        }
                    }
                
                function intervallVerbrauch(totalAct, totalLast){
                    var consumption = Math.round ((totalAct - totalLast)*100)/100;
                    totalLast = Math.round (totalAct*100)/100;
                    return [consumption, totalLast]; 
                }
                
                Negalein 1 Reply Last reply Reply Quote 0
                • Negalein
                  Negalein Global Moderator @jmeister79 last edited by

                  @jmeister79 sagte in FRONIUS Adapter Entwicklung eingestellt?:

                  TWDMY heißt täglich wöchentlich usw... wenn Interesse am ganzen script besteht melde dich

                  hätte Interesse 🙂

                  jmeister79 1 Reply Last reply Reply Quote 0
                  • jmeister79
                    jmeister79 @Negalein last edited by jmeister79

                    @negalein

                    Bitte.
                    Ist auf meine Bedürfnisse angepasst sollte aber grundsätzlich so funktionieren.

                    Es werden am Anfang für jeden Sensor die benötigten Punkte angelegt und in History aktiviert.

                    ps.: Kommentieren war noch nie mein Ding

                    var hist = {
                         "history.0": {
                            "enabled": true,
                            "changesOnly": true,
                            "debounce": 10000,
                            "maxLength": 360,
                            "retention": 31536000
                         }
                    };
                    
                    
                    
                    //Sensor Array aller erfassten Geräte (Diese sind ebreits vorhanden)
                    // "Name","Einheit","Quelle","MDW"
                    //T:today
                    //m: minutelly
                    //D: Daily
                    //W: Weekly
                    //M: Monthly
                    //Y: Yearly
                    var ArrayOfSensors = [
                        "Stromzaehler","kWh","javascript.0.Zaehler.StromZaehler_abs","TmDWMY",         // "javascript.0.Zaehler.StromZaehler_abs"
                        "TauchpumpeSicker","kWh","fritzdect.0.DECT_xxxxxxxx.energy","mDW",
                        "TauchpumpeRegen","kWh","fritzdect.0.DECT_xxxxxxxx.energy","mDW",
                        "TauchpumpeLager","kWh","fritzdect.0.DECT_xxxxxxxx.energy","mDW",
                        "TauchpumpeHeiz","kWh","fritzdect.0.DECT_xxxxxxxx","mDW",
                        "TauchpumpeWerkstatt","kWh","fritzdect.0.DECT_xxxxxxxx.energy","mDW",
                        "Entfeuchter","kWh","zigbee.0.xxxxxxxx.consumption","TmDW",  
                        "Gaszaehler","m³","javascript.0.Zaehler.GasZaehler_abs","TmDWMY",                      // "javascript.0.Zaehler.GasZaehler_abs"
                        "Heizung","kWh","ems-esp.0.heatSources.energyMonitoring.consumption","DW",
                        "Brennerstarts","","ems-esp.0.heatSources.numberOfStarts","TDW",
                        "Photovoltaik","kWH","javascript.0.Zaehler.PVZaehler_abs","TmDWMY",
                        "Fronius","WH","javascript.0.Zaehler.PVZaehlerFronius_abs","TDWMY"
                        ];
                    
                        
                    var historyObjArray = [];
                    //Alle Datenpunkte kreieren
                    for (var n = 0; n < ArrayOfSensors.length; n+=4) { // for every second
                        if (ArrayOfSensors[n+3].includes('T') ){
                            createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily_actual', 0.0, {name: "diff today"+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});    
                        }
                        if (ArrayOfSensors[n+3].includes('m') ){
                            createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_600s', 0.0, {name: "diff last 10min "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                            createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_600s_last', 0.0, {name: "abs last 10 min "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                            historyObjArray.push('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_600s'); //Ins History Array
                        }
                        if (ArrayOfSensors[n+3].includes('D') ){
                            createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily', 0.0, {name: "diff last day "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                            createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily_last', 0.0, {name: "abs last day "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                            historyObjArray.push('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily');//Ins History Array
                        }
                        if (ArrayOfSensors[n+3].includes('W') ){    
                            createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_weekly', 0.0, {name: "diff last week "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                            createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_weekly_last', 0.0, {name: "abs last Week "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                            createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_weekly_actual', 0.0, {name: "abs last Week "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                            historyObjArray.push('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_weekly');//Ins History Array
                        }
                        if (ArrayOfSensors[n+3].includes('M') ){
                            createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_monthly', 0.0, {name: "diff last month "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                            createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_monthly_last', 0.0, {name: "abs last month "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                            createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_monthly_actual', 0.0, {name: "abs last Week "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                            historyObjArray.push('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_monthly');//Ins History Array
                        }
                        if (ArrayOfSensors[n+3].includes('Y') ){    
                            createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_yearly', 0.0, {name: "diff last year "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                            createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_yearly_last', 0.0, {name: "abs last year "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                            createState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_yearly_actual', 0.0, {name: "diff actual yeat "+ArrayOfSensors[n], type: 'number', unit: ArrayOfSensors[n+1]});
                            historyObjArray.push('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_yearly');//Ins History Array
                        }
                    }
                    
                    //History aktivieren für daily, weekly, monthly, yearly
                    for (var n = 0; n < historyObjArray.length; n++) { // for every second
                       // log (historyObjArray[n]);
                    
                        sendTo('history.0', 'enableHistory', {
                            id: historyObjArray[n],
                            options: {
                                changesOnly:  true,
                                debounce:     0,
                                retention:    0,
                                maxLength:    960,
                                changesMinDelta: 0,
                                aliasId: ''
                            }
                        }, function (result) {
                            if (result.error) {
                                console.log(result.error);
                            }
                            if (result.success) {
                    
                                // successfully enabled
                    
                            }
                        });
                    }
                    
                    
                    
                    //erfassen der Sensorwerte auf today und actual year
                    //diese sensoren sollen immer live werte zeigen, dafür war das "T" gedacht
                    //Diese Kolelgen müssen manuell programmeirt werden, da ich noch nicht weiß wie ich aus einem array triggern kann. evtl mit concat im on?
                    //Hier evtl auf alle 10s umsteigen?
                    on({id: "javascript.0.Zaehler.StromZaehler_abs", change: 'ne'}, function (obj) {
                        setState("javascript.0.Verbrauch.Stromzaehler_daily_actual", Math.round ((getState("javascript.0.Zaehler.StromZaehler_abs").val - getState("javascript.0.Verbrauch.Stromzaehler_daily_last").val)*100)/100, true);
                        setState("javascript.0.Verbrauch.Stromzaehler_weekly_actual", Math.round ((getState("javascript.0.Zaehler.StromZaehler_abs").val - getState("javascript.0.Verbrauch.Stromzaehler_weekly_last").val)*100)/100, true);
                        setState("javascript.0.Verbrauch.Stromzaehler_yearly_actual", Math.round ((getState("javascript.0.Zaehler.StromZaehler_abs").val - getState("javascript.0.Verbrauch.Stromzaehler_yearly_last").val)*100)/100, true);
                    });
                    on({id: "javascript.0.Zaehler.GasZaehler_abs", change: 'ne'}, function (obj) {
                        setState("javascript.0.Verbrauch.Gaszaehler_daily_actual", Math.round ((getState("javascript.0.Zaehler.GasZaehler_abs").val - getState("javascript.0.Verbrauch.Gaszaehler_daily_last").val)*1000)/1000, true);
                        setState("javascript.0.Verbrauch.Gaszaehler_weekly_actual", Math.round ((getState("javascript.0.Zaehler.GasZaehler_abs").val - getState("javascript.0.Verbrauch.Gaszaehler_weekly_last").val)*1000)/1000, true);
                        setState("javascript.0.Verbrauch.Gaszaehler_yearly_actual", Math.round ((getState("javascript.0.Zaehler.GasZaehler_abs").val - getState("javascript.0.Verbrauch.Gaszaehler_yearly_last").val)*1000)/1000, true);
                    });
                    on({id: "javascript.0.Zaehler.PVZaehler_abs", change: 'ne'}, function (obj) {
                        setState("javascript.0.Verbrauch.Photovoltaik_daily_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehler_abs").val - getState("javascript.0.Verbrauch.Photovoltaik_daily_last").val)*1000)/1000, true);
                        setState("javascript.0.Verbrauch.Photovoltaik_weekly_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehler_abs").val - getState("javascript.0.Verbrauch.Photovoltaik_weekly_last").val)*1000)/1000, true);
                        setState("javascript.0.Verbrauch.Photovoltaik_monthly_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehler_abs").val - getState("javascript.0.Verbrauch.Photovoltaik_monthly_last").val)*1000)/1000, true);
                        setState("javascript.0.Verbrauch.Photovoltaik_yearly_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehler_abs").val - getState("javascript.0.Verbrauch.Photovoltaik_yearly_last").val)*1000)/1000, true);
                    });
                    on({id: "fronius.0.inverter.1.TOTAL_ENERGY", change: 'ne'}, function (obj) {
                    //schedule("* * * * *", function () {
                        setState("javascript.0.Verbrauch.Fronius_daily_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehlerFronius_abs").val - getState("javascript.0.Verbrauch.Fronius_daily_last").val)*1000)/1000, true);
                        setState("javascript.0.Verbrauch.Fronius_weekly_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehlerFronius_abs").val - getState("javascript.0.Verbrauch.Fronius_weekly_last").val)*1000)/1000, true);
                        setState("javascript.0.Verbrauch.Fronius_monthly_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehlerFronius_abs").val - getState("javascript.0.Verbrauch.Fronius_monthly_last").val)*1000)/1000, true);
                        setState("javascript.0.Verbrauch.Fronius_yearly_actual", Math.round ((getState("javascript.0.Zaehler.PVZaehlerFronius_abs").val - getState("javascript.0.Verbrauch.Fronius_yearly_last").val)*1000)/1000, true);
                    });
                    
                    
                    //600s Erfassung
                    schedule("*/10 * * * *", function () {
                        for (var n = 0; n < ArrayOfSensors.length; n+=4) { // for every third
                            if (ArrayOfSensors[n+3].includes('m') ){       
                                var actvalue = getState(ArrayOfSensors[n+2]).val;
                                var lastvalue = getState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_600s_last').val;
                                var [verbrauch, letzter] = intervallVerbrauch(actvalue, lastvalue);
                                setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_600s',verbrauch, true);
                                setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_600s_last', letzter, true);
                            }
                        }
                    });
                    
                    //24h erfassung
                    schedule("57 23 * * *", function () {
                        for (var n = 0; n < ArrayOfSensors.length; n+=4) { // for every third    
                            if (ArrayOfSensors[n+3].includes('D') ){   
                                var actvalue = getState(ArrayOfSensors[n+2]).val;
                                var lastvalue = getState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily_last').val;
                                var [verbrauch, letzter] = intervallVerbrauch(actvalue, lastvalue);
                                setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily',verbrauch, true);
                                setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily_last', letzter, true);
                                setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_daily_actual', 0, true);
                            }
                        }
                        var WirkGrad = 0;
                        var Zustandszahl = getState("javascript.0.Parameter.ZustandszahlGas").val;
                        var HeizLeistung = getState("javascript.0.Heizung.Verbrauch.actualPower.Yesterday").val;
                        var GasVerbrauch = Math.round ((getState("javascript.0.Zaehler.GasZaehler_abs").val - getState("javascript.0.Gaszaehler_Daily_last").val)*1000)/1000
                    
                        WirkGrad = HeizLeistung / (GasVerbrauch * Zustandszahl); 
                        setState("javascript.0.Gas.errWirkungsgrad", WirkGrad);
                    });
                    
                    //Wöchentlich Montags 00:00
                    schedule("0 0 * * 1", function () {
                        for (var n = 0; n < ArrayOfSensors.length; n+=4) { // for every third
                            if (ArrayOfSensors[n+3].includes('W') ){   //nur wenn wöchentlich aktiviert ist
                                var actvalue = getState(ArrayOfSensors[n+2]).val;
                                var lastvalue = getState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_weekly_last').val;
                                var [verbrauch, letzter] = intervallVerbrauch(actvalue, lastvalue);
                                setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_weekly',verbrauch, true);
                                setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_weekly_last', letzter, true);
                                setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_weekly_actual', 0, true);
                            }
                        }
                    });
                    
                    
                    //Monatlich 01. 00:00
                    schedule("1 0 1 * *", function () {
                        for (var n = 0; n < ArrayOfSensors.length; n+=4) { // for every third
                            if (ArrayOfSensors[n+3].includes('M') ){   //nur wenn Monatlich aktiviert ist
                                var actvalue = getState(ArrayOfSensors[n+2]).val;
                                var lastvalue = getState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_monthly_last').val;
                                var [verbrauch, letzter] = intervallVerbrauch(actvalue, lastvalue);
                                setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_monthly',verbrauch, true);
                                setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_monthly_last', letzter, true);
                            }
                        }
                    });
                    
                    
                    //Jährlich an neujahr  00:01
                    schedule("1 0 1 1 *", function () {
                        log('los gehts');
                        for (var n = 0; n < ArrayOfSensors.length; n+=4) { // for every third
                            if (ArrayOfSensors[n+3].includes('Y') ){   //nur wenn wöchentlich aktiviert ist
                                var actvalue = getState(ArrayOfSensors[n+2]).val;
                                var lastvalue = getState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_yearly_last').val;
                                var [verbrauch, letzter] = intervallVerbrauch(actvalue, lastvalue);
                                setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_yearly',verbrauch, true);
                                setState('javascript.0.Verbrauch.'+ArrayOfSensors[n]+'_yearly_last', letzter, true);
                                log(ArrayOfSensors[n])
                            }
                        }
                    });
                    
                    function intervallVerbrauch(totalAct, totalLast){
                        var consumption = Math.round ((totalAct - totalLast)*100)/100;
                        totalLast = Math.round (totalAct*100)/100;
                        return [consumption, totalLast]; 
                    }
                    
                    
                    
                    
                    
                    
                    
                    
                    Alen 1 Reply Last reply Reply Quote 0
                    • Alen
                      Alen @jmeister79 last edited by

                      @jmeister79 Vielen Dank für dein Script.

                      Ich habe jedoch Schwierigkeiten genau zu vestehen, wie der Verbrauch nun berechnet wird?

                      Woher kommt bei dir der Datenpunkt

                      javascript.0.Zaehler.StromZaehler_abs
                      

                      ?

                      Liefert das dein (Fronius) Wechselrichter bzw. die Solarweb API ?

                      Du berechnest dann den Stromverbrauch anhand der Veränderung dieses Wertes - korrekt?

                      Gruss
                      Alen

                      jmeister79 1 Reply Last reply Reply Quote 0
                      • jmeister79
                        jmeister79 @Alen last edited by jmeister79

                        @alen ich benutze Aliasse. Ich hab n Javascript das bei onChange die werte aus dem Fronius in diesen Datenpunkt schreibt, falls sichd ann die sChnittstelle ändert muss ich nur diese stelle ändern statt alle. Stromverbrauch wird inkrementell berechnet:

                        Hatte da neulich noch n Fehler korrigiert:

                        
                        createState("javascript.0.Zaehler.StromZaehler_abs", 0.0, {name: "Zaehlerstand Stromzähler", type: 'number', unit: 'kWh'});
                        
                        //Initialwerte für neustart des Scriptes
                        var total_oldPlus = getState("fronius.0.meter.0.EnergyReal_WAC_Plus_Absolute").val;
                        var total_oldMinus = getState("fronius.0.meter.0.EnergyReal_WAC_Minus_Absolute").val;
                        
                        
                        
                        
                        on({id: 'fronius.0.meter.0.EnergyReal_WAC_Plus_Absolute', change: "any"}, function (obj) {
                            var total_new = getState("fronius.0.meter.0.EnergyReal_WAC_Plus_Absolute").val; //New Value speichern   
                            var diff = (total_new - total_oldPlus);   
                            var zaehlerstand_alt = getState("javascript.0.Zaehler.StromZaehler_abs").val;	//alten zählerstand abfragen
                            setState("javascript.0.Zaehler.StromZaehler_abs", Math.round (1000*zaehlerstand_alt+diff)/1000);	//Auf drei nachkommastellen runden
                            total_oldPlus = total_new; //Old Value speichern 
                        });
                        
                        on({id: 'fronius.0.meter.0.EnergyReal_WAC_Minus_Absolute', change: "any"}, function (obj) {
                            var total_new = getState("fronius.0.meter.0.EnergyReal_WAC_Minus_Absolute").val; //New Value speichern   
                            var diff = (total_new - total_oldMinus);     
                            var zaehlerstand_alt = getState("javascript.0.Zaehler.StromZaehler_abs").val;	//alten zählerstand abfragen
                            setState("javascript.0.Zaehler.StromZaehler_abs", Math.round (1000*zaehlerstand_alt-diff)/1000);	//Auf drei nachkommastellen runden
                            total_oldMinus = total_new; //Old Value speichern 
                        });
                        
                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        430
                        Online

                        31.6k
                        Users

                        79.6k
                        Topics

                        1.3m
                        Posts

                        fronius
                        44
                        440
                        80227
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo