vindaalex / multizone-thermostat

This is a home assistant custom component. It is a thermostat including various control options, such as: on-off, PID, weather controlled. The thermostat can be used in stand-alone mode or as zoned heating (master- satellites).
35 stars 6 forks source link

Error when turning off "on_off" heaters #17

Closed the-programmer closed 1 year ago

the-programmer commented 1 year ago

Hi,

I would like to let you know that I got the following error when trying to turn off a "on_off" heater. "argument of type 'nonetype' is not iterable"

This is on the following line: https://github.com/vindaalex/multizone-thermostat/blob/master/custom_components/multizone_thermostat/hvac_setting.py#L622

I fixed this for now by having check_window_open return false.

vindaalex commented 1 year ago

Thank you for the bug report. I have not been able to reproduce the error with my current configs. Could you provide me your thermostat config as well and/or error you receive?

the-programmer commented 1 year ago

My config is as follows: configuration.yaml

[...]
climate: !include yaml_configs/climate.yaml
[...]

yaml_configs/climate.yaml

[...]
- platform: multizone_thermostat
  name: Slaapkamer 1
  unique_id: thermostat_bedroom_1
  sensor: sensor.mod_ai_temp_bedroom1
  filter_mode: 2
  initial_hvac_mode: "heat"
  initial_preset_mode: "none"
  precision: 0.1
  heat:
    entity_id: input_boolean.mod_o_heating_bedroom1_wanted
    min_target_temp: 15
    max_target_temp: 24
    initial_target_temp: 20
    away_temp: 16
    #proportional_mode:
    #  control_interval:
    #    seconds: 30
    #  pwm:
    #    seconds: 3600
    #  PID_mode:
    #    kp: 20
    #    ki: 0.005
    #    kd: -25000
    on_off_mode:
      hysteresis_on: 0.2
      hysteresis_off: 0.2
      min_cycle_duration:
        minutes: 5
      control_interval:
        minutes: 1
[...]

Note: I was switching away from proportional_mode as a trial.

vindaalex commented 1 year ago

I was able to reproduce it and found the issue. A new version is uploaded. Thank you.

Also your example has an error (maybe copied from a not correct provided example byme and therefore I've updated the examples). In your code change pwm: to pwm_duration: but better to look in the examples for more extensive examples. For instance the multizone example I currently use for my house.

the-programmer commented 1 year ago

Thanks for the update.

I'll have to try this later. Since it is a live system (and not my own) I don't like too much changes at the moment (also I am quite busy).

About the pwm: part. I did notice that you changed quite a lot of names around. This configuration started at 0.41 (if I have this correct) so that is why it still uses the old format. What would be useful, the next time you decide the parameter names are not quite what they should be, is that you add a list with the old parameter name and the new ones. (Would have saved me a couple of hours 😉).