hallo leute, hatte wieder mal etwas zeit für mein modbus problem.
Einige Adressen konnte ich mittlerweile schon auslesen. Im Anhang unten habe ich meine “modbus configuration” und im Anhang oben habe ich meine “Templates” zum trennen vom High Byte und Low Byte.
Einige Parameter habe ich auch schon im Dashboard verknüpft und mit ein paar anderen konnte ich schon “Scripte” erstellen um mit (modbus.write_register) meiner Heizung Befehle zu geben bzw Werte ändern.
Momentan häng ich wieder am Problem, das ich zB bei Puffer 1 das Programm ändern möchte mit einem Script.
“Puffer 1 Programm” ändern wäre Register Adresse 2620 High Byte.
Wenn ich den Befehl gebe ändert sich die Puffer Temperatur , was aber Register Adresse 2620 Low Byte ist.
Dieses Problem hab ich auch bei einigen Heizkreisen, wo ich Programm ändern möchte.
HK3 und HK5 im High Byte funktionieren nicht.
HK4 und HK6 im Low Byte funktioniert.
Mir kommt es so vor das ich die LowByte Werte ändern kann und die HighByte Werte nicht. Was mach ich falsch?
Hi everyone, I had some time again to work on my Modbus problem.
I’ve already been able to read some addresses. My Modbus configuration is attached below, and my templates for separating the high and low bytes are attached above.
I’ve also linked some parameters in the dashboard, and with a few others, I’ve been able to create scripts to send commands or change values using (modbus.write_register) on my heating system.
Currently, I’m stuck again on the problem that I want to change the program for buffer tank 1 using a script.
Changing the “Buffer Tank 1 Program” would involve register address 2620, high byte.
When I issue the command, the buffer tank temperature changes, but that’s registered at register address 2620, low byte.
I’m also having this problem with some heating circuits where I want to change the program.
HK3 and HK5 in the high byte don’t work.
HK4 and HK6 in the low byte work.
It seems to me that I can change the low byte values but not the high byte values. What am I doing wrong?
Template:
sensor:
- name: “Modbus_Register_2500_High_Byte”
unique_id: modbus_reg_2500_high byte
state: >
{% set raw_value = states(‘sensor.Register_2500’) | int(default=0) %}
{{ (raw_value / 256) | int }}
- name: “Modbus_Register_2500_Low_Byte”
unique_id: modbus_reg_2500_low_byte
state: >
{% set raw_value = states(‘sensor Register_2500’) | int(default=0) %}
{{ raw_value % 256 }}
- name: "Modbus_Register_2501_High_Byte"
unique_id: modbus_reg_2501_high_byte
state: >
{% set raw_value = states('sensor.Register_2501') | int(default=0) %}
{{ (raw_value / 256) | int }}
- name: "Modbus_Register_2501_Low_Byte"
unique_id: modbus_reg_2501_low_byte
state: >
{% set raw_value = states('sensor.Register_2501') | int(default=0) %}
{{ raw_value % 256 }}
- name: "Modbus_Register_2502_High_Byte"
unique_id: modbus_reg_2502_high_byte
state: >
{% set raw_value = states('sensor.Register_2502') | int(default=0) %}
{{ (raw_value / 256) | int }}
- name: "Modbus_Register_2502_Low_Byte"
unique_id: modbus_reg_2502_low_byte
state: >
{% set raw_value = states('sensor.Register_2502') | int(default=0) %}
{{ raw_value % 256 }}
- name: "Modbus_Register_2503_High_Byte"
unique_id: modbus_reg_2503_high_byte
state: >
{% set raw_value = states('sensor.Register_2503') | int(default=0) %}
{{ (raw_value / 256) | int }}
- name: "Modbus_Register_2503_Low_Byte"
unique_id: modbus_reg_2503_low_byte
state: >
{% set raw_value = states('sensor.Register_2503') | int(default=0) %}
{{ raw_value % 256 }}
- name: "Modbus_Register_2504_High_Byte"
unique_id: modbus_reg_2504_high_byte
state: >
{% set raw_value = states('sensor.Register_2504') | int(default=0) %}
{{ (raw_value / 256) | int }}
- name: "Modbus_Register_2504_Low_Byte"
unique_id: modbus_reg_2504_low_byte
state: >
{% set raw_value = states('sensor.Register_2504') | int(default=0) %}
{{ raw_value % 256 }}
- name: "Modbus_Register_2505_High_Byte"
unique_id: modbus_reg_2505_high_byte
state: >
{% set raw_value = states('sensor.Register_2505') | int(default=0) %}
{{ (raw_value / 256) | int }}
- name: "Modbus_Register_2505_Low_Byte"
unique_id: modbus_reg_2505_low_byte
state: >
{% set raw_value = states('sensor.Register_2505') | int(default=0) %}
{{ raw_value % 256 }}
- name: "Modbus_Register_2506_High_Byte"
unique_id: modbus_reg_2506_high_byte
state: >
{% set raw_value = states('sensor.Register_2506') | int(default=0) %}
{{ (raw_value / 256) | int }}
- name: "Modbus_Register_2506_Low_Byte"
unique_id: modbus_reg_2506_low_byte
state: >
{% set raw_value = states('sensor.Register_2506') | int(default=0) %}
{{ raw_value % 256 }}
- name: "Modbus_Register_2506,7_High_Byte"
unique_id: modbus_reg_2506,7_high_byte
state: >
{% set raw_value = states('sensor.Register_2506.7') | int(default=0) %}
{{ (raw_value / 256) | int }}
- name: "Modbus_Register_2507,2_Low_Byte"
unique_id: modbus_reg_2507,2_low_byte
state: >
{% set raw_value = states('sensor.Register_2507.2') | int(default=0) %}
{{ raw_value % 256 }}
- name: "Modbus_Register_2507,7_High_Byte"
unique_id: modbus_reg_2507,7_high_byte
state: >
{% set raw_value = states('sensor.Register_2507.7') | int(default=0) %}
{{ (raw_value / 256) | int }}
- name: "Modbus_Register_2508,2_Low_Byte"
unique_id: modbus_reg_2508,2_low_byte
state: >
{% set raw_value = states('sensor.Register_2508.2') | int(default=0) %}
{{ raw_value % 256 }}
- name: "Modbus_Register_2508,7_High_Byte"
unique_id: modbus_reg_2508,7_high_byte
state: >
{% set raw_value = states('sensor.Register_2508.7') | int(default=0) %}
{{ (raw_value / 256) | int }}
- name: "Modbus_Register_2509,2_Low_Byte"
unique_id: modbus_reg_2509,2_low_byte
state: >
{% set raw_value = states('sensor.Register_2509.2') | int(default=0) %}
{{ raw_value % 256 }}
- name: "Modbus_Register_2620_High_Byte"
unique_id: modbus_reg_2620_high_byte
state: >
{% set raw_value = states('sensor.Register_2620') | int(default=0) %}
{{ (raw_value / 256) | int }}
- name: "Modbus_Register_2620_Low_Byte"
unique_id: modbus_reg_2620_low_byte
state: >
{% set raw_value = states('sensor.Register_2620') | int(default=0) %}
{{ raw_value % 256 }}
- name: "Modbus_Register_2621_High_Byte"
unique_id: modbus_reg_2621_high_byte
state: >
{% set raw_value = states('sensor.Register_2621') | int(default=0) %}
{{ (raw_value / 256) | int }}
- name: "Modbus_Register_2621_Low_Byte"
unique_id: modbus_reg_2621_low_byte
state: >
{% set raw_value = states('sensor.Register_2621') | int(default=0) %}
{{ raw_value % 256 }}
- name: "Modbus_Register_2622_High_Byte"
unique_id: modbus_reg_2622_high_byte
state: >
{% set raw_value = states('sensor.Register_2622') | int(default=0) %}
{{ (raw_value / 256) | int }}
- name: "Modbus_Register_2622_Low_Byte"
unique_id: modbus_reg_2622_low_byte
state: >
{% set raw_value = states('sensor.Register_2622') | int(default=0) %}
{{ raw_value % 256 }}
- name: "Modbus_Register_2580_High_Byte"
unique_id: modbus_reg_2580_high_byte
state: >
{% set raw_value = states('sensor.Register_2580') | int(default=0) %}
{{ (raw_value / 256) | int }}
- name: "Modbus_Register_2580_Low_Byte"
unique_id: modbus_reg_2580_low_byte
state: >
{% set raw_value = states('sensor.Register_2580') | int(default=0) %}
{{ raw_value % 256 }}
- name: "Modbus_Register_2581_High_Byte"
unique_id: modbus_reg_2581_high_byte
state: >
{% set raw_value = states('sensor.Register_2581') | int(default=0) %}
{{ (raw_value / 256) | int }}
- name: "Modbus_Register_2581_Low_Byte"
unique_id: modbus_reg_2581_low_byte
state: >
{% set raw_value = states('sensor.Register_2581') | int(default=0) %}
{{ raw_value % 256 }}
- name: "Modbus_Register_2582_High_Byte"
unique_id: modbus_reg_2582_high_byte
state: >
{% set raw_value = states('sensor.Register_2582') | int(default=0) %}
{{ (raw_value / 256) | int }}
- name: "Modbus_Register_2582_Low_Byte"
unique_id: modbus_reg_2582_low_byte
state: >
{% set raw_value = states('sensor.Register_2582') | int(default=0) %}
{{ raw_value % 256 }}
modbus:
- name: kwb
type: tcp
host: 192.168.178.102
port: 502
sensors:
- name: Anlage Ein/AUS
address: 2300
slave: 1
input_type: input
unique_id: Anlage Ein/Aus
- name: Kessel Temperatur Soll
address: 2301
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
slave: 1
scale: 1.0
input_type: input
precision: 1
unique_id: Kessel Temperatur Soll
- name: Betriebsstunden
address: 2337
slave: 1
input_type: input
data_type: uint16
unit_of_measurement: "h"
state_class: measurement
unique_id: Betriebsstunden
- name: Kesselleistung
address: 2338
slave: 1
state_class: measurement
unit_of_measurement: "%"
scale: 1.0
input_type: input
unique_id: Kesselleistung
- name: Kesselstatus
address: 2339
slave: 1
input_type: input
unique_id: Kesselstatus
- name: Flamtemperatur
address: 2350
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
slave: 1
scale: 1.0
input_type: input
precision: 1
unique_id: Flammtempertur
- name: Kessel VL IST
address: 2347
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
slave: 1
scale: 1.0
input_type: input
precision: 1
unique_id: Kessel VL Ist
- name: Kessel RL IST
address: 2348
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
slave: 1
scale: 1.0
input_type: input
precision: 1
unique_id: Kessel RL Ist
- name: Sauerstoff Ist
address: 2349
state_class: measurement
unit_of_measurement: "%"
slave: 1
scale: 0.1
input_type: input
precision: 1
unique_id: Sauerstoff ist
- name: Unterdruck
address: 2351
state_class: measurement
unit_of_measurement: "mbar"
slave: 1
scale: 0.01
input_type: input
precision: 1
unique_id: Unterdruck
- name: Hauptantrieb Strom
address: 2354
state_class: measurement
unit_of_measurement: "A"
slave: 1
scale: 0.1
input_type: input
precision: 1
unique_id: Hauptantrieb Strom
- name: Reinigungsmotor Ein/Aus
address: 2359
state_class: measurement
slave: 1
scale: 1.0
input_type: input
precision: 0
unique_id: Reinigungsmotor
- name: Zundung Heizung Ein/Aus
address: 2361
state_class: measurement
slave: 1
scale: 1.0
input_type: input
precision: 0
unique_id: Zündung
- name: Mischer RL Aus/Auf/Zu
address: 2362
state_class: measurement
slave: 1
scale: 1.0
input_type: input
precision: 0
unique_id: Mischer RLA
- name: Sekundärgebläße
address: 2383
state_class: measurement
unit_of_measurement: "%"
slave: 1
scale: 1.0
input_type: input
precision: 0
unique_id: Sekundärgebläße
- name: Primärgebläse
address: 2382
state_class: measurement
unit_of_measurement: "%"
slave: 1
scale: 1.0
input_type: input
precision: 0
unique_id: Primkundärgebläße
- name: Saugzugstufe
address: 2384
state_class: measurement
unit_of_measurement: "%"
slave: 1
scale: 1.0
input_type: input
precision: 0
unique_id: Saugzug
- name: Hauptantrieb Einschubzeit
address: 2386
state_class: measurement
unit_of_measurement: "s"
slave: 1
scale: 1.0
input_type: input
precision: 1
unique_id: Hauptantrieb Einschub Zeit
- name: Hauptantrieb Periodendauer
address: 2387
state_class: measurement
unit_of_measurement: "s"
slave: 1
scale: 1.0
input_type: input
precision: 1
unique_id: Hauptantrieb Dauer
- name: Brennstofffaktor
address: 2391
state_class: measurement
unit_of_measurement: "%"
slave: 1
scale: 1.0
input_type: input
precision: 0
unique_id: Brennstofffaktor
- name: Kessel Solltemperatur
address: 2392
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
slave: 1
scale: 1.0
input_type: input
precision: 1
unique_id: Kessel Temperatur Soll
- name: Sauerstoff Soll
address: 2395
state_class: measurement
unit_of_measurement: "%"
slave: 1
scale: 0.1
input_type: input
precision: 1
unique_id: Sauerstoff soll
- name: Einschub Stocker
address: 2430
state_class: measurement
unit_of_measurement: "%"
slave: 1
scale: 1.0
input_type: input
precision: 1
unique_id: Einschub Stocker
- name: Glutbettniveau
address: 2342
scan_interval: 30
device_class: temperature
state_class: measurement
slave: 1
scale: 1.0
input_type: input
precision: 0
unique_id: Glutbettniveau
- name: Puffer0 oben
address: 2440
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
slave: 1
input_type: input
precision: 1
unique_id: Puffer0 oben
- name: Puffer0 unten
address: 2441
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
slave: 1
input_type: input
precision: 0
unique_id: Puffer0 unten
- name: Puffer0 Temperatur Maximum
address: 2307
device_class: temperature
state_class: measurement
unit_of_measurement: "°C"
slave: 1
input_type: input
precision: 0
unique_id: Puffer0 Max
- name: Puffer0 Temperatur Minimum
address: 2308
device_class: temperature
unit_of_measurement: "°C"
slave: 1
input_type: input
precision: 0
unique_id: Puffer0 Min
- name: Puffer0 Programm
address: 2309
state_class: measurement
slave: 1
input_type: input
precision: 0
unique_id: Puffer0 Programm
- name: Register_2500
address: 2500
slave: 1
input_type: input
data_type: uint16
unique_id: r1
- name: Register_2501
address: 2501
slave: 1
input_type: input
data_type: uint16
unique_id: r2
- name: Register_2502
address: 2502
slave: 1
input_type: input
data_type: uint16
unique_id: r3
- name: Register_2503
address: 2503
slave: 1
input_type: input
data_type: uint16
unique_id: r4
- name: Register_2504
address: 2504
slave: 1
input_type: input
data_type: uint16
unique_id: r5
- name: Register_2505
address: 2505
slave: 1
input_type: input
data_type: uint16
unique_id: r6
- name: Register_2506
address: 2506
slave: 1
input_type: input
data_type: uint16
unique_id: r7
- name: Register_2506.7
address: 2506.7
slave: 1
input_type: input
data_type: uint16
unique_id: r8
- name: Register_2507.2
address: 2507.2
slave: 1
input_type: input
data_type: uint16
unique_id: r9
- name: Register_2507.7
address: 2507.7
slave: 1
input_type: input
data_type: uint16
unique_id: r10
- name: Register_2508.2
address: 2508.2
slave: 1
input_type: input
data_type: uint16
unique_id: r11
- name: Register_2508.7
address: 2508.7
slave: 1
input_type: input
data_type: uint16
unique_id: r12
- name: Register_2509.2
address: 2509.2
slave: 1
input_type: input
data_type: uint16
unique_id: r13
- name: Register_2620
address: 2620
slave: 1
input_type: holding
data_type: uint16
unique_id: r14
- name: Register_2621
address: 2621
slave: 1
input_type: holding
data_type: uint16
unique_id: r15
- name: Register_2622
address: 2622
slave: 1
input_type: holding
data_type: uint16
unique_id: r16
- name: Register_2580
address: 2580
slave: 1
input_type: input
data_type: uint16
unique_id: r17
- name: Register_2581
address: 2581
slave: 1
input_type: input
data_type: uint16
unique_id: r18
- name: Register_2582
address: 2582
slave: 1
input_type: input
data_type: uint16
unique_id: r19