Open jrwm47 opened 4 months ago
The message 'appdaemon time' is misleading, it actually refers to the time of the computer that Predbat is running on. I have fixed this in the next PR I will push through.
So what Predbat is reporting is that there is a mismatch between the clock on your Pi running Predbat and the time it is getting back from GivTCP.
So check firstly the clock on the Pi, if this is correct then it points to one of two issues:
Thanks for your comments and advice.
1.1 I tried resetting it through the GE portal (Time & Date - SEND) but it didn't appear to do anything.
1.2 So next I did a soft reset of the inverter (Restart - SEND) and then restarted GivTCP_Beta and predbat in Monitor mode. Initially everything seemed to be ok but the inverter clock time now appears to be completely stuck and predbat soon stopped updating the plan (SOC% hasn't changed since the restart).
It seems I either have a dead RTC in the inverter or something very screwy with its datetime registers. I don't look forward to persuading GE Support of the problem. I realise this isn't predbat issue but do you know the simplest way to get internal clock readings out of my GE AIO?
Cheers
I'd first of all look at the inverter clock, check that is working properly. If you install the BBC app (search for givenergy on the app store) you can see the raw inverter time and what the inverter is doing:
Have a look at what is in the GivTCP add-on log. if its failing to communicate with the inverter you should see that happening
Also, have a look at the logbook in Home Assistant, you should see a steady stream of sensors updating every time givtcp polls the inverter. Just a thought, what did you set the self run timer loop to in the givtcp configuration, this is how often the inverter is polled, values between about 15 and 30 seconds are good. Too quick and it can overload the inverter and it can't send messages to the portal
Predbat planning and control appears to have halted due to a huge and increasing reported discrepancy between inverter and AppDaemon times. Appdaemon time is correct. Inverter time is way out. Do I have a hardware RTC problem?
After several weeks of very careful setting up in Monitor mode, a week ago I finally gave Predbat control of my GE AIO. Initially it appeared to be working extremely well. But today it has started showing an SOC (59%) [see screenshot below] in the plan which is completely different from that reported by GivEnergy and WonderWatt (control switched off), both reporting (95%).
The log file [below] reports a 1563.5 minute inverter/Appdaemon time discrepancy and says:
2024-07-07 16:46:54.345839: Warn: Set inverter 0 mode Eco via REST failed 2024-07-07 16:46:54.389117: Info: record_status Warn: Inverter 0 REST failed to setBatteryMode.
Predbat version 1.1.7. I have deliberately not upgraded to 1.1.8.
Environment details GivEnergy 13.5kWh All-In-One without Gateway; CTs hardwired to inverter by installer HAOS on RasPi 4 on very reliable LAN 3.6kW PV with Solis inverter eddi and harvi Octopus Agile
1) Ever since my AIO was installed, GE platform and app have reported completely crazy Energy numbers - *,000s of kWh per day! Power numbers however look ok. I have reported the problem, with screenshots, numerous times to GE support but they have gone silent on me.
2) I struggled for days to get the GivTCP/Predbat pipeline to work. Only when I switched to the GivTCP_Beta Add-on did GivTCP/predbat start reading the inverter serial number and predbat planning started.
3) I used your most recent integrated Add-on installation sequence, without an explicit Appdaemon installation. But Appdaemon clock appears to be running and checked by predbat.
4) I only enabled iBoost for our eddi yesterday and I suspect that was when the predbat planning problem started. Could this be relevant?
YAML
------------------------------------------------------------------
JM v1.0 1/7/24
------------------------------------------------------------------
pred_bat: module: predbat class: PredBat
Sets the prefix for all created entities in HA - only change if you want to run more than once instance
prefix: predbat
Timezone to work in
timezone: Europe/London
Currency, symbol for main currency second symbol for 1/100s e.g. $ c or £ p or e c
currency_symbols:
'p'
Number of threads to use in plan calculation
Can be auto for automatic, 0 for off or values 1-N for a fixed number
threads: auto
If you are using Predbat outside of HA then set the HA URL and Key (long lived access token here)
ha_url: 'http://homeassistant.local:8123'
ha_key: 'xxx'
Set to auto-match with a GivEnergy serial number, but you can override the serial or the sensor names
if it doesn't work or if you have more than one inverter you will need to list both
geserial: 're:sensor.givtcp_(.+)_soc_kwh'
Sets the maximum period of zero load before the gap is filled, default 30 minutes
To disable set it to 1440
load_filter_threshold: 30
#
Sensors, more than one can be specified and they will be summed up automatically
#
For two inverters the load today would normally be the master load sensor only (to cover the entire house)
If you have three phase and one inverter per phase then you would need three load sensors
#
For pv_today if you have multiple solar inverter inputs then you should include one entry for each inverter
# load_today:
Load forecast can be used to add to the historical load data (heat-pump)
To link to Predheat
Data must be in the format of 'last_updated' timestamp and 'energy' for incrementing kWh
load_forecast:
- predheat.heat_energy$external
#
If you enable ge_cloud_data then the load/import and export data will be fetches from the GE cloud instead of from GivTCP sensors
this is usually less efficient and of course prone to internet downtime, but could be useful if you lost your GivTCP data
Set the serial to the inverter serial to pull the data from and the key to your API key
When this is set load_today, import_today and export_today are not used
# ge_cloud_data: False ge_cloud_serial: '{geserial}' ge_cloud_key: 'xxxx' #
Controls/status - must by 1 per inverter
# num_inverters: 1 #
Run balance inverters every N seconds (0=disabled) - only for multi-inverter
balance_inverters_seconds: 60 #
When set use the REST API rather than HA entity for control, should be more reliable/faster to control
Set one per inverter
If using Docker then change homeassistant.local to the Docker IP address
givtcp_rest:
When enabled automatic restart will restart the add-on if communication fails
Example below is auto-restart for GivTCP add-on itself
auto_restart:
- shell: 'rm -rf /homeassistant/GivTCP/*.pkl'
- service: hassio/addon_restart
addon: a6a2857d_givtcp
Example on how to restart the inverter via GivTCP
- service: switch.turn_on
entityid: switch.givtcp{geserial}_reboot_invertor
If not using REST then instead set the Control here (one for each inverter)
You should keep this section even when using REST as a fallback if it fails and for charge curve calculations
charge_rate:
Pause mode is not supported by all firmware's and will be ignored if not present
pause_mode:
select.givtcp_{geserial}_battery_pause_mode
Not all firmwares support pause start/end time, delete these if not supported
to avoid spurious writes/warnings
pause_start_time:
select.givtcp_{geserial}_battery_pause_end_time_slot
Inverter max AC limit (one per inverter). E.g for a 3.6kw inverter set to 3600
If you have a second inverter for PV only please add the two values together
inverter_limit:
Export limit is a software limit set on your inverter that prevents exporting above a given level
When enabled Predbat will model this limit
export_limit:
- 3600
Some inverters don't turn off when the rate is set to 0, still charge or discharge at around 200w
The value can be set here in watts to model this (doesn't change operation)
inverter_battery_rate_min:
- 200
Workaround to limit the maximum reserve setting, some inverters won't allow 100% to be set
Comment out if your inverter allows 100%
inverter_reserve_max : 98
Some batteries tail off their charge rate at high soc%
enter the charging curve here as a % of the max charge rate for each soc percentage.
the default is 1.0 (full power)
The example below is from GE 9.5kwh battery with latest firmware and gen1 inverter
#
Predbat can compute this curve automatically if you have enough data, restart the add-on and look in the logfile for the data
once set here Predbat will no longer re-compute the curve.
Can also be set to 'auto' to just use the calculation curve, not recommended if you are using low power charging mode.
battery_charge_power_curve:
91 : 0.91
92 : 0.81
93 : 0.71
94 : 0.62
95 : 0.52
96 : 0.43
97 : 0.33
98 : 0.24
99 : 0.24
100 : 0.24
battery_discharge_power_curve:
4 : 1.0
Inverter clock skew in minutes, e.g. 1 means it's 1 minute fast and -1 is 1 minute slow
Separate start and end options are applied to the start and end time windows, mostly as you want to start late (not early) and finish early (not late)
Separate discharge skew for discharge windows only
inverter_clock_skew_start: 0 inverter_clock_skew_end: 0 inverter_clock_skew_discharge_start: 0 inverter_clock_skew_discharge_end: 0
Clock skew adjusts the Appdaemon time
This is the time that Predbat takes actions like starting discharge/charging
Only use this for workarounds if your inverter time is correct but Predbat is somehow wrong (AppDaemon issue)
1 means add 1 minute to AppDaemon time, -1 takes it away
clock_skew: 0
Solcast cloud interface, set this or the local interface below
solcast_host: 'https://api.solcast.com.au/' solcast_api_key: '-L_K13sedJ4IKvUk9lM6Zqt7Wp34pE51' solcast_poll_hours: 8
Set these to match solcast sensor names if not using the cloud interface
The regular expression (re:) makes the solcast bit optional
If these don't match find your own names in Home Assistant
pv_forecasttoday: re:(sensor.(solcast|)(pvforecast|)forecast_today)
pv_forecasttomorrow: re:(sensor.(solcast|)(pvforecast|)forecast_tomorrow)
pv_forecastd3: re:(sensor.(solcast|)(pvforecast|)forecast_(day_3|d3))
pv_forecastd4: re:(sensor.(solcast|)(pvforecast|)forecast_(day_4|d4))
car_charging_energy defines an incrementing sensor which measures the charge added to your car
is used for car_charging_hold feature to filter out car charging from the previous load data
Automatically set to detect Wallbox and Zappi, if it doesn't match manually enter your sensor name
Also adjust car_charging_energy_scale if it's not in kwH to fix the units
car_charging_energy: 're:(sensor.myenergizappi[0-9a-z]+_charge_added_session|sensor.wallbox_portal_added_energy)'
Defines the number of cars modelled by the system, set to 0 for no car
num_cars: 0
car_charging_planned is set to a sensor which when positive indicates the car will charged in the upcoming low rate slots
This should not be needed if you use Intelligent Octopus slots which will take priority if enabled
The list of possible values is in car_charging_planned_response
Auto matches Zappi and Wallbox, or change it for your own
One entry per car
car_charging_planned:
- 're:(sensor.wallbox_portal_status_description|sensor.myenergizappi[0-9a-z]+_plug_status)'
car_charging_planned_response:
- 'yes'
- 'on'
- 'true'
- 'connected'
- 'ev connected'
- 'charging'
- 'paused'
- 'waiting for car demand'
- 'waiting for ev'
- 'scheduled'
- 'enabled'
- 'latched'
- 'locked'
- 'plugged in'
In some cases car planning is difficult (e.g. Ohme with Intelligent doesn't report slots)
The car charging now can be set to a sensor to indicate the car is charging and to plan
for it to charge during this 30 minute slot
car_charging_now:
- off
Positive responses for car_charging_now
car_charging_now_response:
- 'yes'
- 'on'
- 'true'
To make planned car charging more accurate, either using car_charging_planned or the Octopus Energy plugin,
specify your battery size in kwh, charge limit % and current car battery soc % sensors/values.
If you have Intelligent Octopus the battery size and limit will be extracted from the Octopus Energy plugin directly.
Set the car SOC% if you have it to give an accurate forecast of the cars battery levels.
One entry per car if you have multiple cars.
car_charging_battery_size:
- 75
car_charging_limit:
- 're:number.tsunami_charge_limit'
car_charging_soc:
- 're:sensor.tsunami_battery'
One per car, when true only one car can charge at once, when False multiple cars can charge at once
car_charging_exclusive:
- True
If you have Octopus intelligent, enable the intelligent slot information to add to pricing
Will automatically disable if not found, or comment out to disable fully
When enabled it overrides the 'car_charging_planned' feature and predict the car charging based on the intelligent plan (unless octopus intelligent charging is False)
This matches either the intelligent slot from the Octopus Plugin or from the Intelligent plugin
octopus_intelligent_slot: 're:(binary_sensor.octopusenergy([0-9a-z]+|)_intelligent_dispatching)'
octopus_ready_time: 're:(time.octopusenergy([0-9a-z]+|)_intelligent_ready_time)'
octopus_charge_limit: 're:(number.octopusenergy([0-9a-z]+|)_intelligent_charge_limit)'
Example alternative configuration for Ohme integration release >=v0.6.1
octopus_intelligent_slot: 'binary_sensor.ohme_slot_active'
octopus_ready_time: 'time.ohme_target_time'
octopus_charge_limit: 'number.ohme_target_percent'
Carbon Intensity data from National grid
carbon_intensity: 're:(sensor.carbon_intensity_uk)'
Octopus saving session points to the saving session Sensor in the Octopus plugin, when enabled saving sessions will be at the assumed
Rate is read automatically from the add-in and converted to pence using the conversion rate below (default is 8)
octopus_saving_session: 're:(binary_sensor.octopusenergy([0-9a-z]+|)_saving_session(s|))' octopus_saving_session_octopoints_per_penny: 8
Energy rates
Please set one of these three, if multiple are set then Octopus is used first, second rates_import/rates_export and latest basic metric
Set import and export entity to point to the Octopus Energy plugin import and export sensors
automatically matches your meter number assuming you have only one (no need to edit the below)
Will be ignored if you don't have the sensor but will error if you do have one and it's incorrect
NOTE: To get detailed energy rates you need to go in and manually enable the following events in HA
event.octopus_energy_electricity_xxxxxxxx_previous_day_rates
event.octopus_energy_electricity_xxxxxxxx_current_day_rates
event.octopus_energy_electricity_xxxxxxxx_next_day_rates
and if you have export enable:
event.octopus_energy_electricity_xxxxxxxx_export_previous_day_rates
event.octopus_energy_electricity_xxxxxxxx_export_current_day_rates
event.octopus_energy_electricity_xxxxxxxx_export_next_day_rates
Predbat will automatically find the event. entities from the link below to the sensors
metric_octopus_import: 're:(sensor.(octopusenergy|)electricity[0-9a-z]+[0-9a-z]+_current_rate)' metric_octopus_export: 're:(sensor.(octopusenergy|)electricity[0-9a-z]+[0-9a-z]+_export_current_rate)'
Standing charge in pounds, can be set to a sensor or manually entered (e.g. 0.50 is 50p)
The default below will pick up the standing charge from the Octopus Plugin
The standing charge only impacts the cost graphs and doesn't change the way Predbat plans
If you don't want to show the standing charge then just delete this line or set to zero
metric_standing_charge: 're:(sensor.(octopusenergy|)electricity[0-9a-z]+[0-9a-z]+_current_standing_charge)'
Or set your actual rates across time for import and export
If start/end is missing it's assumed to be a fixed rate
Gaps are filled with zero rate
rates_import:
- start: "00:30:00"
end: "04:30:00"
rate: 7.5
- start: "04:30:00"
end: "00:30:00"
rate: 40.0
#
rates_export:
- rate: 4.2
Can be used instead of the plugin to get import rates directly online
Overrides metric_octopus_import and rates_import
rates_import_octopus_url : "https://api.octopus.energy/v1/products/FLUX-IMPORT-23-02-14/electricity-tariffs/E-1R-FLUX-IMPORT-23-02-14-A/standard-unit-rates"
rates_import_octopus_url : "https://api.octopus.energy/v1/products/AGILE-FLEX-BB-23-02-08/electricity-tariffs/E-1R-AGILE-FLEX-BB-23-02-08-A/standard-unit-rates"
Overrides metric_octopus_export and rates_export
rates_export_octopus_url: "https://api.octopus.energy/v1/products/FLUX-EXPORT-BB-23-02-14/electricity-tariffs/E-1R-FLUX-EXPORT-BB-23-02-14-A/standard-unit-rates"
rates_export_octopus_url: "https://api.octopus.energy/v1/products/AGILE-OUTGOING-BB-23-02-28/electricity-tariffs/E-1R-AGILE-OUTGOING-BB-23-02-28-A/standard-unit-rates/"
rates_export_octopus_url: "https://api.octopus.energy/v1/products/OUTGOING-FIX-12M-BB-23-02-09/electricity-tariffs/E-1R-OUTGOING-FIX-12M-BB-23-02-09-A/standard-unit-rates/"
Import rates can be overridden with rate_import_override
Export rates can be overridden with rate_export_override
Use the same format as above, but a date can be included if it just applies for a set day (e.g. Octopus power ups)
This will override even the Octopus plugin rates if enabled
#
rates_import_override:
- date: '2023-09-10'
start: '14:00:00'
end: '14:30:00'
rate: 112
load_scaling: 0.8
For pv estimate, leave blank for central estimate, or add 10 for 10% curve (worst case) or 90 or 90% curve (best case)
If you use 10 then disable pv_metric10_weight below
pv_estimate: 10
Days previous is the number of days back to find historical load data
Recommended is 7 to capture day of the week but 1 can also be used
if you have more history you could use 7 and 14 (in a list) but the standard data in HA only lasts 10 days
days_previous:
Days previous weight can be used to control the weighting of the previous load points, the values are multiplied by their
weights and then divided through by the total weight. E.g. if you used 1 and 0.5 then the first value would have 2/3rd of the weight and the second 1/3rd
Include one value for each days_previous value, each weighting on a separate line.
If any days_previous's that are not given a weighting they will assume a default weighting of 1.
days_previous_weight:
Number of hours forward to forecast, best left as-is unless you have specific reason
forecast_hours: 48
Specify the devices that notifies are sent to, the default is 'notify' which goes to all
notify_devices:
- mobile_app_treforsiphone12_2
Battery scaling makes the battery smaller (e.g. 0.9) or bigger than its reported
If you have an 80% DoD battery that falsely reports it's kwh then set it to 0.8 to report the real figures
One per inverter
battery_scaling:
Can be used to scale import and export data, used for workarounds
import_export_scaling: 1.0
Export triggers:
For each trigger give a name, the minutes of export needed and the energy required in that time
Multiple triggers can be set at once so in total you could use too much energy if all run
Creates an entity called 'binary_sensor.predbat_exporttrigger' which will be turned On when the condition is valid
connect this to your automation to start whatever you want to trigger
export_triggers:
If you have a sensor that gives the energy consumed by your solar diverter then add it here
this will make the predictions more accurate. It should be an incrementing sensor, it can reset at midnight or not
It's assumed to be in Kwh but scaling can be applied if need be
iboost_energy_today: 'sensor.xxxxx'
iboost_energy_scaling: 1.0
Gas rates for comparison
metric_octopus_gas: 're:(sensor.(octopusenergy|)gas[0-9a-z]+[0-9a-z]+_current_rate)'
Nordpool market energy rates
futurerate_url: 'https://www.nordpoolgroup.com/api/marketdata/page/325?currency=GBP'
futurerate_adjust_import: True
futurerate_adjust_export: False
futurerate_peak_start: "16:00:00"
futurerate_peak_end: "19:00:00"
futurerate_peak_premium_import: 14
futurerate_peak_premium_export: 6.5
Watch list, a list of sensors to watch for changes and then update the plan if they change
This is useful for things like the Octopus Intelligent Slot sensor so that the plan update as soon as you plugin in
Only uncomment the items you actually have set up above in apps.yaml, of course you can add your own as well
Note those using +[] are lists that are appended to this list, whereas {} items are single items only
watch_list:
- '{octopus_intelligent_slot}'
- '{octopus_ready_time}'
- '{octopus_charge_limit}'
- '{octopus_saving_session}'
- '+[car_charging_planned]'
- '+[car_charging_soc]'
- '{car_charging_now}'
Screenshots
Log file 2024-07-07 16:45:04.730723: Warn: Historical day 3 has 220 minutes of gap in the data, filled from 15.01 kWh to make new average 17.71 kWh (percent 85%) 2024-07-07 16:45:07.135699: Warn: Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 16:45:07.135508+01:00 this is -1563.5 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 16:45:07.195143: Info: record_status Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 16:45:07.135508+01:00 this is -1563.5 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 16:45:07.195936: Warn: Inverter control auto restart trigger: Clock skew >=10 minutes 2024-07-07 16:45:07.196145: Info: auto_restart not defined in apps.yaml, Predbat can't auto-restart inverter control 2024-07-07 16:45:22.262355: Warn: Set inverter 0 mode Eco via REST failed 2024-07-07 16:45:22.304334: Info: record_status Warn: Inverter 0 REST failed to setBatteryMode 2024-07-07 16:46:43.526800: Warn: Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 16:46:43.525904+01:00 this is -1565.1 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 16:46:43.589826: Info: record_status Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 16:46:43.525904+01:00 this is -1565.1 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 16:46:43.590255: Warn: Inverter control auto restart trigger: Clock skew >=10 minutes 2024-07-07 16:46:43.590406: Info: auto_restart not defined in apps.yaml, Predbat can't auto-restart inverter control 2024-07-07 16:46:54.345839: Warn: Set inverter 0 mode Eco via REST failed 2024-07-07 16:46:54.389117: Info: record_status Warn: Inverter 0 REST failed to setBatteryMode 2024-07-07 16:50:04.257538: Warn: Historical day 2 has 300 minutes of gap in the data, filled from 24.45 kWh to make new average 30.89 kWh (percent 79%) 2024-07-07 16:50:04.271476: Warn: Historical day 3 has 220 minutes of gap in the data, filled from 15.03 kWh to make new average 17.74 kWh (percent 85%) 2024-07-07 16:50:06.669983: Warn: Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 16:50:06.669535+01:00 this is -1568.48 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 16:50:06.726236: Info: record_status Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 16:50:06.669535+01:00 this is -1568.48 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 16:50:06.726467: Warn: Inverter control auto restart trigger: Clock skew >=10 minutes 2024-07-07 16:50:06.726815: Info: auto_restart not defined in apps.yaml, Predbat can't auto-restart inverter control 2024-07-07 16:50:21.809157: Warn: Set inverter 0 mode Eco via REST failed 2024-07-07 16:50:21.847880: Info: record_status Warn: Inverter 0 REST failed to setBatteryMode 2024-07-07 16:55:04.809417: Warn: Historical day 2 has 305 minutes of gap in the data, filled from 24.43 kWh to make new average 30.99 kWh (percent 79%) 2024-07-07 16:55:04.823307: Warn: Historical day 3 has 220 minutes of gap in the data, filled from 14.96 kWh to make new average 17.65 kWh (percent 85%) 2024-07-07 16:55:06.405542: Warn: Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 16:55:06.405220+01:00 this is -1573.48 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 16:55:06.461021: Info: record_status Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 16:55:06.405220+01:00 this is -1573.48 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 16:55:06.461284: Warn: Inverter control auto restart trigger: Clock skew >=10 minutes 2024-07-07 16:55:06.461417: Info: auto_restart not defined in apps.yaml, Predbat can't auto-restart inverter control 2024-07-07 16:55:22.604409: Warn: Set inverter 0 mode Eco via REST failed 2024-07-07 16:55:22.644932: Info: record_status Warn: Inverter 0 REST failed to setBatteryMode 2024-07-07 16:56:43.287343: Warn: Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 16:56:43.287052+01:00 this is -1575.1 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 16:56:43.347646: Info: record_status Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 16:56:43.287052+01:00 this is -1575.1 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 16:56:43.348871: Warn: Inverter control auto restart trigger: Clock skew >=10 minutes 2024-07-07 16:56:43.349327: Info: auto_restart not defined in apps.yaml, Predbat can't auto-restart inverter control 2024-07-07 16:56:54.086338: Warn: Set inverter 0 mode Eco via REST failed 2024-07-07 16:56:54.129923: Info: record_status Warn: Inverter 0 REST failed to setBatteryMode 2024-07-07 17:00:05.575202: Warn: Historical day 2 has 310 minutes of gap in the data, filled from 24.42 kWh to make new average 31.12 kWh (percent 78%) 2024-07-07 17:00:05.588706: Warn: Historical day 3 has 220 minutes of gap in the data, filled from 14.87 kWh to make new average 17.55 kWh (percent 85%) 2024-07-07 17:00:07.977930: Warn: Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 17:00:07.977415+01:00 this is -1578.5 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 17:00:08.030736: Info: record_status Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 17:00:07.977415+01:00 this is -1578.5 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 17:00:08.030950: Warn: Inverter control auto restart trigger: Clock skew >=10 minutes 2024-07-07 17:00:08.031044: Info: auto_restart not defined in apps.yaml, Predbat can't auto-restart inverter control 2024-07-07 17:00:35.748934: Warn: Set inverter 0 mode Eco via REST failed 2024-07-07 17:00:35.791028: Info: record_status Warn: Inverter 0 REST failed to setBatteryMode 2024-07-07 17:05:05.013631: Warn: Historical day 2 has 315 minutes of gap in the data, filled from 24.42 kWh to make new average 31.26 kWh (percent 78%) 2024-07-07 17:05:05.027369: Warn: Historical day 3 has 220 minutes of gap in the data, filled from 14.87 kWh to make new average 17.55 kWh (percent 85%) 2024-07-07 17:05:07.424188: Warn: Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 17:05:07.423937+01:00 this is -1583.5 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 17:05:07.479758: Info: record_status Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 17:05:07.423937+01:00 this is -1583.5 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 17:05:07.480008: Warn: Inverter control auto restart trigger: Clock skew >=10 minutes 2024-07-07 17:05:07.480302: Info: auto_restart not defined in apps.yaml, Predbat can't auto-restart inverter control 2024-07-07 17:05:22.759563: Warn: Set inverter 0 mode Eco via REST failed 2024-07-07 17:05:22.802803: Info: record_status Warn: Inverter 0 REST failed to setBatteryMode 2024-07-07 17:06:44.210321: Warn: Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 17:06:44.209840+01:00 this is -1585.12 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 17:06:44.268241: Info: record_status Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 17:06:44.209840+01:00 this is -1585.12 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 17:06:44.268594: Warn: Inverter control auto restart trigger: Clock skew >=10 minutes 2024-07-07 17:06:44.268830: Info: auto_restart not defined in apps.yaml, Predbat can't auto-restart inverter control 2024-07-07 17:06:55.022924: Warn: Set inverter 0 mode Eco via REST failed 2024-07-07 17:06:55.067824: Info: record_status Warn: Inverter 0 REST failed to setBatteryMode 2024-07-07 17:10:05.180930: Warn: Historical day 2 has 320 minutes of gap in the data, filled from 24.39 kWh to make new average 31.36 kWh (percent 78%) 2024-07-07 17:10:05.194397: Warn: Historical day 3 has 220 minutes of gap in the data, filled from 14.89 kWh to make new average 17.58 kWh (percent 85%) 2024-07-07 17:10:06.794276: Warn: Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 17:10:06.793791+01:00 this is -1588.48 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 17:10:06.853688: Info: record_status Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 17:10:06.793791+01:00 this is -1588.48 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 17:10:06.853860: Warn: Inverter control auto restart trigger: Clock skew >=10 minutes 2024-07-07 17:10:06.853932: Info: auto_restart not defined in apps.yaml, Predbat can't auto-restart inverter control 2024-07-07 17:10:21.975541: Warn: Set inverter 0 mode Eco via REST failed 2024-07-07 17:10:22.023041: Info: record_status Warn: Inverter 0 REST failed to setBatteryMode 2024-07-07 17:15:04.262073: Warn: Historical day 2 has 325 minutes of gap in the data, filled from 24.36 kWh to make new average 31.46 kWh (percent 77%) 2024-07-07 17:15:04.275478: Warn: Historical day 3 has 220 minutes of gap in the data, filled from 14.93 kWh to make new average 17.62 kWh (percent 85%) 2024-07-07 17:15:06.668234: Warn: Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 17:15:06.667964+01:00 this is -1593.48 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 17:15:06.723231: Info: record_status Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 17:15:06.667964+01:00 this is -1593.48 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 17:15:06.723437: Warn: Inverter control auto restart trigger: Clock skew >=10 minutes 2024-07-07 17:15:06.723542: Info: auto_restart not defined in apps.yaml, Predbat can't auto-restart inverter control 2024-07-07 17:15:25.335618: Warn: Set inverter 0 mode Eco via REST failed 2024-07-07 17:15:25.381008: Info: record_status Warn: Inverter 0 REST failed to setBatteryMode 2024-07-07 17:16:46.697474: Warn: Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 17:16:46.697172+01:00 this is -1595.15 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 17:16:46.758265: Info: record_status Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 17:16:46.697172+01:00 this is -1595.15 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 17:16:46.758651: Warn: Inverter control auto restart trigger: Clock skew >=10 minutes 2024-07-07 17:16:46.758748: Info: auto_restart not defined in apps.yaml, Predbat can't auto-restart inverter control 2024-07-07 17:16:57.893760: Warn: Set inverter 0 mode Eco via REST failed 2024-07-07 17:16:57.938488: Info: record_status Warn: Inverter 0 REST failed to setBatteryMode 2024-07-07 17:20:05.156174: Warn: Historical day 2 has 330 minutes of gap in the data, filled from 24.33 kWh to make new average 31.56 kWh (percent 77%) 2024-07-07 17:20:05.172692: Warn: Historical day 3 has 220 minutes of gap in the data, filled from 14.86 kWh to make new average 17.54 kWh (percent 85%) 2024-07-07 17:20:06.582473: Warn: Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 17:20:06.582219+01:00 this is -1598.48 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 17:20:06.636865: Info: record_status Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 17:20:06.582219+01:00 this is -1598.48 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 17:20:06.637055: Warn: Inverter control auto restart trigger: Clock skew >=10 minutes 2024-07-07 17:20:06.637142: Info: auto_restart not defined in apps.yaml, Predbat can't auto-restart inverter control 2024-07-07 17:20:23.519813: Warn: Set inverter 0 mode Eco via REST failed 2024-07-07 17:20:23.560145: Info: record_status Warn: Inverter 0 REST failed to setBatteryMode 2024-07-07 17:25:04.750198: Warn: Historical day 2 has 335 minutes of gap in the data, filled from 24.28 kWh to make new average 31.64 kWh (percent 77%) 2024-07-07 17:25:04.764735: Warn: Historical day 3 has 220 minutes of gap in the data, filled from 14.91 kWh to make new average 17.6 kWh (percent 85%) 2024-07-07 17:25:06.413383: Warn: Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 17:25:06.413126+01:00 this is -1603.48 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 17:25:06.467376: Info: record_status Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 17:25:06.413126+01:00 this is -1603.48 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 17:25:06.467606: Warn: Inverter control auto restart trigger: Clock skew >=10 minutes 2024-07-07 17:25:06.467725: Info: auto_restart not defined in apps.yaml, Predbat can't auto-restart inverter control 2024-07-07 17:25:22.745612: Warn: Set inverter 0 mode Eco via REST failed 2024-07-07 17:25:22.791716: Info: record_status Warn: Inverter 0 REST failed to setBatteryMode 2024-07-07 17:26:44.156384: Warn: Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 17:26:44.156082+01:00 this is -1605.12 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 17:26:44.215271: Info: record_status Invertor time is 2024-07-06 13:41:38+00:00 AppDaemon time 2024-07-07 17:26:44.156082+01:00 this is -1605.12 minutes skewed, Predbat may not function correctly, please fix this by updating your inverter or fixing AppDaemon time zone 2024-07-07 17:26:44.216535: Warn: Inverter control auto restart trigger: Clock skew >=10 minutes 2024-07-07 17:26:44.216696: Info: auto_restart not defined in apps.yaml, Predbat can't auto-restart inverter control 2024-07-07 17:26:55.130833: Warn: Set inverter 0 mode Eco via REST failed 2024-07-07 17:26:55.174285: Info: record_status Warn: Inverter 0 REST failed to setBatteryMode