Photovoltaik Eigenverbrauch,Bilanz,Prognose (Kostal Plenticore; KSEM; BYD HV)

Begonnen von ch.eick, 07 Oktober 2020, 16:09:12

Vorheriges Thema - Nächstes Thema

ch.eick

Moin,
Michael ist weiterhin fleißig, danke dafür.

Im Wiki habe ich das [urlhttps://wiki.fhem.de/wiki/Kostal_Plenticore_10_Plus#RAW_Definition_DWD_Forecast]DWD_Forecast[/url] aktualisiert.
Michael hat noch Kommentare ergänzt. die ich mit meinen noch gemischt habe.

Achtung, es werden nun einige Werte vom DWD gelogged, das verwende ich für Tests mit einer KI Prognose. Wer da noch nicht sammeln möchte
sollte da das DbLogInclude entsprechend der eigenen Wünsche bereinigen.

Wer mag, der kann auch die Solar_plan() aktualisieren, da ist aber nur eine Log Meldung dazu gekommen.

if ($verbose >= 3) {
      Log 3, "Solar_plain time             : ".$time;                  <<<< diese hier
      Log 3, "Solar_plain azimuth          : ".$azimuth;
      Log 3, "Solar_plain elevation        : ".$elevation;
      Log 3, "Solar_plain orientation      : ".$orientation;
      Log 3, "Solar_plain angle            : ".$angle;
    };


VG  Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ojb

Zitat von: ch.eick am 19 Dezember 2022, 09:48:46
Hallo Oli,
ich gehe nochmal auf Deine Statistiken mit der Berechnung der Kosten ein.

1.) Das obere Drittel kommt mir sehr bekannt vor ;-) und ist ja nur etwas anders aufgeteilt.
    Das kommt ja aus dem DbRep LogDBRep_Statistic_previous_Year, was man für den Vortag bzw. Vormonat adaptieren kann.
    Tag / Monat /Jahr kommen direkt aus dem Plenticore, bzw den SW_* readings, wenn man einen Schwarm hat.

2.) Für die Berechnung der Kosten würde mich Deine Definition interessieren. Meine Hoffnung wäre ein uiTable zur Einstellung
    der Einzelkosten mit Basis Gebühren und Arbeitspreisen.
    Die Wallbox Vergütung dürfte sicherlich von Deinem Arbeitgeber sein, oder sind das die 18 ct über THG Ladepunkt Quote?

3.) Da sich in der letzten zeit ein wechselder EVU Anbieter herauskristalisiert wäre es natürlich toll, wenn man die EVU Preise
    auch in der Datenbank hätte, eventuell sogar auf Stundenbasis für Tibber oder aWattar. Wie weit bist Du denn da im Moment?
    Wie handhabst Du den Tarifwechsel innerhalb deines Berechnungszeitraums? Ich habe z.B. jetzt vom 01.01.2023 bis 31.03.2023
    noch einen günstigen Tarif bekommen, danach kommt ja schon wieder ein Wechsel.

Mein Ansatz wäre die gesamte Statistik mit Kostenberechnung direkt in einer SELECT Abfrage wie beim DbRep LogDBRep_Statistic_previous_Year
zu erledigen und dort auch die Preise aus der Datenbank heraus zu kalkulieren.

VG   Christian

Hi Christian,

sorry für die späte Antwort.

Wallboxvergütung ist in der Tat von meinem Arbeitgeber, ist Teil der Lease-Rate.

Ich lasse alle Kosten über ElectricityCalculator's berechnen.

Ich habe dazu folgende definiert:

  • ElectricityCalculator_Batteriebezug.
  • ElectricityCalculator_Eigenverbrauch_aus_Photovoltaik.
  • ElectricityCalculator_Gesamt.
  • ElectricityCalculator_Haus.
  • ElectricityCalculator_Heizung.
  • ElectricityCalculator_Netzbezug.
  • ElectricityCalculator_Netzeinspeisung.
  • ElectricityCalculator_Photovoltaik_Ertrag.
  • ElectricityCalculator_Wallbox.

Wenn sich Tarifänderungen ergeben, dann ändere ich den Tarif einfach in den ElectricityCalculator's.

Fast alle Berechnungen bezüglich PV (Autarkie, Eigenverbrauch etc.) laufen im WR_1.

Tibber finde ich sehr interessant und ich will da unbedingt hin. Ich habe jetzt eine Mail mit meinem technischen Setup hingeschrieben (PV-Anlage, Kaskadenmessverfahren) und sie gefragt, ob man das alles mit einem Vertrag abbilden kann, weil Betriebsstrom und Wärmestrom wäre ja dann das gleiche.

Im Moment wurde der Tarif meines Wärmepumpenstromes erhöht (25c auf 45c). Mein Betriebsstrom ist (noch) 32c.

Mit Hilfe Deines genialen Moduls hab ich jetzt die Batteriestrategie geändert:

([OW_Stromzaehler:Stromverbrauch_Heizung] > 500)
(
set WR_1_API 22_04_Battery_MinSoc 10;
)
DOELSE
(
set WR_1_API 22_04_Battery_MinSoc 100;
)

Batteriestrom wird also primär in die Wärmepumpe geleitet.

Den aktuellen Tibber-Tarif auszuwerten und dann z.B. Wärmepumpe oder E-Auto-Ladung zu optimieren das ist das Ziel.

Super wäre natürlich auch, wenn man die Haus-Batterie gezielt über Netz aufladen könnte. Aber ich habe gehört das geht nur mir Installateurspasswort.

Anbei unten meine WR_1 Definition.

Liebe Grüße
Oli




Total_PV_P_reserve:Total_DC_P.* {my $reserve = ReadingsVal($NAME,"Total_DC_P_sumOfAllPVInputs","0") * 0.90 - ReadingsVal($NAME,"Home_own_consumption_from_PV",0);;;; ($reserve lt 0)? 0 : round($reserve,0)  },

Actual_Battery_charge_-minus_or_discharge_-plus_P:[Battery_voltage|Actual_Battery_charge_-minus_or_discharge_-plus_I].* {round((ReadingsVal($NAME,"Actual_Battery_charge_-minus_or_discharge_-plus_I",0)*ReadingsVal($NAME,"Battery_voltage","0")),0)},

Total_DC_P_Max:[Total_DC_P_sumOfAllPVInputs|Actual_Battery_charge_-minus_or_discharge_-plus_P].* { my $Bat_P = ReadingsVal($NAME,"Actual_Battery_charge_-minus_or_discharge_-plus_P","0");;;; ($Bat_P gt 0)? round(ReadingsVal($NAME,"Total_DC_P_sumOfAllPVInputs",0) + $Bat_P,0) : round(ReadingsVal($NAME,"Total_DC_P_sumOfAllPVInputs",0),0) },

Actual_Battery_charge_usable_P:[Act_state_of_charge|Battery_MinSOC].* {my $x = (12800*(ReadingsVal($NAME,"Act_state_of_charge",0)-ReadingsVal($NAME,"Battery_MinSOC",0))/100);;;; ($x lt 0)? 0 : round($x,0) },

SW_Inverter_Generation_P_Actual:Inverter_Generation_P_Actual.* {round(ReadingsVal($NAME,"Inverter_Generation_P_Actual",0)+ReadingsVal("WR_2","Inverter_Generation_P_Actual",0),0) },

SW_Home_own_consumption:[Total_Active_P_EM|Total_AC_Active_P:].* {round(ReadingsVal($NAME,"Total_Active_P_EM",0)+ReadingsVal($NAME,"Total_AC_Active_P",0)+ReadingsVal("WR_2","Total_AC_Active_P",0),0)},
SW_Total_AC_Active_P:Total_AC_Active_P:.*  {round(ReadingsVal($NAME,"Total_AC_Active_P",0)+ReadingsVal("WR_2","Total_AC_Active_P",0),0)},


SW_Total_DC_P:Total_DC_P:.* {round(ReadingsVal($NAME,"Total_DC_P",0)+ReadingsVal("WR_2","Total_DC_P",0),0) },

SW_Total_DC_P_sumOfAllPVInputs:Total_DC_P_sumOfAllPVInputs.* {round(ReadingsVal($NAME,"Total_DC_P_sumOfAllPVInputs",0)+ReadingsVal("WR_2","Total_DC_P_sumOfAllPVInputs",0),0) },

SW_Total_PV_P_reserve:SW_Total_DC_P_sumOfAllPVInputs.* {my $reserve = ReadingsVal($NAME,"SW_Total_DC_P_sumOfAllPVInputs","0") * 0.90 - ReadingsVal($NAME,"SW_Home_own_consumption",0);;;; ($reserve lt 0)? 0 : round($reserve,0)  },

SW_Total_DC_P_Max:SW_Total_DC_P_sumOfAllPVInputs.* { my $Bat_out = (ReadingsVal($NAME,"Actual_Battery_charge_-minus_or_discharge_-plus_I","0")*ReadingsVal($NAME,"Battery_voltage",0));;;; ($Bat_out gt 0)? round(ReadingsVal($NAME,"SW_Total_DC_P_sumOfAllPVInputs",0) + $Bat_out,0) : round(ReadingsVal($NAME,"SW_Total_DC_P_sumOfAllPVInputs",0),0) },

SW_Yield_Daily:Daily_yield.* { round(ReadingsVal($NAME,"Daily_yield",0)+ReadingsVal("WR_2","Daily_yield",0),0) },
SW_Yield_Monthly:Monthly_yield.* { round(ReadingsVal($NAME,"Monthly_yield",0)+ReadingsVal("WR_2","Monthly_yield",0),0) },
SW_Yield_Yearly:Yearly_yield.* { round(ReadingsVal($NAME,"Yearly_yield",0)+ReadingsVal("WR_2","Yearly_yield",0),0) },
SW_Yield_Total:Total_yield.* { round(ReadingsVal($NAME,"Total_yield",0)+ReadingsVal("WR_2","Total_yield",0),0) },

SW_Home_own_consumption_from_PV:[Total_Active_P_EM|SW_Home_own_consumption:|Home_own_consumption_from_grid|Home_own_consumption_from_Battery].* { (ReadingsVal($NAME,"Total_Active_P_EM",0) ge 0) ? ReadingsVal($NAME,"SW_Home_own_consumption",0) - ReadingsVal($NAME,"Home_own_consumption_from_grid",0) - ReadingsVal($NAME,"Home_own_consumption_from_Battery",0) :  ReadingsVal($NAME,"SW_Home_own_consumption",0) - ReadingsVal($NAME,"Home_own_consumption_from_Battery",0);;;; },
SW_Home_own_consumption_from_Battery:[SW_Home_own_consumption_from_PV|Home_own_consumption_from_Battery].* { ReadingsVal($NAME,"Home_own_consumption_from_Battery",0) },
SW_Home_own_consumption_from_grid:[SW_Home_own_consumption_from_PV|Home_own_consumption_from_grid].* { ReadingsVal($NAME,"Home_own_consumption_from_grid",0) },

P_WR_1_DC1 { ReadingsVal("WR_1","P_DC1",0) },
P_WR_1_DC2 { ReadingsVal("WR_1","P_DC2",0) },
P_WR_2_DC1 { ReadingsVal("WR_2","P_DC1",0) },
P_WR_2_DC2 { ReadingsVal("WR_2","P_DC2",0) },
P_WR_2_DC3 { ReadingsVal("WR_2","P_DC3",0) },

P_WR_1_DC1_pM { ReadingsVal("WR_1","P_DC1",0) / 10 },
P_WR_1_DC2_pM { ReadingsVal("WR_1","P_DC2",0) / 10 },
P_WR_2_DC1_pM { ReadingsVal("WR_2","P_DC1",0) / 11 },
P_WR_2_DC2_pM { ReadingsVal("WR_2","P_DC2",0) / 9 },
P_WR_2_DC3_pM { ReadingsVal("WR_2","P_DC3",0) / 9 },

P_WR_1_DC1_pM_Relative { ReadingsVal($NAME,"P_WR_1_DC1_pM",0) > 5 ? ReadingsVal($NAME,"P_WR_1_DC1_pM",0) / (ReadingsVal($NAME,"P_WR_1_DC1_pM",0) + ReadingsVal($NAME,"P_WR_1_DC2_pM",0) + ReadingsVal($NAME,"P_WR_2_DC1_pM",0) + ReadingsVal($NAME,"P_WR_2_DC2_pM",0) + ReadingsVal($NAME,"P_WR_2_DC3_pM",0)) * 100 : 0 },
P_WR_1_DC2_pM_Relative { ReadingsVal($NAME,"P_WR_1_DC2_pM",0) > 5 ? ReadingsVal($NAME,"P_WR_1_DC2_pM",0) / (ReadingsVal($NAME,"P_WR_1_DC1_pM",0) + ReadingsVal($NAME,"P_WR_1_DC2_pM",0) + ReadingsVal($NAME,"P_WR_2_DC1_pM",0) + ReadingsVal($NAME,"P_WR_2_DC2_pM",0) + ReadingsVal($NAME,"P_WR_2_DC3_pM",0)) * 100 : 0 },
P_WR_2_DC1_pM_Relative { ReadingsVal($NAME,"P_WR_2_DC1_pM",0) > 5 ? ReadingsVal($NAME,"P_WR_2_DC1_pM",0) / (ReadingsVal($NAME,"P_WR_1_DC1_pM",0) + ReadingsVal($NAME,"P_WR_1_DC2_pM",0) + ReadingsVal($NAME,"P_WR_2_DC1_pM",0) + ReadingsVal($NAME,"P_WR_2_DC2_pM",0) + ReadingsVal($NAME,"P_WR_2_DC3_pM",0)) * 100 : 0 },
P_WR_2_DC2_pM_Relative { ReadingsVal($NAME,"P_WR_2_DC2_pM",0) > 5 ? ReadingsVal($NAME,"P_WR_2_DC2_pM",0) / (ReadingsVal($NAME,"P_WR_1_DC1_pM",0) + ReadingsVal($NAME,"P_WR_1_DC2_pM",0) + ReadingsVal($NAME,"P_WR_2_DC1_pM",0) + ReadingsVal($NAME,"P_WR_2_DC2_pM",0) + ReadingsVal($NAME,"P_WR_2_DC3_pM",0)) * 100 : 0 },
P_WR_2_DC3_pM_Relative { ReadingsVal($NAME,"P_WR_2_DC3_pM",0) > 5 ? ReadingsVal($NAME,"P_WR_2_DC3_pM",0) / (ReadingsVal($NAME,"P_WR_1_DC1_pM",0) + ReadingsVal($NAME,"P_WR_1_DC2_pM",0) + ReadingsVal($NAME,"P_WR_2_DC1_pM",0) + ReadingsVal($NAME,"P_WR_2_DC2_pM",0) + ReadingsVal($NAME,"P_WR_2_DC3_pM",0)) * 100 : 0 },

WR_1_Load { abs(ReadingsVal("WR_1","Total_AC_Apparent_P",0)) / ReadingsVal("WR_1","Work_Capacity",0) * 100 },
WR_2_Load { abs(ReadingsVal("WR_2","Total_AC_Apparent_P",0)) / ReadingsVal("WR_2","Work_Capacity",0) * 100 },

Wirkungsgrad_Module_bezogen_auf_Sollwirkungsgrad { ReadingsVal("WR_1","SW_Total_DC_P_sumOfAllPVInputs",0) / ((ReadingsNum("wetterstationinternet.solarstrahlung","state",0) + 0.00001) * 49 * 1.82 * 0.197) * 100 },

U_WR_1_DC1 { ReadingsVal("WR_1","U_DC1",0) },
U_WR_1_DC2 { ReadingsVal("WR_1","U_DC2",0) },
U_WR_2_DC1 { ReadingsVal("WR_2","U_DC1",0) },
U_WR_2_DC2 { ReadingsVal("WR_2","U_DC2",0) },
U_WR_2_DC3 { ReadingsVal("WR_2","U_DC3",0) },

U_WR_1_DC1_pM { ReadingsVal("WR_1","U_DC1",0) / 10 },
U_WR_1_DC2_pM { ReadingsVal("WR_1","U_DC2",0) / 10 },
U_WR_2_DC1_pM { ReadingsVal("WR_2","U_DC1",0) / 11 },
U_WR_2_DC2_pM { ReadingsVal("WR_2","U_DC2",0) / 9 },
U_WR_2_DC3_pM { ReadingsVal("WR_2","U_DC3",0) / 9 },

I_WR_1_DC1 { ReadingsVal("WR_1","I_DC1",0) },
I_WR_1_DC2 { ReadingsVal("WR_1","I_DC2",0) },
I_WR_2_DC1 { ReadingsVal("WR_2","I_DC1",0) },
I_WR_2_DC2 { ReadingsVal("WR_2","I_DC2",0) },
I_WR_2_DC3 { ReadingsVal("WR_2","I_DC3",0) },

I_WR_1_DC1_pM { ReadingsVal("WR_1","I_DC1",0) / 10 },
I_WR_1_DC2_pM { ReadingsVal("WR_1","I_DC2",0) / 10 },
I_WR_2_DC1_pM { ReadingsVal("WR_2","I_DC1",0) / 11 },
I_WR_2_DC2_pM { ReadingsVal("WR_2","I_DC2",0) / 9 },
I_WR_2_DC3_pM { ReadingsVal("WR_2","I_DC3",0) / 9 },

Ertrag_Ersparnis_Tag { ReadingsVal("WR_1","SW_Yield_Daily",0) * 0.3021 / 1000 },
Ertrag_Ersparnis_Monat { ReadingsVal("WR_1","SW_Yield_Monthly",0) * 0.3021 / 1000 },
Ertrag_Ersparnis_Jahr { ReadingsVal("WR_1","SW_Yield_Yearly",0) * 0.3021 / 1000 },
Ertrag_Ersparnis_Gesamt { ReadingsVal("WR_1","SW_Yield_Total",0) * 0.3021 / 1000 },

Ertrag_Einspeisung_Tag { ReadingsVal("WR_1","SW_Yield_Daily",0) * 0.0725 / 1000 },
Ertrag_Einspeisung_Monat { ReadingsVal("WR_1","SW_Yield_Monthly",0) * 0.0725 / 1000 },
Ertrag_Einspeisung_Jahr { ReadingsVal("WR_1","SW_Yield_Yearly",0) * 0.0725 / 1000 },
Ertrag_Einspeisung_Gesamt { ReadingsVal("WR_1","SW_Yield_Total",0) * 0.0725 / 1000 },

Ertrag_Gesamt { ReadingsVal("WR_1","SW_Yield_Total",0) / 1000 },

Einspeisung { ReadingsVal("WR_1","Actual_Battery_charge_-minus_or_discharge_-plus_P",0) < 0 ? (ReadingsVal("WR_1","SW_Total_PV_P_reserve",0) - ReadingsVal("WR_1","Actual_Battery_charge_-minus_or_discharge_-plus_P",0)) / 1000 : 0 },

Leistung_Selbst_Erzeugt { ReadingsVal("WR_1","SW_Total_DC_P_sumOfAllPVInputs",0) + (ReadingsVal("WR_1","Actual_Battery_charge_-minus_or_discharge_-plus_P",0) > 0 ? ReadingsVal("WR_1","Actual_Battery_charge_-minus_or_discharge_-plus_P",0) :0) },

Eigenverbrauch_aus_Photovoltaik_Zaehler { ReadingsVal("WR_1","SW_Yield_Total",0) / 1000 - ReadingsVal("ElectricityCalculator_Netzeinspeisung","KSEM_Active_energy_minus_EnergyMeter",0) },

Stromverbrauch_Gesamt { ReadingsVal("WR_1","SW_Home_own_consumption", "Undef")  },
Stromverbrauch_Gesamt_Zaehler { ReadingsVal("WR_1","SW_Yield_Total", "Undef") / 1000 * 0.95 + ReadingsVal("KSEM","Active_energy_plus", "Undef") - ReadingsVal("KSEM","Active_energy_minus", "Undef")},

Stromverbrauch_Heizung { ReadingsVal("OW_Stromzaehler","Stromverbrauch_Heizung", "Undef") },
Stromverbrauch_Wallbox { ReadingsVal("OW_Stromzaehler","Stromverbrauch_Wallbox", "Undef") },

Stromverbrauch_Haus { ReadingsVal("WR_1","Stromverbrauch_Gesamt", "Undef") - ReadingsVal("WR_1","Stromverbrauch_Heizung", "Undef") - ReadingsVal("WR_1","Stromverbrauch_Wallbox", "Undef") },
Stromverbrauch_Haus_Zaehler { ReadingsVal("WR_1","Stromverbrauch_Gesamt_Zaehler", "Undef") - ReadingsVal("OW_Stromzaehler","Stromverbrauch_Heizung_Zaehler", "Undef") - ReadingsVal("OW_Stromzaehler","Stromverbrauch_Wallbox_Zaehler", "Undef") },

Strombezug_Batterie { ReadingsVal("WR_1","Total_home_consumption_Battery", "Undef") / 1000 },

Autarkie { abs((1-ReadingsVal("WR_1","SW_Home_own_consumption_from_grid", "Undef") / ReadingsVal("WR_1","SW_Home_own_consumption", "Undef")) * 100) },
AutarkieTag { abs((1 - ReadingsVal("ElectricityCalculator_Netzbezug","KSEM_Active_energy_plus_EnergyDay", "Undef") / ReadingsVal("ElectricityCalculator_Gesamt","WR_1_Stromverbrauch_Gesamt_Zaehler_EnergyDay","Undef")) * 100) },
AutarkieVortag { abs((1 - ReadingsVal("ElectricityCalculator_Netzbezug","KSEM_Active_energy_plus_EnergyDayLast", "Undef") / ReadingsVal("ElectricityCalculator_Gesamt","WR_1_Stromverbrauch_Gesamt_Zaehler_EnergyDayLast","Undef")) * 100) },
AutarkieMonat { abs((1 - ReadingsVal("ElectricityCalculator_Netzbezug","KSEM_Active_energy_plus_EnergyMonth", "Undef") / ReadingsVal("ElectricityCalculator_Gesamt","WR_1_Stromverbrauch_Gesamt_Zaehler_EnergyMonth","Undef")) * 100) },
AutarkieVormonat { abs((1 - ReadingsVal("ElectricityCalculator_Netzbezug","KSEM_Active_energy_plus_EnergyMonthLast", "Undef") / ReadingsVal("ElectricityCalculator_Gesamt","WR_1_Stromverbrauch_Gesamt_Zaehler_EnergyMonthLast","Undef")) * 100) },
AutarkieJahr { abs((1 - ReadingsVal("ElectricityCalculator_Netzbezug","KSEM_Active_energy_plus_EnergyYear", "Undef") / ReadingsVal("ElectricityCalculator_Gesamt","WR_1_Stromverbrauch_Gesamt_Zaehler_EnergyYear","Undef")) * 100) },
AutarkieVorjahr { abs((1 - ReadingsVal("ElectricityCalculator_Netzbezug","KSEM_Active_energy_plus_EnergyYearLast", "Undef") / ReadingsVal("ElectricityCalculator_Gesamt","WR_1_Stromverbrauch_Gesamt_Zaehler_EnergyYearLast","Undef")) * 100) },
AutarkieGesamt { abs((1 - ReadingsVal("ElectricityCalculator_Netzbezug","KSEM_Active_energy_plus_EnergyMeter", "Undef") / ReadingsVal("ElectricityCalculator_Gesamt","WR_1_Stromverbrauch_Gesamt_Zaehler_EnergyMeter","Undef")) * 100) },

AutarkieErtrag { abs(ReadingsVal("WR_1","SW_Total_DC_P_sumOfAllPVInputs", "Undef") / ReadingsVal("WR_1","SW_Home_own_consumption", "Undef") * 100) },
AutarkieErtragTag { abs(ReadingsVal("ElectricityCalculator_Photovoltaik_Ertrag","WR_1_Ertrag_Gesamt_EnergyDay", "Undef") / ReadingsVal("ElectricityCalculator_Gesamt","WR_1_Stromverbrauch_Gesamt_Zaehler_EnergyDay","Undef") * 100) },
AutarkieErtragVortag { abs(ReadingsVal("ElectricityCalculator_Photovoltaik_Ertrag","WR_1_Ertrag_Gesamt_EnergyDayLast", "Undef") / ReadingsVal("ElectricityCalculator_Gesamt","WR_1_Stromverbrauch_Gesamt_Zaehler_EnergyDayLast","Undef") * 100) },
AutarkieErtragMonat { abs(ReadingsVal("ElectricityCalculator_Photovoltaik_Ertrag","WR_1_Ertrag_Gesamt_EnergyMonth", "Undef") / ReadingsVal("ElectricityCalculator_Gesamt","WR_1_Stromverbrauch_Gesamt_Zaehler_EnergyMonth","Undef") * 100) },
AutarkieErtragVormonat { abs(ReadingsVal("ElectricityCalculator_Photovoltaik_Ertrag","WR_1_Ertrag_Gesamt_EnergyMonthLast", "Undef") / ReadingsVal("ElectricityCalculator_Gesamt","WR_1_Stromverbrauch_Gesamt_Zaehler_EnergyMonthLast","Undef") * 100) },
AutarkieErtragJahr { abs(ReadingsVal("ElectricityCalculator_Photovoltaik_Ertrag","WR_1_Ertrag_Gesamt_EnergyYear", "Undef") / ReadingsVal("ElectricityCalculator_Gesamt","WR_1_Stromverbrauch_Gesamt_Zaehler_EnergyYear","Undef") * 100) },
AutarkieErtragVorjahr { abs(ReadingsVal("ElectricityCalculator_Photovoltaik_Ertrag","WR_1_Ertrag_Gesamt_EnergyYearLast", "Undef") / ReadingsVal("ElectricityCalculator_Gesamt","WR_1_Stromverbrauch_Gesamt_Zaehler_EnergyYearLast","Undef") * 100) },
AutarkieErtragGesamt { abs(ReadingsVal("ElectricityCalculator_Photovoltaik_Ertrag","WR_1_Ertrag_Gesamt_EnergyMeter", "Undef") / ReadingsVal("ElectricityCalculator_Gesamt","WR_1_Stromverbrauch_Gesamt_Zaehler_EnergyMeter","Undef") * 100) },

StromkostenNettoTag { ReadingsVal("ElectricityCalculator_Netzbezug","KSEM_Active_energy_plus_EnergyCostDay", "Undef") - ReadingsVal("ElectricityCalculator_Netzeinspeisung","KSEM_Active_energy_minus_EnergyCostDay","Undef") - ReadingsVal("ElectricityCalculator_Wallbox","OW_Stromzaehler_Stromverbrauch_Wallbox_Zaehler_EnergyCostDay","Undef") },
StromkostenNettoVortag { ReadingsVal("ElectricityCalculator_Netzbezug","KSEM_Active_energy_plus_EnergyCostDayLast", "Undef") - ReadingsVal("ElectricityCalculator_Netzeinspeisung","KSEM_Active_energy_minus_EnergyCostDayLast","Undef") - ReadingsVal("ElectricityCalculator_Wallbox","OW_Stromzaehler_Stromverbrauch_Wallbox_Zaehler_EnergyCostDayLast","Undef") },
StromkostenNettoMonat { ReadingsVal("ElectricityCalculator_Netzbezug","KSEM_Active_energy_plus_EnergyCostMonth", "Undef") - ReadingsVal("ElectricityCalculator_Netzeinspeisung","KSEM_Active_energy_minus_EnergyCostMonth","Undef") - ReadingsVal("ElectricityCalculator_Wallbox","OW_Stromzaehler_Stromverbrauch_Wallbox_Zaehler_EnergyCostMonth","Undef") },
StromkostenNettoVormonat { ReadingsVal("ElectricityCalculator_Netzbezug","KSEM_Active_energy_plus_EnergyCostMonthLast", "Undef") - ReadingsVal("ElectricityCalculator_Netzeinspeisung","KSEM_Active_energy_minus_EnergyCostMonthLast","Undef") - ReadingsVal("ElectricityCalculator_Wallbox","OW_Stromzaehler_Stromverbrauch_Wallbox_Zaehler_EnergyCostMonthLast","Undef") },
StromkostenNettoJahr { ReadingsVal("ElectricityCalculator_Netzbezug","KSEM_Active_energy_plus_EnergyCostYear", "Undef") - ReadingsVal("ElectricityCalculator_Netzeinspeisung","KSEM_Active_energy_minus_EnergyCostYear","Undef") - ReadingsVal("ElectricityCalculator_Wallbox","OW_Stromzaehler_Stromverbrauch_Wallbox_Zaehler_EnergyCostYear","Undef") },
StromkostenNettoVorjahr { ReadingsVal("ElectricityCalculator_Netzbezug","KSEM_Active_energy_plus_EnergyCostYearLast", "Undef") - ReadingsVal("ElectricityCalculator_Netzeinspeisung","KSEM_Active_energy_minus_EnergyCostYearLast","Undef") - ReadingsVal("ElectricityCalculator_Wallbox","OW_Stromzaehler_Stromverbrauch_Wallbox_Zaehler_EnergyCostYearLast","Undef") },
StromkostenNettoGesamt { ReadingsVal("ElectricityCalculator_Netzbezug","KSEM_Active_energy_plus_EnergyCostMeter", "Undef") - ReadingsVal("ElectricityCalculator_Netzeinspeisung","KSEM_Active_energy_minus_EnergyCostMeter","Undef") - ReadingsVal("ElectricityCalculator_Wallbox","OW_Stromzaehler_Stromverbrauch_Wallbox_Zaehler_EnergyCostMeter","Undef") },

StromkostenHausHeizungTag { ReadingsVal("ElectricityCalculator_Gesamt","WR_1_Stromverbrauch_Gesamt_Zaehler_EnergyCostDay", "Undef") - ReadingsVal("ElectricityCalculator_Wallbox","OW_Stromzaehler_Stromverbrauch_Wallbox_Zaehler_EnergyCostDay","Undef") },
StromkostenHausHeizungVortag { ReadingsVal("ElectricityCalculator_Gesamt","WR_1_Stromverbrauch_Gesamt_Zaehler_EnergyCostDayLast", "Undef") - ReadingsVal("ElectricityCalculator_Wallbox","OW_Stromzaehler_Stromverbrauch_Wallbox_Zaehler_EnergyCostDayLast","Undef") },
StromkostenHausHeizungMonat { ReadingsVal("ElectricityCalculator_Gesamt","WR_1_Stromverbrauch_Gesamt_Zaehler_EnergyCostMonth", "Undef") - ReadingsVal("ElectricityCalculator_Wallbox","OW_Stromzaehler_Stromverbrauch_Wallbox_Zaehler_EnergyCostMonth","Undef") },
StromkostenHausHeizungVormonat { ReadingsVal("ElectricityCalculator_Gesamt","WR_1_Stromverbrauch_Gesamt_Zaehler_EnergyCostMonthLast", "Undef") - ReadingsVal("ElectricityCalculator_Wallbox","OW_Stromzaehler_Stromverbrauch_Wallbox_Zaehler_EnergyCostMonthLast","Undef") },
StromkostenHausHeizungJahr { ReadingsVal("ElectricityCalculator_Gesamt","WR_1_Stromverbrauch_Gesamt_Zaehler_EnergyCostYear", "Undef") - ReadingsVal("ElectricityCalculator_Wallbox","OW_Stromzaehler_Stromverbrauch_Wallbox_Zaehler_EnergyCostYear","Undef") },
StromkostenHausHeizungVorjahr { ReadingsVal("ElectricityCalculator_Gesamt","WR_1_Stromverbrauch_Gesamt_Zaehler_EnergyCostYearLast", "Undef") - ReadingsVal("ElectricityCalculator_Wallbox","OW_Stromzaehler_Stromverbrauch_Wallbox_Zaehler_EnergyCostYearLast","Undef") },
StromkostenHausHeizungGesamt { ReadingsVal("ElectricityCalculator_Gesamt","WR_1_Stromverbrauch_Gesamt_Zaehler_EnergyCostMeter", "Undef") - ReadingsVal("ElectricityCalculator_Wallbox","OW_Stromzaehler_Stromverbrauch_Wallbox_Zaehler_EnergyCostMeter","Undef") },

StromkostenErsparnisTag { ReadingsVal("WR_1","StromkostenHausHeizungTag", "Undef") - ReadingsVal("WR_1","StromkostenNettoTag","Undef") },
StromkostenErsparnisVortag { ReadingsVal("WR_1","StromkostenHausHeizungVortag", "Undef") - ReadingsVal("WR_1","StromkostenNettoVortag","Undef") },
StromkostenErsparnisMonat { ReadingsVal("WR_1","StromkostenHausHeizungMonat", "Undef") - ReadingsVal("WR_1","StromkostenNettoMonat","Undef") },
StromkostenErsparnisVormonat { ReadingsVal("WR_1","StromkostenHausHeizungVormonat", "Undef") - ReadingsVal("WR_1","StromkostenNettoVormonat","Undef") },
StromkostenErsparnisJahr { ReadingsVal("WR_1","StromkostenHausHeizungJahr", "Undef") - ReadingsVal("WR_1","StromkostenNettoJahr","Undef") },
StromkostenErsparnisVorjahr { ReadingsVal("WR_1","StromkostenHausHeizungVorjahr", "Undef") - ReadingsVal("WR_1","StromkostenNettoVorjahr","Undef") },
StromkostenErsparnisGesamt { ReadingsVal("WR_1","StromkostenHausHeizungGesamt", "Undef") - ReadingsVal("WR_1","StromkostenNettoGesamt","Undef") } ,

StromkostenErsparnisProzentTag { (1 - ReadingsVal("WR_1","StromkostenNettoTag", "Undef") / ReadingsVal("WR_1","StromkostenHausHeizungTag","Undef")) * 100 },
StromkostenErsparnisProzentVortag { (1 - ReadingsVal("WR_1","StromkostenNettoVortag", "Undef") / ReadingsVal("WR_1","StromkostenHausHeizungVortag","Undef")) * 100 },
StromkostenErsparnisProzentMonat { (1 - ReadingsVal("WR_1","StromkostenNettoMonat", "Undef") / ReadingsVal("WR_1","StromkostenHausHeizungMonat","Undef")) * 100 },
StromkostenErsparnisProzentVormonat { (1 - ReadingsVal("WR_1","StromkostenNettoVormonat", "Undef") / ReadingsVal("WR_1","StromkostenHausHeizungVormonat","Undef")) * 100 },
StromkostenErsparnisProzentJahr { (1 - ReadingsVal("WR_1","StromkostenNettoJahr", "Undef") / ReadingsVal("WR_1","StromkostenHausHeizungJahr","Undef")) * 100 },
StromkostenErsparnisProzentVorjahr { (1 - ReadingsVal("WR_1","StromkostenNettoVorjahr", "Undef") / ReadingsVal("WR_1","StromkostenHausHeizungVorjahr","Undef")) * 100 },
StromkostenErsparnisProzentGesamt { (1 - ReadingsVal("WR_1","StromkostenNettoGesamt", "Undef") / ReadingsVal("WR_1","StromkostenHausHeizungGesamt","Undef")) * 100 }



FHEM unter Debian auf Asus EEBox: KNX (Wetterstation, Rollläden, Beleuchtung), Maple-CUN (Temperatur und Feuchte über 1-Wire, Intertechno-Funksteckdosen), PV-Anlage mit Plenticore und BYD, Viessmann Wärmepumpe, 1-Wire (Temperatur, Feuchte, Stromverbrauch), Husquarna-Automower, ...

ch.eick

Hallo Oli,
Zitat von: ojb am 06 Januar 2023, 13:16:42
Wallboxvergütung ist in der Tat von meinem Arbeitgeber, ist Teil der Lease-Rate.

Ich lasse alle Kosten über ElectricityCalculator's berechnen.

Wenn sich Tarifänderungen ergeben, dann ändere ich den Tarif einfach in den ElectricityCalculator's.
stellst Du da die Definition auch noch rein?

Zitat
Fast alle Berechnungen bezüglich PV (Autarkie, Eigenverbrauch etc.) laufen im WR_1.
Das ist doch beim WR_1_API auch für den Schwarm bereits drin. Auch der Vergleich mit Monat/Quartal/Jahr zum Vorjahr wurde bereits im uiTable aufgenommen.
Kleinere Anpassungen mache ich gerne noch, falls was fehlt

Zitat
Tibber finde ich sehr interessant und ich will da unbedingt hin.
Ich habe jetzt eine Mail mit meinem technischen Setup hingeschrieben (PV-Anlage, Kaskadenmessverfahren) und sie gefragt, ob man das alles mit einem Vertrag
abbilden kann, weil Betriebsstrom und Wärmestrom wäre ja dann das gleiche.
Da ist dann die Kaskade überflüssig.
Bei Tibber und aWATTar bin ich aktuell auch im FHEM dran. Mir schwebt gerade ein "Börsen" Device vor, da Tibber die Börsenpreise erst beim Vertragsabschluss
abfragbar macht. Das Device soll dann beide EVUs bedienen und auch den aktuellen Anbieter zum Vergleich berechnen. Dort würde ich auch die Kostenberechnung
der PV-Anlage sehen, damit man alles an einer Stelle hat.
Über die Datenbank möchte ich da auch wechselnde Tarif Preise möglich machen, damit man auch mal wechseln kann und Preissteigerungen abbildbar sind.

Zitat
Batteriestrom wird also primär in die Wärmepumpe geleitet.
Den aktuellen Tibber-Tarif auszuwerten und dann z.B. Wärmepumpe oder E-Auto-Ladung zu optimieren das ist das Ziel.
Das kann man über einen Trigger lösen, den man im Starkverbraucher Device abfragt.

Zitat
Super wäre natürlich auch, wenn man die Haus-Batterie gezielt über Netz aufladen könnte. Aber ich habe gehört das geht nur mir Installateurspasswort.
Das ist in Deutschland und insbesondere in der Schweiz nicht gestattet.
Für Wartungsarbeiten am Speicher habe ich letzte Tage einen Trigger im WR_1_Speicher_1_ExternControl eingebaut.
Das geht dann auch ohne Installateur Passwort. Siehe dazu den Anhang

VG  Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

Nochmal Hallo,
hier habe ich gerade einen Snapshot, wie es aussieht, wenn der KSEM mal nicht im Netz erreichbar ist.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ojb

Zitat von: ch.eick am 06 Januar 2023, 14:07:51
Hallo Oli,stellst Du da die Definition auch noch rein?

Hier die Definition eines der ElectricityCalculator's, die anderen sind entsprechend:

WR_1:Eigenverbrauch_aus_Photovoltaik_Zaehler.*


Gibt dann Readings wie im Bild.

Zitat von: ch.eick am 06 Januar 2023, 14:07:51
Das ist doch beim WR_1_API auch für den Schwarm bereits drin. Auch der Vergleich mit

Ja stimmt, aber ich hab laaaaange nur mit WR_1 gearbeitet und die API gar nicht benutzt. Deshalb hab ich da alles implementiert. API hab ich dann begonnen als ich die Steuerung des SOCs haben wollte.
FHEM unter Debian auf Asus EEBox: KNX (Wetterstation, Rollläden, Beleuchtung), Maple-CUN (Temperatur und Feuchte über 1-Wire, Intertechno-Funksteckdosen), PV-Anlage mit Plenticore und BYD, Viessmann Wärmepumpe, 1-Wire (Temperatur, Feuchte, Stromverbrauch), Husquarna-Automower, ...

ch.eick

Zitat von: ojb am 06 Januar 2023, 14:27:16
Hier die Definition eines der ElectricityCalculator's, die anderen sind entsprechend:

WR_1:Eigenverbrauch_aus_Photovoltaik_Zaehler.*

Somit hast Du für jede Statistic jetzt ein einzelnes ElectricityCalculator Device ?

Dann würde es sich ja lohnen das auf das WR_1_API Device umzubauen. Die bisherigen Zähler kann man in der Datenbank entsprechend umbenennen.
Dann wärst Du wieder im main stream :-)
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Mumpitz

Zitat von: ch.eick am 10 Dezember 2022, 11:24:53
Hallo zusammen,

ich teste gerade nochmal die WR_1_Speicher_1_ExternControl Zeit Steuerung.
Dadurch wollte ich dann jetzt im Winter mal nur den Speicher zur Tageszeit verwenden, falls er mal voll ist. Die Zeit Steuerung hatte ich mal für die Schweizer mit rein genommen, die Tagsüber einen Hochtarif und nachts einen Niedigtarif haben. Damit werde ich warscheinlich keinen Netzausfall verhindern :) :) :) , aber man probiert ja mal aus was man kann ;)
Sollte es mal attraktive Tarif Modelle geben, die man auch bestellen kann, würde soetwas ja auch bei uns Sinn machen.

VG   Chrstian

Hallo Christian

Du hast ja mal die Zeit Steuerung implementiert. Ich wollte diese bei mir auch mal aktivieren. Dabei musste ich jedoch feststellen, dass das smart_laden gar nicht funktioniert. Ist ja eigentlich auch klar, da im cmd_2 der Steuerung expliziert nur bei Automatik das smart_laden gestartet wird. Ist das wirklich richtig so?

Waldgeist78

Hallo zusammen,

Sehr spannendes Thema, allerdings mega komplex.
Ich habe so nach und nach alles eingerichtet lt. dem Wiki allerdings bekomme ich folgenden Fehler mit SQLite Datenbank nicht weg in Zusammenhang mit der Solar Forecast Berechnung. Der Fehler kommt auch jede Stunde im Log bei der Ausführung der Abfrage.
Hat jemand eine Idee?



Zitat

2023.01.07 20:00:01 2: DbRep LogDBRep_PV_Forecast_SQL - ERROR - DBD::SQLite::db do failed: near "SET": syntax error at ./FHEM/93_DbRep.pm line 13181.

2023.01.07 21:03:52 3: Solar_Correction_Temp        : 1.028
2023.01.07 21:03:52 3: Solar_Correction_Faktor      : 1
2023.01.07 21:03:52 3: Solar_Correction_Faktor_auto : DBD::SQLite::db do failed: near "SET": syntax error at ./FHEM/93_DbRep.pm line 13181.

2023.01.07 21:03:52 3: Forecast,Hour,Estimation 1h  : 0 20 0
2023.01.07 21:03:52 3: Solar_SolarRadiation         : 0 W 0.00 J
2023.01.07 21:03:52 2: DbRep LogDBRep_PV_Forecast_SQL - ERROR - DBD::SQLite::db do failed: near "SET": syntax error at ./FHEM/93_DbRep.pm line 13181.


DS_Starter

Ich grätsch mal kurz rein damit ihr nicht ewig rumsucht ...


2023.01.07 21:03:52 2: DbRep LogDBRep_PV_Forecast_SQL - ERROR - DBD::SQLite::db do failed: near "SET": syntax error at ./FHEM/93_DbRep.pm line 13181.


SQLite kann keine Variablendefinitionen via "SET" so wie MySQL/MariaDB es kann.
ch.eick arbeitet mit der MySQL/Oracle Syntax.

VG
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

ch.eick

Zitat von: Waldgeist78 am 07 Januar 2023, 21:33:55
Hallo zusammen,

Sehr spannendes Thema, allerdings mega komplex.
Ich habe so nach und nach alles eingerichtet lt. dem Wiki allerdings bekomme ich folgenden Fehler mit SQLite Datenbank nicht weg in Zusammenhang mit der Solar Forecast Berechnung. Der Fehler kommt auch jede Stunde im Log bei der Ausführung der Abfrage.
Hat jemand eine Idee?
Moin,
als erstes mal vielen Dank an Heiko, für die Hilfestellung.

Du könntest als erstes mal die Autokorrektur abschalten.

setreading WR_1_config forecast_factor_autocorrection 0

Ich habe festgestellt, das die Autokorrekur nicht so wirklich viel bringt und verwende sie selber bereits ca. 1 Jahr nicht mehr.Das Ergebnis der Prognose hängt viel stärker vom DWD ab und liegt deshalb, gerade bei schlechtem Wetter, oft daneben. Das bekommt man selbst mit einer Autokorrektur nicht wirklich gut in den Griff :-( .
Momentan verfolge ich einen Ansatz mit KI Prognose, bei der die KI aus den Vergleichsdaten lernen soll. Das Theme hatte Peter hier schon mal im Thread aufgebracht und testet es bereits seit geraumer Zeit. Meine ersten Schritte in dem Umfeld belaufen sich momentan auf die Integration in FHEM und die Optimierung/Minimierung des Datenvolumens aus der Datenbank, damit die Laufzeit nicht zu lang wird und der Speicherbedarf reduziert wird. Es sieht aber schon recht gut aus.

Heiko hat aber recht, ich verwende ein möglichst originales MySQL, was sogar auf dem RPI4 arm64 im Docker Container läuft. Das Image wird direkt von Oracle zur Verfügung gestellt.

VG   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

zwölfgang

##############################################################################################################
16_Stop_Standby_Entladung\

Hallo Christian,
zu der "16_Stop_Standby_Entladung" habe ich einmalig folgendes beobachten könne.
Mein Speicher ist in einer Nacht auf 4% abgefallen, (minSOC war auf 5% eingestellt von mir selber verzockt), eine Aussage über die Standby Entladung habe ich damit nicht wirklich beobachte es aber weiter mit 10% minSOC.
Gestern war dann wieder ein schöner Solartag und da konnte ich das Laden etwas beobachten und dabei ist mir aufgefallen das immer zwischen Laden und Einspeisen hin und her geflipt wurde. Dabei war
- SOC 5%
- externe Batteriesteuerung (WR_1) aktiviert
- smart Laden (WR_1_Speicher_1_ExternControl) aktiviert

Ich bin nicht dahinter gekommen was da passiert.
- block_2_smart_Laden_start_Automatik
- block_2_smart_Laden_beenden_Automatik
werden zyklisch zeitgleich executed.

Habe dann im WR_1_Speicher_1_ExternControl das 3_smart_Laden_beenden_Automatik ausgelöst, dann hat der Speicher normal geladen.

ZitatDas Ganze reagiert dann verzögert mit ca. der eingestellten Battery_ComMonitor_Time, die im Plenticore geändert werden kann.
Auch das Laden verzögert sich dann maximal um diese Zeit, da ja erst der Default wieder erreicht werden muss.

Hat es damit zu tun?
Ich finde im Kostal dazu nur "Timeout ext. Batteriesteuerung 180" und die Zeit würde in etwa zu dem Flip zischen Laden und Einspeisen passen.

Idee?

Grüßle Wolfgang



hier solllte eigentlich nix durchgestrichen sein  :-[

ch.eick

Hallo Wolfgang,
das mit dem "16_Stop_Standby_Entladung" war ein Test, der leider nicht wirklich geholfen hat.
Nimm den ganzen Block einfach wieder raus, da ist meine Euphorie mit mir durch gegangen. Besser wäre die aktuellste FW des Plenticore, die jetzt viel früher in den Ruhe 1 Modus schaltet.

VG Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

Zitat von: Mumpitz am 07 Januar 2023, 20:42:28
Du hast ja mal die Zeit Steuerung implementiert. Ich wollte diese bei mir auch mal aktivieren. Dabei musste ich jedoch feststellen, dass das smart_laden gar nicht funktioniert. Ist ja eigentlich auch klar, da im cmd_2 der Steuerung expliziert nur bei Automatik das smart_laden gestartet wird. Ist das wirklich richtig so?
Hallo,
schön, dass Ihr alle Fehler aufspürt, zum Glück war mir das auch schon aufgefallen :-)

Ich habe nun im Wiki mal wieder das WR_1_Speicher_1_ExternControl Device aktualisiert. Das läuft jetzt schon einige Wochen so bei mir.

- Es gab Probleme mit dem smart_Laden bei der Zeitsteuerung
- Auch die Verriegelung bei der WallBox war nicht sauber, da im Speichermodus smart_Laden beim Beenden der Speicherverriegelung,
   nicht wieder sauber ins smart_laden zurück geschaltet wurde.


VG   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

zwölfgang

Hallo Christian,
deine Euphorie gefällt mir gut :-)
habe den Block wieder entfernt. Mein Kostal sollte auf dem neusten Stand sein, mit der Suche finde ich jedenfalls nichts neues, isofern sollte das schon passen.
Wie ich sehe hast Du auch noch die WB_1 Steuerung weiter ausgebaut, hab ich auch mal mit übernommen und für den go-eCharger angepasst.
Testen kann ich das jetzt nur nicht wegen zu wenig Sonne.

VG  Wolfgang


ch.eick

Zitat von: zwölfgang am 08 Januar 2023, 14:51:15
Hallo Christian,
deine Euphorie gefällt mir gut :-)
habe den Block wieder entfernt. Mein Kostal sollte auf dem neusten Stand sein, mit der Suche finde ich jedenfalls nichts neues, isofern sollte das schon passen.
Wie ich sehe hast Du auch noch die WB_1 Steuerung weiter ausgebaut, hab ich auch mal mit übernommen und für den go-eCharger angepasst.
Testen kann ich das jetzt nur nicht wegen zu wenig Sonne.
Schön, wenn es Dir gefällt, manchmal kommt ja auch was gutes dabei raus :-)
Bei der WB_1 Ansteuerung war das Problem im Zusammenhang mit dem smart_Laden, da wurde der vorherige Zustand nicht wieder hergestellt, aber das klappt bei mir jetzt wie gewünscht.
Ansonsten bin ich gerade an den Statistiken des BEV, um dort direkt den Vormonat zu vergleichen, oder auch die Ladevorgänge an den öffentlichen Säulen zu berücksichtigen.
Da habe ich mit in der Datenbank bereits alle Ladevorgänge mit dem Device Namen WB_0 gespeichert und diese dann mit DbRep abgefragt. Das Ergebnis ist schon im stateFormat dargestellt.

Als WB_0 schwebt mir ein DOIF im Perl Modus mit uiTable vor, bei dem ich dann manuell die externen Ladevorgänge eingeben kann und diese dann im DbLog mit dem richtigen TIMESTAMP erscheinen. Das DOIF kann dann direkt ein DbRep für die Abfrage der Statistik ansteuern, sodass diese dann als Vormonat oder Vorjahr angezeigt werden können. So wird der Verbrauch exakter angezeigt.
Leider klappt bei meinem Kartenanbieter die FHEM HTTPMOD Abfrage der Ladevorgänge nicht, aber das sind bei mir ja auch nur 5-10 pro Jahr, inklusive der externen privaten.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick