Advertisement
ldymek

Kospel MN.3/CMI/C.MG3 simple integration with Home Assistant

Sep 27th, 2022
1,375
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 7.66 KB | Source Code | 0 0
  1. # Kospel CMI/C.MG3/MN.3
  2. sensor:
  3.   - platform: rest
  4.     name: CMI
  5.     resource: http://XXX.XXX.XXX.XXX/api/dev/65/0b2f/30
  6.     json_attributes:
  7.      - regs
  8.     value_template: "OK"
  9.   - platform: rest
  10.     name: CMG3
  11.     resource: http://XXX.XXX.XXX.XXX/api/dev/69/0b2f/30
  12.     json_attributes:
  13.      - regs
  14.     value_template: "OK"
  15.   - platform: template
  16.     sensors:
  17.      # MN.3
  18.       inlet_temperature:
  19.         friendly_name: "Temperatura wlotowa"
  20.         value_template: "{% set value = state_attr('sensor.cmi', 'regs')['0b48'] %}{% set str= value[2:4] + value[0:2] %}{% set resultInt = str | int(base=16) %}{% if resultInt | bitwise_and(0x8000) > 0 %}{% set resultInt = resultInt - 0x10000 %}{% endif %}{{resultInt | float / 10}}"
  21.         device_class: temperature
  22.         unit_of_measurement: "°C"
  23.       outlet_temperature:
  24.         friendly_name: "Temperatura wylotowa"
  25.         value_template: "{% set value = state_attr('sensor.cmi', 'regs')['0b49'] %}{% set str= value[2:4] + value[0:2] %}{% set resultInt = str | int(base=16) %}{% if resultInt | bitwise_and(0x8000) > 0 %}{% set resultInt = resultInt - 0x10000 %}{% endif %}{{resultInt | float / 10}}"
  26.         device_class: temperature
  27.         unit_of_measurement: "°C"
  28.       factor_temperature:
  29.         friendly_name: "Temperatura czynnika"
  30.         value_template: "{% set value = state_attr('sensor.cmi', 'regs')['0b44'] %}{% set str= value[2:4] + value[0:2] %}{% set resultInt = str | int(base=16) %}{% if resultInt | bitwise_and(0x8000) > 0 %}{% set resultInt = resultInt - 0x10000 %}{% endif %}{{resultInt | float / 10}}"
  31.         device_class: temperature
  32.         unit_of_measurement: "°C"
  33.       room_temperature:
  34.         friendly_name: "Temperatura w pokoju"
  35.         value_template: "{% set value = state_attr('sensor.cmi', 'regs')['0b4b'] %}{% set str= value[2:4] + value[0:2] %}{% set resultInt = str | int(base=16) %}{% if resultInt | bitwise_and(0x8000) > 0 %}{% set resultInt = resultInt - 0x10000 %}{% endif %}{{resultInt | float / 10}}"
  36.         device_class: temperature
  37.         unit_of_measurement: "°C"
  38.       outside_temperature:
  39.         friendly_name: "Temperatura zewnętrzna"
  40.         value_template: "{% set value = state_attr('sensor.cmi', 'regs')['0b4c'] %}{% set str= value[2:4] + value[0:2] %}{% set resultInt = str | int(base=16) %}{% if resultInt | bitwise_and(0x8000) > 0 %}{% set resultInt = resultInt - 0x10000 %}{% endif %}{{resultInt | float / 10}}"
  41.         device_class: temperature
  42.         unit_of_measurement: "°C"
  43.       boiler_temperature:
  44.         friendly_name: "Temperatura zasobnika"
  45.         value_template: "{% set value = state_attr('sensor.cmi', 'regs')['0b4a'] %}{% set str= value[2:4] + value[0:2] %}{% set resultInt = str | int(base=16) %}{% if resultInt | bitwise_and(0x8000) > 0 %}{% set resultInt = resultInt - 0x10000 %}{% endif %}{{resultInt | float / 10}}"
  46.         device_class: temperature
  47.         unit_of_measurement: "°C"
  48.       heater_power:
  49.         friendly_name: "Moc"
  50.         value_template: "{% set value = state_attr('sensor.cmi', 'regs')['0b46'] %}{% set str= value[2:4] + value[0:2] %}{% set resultInt = str | int(base=16) %}{% if resultInt | bitwise_and(0x8000) > 0 %}{% set resultInt = resultInt - 0x10000 %}{% endif %}{{resultInt | float / 10}}"
  51.         device_class: power
  52.         unit_of_measurement: "kW"
  53.       water_pressure:
  54.         friendly_name: "Ciśnienie"
  55.         value_template: "{% set value = state_attr('sensor.cmi', 'regs')['0b4e'] %}{% set str= value[2:4] + value[0:2] %}{% set resultInt = str | int(base=16) %}{% if resultInt | bitwise_and(0x8000) > 0 %}{% set resultInt = resultInt - 0x10000 %}{% endif %}{{resultInt | float / 100}}"
  56.         device_class: pressure
  57.         unit_of_measurement: "bar"
  58.       water_flow:
  59.         friendly_name: "Przepływ wody"
  60.         value_template: "{% set value = state_attr('sensor.cmi', 'regs')['0b4f'] %}{% set str= value[2:4] + value[0:2] %}{% set resultInt = str | int(base=16) %}{% if resultInt | bitwise_and(0x8000) > 0 %}{% set resultInt = resultInt - 0x10000 %}{% endif %}{{resultInt | float / 10}}"
  61.         device_class: gas
  62.         unit_of_measurement: "L"
  63.       # C.MG3
  64.       circular_temperature:
  65.         friendly_name: "Temperatura obiegu"
  66.         value_template: "{% set value = state_attr('sensor.cmg3', 'regs')['0b46'] %}{% set str= value[2:4] + value[0:2] %}{% set resultInt = str | int(base=16) %}{% if resultInt | bitwise_and(0x8000) > 0 %}{% set resultInt = resultInt - 0x10000 %}{% endif %}{{resultInt | float / 10}}"
  67.         device_class: temperature
  68.         unit_of_measurement: "°C"
  69.  
  70. binary_sensor:
  71.  # Sensory Kospel
  72.   - platform: template
  73.     sensors:
  74.      # MN.3
  75.       internal_pump:
  76.         friendly_name: "Pompa wewnętrzna"
  77.         value_template: "{% set value = state_attr('sensor.cmi', 'regs')['0b51'] %}{% set str= value[2:4] + value[0:2] %}{% set resultInt = str | int(base=16) %}{% if resultInt | bitwise_and(0x8000) > 0 %}{% set resultInt = resultInt - 0x10000 %}{% endif %}{{resultInt | bitwise_and(1)}}"
  78.         device_class: running
  79.       circ_pump:
  80.         friendly_name: "Pompa cyrkulacyjna"
  81.         value_template: "{% set value = state_attr('sensor.cmi', 'regs')['0b51'] %}{% set str= value[2:4] + value[0:2] %}{% set resultInt = str | int(base=16) %}{% if resultInt | bitwise_and(0x8000) > 0 %}{% set resultInt = resultInt - 0x10000 %}{% endif %}{{resultInt | bitwise_and(2)}}"
  82.         device_class: running
  83.       three_way_valve:
  84.         friendly_name: "Zawór trójdrogowy"
  85.         value_template: "{% set value = state_attr('sensor.cmi', 'regs')['0b51'] %}{% set str= value[2:4] + value[0:2] %}{% set resultInt = str | int(base=16) %}{% if resultInt | bitwise_and(0x8000) > 0 %}{% set resultInt = resultInt - 0x10000 %}{% endif %}{{resultInt | bitwise_and(4)}}"
  86.         device_class: running
  87.       na_input:
  88.         friendly_name: "Wejście NA"
  89.         value_template: "{% set value = state_attr('sensor.cmi', 'regs')['0b51'] %}{% set str= value[2:4] + value[0:2] %}{% set resultInt = str | int(base=16) %}{% if resultInt | bitwise_and(0x8000) > 0 %}{% set resultInt = resultInt - 0x10000 %}{% endif %}{{resultInt | bitwise_and(8)}}"
  90.         device_class: running
  91.       rp_input:
  92.         friendly_name: "Wejście RP"
  93.         value_template: "{% set value = state_attr('sensor.cmi', 'regs')['0b51'] %}{% set str= value[2:4] + value[0:2] %}{% set resultInt = str | int(base=16) %}{% if resultInt | bitwise_and(0x8000) > 0 %}{% set resultInt = resultInt - 0x10000 %}{% endif %}{{resultInt | bitwise_and(16)}}"
  94.         device_class: running
  95.       fun_input:
  96.         friendly_name: "Wejście FUN"
  97.         value_template: "{% set value = state_attr('sensor.cmi', 'regs')['0b51'] %}{% set str= value[2:4] + value[0:2] %}{% set resultInt = str | int(base=16) %}{% if resultInt | bitwise_and(0x8000) > 0 %}{% set resultInt = resultInt - 0x10000 %}{% endif %}{{resultInt | bitwise_and(32)}}"
  98.         device_class: running
  99.       # C.MG3
  100.       radiator_circ_pump:
  101.         friendly_name: "Pompa cyrkulacyjna CO"
  102.         value_template: "{% set value = state_attr('sensor.cmg3', 'regs')['0b4c'] %}{% set str= value[2:4] + value[0:2] %}{% set resultInt = str | int(base=16) %}{% if resultInt | bitwise_and(0x8000) > 0 %}{% set resultInt = resultInt - 0x10000 %}{% endif %}{{resultInt | bitwise_and(1)}}"
  103.         device_class: running
  104.       radiator_heat_state:
  105.         friendly_name: "Centralne Ogrzewanie"
  106.         value_template: "{% set value = state_attr('sensor.cmg3', 'regs')['0b52'] %}{% set str= value[2:4] + value[0:2] %}{% set resultInt = str | int(base=16) %}{% if resultInt | bitwise_and(0x8000) > 0 %}{% set resultInt = resultInt - 0x10000 %}{% endif %}{{resultInt | bitwise_and(4)}}"
  107.         device_class: running
  108.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement