cleaned for new home
This commit is contained in:
536
esphome/archive/m5-modbus.yaml
Normal file
536
esphome/archive/m5-modbus.yaml
Normal file
@@ -0,0 +1,536 @@
|
||||
substitutions:
|
||||
device_name: "modbus"
|
||||
friendly_name: "modubs warmtepomp"
|
||||
comment: "m5 core, modbus"
|
||||
location: "Zolder"
|
||||
api_password: !secret modbus_api
|
||||
ota_password: !secret ota_password
|
||||
wifi_ssid: !secret wifi_ssid
|
||||
wifi_password: !secret wifi_password
|
||||
gateway: !secret ip_gateway
|
||||
subnet: !secret ip_subnet
|
||||
ip: !secret modbus_ip
|
||||
pin_modbus_tx: GPIO17
|
||||
pin_modbus_rx: GPIO16
|
||||
|
||||
packages:
|
||||
board: !include boards/esp32_M5core.yaml
|
||||
connection: !include common/wifi.yaml
|
||||
device_base: !include common/common.yaml
|
||||
logger: !include templates/logger.yaml
|
||||
|
||||
|
||||
#parameter list: https://tools.remeha.nl/wp-content/uploads/sites/3/2020/08/Lijst-van-parameters-voor-GTW08.pdf
|
||||
#modbus registers
|
||||
varApFlowmeter: !include
|
||||
file: templates/modbusSensorRead.yaml
|
||||
vars:
|
||||
entityID: varApFlowmeter
|
||||
name: "Stromingssnelheid"
|
||||
address: 410
|
||||
type: U_WORD
|
||||
class: water
|
||||
multiply: 0.01
|
||||
unit: l/min
|
||||
FlowTemperatureReceived: !include
|
||||
file: templates/modbusSensorRead.yaml
|
||||
vars:
|
||||
entityID: FlowTemperatureReceived
|
||||
name: "Aanvoer apparaat"
|
||||
address: 273
|
||||
type: S_WORD #INTEGER16
|
||||
class: temperature
|
||||
multiply: 0.01
|
||||
unit: °C
|
||||
# TemperatureSetpoint: !include
|
||||
# file: templates/modbusSensorRead.yaml
|
||||
# vars:
|
||||
# entityID: TemperatureSetpoint
|
||||
# name: "Temperatuur Setpoint"
|
||||
# address: 257
|
||||
# type: S_WORD #INTEGER16
|
||||
# class: temperature
|
||||
# multiply: 0.01
|
||||
# unit: °C
|
||||
ReturnTemperatureReceived: !include
|
||||
file: templates/modbusSensorRead.yaml
|
||||
vars:
|
||||
entityID: ReturnTemperatureReceived
|
||||
name: "Retour apparaat"
|
||||
address: 274
|
||||
type: S_WORD #INTEGER16 / maar toch unsigned
|
||||
class: temperature
|
||||
multiply: 0.01 #was 0.001
|
||||
unit: °C
|
||||
varApTOutside: !include
|
||||
file: templates/modbusSensorRead.yaml
|
||||
vars:
|
||||
entityID: varApTOutside
|
||||
name: "Buitentemperatuur"
|
||||
address: 384
|
||||
type: S_WORD #INTEGER16
|
||||
class: temperature
|
||||
multiply: 0.01
|
||||
unit: °C
|
||||
varHpHeatPumpTF: !include
|
||||
file: templates/modbusSensorRead.yaml
|
||||
vars:
|
||||
entityID: varHpHeatPumpTF
|
||||
name: "Aanvoer WP"
|
||||
address: 403
|
||||
type: S_WORD #INTEGER16
|
||||
class: temperature
|
||||
multiply: 0.01
|
||||
unit: °C
|
||||
varHpHeatPumpTR: !include
|
||||
file: templates/modbusSensorRead.yaml
|
||||
vars:
|
||||
entityID: varHpHeatPumpTR
|
||||
name: "Retour WP"
|
||||
address: 404
|
||||
type: S_WORD #INTEGER16
|
||||
class: temperature
|
||||
multiply: 0.01
|
||||
unit: °C
|
||||
varZoneTemperatureSetpoint: !include
|
||||
file: templates/modbusSensorRead.yaml
|
||||
vars:
|
||||
entityID: varZoneTemperatureSetpoint
|
||||
name: "Aanvoer Setpoint"
|
||||
address: 1101
|
||||
type: U_WORD #UNSIGNED16
|
||||
class: temperature
|
||||
multiply: 0.01
|
||||
unit: °C
|
||||
varZoneTRoomSetpoint: !include
|
||||
file: templates/modbusSensorRead.yaml
|
||||
vars:
|
||||
entityID: varZoneTRoomSetpoint
|
||||
name: "Ruimte Setpoint"
|
||||
address: 1102
|
||||
type: S_WORD #SIGNED16
|
||||
class: temperature
|
||||
multiply: 0.1
|
||||
unit: °C
|
||||
varZoneTRoom: !include
|
||||
file: templates/modbusSensorRead.yaml
|
||||
vars:
|
||||
entityID: varZoneTRoom
|
||||
name: "Zone Setpoint"
|
||||
address: 1104
|
||||
type: S_WORD #SIGNED16
|
||||
class: temperature
|
||||
multiply: 0.1
|
||||
unit: °C
|
||||
parApSummerWinter: !include
|
||||
file: templates/modbusSensorHolding.yaml
|
||||
vars:
|
||||
entityID: parApSummerWinter
|
||||
name: "sumer/winter temp"
|
||||
address: 386
|
||||
type: U_WORD #UNSIGNED16
|
||||
class: temperature
|
||||
multiply: 0.01
|
||||
unit: °C
|
||||
|
||||
# GPIO pin of the display backlight
|
||||
output:
|
||||
- platform: ledc
|
||||
pin: 32
|
||||
id: gpio_32_backlight_pwm
|
||||
|
||||
light:
|
||||
- platform: monochromatic
|
||||
output: gpio_32_backlight_pwm
|
||||
name: "Display Backlight"
|
||||
id: back_light
|
||||
restore_mode: ALWAYS_OFF
|
||||
|
||||
uart:
|
||||
id: mod_bus
|
||||
tx_pin: ${pin_modbus_tx}
|
||||
rx_pin: ${pin_modbus_rx}
|
||||
baud_rate: 9600
|
||||
stop_bits: 1
|
||||
|
||||
modbus:
|
||||
flow_control_pin: 5
|
||||
id: modbus1
|
||||
|
||||
modbus_controller:
|
||||
- id: epever
|
||||
## the Modbus device addr
|
||||
address: 100
|
||||
modbus_id: modbus1
|
||||
setup_priority: -5
|
||||
update_interval: 2s
|
||||
|
||||
sensor:
|
||||
|
||||
|
||||
#ApWaterPressure 409 UNSIGNED8
|
||||
- name: "Werkelijke waterdruk"
|
||||
platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: ApWaterPressure
|
||||
internal: false
|
||||
register_type: holding
|
||||
address: 409
|
||||
response_size: 1
|
||||
value_type: S_WORD
|
||||
accuracy_decimals: 1
|
||||
device_class: pressure
|
||||
filters:
|
||||
- multiply: 0.1
|
||||
unit_of_measurement: bar
|
||||
|
||||
#varApChEnergyConsumption
|
||||
- name: "Energieverbruik totaal"
|
||||
platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: varApChEnergyConsumption
|
||||
internal: false
|
||||
register_type: holding
|
||||
address: 433
|
||||
response_size: 2
|
||||
value_type: U_DWORD
|
||||
accuracy_decimals: 0
|
||||
device_class: energy
|
||||
filters:
|
||||
- multiply: 1
|
||||
unit_of_measurement: kWh
|
||||
|
||||
#PowerActualReceived
|
||||
- name: "Geleverd vermogen"
|
||||
platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: PowerActualReceived
|
||||
internal: false
|
||||
register_type: holding
|
||||
address: 272
|
||||
response_size: 1
|
||||
value_type: U_WORD
|
||||
accuracy_decimals: 2
|
||||
device_class: power
|
||||
filters:
|
||||
- multiply: 0.1
|
||||
unit_of_measurement: kW
|
||||
|
||||
#varChCtrBurnerStarts 288 + 289
|
||||
- name: "Teller branderstarts"
|
||||
platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: varChCtrBurnerStarts
|
||||
internal: false
|
||||
register_type: holding
|
||||
address: 288
|
||||
#response_size: 2
|
||||
value_type: U_DWORD
|
||||
|
||||
#varApCtrServiceBurnerStarts 295 + 296
|
||||
- name: "Compressor starts"
|
||||
platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: varApCtrServiceBurnerStarts
|
||||
internal: false
|
||||
register_type: read
|
||||
address: 293
|
||||
# response_size: 2
|
||||
value_type: U_DWORD
|
||||
|
||||
#varApCtrBackup1Starts 295 + 296
|
||||
- name: "Teller starts backup1"
|
||||
platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: varApCtrBackup1Starts
|
||||
internal: false
|
||||
register_type: read
|
||||
address: 295
|
||||
value_type: U_DWORD
|
||||
|
||||
# calculating COP thanks to JBtL @ tweakers.net
|
||||
# https://gathering.tweakers.net/forum/view_message/77172604
|
||||
- name: "PM power"
|
||||
platform: homeassistant
|
||||
id: pm_warmtepomp_energy_power
|
||||
entity_id: sensor.warmtepomp_power_2 #id of your powermeter
|
||||
internal: false
|
||||
unit_of_measurement: 'W'
|
||||
device_class: power
|
||||
accuracy_decimals: 0
|
||||
filters:
|
||||
- timeout:
|
||||
timeout: 2min
|
||||
value: 0
|
||||
- sliding_window_moving_average:
|
||||
window_size: 20
|
||||
|
||||
- name: "COP"
|
||||
platform: template
|
||||
id: elgaCOP
|
||||
internal: False
|
||||
unit_of_measurement: 'W/W'
|
||||
accuracy_decimals: 1
|
||||
filters:
|
||||
- median:
|
||||
window_size: 7
|
||||
send_every: 4
|
||||
send_first_at: 3
|
||||
lambda: |-
|
||||
if( id(pm_warmtepomp_energy_power).state >= 60 )
|
||||
{
|
||||
float Deltat = id(varHpHeatPumpTF).state - id(varHpHeatPumpTR).state;
|
||||
float FlowModified = id(varApFlowmeter).state + 1;
|
||||
float warmte = Deltat * 69.766667 * FlowModified;
|
||||
ESP_LOGD("lambda", "COP debug = Deltat: %f, FlowModified: %f, warmte: %f", Deltat, FlowModified, warmte);
|
||||
return warmte / id(pm_warmtepomp_energy_power).state;
|
||||
}
|
||||
else
|
||||
{
|
||||
ESP_LOGD("lambda", "power lower than 60W, return 0");
|
||||
return {};
|
||||
}
|
||||
return {};
|
||||
|
||||
|
||||
#reading enums: https://github.com/esphome/feature-requests/issues/1663#issuecomment-1061842308
|
||||
|
||||
text_sensor:
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: varApSeasonMode
|
||||
register_type: holding
|
||||
address: 385
|
||||
response_size: 2
|
||||
raw_encode: NONE
|
||||
name: "Seizoensmodus actief"
|
||||
lambda: |-
|
||||
//uint8_t value
|
||||
uint8_t value = data[1]; // or data[1], depending on, if the device use big, or little-endian
|
||||
switch (value) {
|
||||
case 0: return std::string("Winter");
|
||||
case 1: return std::string("Vorst");
|
||||
case 2: return std::string("ZomerNeutraalBand");
|
||||
case 3: return std::string("zomer");
|
||||
default: return std::string("[0]:" + std::to_string(data[0]) + " [1]:" + std::to_string(data[1]));
|
||||
}
|
||||
return x;
|
||||
|
||||
|
||||
# - platform: modbus_controller
|
||||
# modbus_controller_id: epever
|
||||
# id: txtAlgorithType
|
||||
# register_type: holding
|
||||
# address: 258
|
||||
# raw_encode: NONE
|
||||
# response_size: 2
|
||||
# name: "Type regeling"
|
||||
# lambda: |-
|
||||
# //uint8_t value
|
||||
# uint8_t value = data[1]; // or data[1], depending on, if the device use big, or little-endian
|
||||
# switch (value) {
|
||||
# case 0: return std::string("Beide");
|
||||
# case 1: return std::string("Vermogen");
|
||||
# case 2: return std::string("Temperatuur");
|
||||
# case 3: return std::string("geen");
|
||||
# default: return std::string("[0]:" + std::to_string(data[0]) + " [1]:" + std::to_string(data[1]));
|
||||
# }
|
||||
# return x;
|
||||
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: HeatingMode
|
||||
register_type: holding
|
||||
address: 1109
|
||||
raw_encode: NONE
|
||||
name: "Type warmtevraag (Zone)"
|
||||
lambda: |-
|
||||
uint8_t value = data[1];
|
||||
switch (value) {
|
||||
case 0: return std::string("Geen");
|
||||
case 1: return std::string("Verwarming");
|
||||
case 2: return std::string("Koeling");
|
||||
default: return std::string("[0]:" + std::to_string(data[0]) + " [1]:" + std::to_string(data[1]));
|
||||
}
|
||||
return x;
|
||||
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: Zone1Type
|
||||
register_type: holding
|
||||
address: 640
|
||||
raw_encode: NONE
|
||||
name: "Zone1 type"
|
||||
lambda: |-
|
||||
uint8_t value = data[1];
|
||||
switch (value) {
|
||||
case 0: return std::string("Niet aanwezig");
|
||||
case 1: return std::string("Alleen CV");
|
||||
case 2: return std::string("CV + KOELING");
|
||||
case 3: return std::string("SWW");
|
||||
case 4: return std::string("Processwarmte");
|
||||
case 5: return std::string("Zwembad");
|
||||
case 254: return std::string("overige");
|
||||
default: return std::string("[0]:" + std::to_string(data[0]) + " [1]:" + std::to_string(data[1]));
|
||||
}
|
||||
return x;
|
||||
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: parZone1Function
|
||||
register_type: holding
|
||||
address: 641
|
||||
raw_encode: NONE
|
||||
name: "Zone1 Function"
|
||||
lambda: |-
|
||||
uint8_t value = data[1];
|
||||
switch (value) {
|
||||
case 0: return std::string("Uitgeschakeld");
|
||||
case 1: return std::string("Direct");
|
||||
case 2: return std::string("Mengcircuit");
|
||||
case 3: return std::string("Zwembad");
|
||||
case 4: return std::string("Hoge temperatuur");
|
||||
case 5: return std::string("Ventilatorconvector");
|
||||
case 6: return std::string("SWW-tank");
|
||||
case 7: return std::string("Elektrische SWWtank");
|
||||
case 8: return std::string("Tijdprogramma");
|
||||
case 9: return std::string("Proceswarmte");
|
||||
case 254: return std::string("overige");
|
||||
default: return std::string("[0]:" + std::to_string(data[0]) + " [1]:" + std::to_string(data[1]));
|
||||
}
|
||||
return x;
|
||||
|
||||
binary_sensor:
|
||||
#appliance status 1: 279
|
||||
# b1: varWarmtepompAan
|
||||
# b2: varElektrischeBack-upAan
|
||||
# b3: varElektrischeBack-up2Aan
|
||||
# b4: varSwwElektrischeBack-upAan
|
||||
# b5: varAp.serviceVereist
|
||||
# b6: varAp.voedingUitgeschakeldResetnodig
|
||||
# b7: varAp.waterdrukLaag
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: varWarmtepompAan
|
||||
name: "App Staus 1(b1): WarmtePomp"
|
||||
register_type: holding
|
||||
address: 279
|
||||
bitmask: 0x01 #(bit 1)
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: varElektrischeBackupAan
|
||||
name: "App Staus 1(b2): backup1"
|
||||
register_type: holding
|
||||
address: 279
|
||||
bitmask: 0x02 #(bit 2)
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: varElektrischeBackup2Aan
|
||||
name: "App Staus 1(b3): backup2"
|
||||
register_type: holding
|
||||
address: 279
|
||||
bitmask: 0x04 #(bit 3)
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: varSwwElektrischeBack
|
||||
name: "App Staus 1(b4): SwwElektrischeBackup"
|
||||
register_type: holding
|
||||
address: 279
|
||||
bitmask: 0x08 #(bit 4)
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: serviceVereist
|
||||
name: "App Staus 1(b5): Service vereist"
|
||||
register_type: holding
|
||||
address: 279
|
||||
bitmask: 0x10 #(bit 5)
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: voedingUitgeschakeldResetnodig
|
||||
name: "App Staus 1(b6): voedingUitgeschakeldResetnodig"
|
||||
register_type: holding
|
||||
address: 279
|
||||
bitmask: 0x20 #(bit 6)
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: waterdrukLaag
|
||||
name: "App Staus 1(b7): waterdrukLaag"
|
||||
register_type: holding
|
||||
address: 279
|
||||
bitmask: 0x40 #(bit 7)
|
||||
|
||||
#280 - Appliance status 2
|
||||
# b0: varAp.pomp
|
||||
# b1: var3-wegklepOpen
|
||||
# b2: var3-wegklep
|
||||
# b3: var3-wegklepGesloten
|
||||
# b4: VarAp.SwwActief
|
||||
# b5: VarAp.CvActief
|
||||
# b6: varAp.koelingActief
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: varAppomp
|
||||
name: "App Staus 2(b1): AP pomp"
|
||||
register_type: holding
|
||||
address: 280
|
||||
bitmask: 0x01 #(bit 1)
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: var3wegklepOpen
|
||||
name: "App Staus 2(b2): 3-weg klep open"
|
||||
register_type: holding
|
||||
address: 280
|
||||
bitmask: 0x02 #(bit 2)
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: var3wegklep
|
||||
name: "App Staus 2(b3): 3-weg klep"
|
||||
register_type: holding
|
||||
address: 280
|
||||
bitmask: 0x04 #(bit 3)
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: var3wegklepgesloten
|
||||
name: "App Staus 2(b4): 3-weg klep gesloten"
|
||||
register_type: holding
|
||||
address: 280
|
||||
bitmask: 0x08 #(bit 4)
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: varSwwActief
|
||||
name: "App Staus 2(b5): Sww Actief"
|
||||
register_type: holding
|
||||
address: 280
|
||||
bitmask: 0x10 #(bit 5)
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: CvActief
|
||||
name: "App Staus 2(b6): Cv Actief"
|
||||
register_type: holding
|
||||
address: 280
|
||||
bitmask: 0x20 #(bit 6)
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: koelingActief
|
||||
name: "App Staus 2(b7): koeling Actief"
|
||||
register_type: holding
|
||||
address: 280
|
||||
bitmask: 0x40 #(bit 7)
|
||||
- name: "CH enabled"
|
||||
platform: modbus_controller
|
||||
modbus_controller_id: epever
|
||||
id: parApChEnabled
|
||||
internal: false
|
||||
register_type: holding
|
||||
address: 500
|
||||
response_size: 1
|
||||
|
||||
# #modbus write registers
|
||||
# number:
|
||||
# - platform: modbus_controller
|
||||
# modbus_controller_id: epever
|
||||
# id: Num_TemperatureSetpoint
|
||||
# name: "Temperatuur setpoint"
|
||||
# address: 257
|
||||
# value_type: S_WORD
|
||||
# multiply: 100
|
||||
Reference in New Issue
Block a user