Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TypeError: must be real number, not NoneType #14

Open
ov1d1u opened this issue Feb 28, 2023 · 1 comment · May be fixed by #15
Open

TypeError: must be real number, not NoneType #14

ov1d1u opened this issue Feb 28, 2023 · 1 comment · May be fixed by #15

Comments

@ov1d1u
Copy link

ov1d1u commented Feb 28, 2023

Not sure if it's an ESPHome bug, but I get this only with esphome-opentherm. After I restart Home Assistant, the integration fails with this error:

Error setting up entry opentherm for esphome

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 382, in async_setup
    result = await component.async_setup_entry(hass, self)
  File "/usr/src/homeassistant/homeassistant/components/esphome/__init__.py", line 370, in async_setup_entry
    infos, services = await entry_data.async_load_from_store()
  File "/usr/src/homeassistant/homeassistant/components/esphome/entry_data.py", line 228, in async_load_from_store
    infos.append(cls.from_dict(info))
  File "/usr/local/lib/python3.10/site-packages/aioesphomeapi/model.py", line 87, in from_dict
    return cls(**init_args)
  File "<string>", line 16, in __init__
  File "/usr/local/lib/python3.10/site-packages/aioesphomeapi/model.py", line 73, in __post_init__
    super().__setattr__(field_.name, convert(val))
  File "/usr/local/lib/python3.10/site-packages/aioesphomeapi/util.py", line 49, in fix_float_single_double_conversion
    if value == 0 or not math.isfinite(value):
TypeError: must be real number, not NoneType

This is the yaml configuration:

substitutions:
  devicename: opentherm
  upper_devicename: Opentherm

esphome:
  name: $devicename
  platform: ESP8266
  board: d1_mini
  esp8266_restore_from_flash: true

external_components:
  source: github://arthurrump/esphome-opentherm@main

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap:
    ssid: "${devicename} Fallback"
    password: !secret wifi_password

web_server:
  port: 80

captive_portal:
logger:
api:
  encryption:
    key: <redacted>
ota:
  password: <redacted>

opentherm:
  in_pin: 12
  out_pin: 14
  ch_enable: true
  dhw_enable: true

output:
  - platform: opentherm
    t_set:
      id: t_set
      min_value: 15
      auto_max_value: true
      zero_means_zero: true

number:
  - platform: opentherm
    t_dhw_set:
      name: "Boiler DHW Setpoint"
      auto_min_value: true
      auto_max_value: true
    max_t_set:
      name: "Maximum allowable CH water setpoint"

sensor:
  - platform: opentherm
    rel_mod_level:
      name: "Boiler Relative modulation level"
    t_boiler:
      name: "Boiler water temperature"
    ch_pressure:
      name: "Boiler Water pressure in CH circuit"
    t_dhw:
      name: "DHW temperature"
    t_dhw_set:
      name: "Domestic hot water temperature setpoint"
  - platform: homeassistant
    id: ch_room_temperature
    entity_id: sensor.ble_temperature_a4c1384e0601
    filters: 
      # Push room temperature every second to update PID parameters
      - heartbeat: 1s  

binary_sensor:
  - platform: opentherm
    ch_active:
      name: "Boiler Central Heating active"
    dhw_active:
      name: "Boiler Domestic Hot Water active"
    flame_on:
      name: "Boiler Flame on"
    fault_indication:
      name: "Boiler Fault indication"
      entity_category: diagnostic
    diagnostic_indication:
      name: "Boiler Diagnostic event"
      entity_category: diagnostic
    dhw_present:
      name: "Configuration: DHW present"
      entity_category: diagnostic
    ch2_present:
      name: "Configuration: CH2 present"

switch:
  - platform: opentherm
    ch_enable:
      name: "Boiler Central Heating enabled"
      mode: restore_default_on

climate:
  - platform: pid
    name: "Central heating"
    heat_output: t_set
    default_target_temperature: 20
    sensor: ch_room_temperature
    control_parameters: 
      kp: 0.4
      ki: 0.004
    deadband_parameters:
      threshold_high: 0.3°C       # deadband within +/-0.5°C of target_temperature
      threshold_low: -0.3°C
    visual:
      temperature_step: 0.5 °C

This happens with ESPHome 2023.2.4. Any idea what could trigger that error?

@ov1d1u
Copy link
Author

ov1d1u commented Feb 28, 2023

I put some logs and I see that the info dictionary at entry_data.py:228 contains something like:

{'object_id': 'boiler_dhw_setpoint', 'key': 2711302065, 'name': 'Boiler DHW Setpoint', 'unique_id': 'openthermnumberboiler_dhw_setpoint', 'disabled_by_default': False, 'icon': '', 'entity_category': 0, 'min_value': 0.0, 'max_value': 127.0, 'step': None, 'unit_of_measurement': '°C', 'mode': 0, 'device_class': ''}

Maybe it doesn't like that None value for 'step'?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant