Seite 1 von 1

Geräte und Komponenten / JSON: merkwürdiges Timeout-Verhalten

Verfasst: So Mär 24, 2024 12:29 pm
von caran17
Hallo zusammen,

ich habe festgestellt, dass die Abfrage der Komponenten über JSON (Konfiguration -> Geräte und Komponenten -> Jsom) zu Fehlern in den Logs führt. Zunächst hatte ich den Inhalt des JSONs in Verdacht, es scheint sich aber eher um ein TImeout-Problem zu handeln. Aber der Reihe nach.

Ich habe einen Senec-Speicher mit Wechselrichter. Dafür gibt es kein offizielles openWB-Modul, also konfguriere ich es über JSON.

Das Ursprungs-JSON aus dem lokalen Netzwerk direkt von Senec (Response-Zeit im Mittel ca. 20ms) ist für die openWB nicht zu verarbeiten:

Code: Alles auswählen

{
    "STATISTIC": {
      ...
    },
    "ENERGY": {
        "STAT_STATE": "u8_0E",
        "GUI_BAT_DATA_CURRENT": "fl_4120CCCD",
        "GUI_BAT_DATA_FUEL_CHARGE": "fl_415219DB",
        "GUI_BAT_DATA_POWER": "fl_43F0A130",
        "GUI_BAT_DATA_VOLTAGE": "fl_423F8B44",
        "GUI_GRID_POW": "fl_C1416E00",
        "GUI_HOUSE_POW": "fl_43CF95B0",
        "GUI_INVERTER_POWER": "fl_44632128",
        "STAT_HOURS_OF_OPERATION": "u3_00001A98"
    },
Daher habe ich ein Programm geschrieben, das es in ein für die openWB lesbares Format umwandelt (Response-Zeit im Mittel ca. 40ms):

Code: Alles auswählen

{
    "energy": {
        "current": {
            "statState": 14,
            "batteryCurrent": 29.58,
            "batteryStateOfCharge": 27.272726,
            "batteryPower": 1479.6135,
            "batteryVoltage": 50.02,
            "gridPower": 4.9908447,
            "housePower": 529.38245,
            "inverterPower": 2004.0051,
            "hoursOfOperation": 6810
        }
    }
}
Die Einstellungen in der openWB sehen jetzt so aus:
Zähler:
  • Abfrage für Leistung: ".energy.current.gridPower"
  • Abfrage für Zählerstand Bezug: ""
  • Abfrage für Zählerstand Einspeisung: ""
Wechelrichter:
  • Abfrage für Leistung: ".energy.current.inverterPower"
  • Abfrage für Zählerstand: ""
Speicher:
  • Abfrage für Leistung: ".energy.current.batteryPower"
  • Abfrage für Ladestand: ".energy.current.batteryStateOfCharge"
  • Abfrage für Zählerstand Ladung: ""
  • Abfrage für Zählerstand Entladung: ""
Das funktioniert prima und praktisch fehlerlos. Allerdings sind in dem lokalen Senec-JSON nur die aktuellen, aber keine kumulierten Werte enthalten. Diese bekommt man nur aus dem Internt. Daher habe ich meinen Server dahingehend erweitert, dass auch diese Online-Werte abgefragt und ins JSON eingebaut werden. Um Die Antwortzeiten gering zu halten, wird dieser Online-Request gecacht. Jetzt sieht das JSON so aus (Response-Zeit im Mittel ca. 60ms):

Code: Alles auswählen

{
    "energy": {
        "current": {
            "statState": 14,
            "batteryCurrent": 23.18,
            "batteryStateOfCharge": 28.28,
            "batteryPower": 1158.38,
            "batteryVoltage": 49.97,
            "gridPower": -15.62,
            "housePower": 509.12,
            "inverterPower": 1683.12,
            "hoursOfOperation": 6810
        },
        "today": {
            "gridImport": 1162.48,
            "gridExport": 398.19,
            "powerGenerated": 6402.34,
            "powerConsumption": 6869.63,
            "accuExport": 3220.95,
            "accuImport": 2923.83,
            "accuLevel": 6501.73
        }
    },
    "cache": {
        "statsWeb": {
            "cached": true,
            "cacheTime": "2024-03-24 13:16:01"
        }
    }
}
WICHTIG: wenn man die zusätzlichen Werte nicht abfragt (z. B. "Abfrage für Zählerstand Bezug" nach wie vor leer), funktioniert weiterhin alles fehlerfrei.

Nun fragen wir auch die kumulierten Werte ab. Die Einstellungen sehen jetzt so aus:

Zähler:
  • Abfrage für Leistung: ".energy.current.gridPower"
  • Abfrage für Zählerstand Bezug: ".energy.today.gridImport"
  • Abfrage für Zählerstand Einspeisung: ".energy.today.gridExport"
Wechelrichter:
  • Abfrage für Leistung: ".energy.current.inverterPower"
  • Abfrage für Zählerstand: ".energy.today.powerGenerated"
Speicher:
  • Abfrage für Leistung: ".energy.current.batteryPower"
  • Abfrage für Ladestand: ".energy.current.batteryStateOfCharge"
  • Abfrage für Zählerstand Ladung: ".energy.today.accuExport"
  • Abfrage für Zählerstand Entladung: ".energy.today.accuImport"
Jetzt hagelt es soclhe Meldungen im Main Log, die Fehlerrate liegt über 50%.

Code: Alles auswählen

2024-03-24 12:40:05,878 - {helpermodules.utils._thread_handler:26} - {ERROR:MainThread} - device0 konnte nicht innerhalb des Timeouts die Werte abfragen, die abgefragten Werte werden nicht in der Regelung verwendet.
2024-03-24 12:40:05,879 - {modules.common.utils.component_parser:25} - {ERROR:MainThread} - Keine aktuellen Werte für Gerät 'Json'(0) der Komponente 'Wechselrichter'(1) verfügbar.
2024-03-24 12:40:06,444 - {modules.common.utils.component_parser:25} - {ERROR:MainThread} - Keine aktuellen Werte für Gerät 'Json'(0) der Komponente 'Speicher'(2) verfügbar.
2024-03-24 12:40:07,698 - {modules.common.utils.component_parser:25} - {ERROR:MainThread} - Keine aktuellen Werte für Gerät 'Json'(0) der Komponente 'Zähler'(0) verfügbar.
Daher habe ich mir noch einen Trick einfallen lassen: um die Antwortzeiten meines Servers zu verringern, läuft ein Prozess daneben, der im Abstand von 9 Sekunden auch das lokale JSON cached und der openWB-Call dann nur noch die Werte aus dem Cache bekommt. Es kommt das gleiche JSON heraus, ein paar Sekunden verzögert, die Antwortzeiten liegen im Mittel aber bei ca. 25ms. Ergebnis: die Fehlerrate liegt bei unter 50%, immerhin deutlich niedriger als bei der ungecachten Version.

Auffällig ist also, dass die Response-Zeit einen signifikanten Einfluss auf die Fehlerrate hat. Vermutlich werden Timeouts überschritten. Merkwürdig finde ich allerdings die konkreten Zahlen. Selbst eine Antwortzeit von 60ms scheint mir nicht sonderlich viel zu sein.
Auffällig ist aber auch, dass es anscheinend nicht um die reine Antwortzeit des Servers geht, sondern die Verarbeiteung innerhalb der openWB auch einen erheblichen Einfluss hat. Nur so ist es zu erklären, dass das identische JSON fehlerfrei funktioniert, wenn nur die aktuellen Werte abgefragt werden, aber mehr als 50% Fehler wirft, wenn auch die kumulierten Werte ausgelesen werden (ohne lokalen Cache).

Meine Frage wäre daher, ob ich das richtig interpretiere und wenn ja, warum die Timeouts so extrem niedrig gesetzt sind und ob es ggf. eine Lösung für das Problem gibt.

Re: Geräte und Komponenten / JSON: merkwürdiges Timeout-Verhalten

Verfasst: Di Mär 26, 2024 8:47 am
von derNeueDet
Ich glaube du hast ein anderes Problem. Die openWB erwartet die Zählerstände als absolute Werte seit Beginn, nicht als Tageswerte, die um Mitternacht zurück gesetzt werden.

Wenn du die Zählerstände leer lässt und nur aktuelle Leistungen übergibt, wie ursprünglich realisiert wird intern gerechnet.

VG
Det

Re: Geräte und Komponenten / JSON: merkwürdiges Timeout-Verhalten

Verfasst: Di Mär 26, 2024 10:05 am
von caran17
Guter Hinweis, vielen Dank. Leider ist das nicht näher erläutert, welche Werte genau erwartet werden.

Das hat aber nichts mit dem hier beschriebenen Problem zu tun, denke ich. Die Software weiß ja nicht, dass es Tageswerte sind.

Die Fehlermeldung sagt auch klar, dass es sich um einen Timeout handelt. Auch der Quellcode bestätigt das: die Meldung erscheint immer, wenn nicht alle Threads (welche das genau sind, ist mir noch nicht ganz klar) rechtzeitig (in 10/3 Sek.) abgearbeitet wurden.

Oder meinst du, es müssen immer ganzzahlige Werte sein? Das würde mich auch wundern, weil dort, wo etwas in der Hilfe erklärt wird, immer darauf hingewiesem wird, dass es Zahlen mit oder ohne Nachkommastellen sein können.

Re: Geräte und Komponenten / JSON: merkwürdiges Timeout-Verhalten

Verfasst: Di Mär 26, 2024 10:34 am
von derNeueDet
Ich glaub in der Zwischenzeit ist es egal. Früher waren es soweit ich mich noch erinnern kann integer Werte.
Hast du den Debug auf Detail?
Lannst du im Log auch nachvollziehen, wie lange der Thread wirklich dauert?

Aus den bisherigen Ausschnitten kann ich das nicht erkennen.

VG
Det

Re: Geräte und Komponenten / JSON: merkwürdiges Timeout-Verhalten

Verfasst: Mi Mär 27, 2024 9:30 am
von caran17
Na klar, einmal das Log mit Details. Der Thread scheint tatsächlich gut 3 Sekunden zu dauern. Sieht für mich aber nicht so aus, dass der Response langsam ist, sondern eher die Verarbeitung, oder?

Code: Alles auswählen

2024-03-27 10:24:00,959 - {schedule:660} - {DEBUG:MainThread} - Running job Job(interval=1, unit=minutes, do=smarthome_handler, args=(), kwargs={})
2024-03-27 10:24:00,961 - {schedule:660} - {DEBUG:MainThread} - Running job Job(interval=1, unit=minutes, do=handler10Sec, args=(), kwargs={})
2024-03-27 10:24:00,963 - {root:75} - {INFO:MainThread} - # ***Start*** 
2024-03-27 10:24:01,002 - {modules.common.component_context:54} - {DEBUG:device0} - Update Komponenten ['Zähler', 'Wechselrichter', 'Speicher']
2024-03-27 10:24:01,009 - {urllib3.connectionpool:227} - {DEBUG:device0} - Starting new HTTP connection (1): raspihomeauto.fritz.box:40050
2024-03-27 10:24:01,011 - {modules.common.component_context:25} - {DEBUG:set values cp4} - Update Komponente ['Ladepunkt']
2024-03-27 10:24:01,059 - {urllib3.connectionpool:452} - {DEBUG:device0} - http://raspihomeauto.fritz.box:40050 "GET /api/steps/senec:getStats HTTP/1.1" 200 652
2024-03-27 10:24:01,061 - {modules.common.req:11} - {DEBUG:device0} - Get-Response: {
  "energy": {
    "current": {
      "statState": 14,
      "batteryCurrent": 35.74,
      "batteryStateOfCharge": 39.39,
      "batteryPower": 1829.29,
      "batteryVoltage": 51.18,
      "gridPower": -10.94,
      "housePower": 1805.31,
      "inverterPower": 3645.54,
      "hoursOfOperation": 6879
    },
    "today": {
      "gridImport": 42.48,
      "gridExport": 272.46,
      "powerGenerated": 6083.01,
      "powerConsumption": 4676.27,
      "accuExport": 3609.25,
      "accuImport": 2434.27,
      "accuLevel": 16585.21
    }
  },
  "cache": {
    "statsWeb": {
      "cached": true,
      "cacheTime": "2024-03-27 10:20:01"
    }
  }
}
2024-03-27 10:24:02,739 - {modules.common.store._api:26} - {DEBUG:device0} - Raw data CounterState(currents=[0.0, 0.0, 0.0], powers=[0.0, 0.0, 0.0], voltages=[230.0, 230.0, 230.0], power_factors=[0.0, 0.0, 0.0], imported=42.48, exported=272.46, power=-10.94, frequency=50)
2024-03-27 10:24:03,625 - {modules.common.store._api:26} - {DEBUG:device0} - Raw data InverterState(currents=[0.0, 0.0, 0.0], power=-3645.54, exported=6083.01, dc_power=None)
2024-03-27 10:24:04,489 - {helpermodules.utils._thread_handler:26} - {ERROR:MainThread} - device0 konnte nicht innerhalb des Timeouts die Werte abfragen, die abgefragten Werte werden nicht in der Regelung verwendet.
2024-03-27 10:24:04,490 - {modules.common.utils.component_parser:25} - {ERROR:MainThread} - Keine aktuellen Werte für Gerät 'Json'(0) der Komponente 'Wechselrichter'(1) verfügbar.
2024-03-27 10:24:04,493 - {modules.common.utils.component_parser:25} - {ERROR:MainThread} - Keine aktuellen Werte für Gerät 'Json'(0) der Komponente 'Speicher'(2) verfügbar.
2024-03-27 10:24:04,937 - {modules.common.component_context:25} - {DEBUG:update values cp4} - Update Komponente ['Ladepunkt']
2024-03-27 10:24:05,379 - {modules.common.store._api:26} - {DEBUG:device0} - Raw data BatState(imported=3609.25, exported=2434.27, power=1829.29, soc=39.39)
2024-03-27 10:24:05,490 - {modules.common.utils.component_parser:25} - {ERROR:MainThread} - Keine aktuellen Werte für Gerät 'Json'(0) der Komponente 'Zähler'(0) verfügbar.
2024-03-27 10:24:05,972 - {control.bat_all:179} - {INFO:MainThread} - 0W verbleibende Speicher-Leistung
2024-03-27 10:24:05,982 - {control.counter:145} - {INFO:MainThread} - Verbleibende Ströme an Zähler 0: [21.42, 16.0, 16.0]A
2024-03-27 10:24:05,984 - {control.counter:168} - {INFO:MainThread} - Verbleibende Leistung an Zähler 0: 12248.4W
2024-03-27 10:24:05,995 - {control.chargepoint.chargepoint:541} - {DEBUG:MainThread} - EV-Phasenzahl beschränkt die nutzbaren Phasen auf 1
2024-03-27 10:24:05,996 - {control.ev:604} - {DEBUG:MainThread} - Keine Ladung, da keine Zeitfenster für Zeitladen konfiguriert sind.
2024-03-27 10:24:06,008 - {control.chargepoint.chargepoint:665} - {INFO:MainThread} - LP 4, EV: Standard-Fahrzeug (EV-Nr.0): Theoretisch benötigter Strom 6A, Lademodus pv_charging, Submodus: Chargemode.PV_CHARGING, Phasen: 1, Priorität: False, max. Ist-Strom: 5.42
2024-03-27 10:24:06,025 - {modules.common.simcount._simcount:38} - {DEBUG:MainThread} - Previous state: SimCounterState(timestamp=1711531435.5456884, power=559.05, imported=396034.4873195086, exported=0)
2024-03-27 10:24:06,028 - {modules.common.simcount._calculate:11} - {DEBUG:MainThread} - time passed: 0.00291105, power1: 559.05, power2: 560.02
2024-03-27 10:24:06,029 - {modules.common.simcount._calculate:27} - {DEBUG:MainThread} - power did not change sign. Total energy: 1.62884
2024-03-27 10:24:06,030 - {modules.common.simcount._simcount:53} - {DEBUG:MainThread} - imported: 1.62884 Wh, exported: 0 Wh, new state: SimCounterState(timestamp=1711531446.0254846, power=560.02, imported=396036.1161563838, exported=0)
2024-03-27 10:24:06,036 - {control.data:266} - {INFO:MainThread} - bat2
BatData(get=Get(currents=[0.0, 0.0, 0.0], soc=39, daily_exported=2398.0, daily_imported=3645.0, imported=163432.47, exported=149618.9, fault_state=0, fault_str='Kein Fehler.', power=1865.77))
2024-03-27 10:24:06,038 - {control.data:236} - {INFO:MainThread} - bat_all_data
BatAllData(config=Config(configured=True), get=Get(soc=39, daily_exported=2398.0, daily_imported=3645.0, fault_str='Kein Fehler.', fault_state=0, imported=163432.47, exported=149618.9, power=1865.77), set=Set(charging_power_left=0, regulate_up=True, switch_on_soc_reached=True))
2024-03-27 10:24:06,043 - {control.data:237} - {INFO:MainThread} - cp_all_data
AllChargepointData(get=AllGet(daily_imported=675.0, daily_exported=0.0, power=1229.18, imported=1096855.96, exported=0))
2024-03-27 10:24:06,045 - {control.data:266} - {INFO:MainThread} - cp4
ChargepointData(control_parameter=ControlParameter(chargemode=<Chargemode.PV_CHARGING: 'pv_charging'>, current_plan=None, failed_phase_switches=0, imported_at_plan_start=1096094.97, imported_instant_charging=None, limit=None, phases=1, prio=False, required_current=6, required_currents=[6, 0.0, 0.0], state=4, submode=<Chargemode.PV_CHARGING: 'pv_charging'>, timestamp_auto_phase_switch=None, timestamp_perform_phase_switch=None, timestamp_switch_on_off=None), get=Get(charge_state=True, connected_vehicle=ConnectedVehicle(config=ConnectedConfig(average_consumption=17, charge_template=0, chargemode='stop', current_plan=0, ev_template=0, priority=False, time_charging_in_use=False), info=ConnectedInfo(id=0, name='Ladepunkt'), soc=68), currents=[5.42, 0.0, 0.0], daily_imported=675.0, daily_exported=0.0, evse_current=600, exported=0, fault_str='Kein Fehler.', fault_state=0, imported=1096855.96, phases_in_use=1, plug_state=True, power=1229.18, rfid_timestamp=None, rfid=None, soc=None, soc_timestamp=None, state_str=None, vehicle_id=None, voltages=[232.08, 234.64, 231.99]), set=Set(change_ev_permitted=[True, ''], charging_ev=0, charging_ev_prev=0, current=6, energy_to_charge=0, loadmanagement_available=True, log=Log(chargemode_log_entry='pv_charging', costs=0.1034, imported_at_mode_switch=1096094.97, imported_at_plugtime=1096094.97, imported_since_mode_switch=758.0600000000559, imported_since_plugged=758.0600000000559, range_charged=4.211444444444755, time_charged='0:32', timestamp_start_charging=1711529503.34918, ev=0, prio=False, rfid=None), manual_lock=False, phases_to_use=1, plug_state_prev=True, plug_time=1711523742.745538, required_power=1380.0, rfid=None, target_current=0, charging_ev_data=<control.ev.Ev object at 0x6e3eb628>), config=Config(configuration={'mode': 'series', 'ip_address': 'localhost', 'duo_num': 0}, ev=0, name='Carport', type='internal_openwb', template=0, connected_phases=3, phase_1=1, auto_phase_switch_hw=True, control_pilot_interruption_hw=True, id=4))
2024-03-27 10:24:06,046 - {control.data:266} - {INFO:MainThread} - cpt0
CpTemplateData(autolock=Autolock(active=False, plans={}, wait_for_charging_end=False), id=0, max_current_multi_phases=16, max_current_single_phase=16, name='Standard Ladepunkt-Profil', rfid_enabling=False, valid_tags=[])
2024-03-27 10:24:06,048 - {control.data:266} - {INFO:MainThread} - counter0
CounterData(config=Config(max_currents=[16, 16, 16], max_total_power=11000), get=Get(powers=[0.0, 0.0, 0.0], currents=[0.0, 0.0, 0.0], voltages=[230.0, 230.0, 230.0], power_factors=[0.0, 0.0, 0.0], unbalanced_load=0, frequency=50, daily_exported=273.0, daily_imported=26.0, imported=88245.48220774294, exported=127291.73365228734, fault_state=0, fault_str='Kein Fehler.', power=-19.22), set=Set(error_counter=0, reserved_surplus=0, released_surplus=0, raw_power_left=12248.4, raw_currents_left=[21.42, 16.0, 16.0], surplus_power_left=0, state_str=''))
2024-03-27 10:24:06,050 - {control.data:241} - {INFO:MainThread} - counter_all_data
CounterAllData(config=Config(reserve_for_not_charging=True), get=Get(hierarchy=[{'id': 0, 'type': 'counter', 'children': [{'id': 1, 'type': 'inverter', 'children': []}, {'id': 2, 'type': 'bat', 'children': []}, {'id': 4, 'type': 'cp', 'children': []}]}]), set=Set(loadmanagement_active=False, home_consumption=560.02, invalid_home_consumption=0, daily_yield_home_consumption=4009.0, imported_home_consumption=396036.1161563838, disengageable_smarthome_power=0))
2024-03-27 10:24:06,054 - {control.data:266} - {INFO:MainThread} - ct0
ChargeTemplateData(name='Standard-Lade-Profil', disable_after_unplug=False, prio=False, load_default=True, et=Et(active=False, max_price=0.0002), time_charging=TimeCharging(active=True, plans={}), chargemode=Chargemode(selected='pv_charging', pv_charging=PvCharging(min_soc_current=16, min_current=0, feed_in_limit=False, min_soc=20, max_soc=80), scheduled_charging=ScheduledCharging(plans={}), instant_charging=InstantCharging(current=9, limit=Limit(selected='soc', amount=50000, soc=70))))
2024-03-27 10:24:06,054 - {control.data:266} - {INFO:MainThread} - ev0
EvData(set=Set(soc_error_counter=0), charge_template=0, ev_template=0, name='Standard-Fahrzeug', tag_id=[], get=Get(soc=68, soc_timestamp=1711531317.507246, force_soc_update=False, range=188.0, fault_state=0, fault_str='Kein Fehler.'))
2024-03-27 10:24:06,055 - {control.data:266} - {INFO:MainThread} - et0
EvTemplateData(name='Standard-Fahrzeug-Profil', max_current_multi_phases=16, max_phases=1, phase_switch_pause=2, prevent_phase_switch=False, prevent_charge_stop=False, control_pilot_interruption=True, control_pilot_interruption_duration=10, average_consump=18000, min_current=6, max_current_single_phase=16, battery_capacity=39000, efficiency=82, nominal_difference=1, keep_charge_active_duration=40)
2024-03-27 10:24:06,056 - {control.data:245} - {INFO:MainThread} - general_data
GeneralData(chargemode_config=ChargemodeConfig(instant_charging=InstantCharging(phases_to_use=1), pv_charging=PvCharging(bat_prio=True, charging_power_reserve=200, control_range=[-230, 0], feed_in_yield=15000, phase_switch_delay=7, phases_to_use=1, rundown_power=0, rundown_soc=70, switch_off_delay=300, switch_off_soc=0, switch_off_threshold=600, switch_on_delay=30, switch_on_soc=0, switch_on_threshold=900), scheduled_charging=ScheduledCharging(phases_to_use=1), time_charging=TimeCharging(phases_to_use=1), unbalanced_load_limit=18, unbalanced_load=False), control_interval=10, extern_display_mode='primary', extern=False, external_buttons_hw=False, grid_protection_active=False, grid_protection_configured=True, grid_protection_random_stop=0, grid_protection_timestamp='', mqtt_bridge=False, prices=Prices(bat=0.00039, cp=0, grid=0.00039, pv=0.00039), range_unit='km', ripple_control_receiver=RippleControlReceiver(get=RippleControlReceiverGet(fault_state=0, fault_str='Kein Fehler.', override_value=100), module=None, overrice_reference=<OverrideReference.CHARGEPOINT: 'chargepoint'>))
2024-03-27 10:24:06,059 - {control.data:246} - {INFO:MainThread} - general_data-display
primary
2024-03-27 10:24:06,060 - {control.data:247} - {INFO:MainThread} - graph_data
GraphData(config=Config(duration=120))
2024-03-27 10:24:06,061 - {control.data:248} - {INFO:MainThread} - optional_data
OptionalData(et=Et(get=EtGet(fault_state=0, fault_str='Kein Fehler.', prices={})), int_display=InternalDisplay(active=True, on_if_plugged_in=True, pin_active=False, pin_code='0000', standby=45, theme=<modules.display_themes.cards.config.CardsDisplayTheme object at 0x6d1f7f40>), led=Led(active=False), rfid=Rfid(active=False))
2024-03-27 10:24:06,062 - {control.data:266} - {INFO:MainThread} - pv1
PvData(config=Config(max_ac_out=0), get=Get(currents=[0.0, 0.0, 0.0], daily_exported=6146.0, monthly_exported=0, yearly_exported=0, exported=499476.892, fault_state=0, fault_str='Kein Fehler.', power=-3674.19))
2024-03-27 10:24:06,065 - {control.data:250} - {INFO:MainThread} - pv_all_data
PvAllData(config=Config(configured=True), get=Get(daily_exported=6146.0, fault_str='Kein Fehler.', fault_state=0, monthly_exported=0, yearly_exported=0, exported=499476.892, power=-3674.19))
2024-03-27 10:24:06,067 - {control.data:266} - {INFO:MainThread} - system
{'update_in_progress': False, 'perform_update': False, 'ip_address': '192.168.101.45', 'current_commit': '2024-03-19 06:56:08 +0100 [a6b648645]', 'current_branch': 'Release', 'current_branch_commit': '2024-03-19 06:56:08 +0100 [a6b648645]', 'current_missing_commits': [], 'datastore_version': 38, 'dataprotection_acknowledged': True, 'usage_terms_acknowledged': True, 'debug_level': 10, 'release_train': 'master', 'version': '2.1.3-Patch.1', 'boot_done': True, 'lastlivevaluesJson': {'timestamp': 1711531435, 'time': '10:23:55', 'grid': -0.019, 'house-power': 0.559, 'charging-all': 1.23, 'pv-all': 3.674, 'cp4-power': 1.23, 'ev0-soc': 68, 'bat-all-power': 1.866, 'bat-all-soc': 39}, 'module_update_completed': True}
2024-03-27 10:24:06,069 - {control.data:279} - {INFO:MainThread} - device0
{'name': 'Json', 'type': 'json', 'id': 0, 'configuration': {'url': 'http://RaspiHomeAuto.fritz.box:40050/api/steps/senec:getStats'}}
2024-03-27 10:24:06,070 - {control.data:281} - {INFO:MainThread} - component0
{'name': 'Zähler', 'type': 'counter', 'id': 0, 'configuration': {'jq_power': '.energy.current.gridPower', 'jq_exported': None, 'jq_imported': '.energy.today.gridImport', 'jq_powers': [None, None, None], 'jq_currents': [None, None, None]}}
2024-03-27 10:24:06,071 - {control.data:281} - {INFO:MainThread} - component1
{'name': 'Wechselrichter', 'type': 'inverter', 'id': 1, 'configuration': {'jq_power': '.energy.current.inverterPower', 'jq_exported': None}}
2024-03-27 10:24:06,074 - {control.data:281} - {INFO:MainThread} - component2
{'name': 'Speicher', 'type': 'bat', 'id': 2, 'configuration': {'jq_imported': None, 'jq_exported': None, 'jq_soc': '.energy.current.batteryStateOfCharge', 'jq_power': '.energy.current.batteryPower'}}
2024-03-27 10:24:06,075 - {control.data:253} - {INFO:MainThread} - 

2024-03-27 10:24:06,076 - {control.algorithm.algorithm:25} - {INFO:MainThread} - # Algorithmus
2024-03-27 10:24:06,077 - {control.counter:204} - {INFO:MainThread} - Überschuss zur PV-geführten Ladung: -19.22W
2024-03-27 10:24:06,078 - {control.counter:379} - {DEBUG:MainThread} - LP4 Switch-Off-Threshold prüfen: -19.22W, Schwelle: 600W, freigegebener Überschuss 0W, Einspeisegrenze 0W
2024-03-27 10:24:06,079 - {control.algorithm.algorithm:30} - {INFO:MainThread} - **Mindestrom setzen**
2024-03-27 10:24:06,083 - {control.algorithm.min_current:18} - {INFO:MainThread} - Mode-Tuple Chargemode.PV_CHARGING - Chargemode.PV_CHARGING - False, Zähler 0
2024-03-27 10:24:06,085 - {control.counter:176} - {DEBUG:MainThread} - Zähler 0: [15.420000000000002, 16.0, 16.0]A verbleibende Ströme, 10868.4W verbleibende Leistung
2024-03-27 10:24:06,087 - {control.algorithm.common:95} - {INFO:MainThread} - LP4: Stromstärke 6A
2024-03-27 10:24:06,089 - {control.algorithm.algorithm:32} - {INFO:MainThread} - **Sollstrom setzen**
2024-03-27 10:24:06,091 - {control.counter:236} - {DEBUG:MainThread} - Damit der Speicher hochregeln kann, muss unabhängig vom eingestellten Regelmodus Bezug erzeugt werden.
2024-03-27 10:24:06,092 - {control.counter:217} - {INFO:MainThread} - Überschuss zur PV-geführten Ladung: -231.60000000000036W
2024-03-27 10:24:06,093 - {control.counter:484} - {DEBUG:MainThread} - Zähler 0: Begrenzung der verbleibenden Leistung auf -231.60000000000036W
2024-03-27 10:24:06,095 - {control.algorithm.algorithm:43} - {INFO:MainThread} - **Keine Leistung für PV-geführtes Laden übrig.**
2024-03-27 10:24:06,099 - {control.process:23} - {INFO:MainThread} - # Ladung starten.
2024-03-27 10:24:06,104 - {control.process:111} - {INFO:MainThread} - LP4: set current 6 A, state CHARGING_ALLOWED
2024-03-27 10:24:06,109 - {modules.common.component_context:25} - {DEBUG:set current cp4} - Update Komponente ['Ladepunkt']
2024-03-27 10:24:06,139 - {control.counter:193} - {INFO:MainThread} - 0W reservierte EVU-Leistung, 0W freigegebene EVU-Leistung
2024-03-27 10:24:07,397 - {schedule:660} - {DEBUG:MainThread} - Running job Job(interval=1, unit=minutes, do=smarthome_handler, args=(), kwargs={})