stove.yaml 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. mqtt:
  2. sensor:
  3. # --- Mode (mapped int -> string) ---
  4. - name: "Pellet Stove Mode"
  5. state_topic: "pelletstove/state"
  6. value_template: >
  7. {% set m = value_json.mode | int %}
  8. {% set modes = {
  9. 0: 'OFF',
  10. 2: 'STANDBY',
  11. 4: 'PRIME',
  12. 5: 'PRIMING',
  13. 6: 'IGNITION',
  14. 8: 'WARMUP',
  15. 10: 'HIGH HEAT',
  16. 12: 'LOW HEAT',
  17. 14: 'COOLING',
  18. 20: 'ON',
  19. 21: 'ALARM',
  20. 22: 'ALARM COOLDOWN',
  21. 23: 'OFF COOLDOWN',
  22. 24: 'STANDBY COOLDOWN',
  23. 25: 'STBY COOLDOWN',
  24. 40: 'TEST'
  25. } %}
  26. {{ modes.get(m, 'UNKNOWN') }}
  27. # --- Temperatures ---
  28. - name: "Pellet Stove Flame Temp"
  29. state_topic: "pelletstove/state"
  30. value_template: "{{ value_json.tFlame }}"
  31. unit_of_measurement: "°C"
  32. - name: "Pellet Stove Flue Temp"
  33. state_topic: "pelletstove/state"
  34. value_template: "{{ value_json.tFlue }}"
  35. unit_of_measurement: "°C"
  36. - name: "Pellet Stove Feed Rate"
  37. state_topic: "pelletstove/state"
  38. value_template: "{{ value_json.feed }}"
  39. unit_of_measurement: "%"
  40. state_class: measurement
  41. template:
  42. - binary_sensor:
  43. - name: "Pellet Stove Steady-State Supervision Fault"
  44. unique_id: pellet_stove_steady_state_fault
  45. state: >
  46. {% set mode = states('sensor.pellet_stove_mode') %}
  47. {% set feed = states('sensor.pellet_stove_feed_rate') | float(0) %}
  48. {% set flame = states('sensor.pellet_stove_flame_temp') | float(0) %}
  49. {% set flue = states('sensor.pellet_stove_flue_temp') | float(0) %}
  50. {% set steady_modes = ['HIGH HEAT', 'LOW HEAT', 'ON'] %}
  51. {{
  52. mode in steady_modes and (
  53. (feed > 35 and flame < 200) or
  54. (flame < 200 and flue > 120)
  55. )
  56. }}
  57. delay_on: "00:01:30"
  58. device_class: problem