NEWS
Javascript Hausverbrauch berechnen und anzeigen
-
Hallo zusammen,
ich bin leider absoluter Neuling in Sachen Javascript und finde meinen Fehler nicht.
Ausgangslage:
Ich habe eine PV-Anlage auf dem Dach, bei der ich über den Modbusadapter die Werte abgreife und eine Micro-PV Anlage wo die Auswertung "Low Budget" über einen Sonoff mit Tasmota realisiert habe.
Zusätzlich habe ich noch einen Modbus Energiezähler.Nun möchte ich kontinuierlich meinen Hausstromverbrauch (Ohne PV Anlagen) in einem Wert anzeigen lassen.
Bedeutet PV Anlage1 + PV Anlage 2 - Stromzähler = "benötigter Wert"
ich habe dieses Javascript geschrieben, was leider nicht funktioniert.
const idSolar = 'javascript.0.Solar.Wechselrichter.PVLeistungAktuell'; const idSolarMicro = 'sonoff.0.Micro PV Anlage.ENERGY_Power'; const idEinspeisung = 'javascript.0.Solar.Wechselrichter.ACTotalRealPower'; const idHausverbrauch = 'javascript.0.Solar.Hausverbrauch'; var Solar = getState(idSolar).val; var SolarMicro = getState(idSolarMicro).val; var Einspeisung = getState(idEinspeisung).val; if(!existsState(idHausverbrauch)) createState(idHausverbrauch, Solar + SolarMicro - Einspeisung, {type: 'number', unit: 'W'}); function Hausverbrauch() { setState(idHausverbrauch, Solar + SolarMicro - Einspeisung, true); } on(idSolar, function(dp) { Solar = dp.state.val; summe(); }); on(idSolarMicro, function(dp) { idSolarMicro = dp.state.val; summe(); }); on(idEinspeisung, function(dp) { Einspeisung = dp.state.val; summe(); });Kann mir wer sagen, was ich falsch mache? (Hab mein funktionierendes Script, bei dem ich die beiden PV Anlagen einfach addiert habe umgeschrieben und gehofft, dass ich einfach einen weiteren Wert und eine Subtraktion hinzufügen kann.)
Vielen Dank schonmal und Grüße!
Timo
-
Hallo zusammen,
ich bin leider absoluter Neuling in Sachen Javascript und finde meinen Fehler nicht.
Ausgangslage:
Ich habe eine PV-Anlage auf dem Dach, bei der ich über den Modbusadapter die Werte abgreife und eine Micro-PV Anlage wo die Auswertung "Low Budget" über einen Sonoff mit Tasmota realisiert habe.
Zusätzlich habe ich noch einen Modbus Energiezähler.Nun möchte ich kontinuierlich meinen Hausstromverbrauch (Ohne PV Anlagen) in einem Wert anzeigen lassen.
Bedeutet PV Anlage1 + PV Anlage 2 - Stromzähler = "benötigter Wert"
ich habe dieses Javascript geschrieben, was leider nicht funktioniert.
const idSolar = 'javascript.0.Solar.Wechselrichter.PVLeistungAktuell'; const idSolarMicro = 'sonoff.0.Micro PV Anlage.ENERGY_Power'; const idEinspeisung = 'javascript.0.Solar.Wechselrichter.ACTotalRealPower'; const idHausverbrauch = 'javascript.0.Solar.Hausverbrauch'; var Solar = getState(idSolar).val; var SolarMicro = getState(idSolarMicro).val; var Einspeisung = getState(idEinspeisung).val; if(!existsState(idHausverbrauch)) createState(idHausverbrauch, Solar + SolarMicro - Einspeisung, {type: 'number', unit: 'W'}); function Hausverbrauch() { setState(idHausverbrauch, Solar + SolarMicro - Einspeisung, true); } on(idSolar, function(dp) { Solar = dp.state.val; summe(); }); on(idSolarMicro, function(dp) { idSolarMicro = dp.state.val; summe(); }); on(idEinspeisung, function(dp) { Einspeisung = dp.state.val; summe(); });Kann mir wer sagen, was ich falsch mache? (Hab mein funktionierendes Script, bei dem ich die beiden PV Anlagen einfach addiert habe umgeschrieben und gehofft, dass ich einfach einen weiteren Wert und eine Subtraktion hinzufügen kann.)
Vielen Dank schonmal und Grüße!
Timo
-
Hallo zusammen. Hab jetzt doch noch einen Fehler gefunden.
Der Wert für die MicroPV Anlage aktualisiert sich nur einmal bei Start des Scripts. Danach passt die Berechnung nicht mehr. (Er nimmt immer den Wert von 2 Watt, der zu beginn aktuell war. Das habe ich erst nicht gesehen.
Ich habe schon versucht den Wert aus dem Sonoff heraus zu nehmen und in die gleiche Ordnerstruktur einzubinden, doch leider ohne Erfolg:
Hier mal der Screenshot dazu: (grün + grün sollte eigl. rot umrandet ergeben.

Hier noch einmal das Skript:
const idSolar = 'javascript.0.Solar.Wechselrichter.PVLeistungAktuell'; const idSolarMicro = 'javascript.0.Solar.AC-Leistung_Micro'; const idSumme = 'javascript.0.Solar.Summe'; var Solar = getState(idSolar).val; var SolarMicro = getState(idSolarMicro).val; if(!existsState(idSumme)) createState(idSumme, Solar + SolarMicro, {type: 'number', unit: 'W'}); function summe() { setState(idSumme, Solar + SolarMicro, true); } on(idSolar, function(dp) { Solar = dp.state.val; summe(); }); on(idSolarMicro, function(dp) { idSolarMicro = dp.state.val; summe(); });Vielen Dank schonmal im voraus für eure Hilfe!!!
Beste Grüße
Timo -
Hallo zusammen. Hab jetzt doch noch einen Fehler gefunden.
Der Wert für die MicroPV Anlage aktualisiert sich nur einmal bei Start des Scripts. Danach passt die Berechnung nicht mehr. (Er nimmt immer den Wert von 2 Watt, der zu beginn aktuell war. Das habe ich erst nicht gesehen.
Ich habe schon versucht den Wert aus dem Sonoff heraus zu nehmen und in die gleiche Ordnerstruktur einzubinden, doch leider ohne Erfolg:
Hier mal der Screenshot dazu: (grün + grün sollte eigl. rot umrandet ergeben.

Hier noch einmal das Skript:
const idSolar = 'javascript.0.Solar.Wechselrichter.PVLeistungAktuell'; const idSolarMicro = 'javascript.0.Solar.AC-Leistung_Micro'; const idSumme = 'javascript.0.Solar.Summe'; var Solar = getState(idSolar).val; var SolarMicro = getState(idSolarMicro).val; if(!existsState(idSumme)) createState(idSumme, Solar + SolarMicro, {type: 'number', unit: 'W'}); function summe() { setState(idSumme, Solar + SolarMicro, true); } on(idSolar, function(dp) { Solar = dp.state.val; summe(); }); on(idSolarMicro, function(dp) { idSolarMicro = dp.state.val; summe(); });Vielen Dank schonmal im voraus für eure Hilfe!!!
Beste Grüße
Timo -
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