Hi,
I’ve recently via yaml integrated my Save VTR300 using modbus TCP, and hope this will help others as this forum has helped me alot by reading other posts from this forum. Im new to HA so i believe my way of doing this could be improved a lot as im in a steep HA learning phase.
At this point i’m considering trying Node-Red for automations and further integration for the schedule variables when i find time.
VTR300 features for this integration listed below (more or less):
- Control of all modes like:
*Manual Off/Manual Lo/Man Normal/Manual Hi
*Auto Scehdule
*Boost/Party/Fireplace/Vacation (Time setpoint)
*HA ppm regulated mode “PPM Auto” by using Netatmo ppm value in automation + recovery to Auto
if netatmo fails/is offline (a few locally ppm sensors are to be installed later at some time) - Persistent notifications for A, B, C alarms + some more
- Flow chart with relevant sensor and state info.
- Calculated rotating heater recycling rate (0-100%)
- Relevant setpoints and states like:
*Eco mode on/off + setpoint- Kitchen Hood/Low/Norma/Hi/Boost Fireplace Etc.
*Temperature - El.Heater output
*Time setpoint for Party/Boost/Fireplace/Vacation (displayed on mode button) - Change between supply and extract air temp. regulation.
- Energy consumption by using TP link HS110
- Internal clock, nice to know as the time must be correct for Auto mode to operate as given in the
time schedule.
The following is not yet integrated:
- Kitchen Hood/Low/Norma/Hi/Boost Fireplace Etc.
- Detailed schedule integration, will probably try Node-Red as there is a lot of variables to write to and
because i don’t see any other option (as far as i know) than using automations for each variable to be
updated if there is a change done on the VTR300 HMI panel. - Summer/Winter Fan compensation (only read in UI for now)
- Automation for changing between supply/Extract temp. regulation and/or temp setpoint from avg.
outdoor temp. (last 3 days or so). - Improve UI in general/cleanup when fully integrated at some point later.
The HA integration has been in operation for a about 2 months and works great, Low speed is set if no one is home and the PPM is low enough according to setpoint when in “PPM Auto”, speed is increased according to automations and it is easy to see overall status from the flow chart.
The modbus documentation has it flaws as most modbus documentation from my experience, not straight forward…
NOTE! The modbus adr. listed below will not be the same for older Systemair ventilation units.
My current Save VTR300 software is:
- Circuit board: 1.11.0
- HMI: 1.13.0
- IAM: 1.6.0
If using modbus TCP, the IAM cloud will not work. You must choose between the IAM cloud or Modbus.
Modbus integration gives a lot of new possibilities.
Far from all yaml config is listed because it was too long and not allowed or/and i’m doing something wrong when posting, sorry about that, but i hope it will give an idea and help out others.
modbus:
- name: VTR300
type: tcp
host: IP Adr
port: 502
timeout: 3 #Timeout for slave response in seconds (default=3)
delay: 3 #Time to sleep in seconds after connecting and before sending messages (defualt=0)
climates:
- name: Ventilasjon
slave: 1
data_type: uint
data_count: 1
scale: 0.1
offset: 0
precision: 1
max_temp: 30
min_temp: 15
temp_step: 1
target_temp_register: 2000
current_temp_register: 12102
sensor:
- platform: modbus
scan_interval: 10
registers:
- name: vtr300_inntaks_temperatur
hub: VTR300
device_class: temperature
slave: 1
register: 12101
register_type: holding
unit_of_measurement: °C
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: int
- name: vtr300_avtrekks_temperatur
hub: VTR300
device_class: temperature
slave: 1
register: 12543 #2050 #NB!EAT/RAT used for extract air controller
register_type: holding
unit_of_measurement: °C
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: uint
- name: vtr300_avkast_temperatur
hub: VTR300
device_class: temperature
slave: 1
register: 12106
register_type: holding
unit_of_measurement: °C
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: uint
- name: vtr300_overhetingstemperatur_tilluft
hub: VTR300
device_class: temperature
slave: 1
register: 12107
register_type: holding
unit_of_measurement: °C
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: uint
- name: vtr300_relativ_fukt_avtrekk
hub: VTR300
device_class: humidity
slave: 1
register: 12135
register_type: holding
unit_of_measurement: '%RF'
count: 1
data_type: uint
- name: vtr300_kalkulert_fukt_avtrekk
hub: VTR300
device_class: humidity
slave: 1
register: 2210
register_type: holding
unit_of_measurement: '%RF'
count: 1
data_type: uint
- name: vtr300_kalkulert_fukt_inntak
hub: VTR300
device_class: humidity
slave: 1
register: 2211
register_type: holding
unit_of_measurement: '%RF'
count: 1
data_type: uint
- name: vtr300_tilluftsvifte
hub: VTR300
device_class: power_factor
slave: 1
register: 14000
register_type: holding
unit_of_measurement: '%'
count: 1
data_type: uint
- name: vtr300_avtrekksvifte
hub: VTR300
device_class: power_factor
slave: 1
register: 14001
register_type: holding
unit_of_measurement: '%'
count: 1
data_type: uint
- name: vtr300_sommerdrift_vinterdrift #0=sommerdrift, 1=Vinterdrift (status basert på fukt i inntak)
hub: VTR300
slave: 1
register: 1038
register_type: holding
count: 1
data_type: uint
- name: vtr300_komfyravtrekk_trykkvakt_av_pa
hub: VTR300
slave: 1
register: 12020
register_type: holding
count: 1
data_type: uint
- name: vtr300_el_kolbe_padrag #TRIAC pådrag
hub: VTR300
device_class: power_factor
slave: 1
register: 2148
register_type: holding
unit_of_measurement: '%'
count: 1
data_type: uint
- name: vtr300_el_kolbe_av_pa #TRIAC
hub: VTR300
slave: 1
register: 14380
register_type: holding
count: 1
data_type: uint
- name: vtr300_varmegjenvinner
hub: VTR300
device_class: power_factor
slave: 1
register: 14102
register_type: holding
unit_of_measurement: '%'
count: 1
data_type: uint
- name: vtr300_filterbytte_alm
hub: VTR300
slave: 1
register: 7006
register_type: holding
count: 1
data_type: uint
- name: vtr300_filterbytte_md_intervall
hub: VTR300
slave: 1
register: 7000
register_type: holding
unit_of_measurement: 'md'
count: 1
data_type: int
- name: vtr300_tid_til_filter_bytte_s
hub: VTR300
slave: 1
register: 7005
register_type: holding
unit_of_measurement: 's'
count: 2
data_type: uint
- name: vtr300_modus_status_register
hub: VTR300
slave: 1
register: 1160 #0=Auto,1=Man,2=Crowded,3=Refresh,4=Fireplace,5=Away,6=Holiday,7-12 not applicable
register_type: holding
count: 1
data_type: uint
- name: vtr300_manuell_modus_kommando_register
hub: VTR300
slave: 1
register: 1130 #0=Man Stopp,1=Man ???,2=Man Lav,3=Man Normal,4=Man Høy
register_type: holding
count: 1
data_type: uint
- name: vtr300_tilluft_sp
hub: VTR300
device_class: temperature
slave: 1
register: 2000
register_type: holding
unit_of_measurement: °C
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: uint
- name: vtr300_avtrekksluft_sp
hub: VTR300
device_class: temperature
slave: 1
register: 2012
register_type: holding
unit_of_measurement: °C
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: uint
- name: vtr300_avtrekksluft_min_sp
hub: VTR300
device_class: temperature
slave: 1
register: 2020
register_type: holding
unit_of_measurement: °C
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: uint
- name: vtr300_avtrekksluft_max_sp
hub: VTR300
device_class: temperature
slave: 1
register: 2021
register_type: holding
unit_of_measurement: °C
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: uint
# 0 = Tillufts reg., 1 = Rom reg.(krever rom temp sensor, derfor NA), 2 = Avtrekks reg.
- name: vtr300_tilluft_rom_avtrekk_reg
hub: VTR300
slave: 1
register: 2030
register_type: holding
count: 1
data_type: uint
- name: vtr300_eco_varme_offset
hub: VTR300
device_class: temperature
slave: 1
register: 2503 #Temp. offset før varme element starter i Eco modus
register_type: holding
unit_of_measurement: °C
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: uint
- name: vtr300_nedtelling_modus_tid_s
hub: VTR300
slave: 1
register: 1110
register_type: holding
unit_of_measurement: s
count: 1
data_type: uint
- name: vtr300_ferie_modus_varighet
hub: VTR300
slave: 1
register: 1100
register_type: holding
unit_of_measurement: d
count: 1
data_type: uint
- name: vtr300_borte_modus_varighet
hub: VTR300
slave: 1
register: 1101
register_type: holding
unit_of_measurement: t
count: 1
data_type: uint
- name: vtr300_ildsted_modus_varighet
hub: VTR300
slave: 1
register: 1102
register_type: holding
unit_of_measurement: min
count: 1
data_type: uint
- name: vtr300_boost_modus_varighet
hub: VTR300
slave: 1
register: 1103
register_type: holding
unit_of_measurement: min
count: 1
data_type: uint
- name: vtr300_party_modus_varighet
hub: VTR300
slave: 1
register: 1104
register_type: holding
unit_of_measurement: t
count: 1
data_type: uint
- name: vtr300_fukt_avtrekk_sp
hub: VTR300
device_class: humidity
slave: 1
register: 2202
register_type: holding
unit_of_measurement: '%RF'
count: 1
data_type: uint
- name: vtr300_vifte_hast_komp_avlest
hub: VTR300
device_class: power_factor
slave: 1
register: 1254
register_type: holding
unit_of_measurement: '%'
count: 1
data_type: int
- name: vtr300_vifte_hast_komp_vinter
hub: VTR300
device_class: power_factor
slave: 1
register: 1251
register_type: holding
unit_of_measurement: '%'
count: 1
data_type: int
- name: vtr300_vifte_hast_komp_vinter_start_temp
hub: VTR300
device_class: power_factor
slave: 1
register: 1255
register_type: holding
unit_of_measurement: °C
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: int
- name: vtr300_vifte_hast_komp_vinter_max_temp
hub: VTR300
device_class: power_factor
slave: 1
register: 1253
register_type: holding
unit_of_measurement: °C
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: int
- name: vtr300_vifte_hast_komp_sjekkes
hub: VTR300
device_class: power_factor
slave: 1
register: 1252
register_type: holding
unit_of_measurement: °C
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: int
- name: vtr300_vifte_hast_komp_sommer
hub: VTR300
device_class: power_factor
slave: 1
register: 1258
register_type: holding
unit_of_measurement: '%'
count: 1
data_type: int
- name: vtr300_vifte_hast_komp_sommer_start_temp
hub: VTR300
device_class: power_factor
slave: 1
register: 1256
register_type: holding
unit_of_measurement: °C
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: int
- name: vtr300_vifte_hast_komp_sommer_max_temp
hub: VTR300
device_class: power_factor
slave: 1
register: 1257
register_type: holding
unit_of_measurement: °C
count: 1
scale: 0.1
offset: 0
precision: 1
data_type: int
- name: vtr300_a_alm
hub: VTR300
slave: 1
register: 15900
register_type: holding
count: 1
data_type: uint
- name: vtr300_b_alm
hub: VTR300
slave: 1
register: 15901
register_type: holding
count: 1
data_type: uint
- name: vtr300_c_alm
hub: VTR300
slave: 1
register: 15902
register_type: holding
count: 1
data_type: uint
- name: vtr300_filter_wrn_alm
hub: VTR300
slave: 1
register: 15543
register_type: holding
count: 1
data_type: uint
- name: vtr300_filter_alm
hub: VTR300
slave: 1
register: 15141
register_type: holding
count: 1
data_type: uint
- name: vtr300_tilluftstemp_lav_alm
hub: VTR300
slave: 1
register: 15176
register_type: holding
count: 1
data_type: uint
- name: vtr300_filter_wrn_cnt_alm
hub: VTR300
slave: 1
register: 15548
register_type: holding
count: 1
data_type: uint
- platform: template
sensors:
vtr300_tilluft_rf:
value_template: '{{((states.sensor.vtr300_tilluftsvifte.state | int) * 3) | round(0) }}'
friendly_name: "Tilluftsmengde"
unit_of_measurement: 'm³/t'
- platform: template
sensors:
vtr300_avtrekk_rf:
value_template: '{{((states.sensor.vtr300_avtrekksvifte.state | int) * 3) | round(0) }}'
friendly_name: "Avtrekksmengde"
unit_of_measurement: 'm³/t'
- platform: template
sensors:
vtr300_gjenvinningsgrad:
value_template: '{{((((states.sensor.vtr300_tillufts_temperatur.state | float ) - (states.sensor.vtr300_inntaks_temperatur.state | float)) / ((states.sensor.vtr300_avtrekks_temperatur.state | float ) - (states.sensor.vtr300_inntaks_temperatur.state | float))) * 100) | round(1) }}'
unit_of_measurement: '%'
friendly_name: "Gjenvinningsgrad"
vtr300_tid_til_filterbytte:
friendly_name: 'Neste filter bytte'
value_template: >-
{% if states('sensor.vtr300_tid_til_filter_bytte_s')|int > 1 %}
{% set time = states.sensor.vtr300_tid_til_filter_bytte_s.state | int %}
{% set minutes = ((time % 3600) / 60) | int %}
{% set hours = ((time % 86400) / 3600) | int %}
{% set days = (time / 86400) | int %}
{%- if days > 548 -%}
Mer en 1.5 år
{%- else -%}
{%- if days > 0 -%}
{{ days }}d
{%- endif -%}
{%- if hours > 0 -%}
{%- if days > 0 -%}
{{ ' ' }}
{%- endif -%}
{{ hours }}t
{%- endif -%}
{%- if minutes > 0 -%}
{%- if days > 0 or hours > 0 -%}
{{ ' ' }}
{%- endif -%}
{{ minutes }}m
{%- endif -%}
{%- endif -%}
{% else %}
Bytt Filter!
{% endif %}
vtr300_borte_nedtelling_tid_t:
friendly_name: 'Gjenstående tid når aktiv'
value_template: >-
{% if states('sensor.vtr300_modus_status_register')|int == 5 %}
{% set time = states.sensor.vtr300_nedtelling_modus_tid_s.state | int %}
{% set minutes = ((time % 3600) / 60) | int %}
{% set hours = ((time % 86400) / 3600) | int %}
{%- if time < 60 -%}
Mindre en 1 minutt
{%- else -%}
{%- if hours > 0 -%}
{{ hours }}t
{%- endif -%}
{%- if minutes > 0 -%}
{%- if hours > 0 -%}
{{ ' ' }}
{%- endif -%}
{{ minutes }}m
{%- endif -%}
{%- endif -%}
{% else %}
Inaktiv
{% endif %}
vtr300_sommer_vinterd_driftstatus:
friendly_name: "Aktiv sesong"
value_template: >-
{% if states('sensor.vtr300_sommerdrift_vinterdrift')|int == 0 %}
Sommerdrift
{% elif states('sensor.vtr300_sommerdrift_vinterdrift')|int == 1 %}
Vinterdrift
{% else %}
Stein dau
{% endif %}
vtr300_reg_mode:
friendly_name: "Regulering"
value_template: >-
{% if states('sensor.vtr300_tilluft_rom_avtrekk_reg')|int == 0 %}
Tilluftsregulering
{% elif states('sensor.vtr300_tilluft_rom_avtrekk_reg')|int == 1 %}
Rom reg.
{% elif states('sensor.vtr300_tilluft_rom_avtrekk_reg')|int == 2 %}
Avtrekksregulering
{% else %}
Stein dau
{% endif %}
vtr300_modus_status:
friendly_name: "Modus"
value_template: >-
{% if states('sensor.vtr300_modus_status_register')|int == 0 and states('sensor.vtr300_manuell_modus_kommando_register')|int == 2 %}
Auto schedule - Lav
{% elif states('sensor.vtr300_modus_status_register')|int == 0 and states('sensor.vtr300_manuell_modus_kommando_register')|int == 3 %}
Auto schedule - Normal
{% elif states('sensor.vtr300_modus_status_register')|int == 0 and states('sensor.vtr300_manuell_modus_kommando_register')|int == 4 %}
Auto schedule - Høy
{% elif states('sensor.vtr300_modus_status_register')|int == 1 and states('sensor.vtr300_manuell_modus_kommando_register')|int == 0 %}
Manuell STOPP
{% elif states('sensor.vtr300_modus_status_register')|int == 1 and states('sensor.vtr300_manuell_modus_kommando_register')|int == 1 %}
Manuell Shitstorm?
{% elif states('sensor.vtr300_modus_status_register')|int == 1 and states('sensor.vtr300_manuell_modus_kommando_register')|int == 2 and is_state('input_boolean.vtr300_ppm_mode_auto_enable_modus_status_dummy', 'off') %}
Manuell Lav
{% elif states('sensor.vtr300_modus_status_register')|int == 1 and states('sensor.vtr300_manuell_modus_kommando_register')|int == 3 and is_state('input_boolean.vtr300_ppm_mode_auto_enable_modus_status_dummy', 'off') %}
Manuell Normal
{% elif states('sensor.vtr300_modus_status_register')|int == 1 and states('sensor.vtr300_manuell_modus_kommando_register')|int == 4 and is_state('input_boolean.vtr300_ppm_mode_auto_enable_modus_status_dummy', 'off') %}
Manuell Høy
{% elif states('sensor.vtr300_modus_status_register')|int == 3 %}
Boost
{% elif states('sensor.vtr300_modus_status_register')|int == 2 %}
Party
{% elif states('sensor.vtr300_modus_status_register')|int == 4 %}
Ildsted
{% elif states('sensor.vtr300_modus_status_register')|int == 5 %}
Borte
{% elif states('sensor.vtr300_modus_status_register')|int == 6 %}
ferie
{% elif states('sensor.vtr300_modus_status_register')|int == 7 %}
Cooker
{% elif states('sensor.vtr300_modus_status_register')|int == 8 %}
Hood
{% elif states('sensor.vtr300_modus_status_register')|int == 9 %}
Støvsuger
{% elif states('sensor.vtr300_modus_status_register')|int == 10 %}
CDI1
{% elif states('sensor.vtr300_modus_status_register')|int == 11 %}
CDI2
{% elif states('sensor.vtr300_modus_status_register')|int == 12 %}
Komfyravtrekk
{% elif states('sensor.vtr300_modus_status_register')|int == 1 and states('sensor.vtr300_manuell_modus_kommando_register')|int == 2 and is_state('input_boolean.vtr300_ppm_mode_auto_enable_modus_status_dummy', 'on') %}
PPM Auto - Lav
{% elif states('sensor.vtr300_modus_status_register')|int == 1 and states('sensor.vtr300_manuell_modus_kommando_register')|int == 3 and is_state('input_boolean.vtr300_ppm_mode_auto_enable_modus_status_dummy', 'on') %}
PPM Auto - Normal
{% elif states('sensor.vtr300_modus_status_register')|int == 1 and states('sensor.vtr300_manuell_modus_kommando_register')|int == 4 and is_state('input_boolean.vtr300_ppm_mode_auto_enable_modus_status_dummy', 'on') %}
PPM Auto - Høy
{% elif states('sensor.vtr300_modus_status_register')|int == 3 and is_state('input_boolean.vtr300_ppm_mode_auto_enable_modus_status_dummy', 'on') %}
PPM Auto - BOOST
{% else %}
WTF
{% endif %}
vtr300_manuell_button_modus_status:
friendly_name: "Manuell button modus status"
value_template: >-
{% if states('sensor.vtr300_modus_status_register')|int == 0 and states('sensor.vtr300_manuell_modus_kommando_register')|int > 0 %}
Auto schedule
{% elif states('sensor.vtr300_modus_status_register')|int == 1 and states('sensor.vtr300_manuell_modus_kommando_register')|int > 0 and is_state('input_boolean.vtr300_ppm_mode_auto_enable_modus_status_dummy', 'off') %}
Manuell
{% elif states('sensor.vtr300_modus_status_register')|int == 1 and states('sensor.vtr300_manuell_modus_kommando_register')|int > 0 and is_state('input_boolean.vtr300_ppm_mode_auto_enable_modus_status_dummy', 'on') %}
PPM Auto
{% elif states('sensor.vtr300_modus_status_register')|int > 0 and states('sensor.vtr300_manuell_modus_kommando_register')|int > 0 and is_state('input_boolean.vtr300_ppm_mode_auto_enable_modus_status_dummy', 'off') %}
Standby
{% else %}
Av
{% endif %}
input_number:
vtr300_eco_offset_temp_sp:
name: Eco offset
min: 0
max: 10
step: 1
mode: box
unit_of_measurement: °C
icon: mdi:temperature
vtr300_ferie_modus_varighet_sp:
name: Ferie modus - Ønsket varighet
min: 1
max: 365
step: 1
mode: box
unit_of_measurement: d
icon: mdi:timelapse
vtr300_borte_modus_varighet_sp:
name: Borte modus - Ønsket varighet
min: 1
max: 72
step: 1
mode: box
unit_of_measurement: t
icon: mdi:timelapse
vtr300_ildsted_modus_varighet_sp:
name: Ildsted modus - Ønsket varighet
min: 1
max: 60
step: 1
mode: box
unit_of_measurement: m
icon: mdi:timelapse
switch:
- platform: template
switches:
vtr300_auto_modus:
friendly_name: Auto modus
value_template: "{{ is_state('sensor.vtr300_modus_status', 'Auto schedule - Lav') or is_state('sensor.vtr300_modus_status', 'Auto schedule - Normal') or is_state('sensor.vtr300_modus_status', 'Auto schedule - Høy') }}"
turn_on:
- service: script.vtr300_auto_modus
data:
action: "on"
turn_off:
service: script.vtr300_auto_dummy_av
data:
action: "off"
vtr300_man_stopp_modus:
friendly_name: Manuell stopp
value_template: "{{ is_state('sensor.vtr300_modus_status', 'Manuell STOPP') }}"
turn_on:
- service: script.vtr300_man_stopp_modus
data:
action: "on"
turn_off:
service: script.vtr300_man_stopp_dummy_av
data:
action: "off"
vtr300_man_lav_modus:
friendly_name: Lav hastighet
value_template: "{{ is_state('sensor.vtr300_modus_status', 'Manuell Lav') or is_state('sensor.vtr300_modus_status', 'Auto schedule - Lav') or is_state('sensor.vtr300_modus_status', 'PPM Auto - Lav') }}"
turn_on:
- service: script.vtr300_man_lav_modus
data:
action: "on"
turn_off:
service: script.vtr300_man_lav_dummy_av
data:
action: "off"
vtr300_man_normal_modus:
friendly_name: Normal hastighet
value_template: "{{ is_state('sensor.vtr300_modus_status', 'Manuell Normal') or is_state('sensor.vtr300_modus_status', 'Auto schedule - Normal') or is_state('sensor.vtr300_modus_status', 'PPM Auto - Normal') }}"
turn_on:
- service: script.vtr300_man_normal_modus
data:
action: "on"
turn_off:
service: script.vtr300_man_normal_dummy_av
data:
action: "off"
vtr300_man_hoy_modus:
friendly_name: Høy hastighet
value_template: "{{ is_state('sensor.vtr300_modus_status', 'Manuell Høy') or is_state('sensor.vtr300_modus_status', 'Auto schedule - Høy') or is_state('sensor.vtr300_modus_status', 'PPM Auto - Høy') }}"
turn_on:
service: script.vtr300_man_hoy_modus
data:
action: "on"
turn_off:
service: script.vtr300_man_hoy_dummy_av
data:
action: "off"
- platform: modbus
scan_interval: 10
registers:
- name: vtr300_eco_modus
hub: VTR300
slave: 1
register: 2504
command_on: 1 #Aktiver Eco drift basert på temp. offset
command_off: 0 #Deaktiver Eco drift
verify_state: true
register_type: holding
verify_register: 2504
state_on: 1
state_off: 0
input_boolean:
vtr300_auto_modus_status_dummy:
name: VTR300 Auto modus status dummy
icon: mdi:fan
vtr300_party_modus_status_dummy:
name: VTR300 Party modus status dummy
icon: mdi:fan
vtr300_boost_modus_status_dummy:
name: VTR300 Boost modus status dummy
icon: mdi:fan
vtr300_ildsted_modus_status_dummy:
name: VTR300 Ildsted modus status dummy
icon: mdi:fan
vtr300_borte_modus_status_dummy:
name: VTR300 Borte modus status dummy
icon: mdi:fan
vtr300_ferie_modus_status_dummy:
name: VTR300 ferie modus status dummy
icon: mdi:fan
vtr300_man_stopp_modus_status_dummy:
name: VTR300 Manuell Stopp modus status dummy
icon: mdi:fan
vtr300_man_lav_modus_status_dummy:
name: VTR300 Manuell Lav modus status dummy
icon: mdi:fan
vtr300_man_normal_modus_status_dummy:
name: VTR300 Manuell Normal modus status dummy
icon: mdi:fan
vtr300_man_hoy_modus_status_dummy:
name: VTR300 Manuell Høy modus status dummy
icon: mdi:fan
vtr300_ppm_mode_auto_enable_modus_status_dummy:
name: VTR300 PPM Auto Enable modus status dummy
icon: mdi:fan
script:
vtr300_man_normal_modus:
sequence:
- service: input_boolean.turn_on
entity_id: input_boolean.vtr300_man_normal_modus_status_dummy
#Aktiver manuell modus før hastighet
- service: modbus.write_register
data_template:
hub: VTR300
unit: 1
address: 1161
value: 2
- service: switch.turn_off
entity_id: switch.vtr300_man_stopp_modus
- service: switch.turn_off
entity_id: switch.vtr300_man_lav_modus
- service: switch.turn_off
entity_id: switch.vtr300_man_hoy_modus
- service: switch.turn_off
entity_id: switch.vtr300_auto_modus
- service: switch.turn_off
entity_id: switch.vtr300_party_modus
- service: switch.turn_off
entity_id: switch.vtr300_boost_modus
- service: switch.turn_off
entity_id: switch.vtr300_ildsted_modus
- service: switch.turn_off
entity_id: switch.vtr300_borte_modus
- service: switch.turn_off
entity_id: switch.vtr300_ferie_modus
- delay: '00:00:02'
- service: modbus.write_register
data_template:
hub: VTR300
unit: 1
address: 1130
value: 3
vtr300_man_normal_dummy_av:
sequence:
service: input_boolean.turn_off
entity_id: input_boolean.vtr300_man_normal_modus_status_dummy
vtr300_man_hoy_modus:
sequence:
- service: input_boolean.turn_on
entity_id: input_boolean.vtr300_man_hoy_modus_status_dummy
#Aktiver manuell modus før hastighet
- service: modbus.write_register
data_template:
hub: VTR300
unit: 1
address: 1161
value: 2
- service: switch.turn_off
entity_id: switch.vtr300_man_stopp_modus
- service: switch.turn_off
entity_id: switch.vtr300_man_lav_modus
- service: switch.turn_off
entity_id: switch.vtr300_man_normal_modus
- service: switch.turn_off
entity_id: switch.vtr300_auto_modus
- service: switch.turn_off
entity_id: switch.vtr300_party_modus
- service: switch.turn_off
entity_id: switch.vtr300_boost_modus
- service: switch.turn_off
entity_id: switch.vtr300_ildsted_modus
- service: switch.turn_off
entity_id: switch.vtr300_borte_modus
- service: switch.turn_off
entity_id: switch.vtr300_ferie_modus
- delay: '00:00:02'
- service: modbus.write_register
data_template:
hub: VTR300
unit: 1
address: 1130
value: 4
vtr300_man_hoy_dummy_av:
sequence:
service: input_boolean.turn_off
entity_id: input_boolean.vtr300_man_hoy_modus_status_dummy