Predheat - not creating entities
Describe the bug I had Predheat setup and running about a month and half ago. However, since the temperatures have dropped and the heat pump has been running full time i went to check back in on my graphs to see how things were looking and was going to add the load forecast entity to my predbat plan. But now i do not have any of the predheat entities and predbat does not seem to be creating them.
Expected behaviour Predheat entities not being generated by Predbat. (No issues with Predbat itself operating the inverter)
Predbat version v8.26.4
Environment details Standalone Predbat Add-on Foxx ESS Inverter & Batteries
Screenshots
predheat:
# Days forward
forecast_days: 2
# 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:
- 7
# Gas or heatpump mode ('gas' or 'pump')
mode: pump
# External temperature sensor
external_temperature: sensor.ext_outdoor_ambient_sensor_r6t_esp
# Internal temperature sensor(s)
internal_temperature:
- sensor.indoor_ambient_temp_r1t_esp
# Weather data
weather: weather.openweathermap
# Sensor with history that monitors the thermostat setting in the house
target_temperature: 22
# Thermostat Hysteresis turn on amount in degrees (default 0.5)
hysteresis: 0
# Thermostat Hysteresis turn off amount in degrees (default 0.1)
hysteresis_off: 0
# When true models a smart thermostat that turns the heating ahead of the target temperature so it reaches it just in time
smart_thermostat: False
# Past energy consumption of heating in KWh, scaled with heating_energy_scaling
heating_energy: sensor.ashp_active_power_kwh
heating_energy_scaling: 0
# Heating is turned on history
heating_active: sensor.ch_on_binary_esp_emoncms
# House heat loss in watts per degrees temp difference
heat_loss_watts: 120
# Static heat sources in the house (e.g. people/equipment)
heat_gain_static: 200
# House heat loss in degrees per hour per degree temp difference
heat_loss_degrees: 2.45
# Heating max output (of the radiators), in Watts at delta 50 (BTU / 3.41)
# https://www.bestheating.com/milano-kent-straight-chrome-heated-towel-rail-various-sizes-91119
# https://www.bestheating.com/milano-compact-type-11-single-panel-radiator-multi-sizes-available-74174
# https://www.bestheating.com/milano-compact-type-22-double-panel-radiator-multi-sizes-available-74176
# https://www.bestheating.com/milano-compact-type-21-double-panel-plus-radiator-multi-sizes-available-74175
heat_output: 14016
# Add up radiator volume + any pipework or expansion vessel
heat_volume: 129
# Heating max power in Watts
heat_max_power: 5520
heat_min_power: 280
# Heating cop is the maximum efficiency and will be scaled down based on temperatures
# put 1.0 for condensing gas boilers, or around 4.0 for heat pumps
heat_cop: 3.5
# Current flow temperature setting
flow_temp: sensor.leaving_water_temp_before_buh_r1t_esp
flow_difference_target: 5
weather_compensation:
-20: 35.0
-2: 35.0
17: 24.0
20: 24.0
Log file
Predbat debug yaml file
Is your predheat section indented inside the pred_bat section?
pred_bat:
module: predbat
...
predheat:
# Days forward
forecast_days: 2
Yes - I have just double checked my Yaml. the predheat section is indented with spaces and matches pred_bat - However, i have just noticed that my logger exclusion filter that sits above predheat was not indented correctly. Having tweaked this, Predheat sprung into life and entities have now shown up :-)
Although this reminds me to call out an error with using numbers for the target_temperature entity in Predheat. As i run full weather compensation with no room influence, i do not have a target temperature entity to include. As per instructions, it should allow you to manually enter the temperature, but if you use a numerical input it throws an error and shows in the predbat dashboard:
ERROR: Exception raised object of type 'int' has no len() Error: object of type 'int' has no len()
It can be worked around with creating an input_number helper which i store the number in instead. Thanks