NEWS
Zähler auslesen und Watt+ und Watt- in Whh rechnen.
-
Hallo,
Ich lese meinen Zähler über Tasmota aus.
Mir wird der aktuelle Verbauch in Watt+ und der Überschuss in Watt- angezeigt.
Ist es möglich das mir die Watt+ Leistung in Kwh errechnet wird und die Watt- Leistung auch in Kwh.
So das ich am Ende des Tages sehen kann wie viel Kwh Verbaucht und erzeugt wurde? Also zwei Werte raus bekomme. -
Hallo,
Ich lese meinen Zähler über Tasmota aus.
Mir wird der aktuelle Verbauch in Watt+ und der Überschuss in Watt- angezeigt.
Ist es möglich das mir die Watt+ Leistung in Kwh errechnet wird und die Watt- Leistung auch in Kwh.
So das ich am Ende des Tages sehen kann wie viel Kwh Verbaucht und erzeugt wurde? Also zwei Werte raus bekomme. -
@schmello sagte:
Mir wird der aktuelle Verbauch in Watt+ und der Überschuss in Watt- angezeigt.
Sind das zwei Datenpunkte oder erkennt man das über das Vorzeichen?
-
Das wird nur durch das Vorzeichen erkannt. Also ein Datenpunkt
Ich müsste jetzt nochmal genau nachsehen. Bin gerade nicht Zuhause.
400W verbrauch = 400W
400W wird eingespeist = -400W@schmello sagte: Das wird nur durch das Vorzeichen erkannt.
Versuche mal (nach Anpassung der IDs):
// IDs anpassen! const idLeistung = 'mqtt.0.xyz'; const path = '0_userdata.0.Zaehler.'; const idVStand = path + 'Verbrauch.Zaehlerstand'; const idVStandTag = path + 'Verbrauch.Tagesstand'; const idVTag = path + 'Verbrauch.Tag'; const idUStand = path + 'Ueberschuss.Zaehlerstand'; const idUStandTag = path + 'Ueberschuss.Tagesstand'; const idUTag = path + 'Ueberschuss.Tag'; if(!existsState(idVStand)) { createState(idVStand, 0, {type: 'number', name: 'Zählerstand Verbrauch', role: 'value.power.consumption', unit: 'kWh'}); createState(idVStandTag, 0, {type: 'number', name: 'Tagesstand Verbrauch', role: 'value.power.consumption', unit: 'kWh'}); createState(idVTag, 0, {type: 'number', name: 'Verbrauch gestern', role: 'value.power.consumption', unit: 'kWh'}); createState(idUStand, 0, {type: 'number', name: 'Zählerstand Überschuss', role: 'value.power.consumption', unit: 'kWh'}); createState(idUStandTag, 0, {type: 'number', name: 'Tagesstand Überschuss', role: 'value.power.consumption', unit: 'kWh'}); createState(idUTag, 0, {type: 'number', name: 'Überschuss gestern', role: 'value.power.consumption', unit: 'kWh'}); } var verbrauch = getState(idVStand).val; var ueberschuss = getState(idUStand).val; on(idLeistung, function(dp) { let energy = dp.oldState.val * (dp.state.lc - dp.oldState.lc) / 3600000000; if(dp.oldState.val >= 0) { verbrauch += energy; setState(idVStand, Math.round(verbrauch * 100) / 100, true); } else { ueberschuss -= energy; setState(idUStand, Math.round(ueberschuss * 100) / 100, true); } }); schedule('58 59 23 * * *', function() { let verbrauchTag = verbrauch - getState(idVStandTag).val; let ueberschussTag = ueberschuss - getState(idUStandTag).val; setState(idVTag, Math.round(verbrauchTag * 100) / 100, true); setState(idUTag, Math.round(ueberschussTag * 100) / 100, true); setState(idVStandTag, Math.round(verbrauch * 100) / 100, true); setState(idUStandTag, Math.round(ueberschuss * 100) / 100, true); }); -
@schmello sagte: Das wird nur durch das Vorzeichen erkannt.
Versuche mal (nach Anpassung der IDs):
// IDs anpassen! const idLeistung = 'mqtt.0.xyz'; const path = '0_userdata.0.Zaehler.'; const idVStand = path + 'Verbrauch.Zaehlerstand'; const idVStandTag = path + 'Verbrauch.Tagesstand'; const idVTag = path + 'Verbrauch.Tag'; const idUStand = path + 'Ueberschuss.Zaehlerstand'; const idUStandTag = path + 'Ueberschuss.Tagesstand'; const idUTag = path + 'Ueberschuss.Tag'; if(!existsState(idVStand)) { createState(idVStand, 0, {type: 'number', name: 'Zählerstand Verbrauch', role: 'value.power.consumption', unit: 'kWh'}); createState(idVStandTag, 0, {type: 'number', name: 'Tagesstand Verbrauch', role: 'value.power.consumption', unit: 'kWh'}); createState(idVTag, 0, {type: 'number', name: 'Verbrauch gestern', role: 'value.power.consumption', unit: 'kWh'}); createState(idUStand, 0, {type: 'number', name: 'Zählerstand Überschuss', role: 'value.power.consumption', unit: 'kWh'}); createState(idUStandTag, 0, {type: 'number', name: 'Tagesstand Überschuss', role: 'value.power.consumption', unit: 'kWh'}); createState(idUTag, 0, {type: 'number', name: 'Überschuss gestern', role: 'value.power.consumption', unit: 'kWh'}); } var verbrauch = getState(idVStand).val; var ueberschuss = getState(idUStand).val; on(idLeistung, function(dp) { let energy = dp.oldState.val * (dp.state.lc - dp.oldState.lc) / 3600000000; if(dp.oldState.val >= 0) { verbrauch += energy; setState(idVStand, Math.round(verbrauch * 100) / 100, true); } else { ueberschuss -= energy; setState(idUStand, Math.round(ueberschuss * 100) / 100, true); } }); schedule('58 59 23 * * *', function() { let verbrauchTag = verbrauch - getState(idVStandTag).val; let ueberschussTag = ueberschuss - getState(idUStandTag).val; setState(idVTag, Math.round(verbrauchTag * 100) / 100, true); setState(idUTag, Math.round(ueberschussTag * 100) / 100, true); setState(idVStandTag, Math.round(verbrauch * 100) / 100, true); setState(idUStandTag, Math.round(ueberschuss * 100) / 100, true); }); -
@paul53
Danke erstmal.Ich werde das heute Abend testen.
Muss ich die ID nur in die oberste zeile austauschen?
const idLeistung = 'mqtt.0.xyz';
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden