NEWS
E3DC Hauskraftwerk steuern
-
@ArnoD
mir ist auch noach was aufgefallen...
sollten diese einträge nicht auf false oder true stehen..
in der config datei von eba-m im bespiel steht da false...
Keine ahnung ob das Auswirkungen hätte..
in deinem Script ist 0 eingetragen anstatt false...const sExt1 = "false"; // true, wenn ein externer Zaehler genutzt wird const sExt2 = "false"; // true, wenn ein externer Zaehler genutzt wird const sWallbox = "false";
-
@stevie77 sagte in E3DC Hauskraftwerk steuern:
sourceanalytix.0.modbus__0__holdingRegisters__40068_PV_Leistung.Meter_Readings.Current_Reading verwenden und muss das Widget eben entsprechend umstellen? Falls ja, bleibt die Frage, warum das bei @ArnoD anders ist? Hab extra nochmals nachgesehen, es ist Version 0.3.0 von sourceanalytix installiert...
Die Einstellungen sind mir auch nicht ganz klar...Immerhin wird hier Leistung geloggt in Watt...
Warum wird dann im script in kw/h also die elektrische arbeit verarbeitet?
Hat denn der Wechselrichter keinen Erzeugungszähler in KW/h welchen man über modbus auslesen kann?
Analytics macht dann aus der Leistung / Watt ne Berechnug zur Erzeugten Arbeit oder wie= Also W = P*t... Die müssen doch nen kw/h Zähler im Wechselrichter haben...
Oder ist die Einheit im Script flasch? Willst gar keine kw/h ? -
@stevie77
Also in der Instanz Sourceanalytix folgendes einstellen:
unter Objekte modbus.0.holdingRegisters.40068_PV_Leistung Sourceanalytix aktivieren und folgendes einstellen:
Dann sollte es so aussehen wie bei mir.
-
@ArnoD kommt man nicht über modbus an die Erzeugungsdaten in kw/h ran? Mit den einstellungen nehme ich mir ja die möglichkeit über jahre monate aufzuzeichen..
-
@smartboart sagte in E3DC Hauskraftwerk steuern:
@ArnoD
mir ist auch noach was aufgefallen...
sollten diese einträge nicht auf false oder true stehen..
in der config datei von eba-m im bespiel steht da false...
Keine ahnung ob das Auswirkungen hätte..
in deinem Script ist 0 eingetragen anstatt false...const sExt1 = "false"; // true, wenn ein externer Zaehler genutzt wird const sExt2 = "false"; // true, wenn ein externer Zaehler genutzt wird const sWallbox = "false";
Ja da hast du recht
Habe mir schon gedacht, das du wieder jeden Fehler findest -
@smartboart sagte in E3DC Hauskraftwerk steuern:
@ArnoD kommt man nicht über modbus an die Erzeugungsdaten in kw/h ran? Mit den einstellungen nehme ich mir ja die möglichkeit über jahre monate aufzuzeichen..
Ich weiss nicht wie es bei dir sein wird, aber bei mir ist der Zähler erst nach der Batterie, was den vorteil hat das die
WR-Verluste erst gar nicht mitgezählt werden.
Hat aber den Nachteil das ich nicht weiss wieviel kWh ich am Tag habe, denn was in die Batterie geht erfasst mein Zähler erst wenn die Batterie entladen wird. Das Problem habe ich deswegen mit sourceanalytix gelöst, das aus der PV-Leistung mir die kWh am Tag berechnet. -
@ArnoD ok verstehe, aber wie genau ist das? Die Leistung schwank ständig...und in Abhängigkeit der Poll Zeit des Modbusaapter verfälscht sich auch die Berechnung...Welche wahrscheinlich auch gut Ressourcen frisst oder?
-
@smartboart ich habe vor den Analytics Adapter auch für das loggen der Zählerstände zu nehmen und daraus die Werte für die Umsatzsteuervoranmaldung und Verbrauchswerte abzuleiten. Das geht dann aber mit den adapter Grundeinstellungen nicht mehr..
-
Sourceanalytix ist natürlich kein genauer Zähler, kommt aber ungefähr so hin.
Für die Umsatzsteuervoranmeldung lese ich meine Zähler mit der Homematic Zählersensor-Sendeeinheit HM-ES-TX-WM direkt aus und speichere die Werte jedes Monat.
Das sieht dann so aus:
-
@ArnoD ....geil...Das ist natürlich mega...auch haben will....
Aber erstmal 1 nach dem anderen...jetzt erst mal die Analge ans laufen bringen...Das script hast hier nicht zufällig auch im Forum? -
@ArnoD wegen dem source analytics nochmal, gehe ich recht in der Annahme, dass du die aktuelle Version nicht nimmst, weil die 2020 davor steht und somit im script nochmal aufbereitet werden muesste um es auf dauer aktuell zu halten?
-
Nein, kann ich aber hier einstellen bei Intresse. Der Vorteil ist ich kann nicht vergessen die Zähler jedes Monat abzulesen und die Werte die ich für die Vorsteuer benötige werden automatisch berechnet.
-
@ArnoD Danke. Jetzt wird zumindest mal die Zahl 0 angezeigt für PV-Leistung heute.
Da bin ich heute dank deiner Hilfe ein Stück voran gekommen. Mal sehen, was die kommenden Tage passiert.Ich hab im Log des ioBrokers Fehler drin bei dem TypeScript für Proplanta - hast du das auch? Vernachlässigbar?
javascript.0 2020-07-12 20:11:16.544 error (536) script.js.e3dc-control.handleProplantaWeatherForecast: setForeignState: undefined is not a valid state value javascript.0 2020-07-12 20:11:16.544 warn (536) at process._tickCallback (internal/process/next_tick.js:63:19) javascript.0 2020-07-12 20:11:16.544 warn (536) at endReadableNT (_stream_readable.js:1145:12) javascript.0 2020-07-12 20:11:16.544 warn (536) at IncomingMessage.emit (events.js:203:15) javascript.0 2020-07-12 20:11:16.544 warn (536) at Object.onceWrapper (events.js:286:20) javascript.0 2020-07-12 20:11:16.544 warn (536) at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/request/request.js:1076:12) javascript.0 2020-07-12 20:11:16.544 warn (536) at Request.emit (events.js:198:13) javascript.0 2020-07-12 20:11:16.543 warn (536) at Request.<anonymous> (/opt/iobroker/node_modules/request/request.js:1154:10) javascript.0 2020-07-12 20:11:16.543 warn (536) at Request.emit (events.js:198:13) javascript.0 2020-07-12 20:11:16.543 warn (536) at Request.self.callback (/opt/iobroker/node_modules/request/request.js:185:22) javascript.0 2020-07-12 20:11:16.543 warn (536) at Request._callback (/opt/iobroker/node_modules/iobroker.javascript/lib/request.js:37:17) javascript.0 2020-07-12 20:11:16.543 warn (536) at script.js.e3dc-control.handleProplantaWeatherForecast:683:17 javascript.0 2020-07-12 20:11:16.543 warn (536) at addLine (script.js.e3dc-control.handleProplantaWeatherForecast:124:9) javascript.0 2020-07-12 20:11:16.543 warn (536) at mySetState (script.js.e3dc-control.handleProplantaWeatherForecast:151:13) javascript.0 2020-07-12 20:11:16.542 warn (536) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1355:20) javascript.0 2020-07-12 20:11:16.542 warn (536) You are assigning a undefined to the state "javascript.0.wetter.proplanta.d0.Taubildung" which expects a number. Please fix your code to use a number or change the state type to undefined. This javascript.0 2020-07-12 20:11:16.542 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d3.VerdunstungundefinedtextList javascript.0 2020-07-12 20:11:16.541 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d2.VerdunstungundefinedtextList javascript.0 2020-07-12 20:11:16.541 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d1.VerdunstungundefinedtextList javascript.0 2020-07-12 20:11:16.541 error (536) script.js.e3dc-control.handleProplantaWeatherForecast: setForeignState: undefined is not a valid state value javascript.0 2020-07-12 20:11:16.541 warn (536) at process._tickCallback (internal/process/next_tick.js:63:19) javascript.0 2020-07-12 20:11:16.541 warn (536) at endReadableNT (_stream_readable.js:1145:12) javascript.0 2020-07-12 20:11:16.541 warn (536) at IncomingMessage.emit (events.js:203:15) javascript.0 2020-07-12 20:11:16.540 warn (536) at Object.onceWrapper (events.js:286:20) javascript.0 2020-07-12 20:11:16.540 warn (536) at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/request/request.js:1076:12) javascript.0 2020-07-12 20:11:16.540 warn (536) at Request.emit (events.js:198:13) javascript.0 2020-07-12 20:11:16.540 warn (536) at Request.<anonymous> (/opt/iobroker/node_modules/request/request.js:1154:10) javascript.0 2020-07-12 20:11:16.540 warn (536) at Request.emit (events.js:198:13) javascript.0 2020-07-12 20:11:16.540 warn (536) at Request.self.callback (/opt/iobroker/node_modules/request/request.js:185:22) javascript.0 2020-07-12 20:11:16.540 warn (536) at Request._callback (/opt/iobroker/node_modules/iobroker.javascript/lib/request.js:37:17) javascript.0 2020-07-12 20:11:16.540 warn (536) at script.js.e3dc-control.handleProplantaWeatherForecast:682:17 javascript.0 2020-07-12 20:11:16.539 warn (536) at addLine (script.js.e3dc-control.handleProplantaWeatherForecast:124:9) javascript.0 2020-07-12 20:11:16.539 warn (536) at mySetState (script.js.e3dc-control.handleProplantaWeatherForecast:151:13) javascript.0 2020-07-12 20:11:16.539 warn (536) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1355:20) javascript.0 2020-07-12 20:11:16.538 warn (536) You are assigning a undefined to the state "javascript.0.wetter.proplanta.d0.Verdunstung" which expects a number. Please fix your code to use a number or change the state type to undefined. This javascript.0 2020-07-12 20:11:16.538 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d3.BodenfrostundefinedtextBool javascript.0 2020-07-12 20:11:16.538 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d2.BodenfrostundefinedtextBool javascript.0 2020-07-12 20:11:16.537 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d1.BodenfrostundefinedtextBool javascript.0 2020-07-12 20:11:16.536 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d3.Niederschlagsstundenundefinednumber javascript.0 2020-07-12 20:11:16.536 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d2.Niederschlagsstundenundefinednumber javascript.0 2020-07-12 20:11:16.536 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d1.Niederschlagsstundenundefinednumber javascript.0 2020-07-12 20:11:16.535 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d3.NiederschlagsrisikoNachtundefinednumber javascript.0 2020-07-12 20:11:16.535 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d2.NiederschlagsrisikoNachtundefinednumber javascript.0 2020-07-12 20:11:16.535 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d1.NiederschlagsrisikoNachtundefinednumber javascript.0 2020-07-12 20:11:16.534 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d3.NiederschlagsrisikoTagundefinednumber javascript.0 2020-07-12 20:11:16.534 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d2.NiederschlagsrisikoTagundefinednumber javascript.0 2020-07-12 20:11:16.533 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d1.NiederschlagsrisikoTagundefinednumber javascript.0 2020-07-12 20:11:16.532 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d3.TemperaturMinNachtundefinednumber javascript.0 2020-07-12 20:11:16.532 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d2.TemperaturMinNachtundefinednumber javascript.0 2020-07-12 20:11:16.532 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d1.TemperaturMinNachtundefinednumber javascript.0 2020-07-12 20:11:16.531 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d3.TemperaturMinGefuehltundefinednumber javascript.0 2020-07-12 20:11:16.531 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d2.TemperaturMinGefuehltundefinednumber javascript.0 2020-07-12 20:11:16.531 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d1.TemperaturMinGefuehltundefinednumber javascript.0 2020-07-12 20:11:16.530 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d3.TemperaturMinundefinednumber javascript.0 2020-07-12 20:11:16.530 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d2.TemperaturMinundefinednumber javascript.0 2020-07-12 20:11:16.529 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d1.TemperaturMinundefinednumber javascript.0 2020-07-12 20:11:16.528 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d3.TemperaturMaxGefuehltundefinednumber javascript.0 2020-07-12 20:11:16.528 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d2.TemperaturMaxGefuehltundefinednumber javascript.0 2020-07-12 20:11:16.528 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d1.TemperaturMaxGefuehltundefinednumber javascript.0 2020-07-12 20:11:16.527 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d3.TemperaturMaxundefinednumber javascript.0 2020-07-12 20:11:16.526 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d2.TemperaturMaxundefinednumber javascript.0 2020-07-12 20:11:16.526 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d1.TemperaturMaxundefinednumber javascript.0 2020-07-12 20:11:16.525 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d3.Datumundefinedtext javascript.0 2020-07-12 20:11:16.525 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d2.Datumundefinedtext javascript.0 2020-07-12 20:11:16.524 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: can not set d1.Datumundefinedtext javascript.0 2020-07-12 20:11:15.638 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: registered 0 subscriptions and 1 schedule javascript.0 2020-07-12 20:11:15.531 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: TypeScript compilation successful javascript.0 2020-07-12 20:11:11.720 info (536) script.js.e3dc-control.handleProplantaWeatherForecast: compiling TypeScript source...
-
@ArnoD sagte in E3DC Hauskraftwerk steuern:
Nein, kann ich aber hier einstellen bei Intresse. Der Vorteil ist ich kann nicht vergessen die Zähler jedes Monat abzulesen und die Werte die ich für die Vorsteuer benötige werden automatisch berechnet.
ja bitte , das ist genau der Grund warum ich das auch realisieren wollte...
-
@smartboart sagte in E3DC Hauskraftwerk steuern:
@ArnoD wegen dem source analytics nochmal, gehe ich recht in der Annahme, dass du die aktuelle Version nicht nimmst, weil die 2020 davor steht und somit im script nochmal aufbereitet werden muesste um es auf dauer aktuell zu halten?
Nein, weil in der aktuellen Version die Tagesberechnung in kWh leider nicht funktioniert, oder nur einen Tag funktioniert. Musste jeden Tag den Adapter Sourceanalytix neu Starten.
-
@ArnoD sagte in E3DC Hauskraftwerk steuern:
@smartboart sagte in E3DC Hauskraftwerk steuern:
@ArnoD wegen dem source analytics nochmal, gehe ich recht in der Annahme, dass du die aktuelle Version nicht nimmst, weil die 2020 davor steht und somit im script nochmal aufbereitet werden muesste um es auf dauer aktuell zu halten?
Nein, weil in der aktuellen Version die Tagesberechnung in kWh leider nicht funktioniert, oder nur einen Tag funktioniert. Musste jeden Tag den Adapter Sourceanalytix neu Starten.
ok...gut zu wissen...hast da ein issue bei github aufgemacht? Weil ich würde das gerne aktuellhalten...
-
Hier das Script was ich verwende:
// Hausstromverbrauch aktuell berechnen ************************************************************************** createState('Stromzaehler.Zaehlerstaende.Netzbezug.alt', 0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' }); createState('Stromzaehler.Zaehlerstaende.Netzeinspeisung.alt', 0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' }); createState('Stromzaehler.Zaehlerstaende.Solarproduktion.alt', 0, {name: 'lezter Zählerstand Monatsbeginn', type: 'number', unit: 'kWh' }); for(var i = 1; i<= 12; i++) { createState('Stromzaehler.Zaehlerstaende.Netzbezug.Monat'+ i, 0, {name: 'Zählerstand Netzbezug Monat'+ i, type: 'number', unit: 'kWh' }); createState('Stromzaehler.Zaehlerstaende.Netzeinspeisung.Monat'+ i, 0, {name: 'Zählerstand Netzeinspeisung Monat'+ i, type: 'number', unit: 'kWh' }); createState('Stromzaehler.Zaehlerstaende.Solarproduktion.Monat'+ i, 0, {name: 'Zählerstand PV-Anlage Monat'+ i, type: 'number', unit: 'kWh' }); createState('Stromzaehler.Berechnung.Netzeinspeisung.Monat'+ i, 0, {name: 'Ins Netz eingespeiste kWh im Monat'+ i, type: 'number', unit: 'kWh' }); createState('Stromzaehler.Berechnung.Netzbezug.Monat'+ i, 0, {name: 'Aus Netz bezogene kWh im Monat'+ i, type: 'number', unit: 'kWh' }); createState('Stromzaehler.Berechnung.Solarproduktion.Monat'+ i, 0, {name: 'Erzeugter Strom PV-Anlage im Monat'+ i, type: 'number', unit: 'kWh' }); createState('Stromzaehler.Berechnung.Eigenverbrauch.Monat'+ i, 0, {name: 'Selbst verbrauchter PV-Strom im Monat'+ i, type: 'number', unit: 'kWh' }); createState('Stromzaehler.Berechnung.Autarkie.Monat'+ i, 0, {name: 'Autarkie Grad im Monat'+ i, type: 'number', unit: '%' }); createState('Stromzaehler.Berechnung.Datum'+ i); createState('Stromzaehler.Berechnung.Datum'+ i, '', {name: 'Ablesedatum im Monat'+ i}); } // Zählerstände Monatlich um 23:55 speichern für Finanzamt schedule("0 0 1 * *", function() { //schedule({hour: 11, minute: 7}, function () { var nBezugZaehlerAktuell = Math.floor(getState('hm-rpc.0.QEQ0337064.1.IEC_ENERGY_COUNTER').val); var nEinspeiseZaehlerAktuell = Math.floor(getState('hm-rpc.0.QEQ0337064.2.IEC_ENERGY_COUNTER').val); var PvZaehlerAktuell=Math.floor(getState('hm-rpc.0.QEQ0337042.1.IEC_ENERGY_COUNTER').val); var nBezugZaehlerAlt = getState('Stromzaehler.Zaehlerstaende.Netzbezug.alt').val; var nEinspeiseZaehlerAlt = getState('Stromzaehler.Zaehlerstaende.Netzeinspeisung.alt').val; var PvZaehlerAlt=getState('javascript.0.Stromzaehler.Zaehlerstaende.Solarproduktion.alt').val; var nBezugZaehlerNeu = nBezugZaehlerAktuell - nBezugZaehlerAlt; var nEinspeiseZaehlerNeu = nEinspeiseZaehlerAktuell - nEinspeiseZaehlerAlt; var PvZaehlerNeu = PvZaehlerAktuell - PvZaehlerAlt; var EigenverbrauchNeu = PvZaehlerNeu - nEinspeiseZaehlerNeu; var AutarkieNeu = EigenverbrauchNeu / ((nBezugZaehlerNeu+EigenverbrauchNeu)/100); // Datum vom Vortag berechnen var jetzt = new Date(); var Theute = jetzt.getDate(); var Tgestern = new Date(); Tgestern.setDate(Theute-1); var DatumAkt=((Tgestern.getDate())+'.'+ (Tgestern.getMonth()+1) +'.'+ Tgestern.getFullYear()); var MonatAkt=(Tgestern.getMonth()+1); setState('Stromzaehler.Zaehlerstaende.Netzbezug.Monat'+ MonatAkt,nBezugZaehlerAktuell); setState('Stromzaehler.Zaehlerstaende.Netzeinspeisung.Monat'+ MonatAkt,nEinspeiseZaehlerAktuell); setState('Stromzaehler.Zaehlerstaende.Solarproduktion.Monat'+ MonatAkt,PvZaehlerAktuell); setState('Stromzaehler.Berechnung.Netzeinspeisung.Monat'+ MonatAkt,nEinspeiseZaehlerNeu); setState('Stromzaehler.Berechnung.Netzbezug.Monat'+ MonatAkt,nBezugZaehlerNeu); setState('Stromzaehler.Berechnung.Solarproduktion.Monat'+ MonatAkt,PvZaehlerNeu); setState('Stromzaehler.Berechnung.Eigenverbrauch.Monat'+ MonatAkt,EigenverbrauchNeu); setState('Stromzaehler.Berechnung.Autarkie.Monat'+ MonatAkt,AutarkieNeu); setState('Stromzaehler.Berechnung.Datum'+ MonatAkt,DatumAkt); setState('Stromzaehler.Zaehlerstaende.Netzeinspeisung.alt',nEinspeiseZaehlerAktuell); setState('Stromzaehler.Zaehlerstaende.Netzbezug.alt',nBezugZaehlerAktuell); setState('Stromzaehler.Zaehlerstaende.Solarproduktion.alt',PvZaehlerAktuell); });
-
@ArnoD sagte in E3DC Hauskraftwerk steuern:
// Hausstromverbrauch aktuell berechnen **************************************************************************
Danke sehr
-
@smartboart sagte in E3DC Hauskraftwerk steuern:
ok...gut zu wissen...hast da ein issue bei github aufgemacht? Weil ich würde das gerne aktuellhalten...
Der Fehler und auch weiter sind im Forum diskutiert worden, habe aber nicht nachgeschaut ob ein issue bei github aufgemacht worden ist.
-
@stevie77
Ja immer wieder mal bei einem anderen Wert, habe aber noch nicht rausgefunden an was das liegt. Vermute, dass wenn ein Wert von Proplanta nicht abgerufen werden kann, dass dann undefined zurückgegeben wird und das im TypeScript nicht abgefangen wird.
Hatte aber noch keine Zeit mich genauer damit zu beschäftigen, und da ich ja nur die Globalstrahlung benötige hatte es auch nicht die Priorität bei mir.