Jeg har gjennom masse knoting fått opp en slags integrasjon av Heatit Z-TRM3 z-wave termostater til home assistant via fimp-mqtt koblet opp mot HA sin mosquitto. Om noen er interessert, og ikke vil finne opp hjulet igjen, kan jeg investere tiden i å skrive det ned
Har begynt å eksperimentere med dette nå, og ser at det blir litt knoting, ja. Alt du evt. har anledning til å dele av informasjon her ville blitt høyt verdsatt
Sorry for veeldig sent svar - jeg hadde ikke epostnotification…
Om du har fått enablet futurehome fimp og koblet HA rett på den - eller via morquitto bridge, så er det jeg synes var vanskeligst ha template config…
Her er min HA 2023.2.2 config:
mqtt:
climate:
- name: "Stue" #13 er stue 12 er spisestue
temperature_state_topic: "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:thermostat/ad:13_1"
temperature_state_template: "{{value_json.val['temp']}}"
current_temperature_topic: "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:sensor_temp/ad:13_4"
current_temperature_template: "{{ value_json.val }}"
# Received message on pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:sensor_temp/ad:13_4: b'{"ctime":"2022-01-14T20:00:55+0100","props":{"unit":"C"},"serv":"sensor_temp","tags":[],"type":"evt.sensor.report","val":21.7999992370605,"val_t":"float"}'
mode_state_topic: "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:thermostat/ad:13_1"
mode_state_template: >
{% if value_json is defined and value_json.type == "evt.setpoint.report" %}
{{ value_json.val["type"] }}
{% else %}
"off"
{% endif %}
temperature_command_topic: "pt:j1/mt:cmd/rt:dev/rn:zw/ad:1/sv:thermostat/ad:13_1"
temperature_command_template: >-
{% set json =
{"corid":"",
"ctime":now().strftime("%Y-%m-%dT%H:%M:%S%z"),
"props":{},
"src":"HA",
"serv":"thermostat",
"tags":[],
"type":"cmd.setpoint.set",
"uid":"",
"val":
{"temp":value|string,
"type":"heat",
"unit":"C"},
"val_t":"str_map",
"ver":"1"} %}
{{ json | tojson }}
temperature_unit: "C"
modes: ["heat","off","cool"]
temp_step: 0.5
- name: "Spisestue" #13 er stue 12 er spisestue
temperature_state_topic: "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:thermostat/ad:12_1"
temperature_state_template: "{{value_json.val['temp']}}"
current_temperature_topic: "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:sensor_temp/ad:12_4"
current_temperature_template: "{{ value_json.val }}"
mode_state_topic: "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:thermostat/ad:12_1"
mode_state_template: >
{% if value_json is defined and value_json.type =="evt.setpoint.report" %}
{{ value_json.val["type"] }}
{% else %}
"off"
{% endif %}
temperature_command_topic: "pt:j1/mt:cmd/rt:dev/rn:zw/ad:1/sv:thermostat/ad:12_1"
temperature_command_template: >-
{% set json =
{"corid":"",
"ctime":now().strftime("%Y-%m-%dT%H:%M:%S%z"),
"props":{},
"src":"HA",
"serv":"thermostat",
"tags":[],
"type":"cmd.setpoint.set",
"uid":"",
"val":
{"temp":value|string,
"type":"heat",
"unit":"C"},
"val_t":"str_map",
"ver":"1"} %}
{{ json | tojson }}
temperature_unit: "C"
modes: ["heat","off","cool"]
temp_step: 0.5
sensor:
- name: "Stue gulvvarme W"
state_topic: "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:meter_elec/ad:13_1"
unit_of_measurement: "W"
unique_id: "stue_gulvvarme_w"
device_class: energy
value_template: >
{% if value_json is defined and value_json.props["unit"] =="W" %}
{{ value_json.val | round(4) }}
{% else %}
{{ states('sensor.stue_gulvvarme_w') }}
{% endif %}
- name: "Stue gulvvarme kWh"
state_topic: "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:meter_elec/ad:13_1"
unit_of_measurement: "kWh"
device_class: energy
unique_id: "stue_gulvvarme_kwh"
value_template: >
{% if value_json is defined and value_json.props["unit"] =="kWh" %}
{{ value_json.val | round(4) }}
{% else %}
{{ states('sensor.stue_gulvvarme_kwh') }}
{% endif %}
- name: "Stue temperatur"
unit_of_measurement: "C"
unique_id: "stue_temperatur"
state_topic: "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:sensor_temp/ad:13_2"
value_template: "{{ value_json.val | round(4) }}"
- name: "Spisestue gulvvarme W"
state_topic: "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:meter_elec/ad:12_1"
unit_of_measurement: "W"
device_class: energy
unique_id: "spisestue_gulvvarme_w"
value_template: >
{% if value_json is defined and value_json.props["unit"] =="W" %}
{{ value_json.val | round(4) }}
{% else %}
{{ states('sensor.spisestue_gulvvarme_w') }}
{% endif %}
- name: "Spisestue gulvvarme kWh"
state_topic: "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:meter_elec/ad:12_1"
unit_of_measurement: "kWh"
device_class: energy
unique_id: "spisestue_gulvvarme_kwh"
value_template: >
{% if value_json is defined and value_json.props["unit"] =="kWh" %}
{{ value_json.val | round(4) }}
{% else %}
{{ states('sensor.spisestue_gulvvarme_kwh') }}
{% endif %}
- name: "Spisestue temperatur"
unit_of_measurement: "C"
unique_id: "spisestue_temperatur"
state_topic: "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:sensor_temp/ad:12_2"
value_template: "{{ value_json.val | round(4) }}"
Jeg brukte MQTT explorer og futurehome appen for å finne ut av IDene (at 13 var stue hos meg og 12 var spisestue) da forstår man fort configen over.
MTP mosquitto har jeg både HA og mosquitto i docker (litt info her: Configuring the Mosquitto MQTT Docker container for use with Home Assistant – Home Automation Guy , jeg har samme minus portainer delen) - satt fimp api bruker og passord… så er min mosquitto conf:
persistence true
persistence_location /mosquitto/data/
log_dest stdout
log_dest file /mosquitto/log/mosquitto.log
log_type warning
log_timestamp true
connection_messages true
listener 1883
## Authentication ##
allow_anonymous false
password_file /mosquitto/config/password.txt
connection fimp
address IP_TIL_HUB:1884
remote_username FIMPBRUKER
remote_password FIMPPASSORD
topic # out 0
topic # in 0
try_private false
“topic …” delen er det som kopierer all info fra futurehome hubben til mosquitto - så legger du bare inn MQTT integration i HA (se link over) - og legger en tilpasset (til ditt oppsett) versjon av onfigen i forrige post inn i configuration.yaml til homeassistant - da vil du få noen climate entites.
Her er “my take” på dette.
climate:
- name: "Bad"
temperature_state_topic: "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:thermostat/ad:6_1"
temperature_state_template: >
{% if value_json is defined and value_json.type == "evt.setpoint.report" %}
{{ value_json.val["temp"] }}
{% endif %}
current_temperature_topic: "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:sensor_temp/ad:6_4"
current_temperature_template: "{{ value_json.val }}"
mode_state_topic: "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:thermostat/ad:6_1"
mode_state_template: >
{% if value_json is defined and value_json.type == "evt.mode.report" %}
{{ value_json.val }}
{% endif %}
action_topic: "pt:j1/mt:evt/rt:dev/rn:zw/ad:1/sv:meter_elec/ad:6_1"
action_template: >
{% if value_json is defined and value_json.props["unit"] =="W" and value_json.val >= 10 %}
heating
{% elif value_json is defined and value_json.props["unit"] =="W" and value_json.val < 10 %}
idle
{% endif %}
temperature_command_topic: "pt:j1/mt:cmd/rt:dev/rn:zw/ad:1/sv:thermostat/ad:6_0"
temperature_command_template: >-
{% set json =
{"corid":"",
"props":{},
"src":"HA",
"serv":"thermostat",
"tags":[],
"type":"cmd.setpoint.set",
"uid":"",
"val":
{"temp":value|string,
"type":"heat",
"unit":"C"},
"val_t":"str_map",
"ver":"1"} %}
{{ json | tojson }}
mode_command_topic: "pt:j1/mt:cmd/rt:dev/rn:zw/ad:1/sv:thermostat/ad:6_0"
mode_command_template: >-
{% set json =
{"corid":"",
"ctime":now().strftime("%Y-%m-%dT%H:%M:%S%z"),
"props":{},
"src":"HA",
"serv":"thermostat",
"tags":[],
"type":"cmd.mode.set",
"uid":"",
"val": value|string,
"val_t":"string"
} %}
{{ json | tojson }}
temperature_unit: "C"
modes: ["heat","off"]
temp_step: 0.5
max_temp: 30
min_temp: 15
Kan sikkert finpusses litt mer, men nå funker’n i alle fall.