Op de elga zit een modbus aansluiting, die zou je kunnen gebruiken om alle gegevens eruit te halen.
[ Voor 8% gewijzigd door Ramon_1984 op 27-11-2021 09:18 ]
[ Voor 8% gewijzigd door Ramon_1984 op 27-11-2021 09:18 ]
De aansluiting zit erop, verdere informatie heb ik nog niet voor je.number3 schreef op zaterdag 27 november 2021 @ 09:19:
@Ramon_1984 is dat zo, die had ik nog niet ontdekt. Weet je of er ook informatie beschikbaar is over de modbus. Meestal moet je dan een code lijst hebben. Elke hint is welkom.
Modbus lijkt mijn leuker, dan kan je de Interne warmte opwekking / flow etc eruit halen .number3 schreef op zaterdag 27 november 2021 @ 09:24:
@Ramon_1984 dank voor de tip in iedergeval. Wat ik al wel weet overigens is dat de R-bus een “interpretatie” van de canbus is. Wacht momenteel op een canbus analyzer om te ontdekken of het ook iets bruikbaars is. Laten we hopen dat het simpelweg een canbus is, zonder encryptie of andere vreemde zaken. Dan kunnen we die bus gaan proberen te lezen 😇
Husdata H60, kan je daar wat mee?number3 schreef op zaterdag 27 november 2021 @ 09:35:
Een de modbus uitlezen is zeker interessant. Ik heb al een uitlees unit voor de service poort liggen, bij de oude Remeha producten is dat een seriële poort. Maar de nieuwe Ace producten is dat niet duidelijk, dat service kastje bevat een microcontroller en de verbinding naar de app kan natuurlijk ook nog bekeken worden.
Maar modbus is beter. Eens kijken wat we kunnen achterhalen.
Ik ben benieuwd 😀number3 schreef op zaterdag 27 november 2021 @ 09:46:
Gevonden. Geweldige tip @edkok ik ga gelijk aan de slag. Want ik heb al een esp8266 modbus uitlees project die ik ervoor kan gebruiken.
Link naar modbus Elga Ace lijst:
https://tools.remeha.nl/w...parameters-voor-GTW08.pdf
Hmm, dat klinkt niet bestnumber3 schreef op maandag 29 november 2021 @ 00:18:
@Ramon_1984 nou, inderdaad zit er een modbus kit in de Elga Ace, maar het lijkt erop dat dat maar de helft van de oplossing is. Die gaat namelijk naar een connector X16. En het lijkt dat je dan een extra Modbus RTU gateway, de zogenaamde GTW-08, nodig gaat hebben.
Ik ga mijn installateur eens laten informeren bij Remeha, want als consument krijg je niets geen informatie, heel jammer eigenlijk.
[ Voor 35% gewijzigd door edkok op 29-11-2021 18:02 ]
[ Voor 54% gewijzigd door dlangr op 07-12-2021 21:49 ]
Ik neem aan dat dit de GTW-08 is?number3 schreef op donderdag 24 februari 2022 @ 23:33:
Intussen heb ik begrepen dat de modbus op de Elga ace zo goed als vrijgegeven gaat worden. De print is bekend, en ga er binnenkort 1 bestellen.
Zojuist de laatste (ivm onduidelijkheid van de levertermijn vanuit Remeha) gateway (via Glo24) besteld… volgende week in huis.number3 schreef op woensdag 10 augustus 2022 @ 16:10:
@DeltaT yes, een modbus interface moet ik nog steeds bestellen. Moet nodig mijn installateur opjagen. 🤔
Ik doe het zelf via home assistant, maar de Elga heeft ook een smart grid en goedkoope strrom functie kan je aan sturen via de bl1 en bl2 contacten. Details kan je in de manual vinden.rft80 schreef op dinsdag 6 december 2022 @ 12:13:
Ik sta op de wachtlijst voor een Elga Ace, ben me aan het voorbereiden en lees met interesse deze discussie. Weet iemand of het via modbus of anderzijds mogelijk is om dynamische energie tarieven te schrijven naar de Elga ace? Begrijp dat je hoog/laag en gas tarieven via display kan invoeren en het apparaat dan zelf de economische afweging maakt maar dat is voor dynamische tarieven natuurlijk niet voldoende.
Alternatief is de cv / wp keuze door home assistant laten bepalen (gasprijs vs electraprijs * 10 / actuele cop) ; kan dat? Een override communiceren middels otgw?
De Modbus kit is enkel voor communicatie tussen de hoofdprint (ECH07) en de print voor de buitenunit (MCC1643), deze print kan namelijk niet overweg met het L-bus signaal waarmee de andere print's communiceren.dlangr schreef op dinsdag 7 december 2021 @ 21:18:
Ben zeer geinteresseerd hier in. Vond iemand die het al via een schijnbaar meegeleverde gw-08 aangesloten heeft: https://community.home-as...gas-heating-device/336268
Vraag me af of mijn Elga Ace warmtepomp deze inderdaad heeft. Heeft iig een modbus kit, maar volgens deze link een modbus interface:
https://tools.remeha.nl/v...len-een-modbus-interface/
Betekent dat dat ik al klaar ben om hem via modbus uit te lezen of moet ik nog de GTW-08 aanschaff
Vond ook deze helaas nog erg lege github voor remeha modbus, maar heeft wel al een solar edge modbus werkend, dus wie wee: https://github.com/klacol/home-assistant-remeha-modbus
:strip_exif()/f/image/06rUoiysrQT4MBRfVcXgVVXF.jpg?f=fotoalbum_large)
/f/image/OsghMz2KEOgjQOJGkMPdej3c.png?f=fotoalbum_large)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
| modbus:
- name: GTW-08 Elga Ace
type: tcp
host: 192.168.2.199
port: 502
delay: 2
retries: 3
sensors:
- name: "Elga Aanvoertempearatuur Combi" #FlowTemperatureReceived
unique_id: elga1
slave: 100
address: 273
count: 1
input_type: holding
data_type: int16
scan_interval: 5
device_class: temperature
unit_of_measurement: °C
state_class: measurement
scale: 0.01
precision: 1
- name: "Elga Retourtemperatuur" #ReturnTemperatureReceived
unique_id: elga2
slave: 100
address: 274
count: 1
input_type: holding
data_type: int16
scan_interval: 5
device_class: temperature
unit_of_measurement: °C
state_class: measurement
scale: 0.01
precision: 1
- name: "Elga Waterdruk" #ApWaterPressure
unique_id: elga3
slave: 100
address: 409
count: 1
input_type: holding
data_type: int16
scan_interval: 5
device_class: pressure
unit_of_measurement: bar
state_class: measurement
scale: 0.1
precision: 1
- name: "Elga Buitentemperatuur" #varApTOutside
unique_id: elga4
slave: 100
address: 384
count: 1
input_type: holding
data_type: int16
scan_interval: 5
device_class: temperature
unit_of_measurement: °C
state_class: measurement
scale: 0.01
precision: 1
- name: "Elga Aanvoertempearatuur WP" #remeha_varHpHeatPumpTF
unique_id: elga5
slave: 100
address: 403
count: 1
input_type: holding
data_type: int16
scan_interval: 5
device_class: temperature
unit_of_measurement: °C
state_class: measurement
scale: 0.01
precision: 1
- name: "Elga Waterdoorstroming" #varApFlowmeter
unique_id: elg6
slave: 100
address: 410
count: 1
input_type: holding
data_type: uint16
scan_interval: 5
device_class: speed
unit_of_measurement: l/min
state_class: measurement
scale: 0.01
precision: 1
- name: "Elga Aanvoertemperatuur setpoint" #varZoneTemperatureSetpoint
unique_id: elga7
slave: 100
address: 1101
count: 1
input_type: holding
data_type: uint16
scan_interval: 5
device_class: temperature
unit_of_measurement: °C
state_class: measurement
scale: 0.01
precision: 1
- name: "Elga Ruimtesetpoint" #remeha_varZoneTRoomSetpoint
unique_id: elga8
slave: 100
address: 1102
count: 1
input_type: holding
data_type: int16
scan_interval: 5
device_class: temperature
unit_of_measurement: °C
state_class: measurement
scale: 0.1
precision: 1
- name: "Elga Ruimtetemperatuur" #varZoneTRoom
unique_id: elga9
slave: 100
address: 1104
count: 1
input_type: holding
data_type: int16
scan_interval: 5
device_class: temperature
unit_of_measurement: °C
state_class: measurement
scale: 0.1
precision: 1
- name: "Elga Energieverbruik totaal" #varApChEnergyConsumption
unique_id: elga10
slave: 100
address: 433
count: 2
input_type: holding
data_type: int32
scan_interval: 5
device_class: energy
unit_of_measurement: kWh
state_class: total
scale: 1
precision: 1
climates:
- name: "Elga Etwist Huiskamer"
unique_id: elga11
slave: 100
address: 1104
target_temp_register: 664
count: 1
input_type: holding
data_type: uint16
scan_interval: 5
max_temp: 35
min_temp: 5
precision: 1
scale: 0.1
temp_step: 0.5
temperature_unit: C
hvac_mode_register:
address: 649
values:
state_auto: 0
state_heat: 1
state_off: 2 |
De GTW08 geeft een modbus RTU signaal uit. (2 draads A,B)Goofy2k schreef op donderdag 23 februari 2023 @ 16:36:
Hoe komen de GTW08 data bij Homey terecht. Is het een bedrade interface? Of verloopt dat uiteindelijk draadloos (bv WIFI, Bluetooth, anders)?
Ik ga eens proberen of ik met een microcontroler a la ESP32 een modbus inteface kan realiseren. Kost een paar Euro. Die heeft ook Bluetooth en WIFI aan boord dus kan ik zo bij mijn monitoring software komen. Daarvoor gebruik ik Nodered. Daar komen zowel de Elga temperaturen, mijn slimme meter P1 data en mijn SolarEdge data binnen.
Dat gaat helaas niet, je moet iets hebben dat met het L-bus signaal kan communiceren.Goofy2k schreef op donderdag 23 februari 2023 @ 17:56:
OK. Als ik een ESP32 controller ipv de GTW08 wil gebruiken moet die voor mij het Elga signaal oppikken en omzetten naar TCP / Wifi. Even opletten of het Elga signaal rechtstreeks op de ESP32 pinnen kan. Ik zie ook level converters voor een paar Euro....
@Double T Op welke moment ging die in storing? Op het moment van aansluiten van GTW08?Double T schreef op zondag 26 februari 2023 @ 20:55:
@Ruben9477 nice! Dan ga ik het nogmaals proberen. De vorige keer kwam de warmtepomp in storing te staan, die alleen een service monteur van Remeha kon verhelpen.
@Goofy2k De GTW-08 is ook te krijgen bij onze oosterburen: https://www.glo24.de/reme...rtu-7721982-3661238740211
Scheelt een stuk tov de Nederlandse groothandelprijzen en service is goed.
Ik ga kijken of ik het modbus signaal via een Waveshare RS485 to WiFi/Ethernet DIN Module de modbus data kan publiceren op een MQTT server en deze dan aan Homey kan koppelen.
Die storing werd veroorzaakt door een ander los contact. Net even opnieuw geprobeerd; het lukt om de GTW-08 aan te sluiten en te laten herkennen.Ruben9477 schreef op maandag 27 februari 2023 @ 18:26:
[...]
@Double T Op welke moment ging die in storing? Op het moment van aansluiten van GTW08?
Dit moet je wel spanningsloos doen, want bij opstarten gaat de Elga checken welke modules er zijn aangesloten.
Ruben9477 schreef op donderdag 23 februari 2023 @ 17:08:
[...]
De GTW08 geeft een modbus RTU signaal uit. (2 draads A,B)
Hierop heb ik een Modbus RTU naar TCP-IP converter aangesloten. In Homeassistant lees ik via TCP-IP (WiFi of Ethernet) de modbus registers uit.
Voor Homey is er een homeassisant integratie.
:strip_exif()/f/image/M4xT44hTNABcCbE8uEJxq6NM.jpg?f=fotoalbum_large)
Ruben9477 schreef op woensdag 22 februari 2023 @ 12:39:
[...]
De Modbus kit is enkel voor communicatie tussen de hoofdprint (ECH07) en de print voor de buitenunit (MCC1643), deze print kan namelijk niet overweg met het L-bus signaal waarmee de andere print's communiceren.
De GTW-08 gateway prik je ergens op het L-bus signaal, ik heb hiervoor de GTW-30 module verwijderd en op deze plaats de GTW-08 geplaatst. Wil je de GTW-30 GPRS module wel gebruiken, kun je met een extra kabel ook doorlussen.
Voor de communicatie met homeassistant een EW11 TCP/IP module op de GTW-08 aangesloten, gebruikt gemaakt van de voedingspanning op de loze stekker. (waar de afsluitweerstand op zit)
[Afbeelding]
Onderstaand sensoren heb ik tot nu toe zichtbaar gekregen in homeassistant, via Modbus.
De thermostaat functioneert alleen als ik hem op handmatig zet (voor homeassistant status "heat"), zet ik hem op status "auto" dan volgt de Etwist zijn programma en reageert deze niet op setpoint verandering.
Zet ik de thermostaat in homeassistant op "off" gaat de Elga op antivries modus.
Helaas zijn mogelijkheden met modbus in homeasisstant beperkt, het lukt me niet om eigen thermostaat statussen te maken. bijvoorbeeld handmatig, planning,vorstbeveiliging, programma 1 ect.
[Afbeelding]
De code voor configuration.yaml staat hieronder, deze heb ik afgeleid van onderstaande link.
https://community.home-as...gas-heating-device/336268
en de modbus tabel van Remeha
https://tools.remeha.nl/w...parameters-voor-GTW08.pdf
Het is noodzakelijk om een unique_id mee te geven, anders kun je de entiteiten niet aan een ruimte toewijzen.
Daarnaast device classes aangeven, zodat het ook klopt in homeassistant. (voor temperatuur sensoren hoefde het eigenlijk niet)
Ik denk dat deze info ook van toegevoegde waarde is voor anderen.
Heeft iemand nog tips, hoor ik het ook graag.
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161modbus: - name: GTW-08 Elga Ace type: tcp host: 192.168.2.199 port: 502 delay: 2 retries: 3 sensors: - name: "Elga Aanvoertempearatuur Combi" #FlowTemperatureReceived unique_id: elga1 slave: 100 address: 273 count: 1 input_type: holding data_type: int16 scan_interval: 5 device_class: temperature unit_of_measurement: °C state_class: measurement scale: 0.01 precision: 1 - name: "Elga Retourtemperatuur" #ReturnTemperatureReceived unique_id: elga2 slave: 100 address: 274 count: 1 input_type: holding data_type: int16 scan_interval: 5 device_class: temperature unit_of_measurement: °C state_class: measurement scale: 0.01 precision: 1 - name: "Elga Waterdruk" #ApWaterPressure unique_id: elga3 slave: 100 address: 409 count: 1 input_type: holding data_type: int16 scan_interval: 5 device_class: pressure unit_of_measurement: bar state_class: measurement scale: 0.1 precision: 1 - name: "Elga Buitentemperatuur" #varApTOutside unique_id: elga4 slave: 100 address: 384 count: 1 input_type: holding data_type: int16 scan_interval: 5 device_class: temperature unit_of_measurement: °C state_class: measurement scale: 0.01 precision: 1 - name: "Elga Aanvoertempearatuur WP" #remeha_varHpHeatPumpTF unique_id: elga5 slave: 100 address: 403 count: 1 input_type: holding data_type: int16 scan_interval: 5 device_class: temperature unit_of_measurement: °C state_class: measurement scale: 0.01 precision: 1 - name: "Elga Waterdoorstroming" #varApFlowmeter unique_id: elg6 slave: 100 address: 410 count: 1 input_type: holding data_type: uint16 scan_interval: 5 device_class: speed unit_of_measurement: l/min state_class: measurement scale: 0.01 precision: 1 - name: "Elga Aanvoertemperatuur setpoint" #varZoneTemperatureSetpoint unique_id: elga7 slave: 100 address: 1101 count: 1 input_type: holding data_type: uint16 scan_interval: 5 device_class: temperature unit_of_measurement: °C state_class: measurement scale: 0.01 precision: 1 - name: "Elga Ruimtesetpoint" #remeha_varZoneTRoomSetpoint unique_id: elga8 slave: 100 address: 1102 count: 1 input_type: holding data_type: int16 scan_interval: 5 device_class: temperature unit_of_measurement: °C state_class: measurement scale: 0.1 precision: 1 - name: "Elga Ruimtetemperatuur" #varZoneTRoom unique_id: elga9 slave: 100 address: 1104 count: 1 input_type: holding data_type: int16 scan_interval: 5 device_class: temperature unit_of_measurement: °C state_class: measurement scale: 0.1 precision: 1 - name: "Elga Energieverbruik totaal" #varApChEnergyConsumption unique_id: elga10 slave: 100 address: 433 count: 2 input_type: holding data_type: int32 scan_interval: 5 device_class: energy unit_of_measurement: kWh state_class: total scale: 1 precision: 1 climates: - name: "Elga Etwist Huiskamer" unique_id: elga11 slave: 100 address: 1104 target_temp_register: 664 count: 1 input_type: holding data_type: uint16 scan_interval: 5 max_temp: 35 min_temp: 5 precision: 1 scale: 0.1 temp_step: 0.5 temperature_unit: C hvac_mode_register: address: 649 values: state_auto: 0 state_heat: 1 state_off: 2
[ Voor 3% gewijzigd door willemoldemans op 02-10-2023 22:58 ]
Mijne is gisteren geleverd, zelfde verhaal, geen bluetooth terwijl dat wel in het boekje staat. Blijkbaar kan je deze via je installateur laten bestellen.willemoldemans schreef op vrijdag 29 september 2023 @ 13:33:
helaas ook hier geen Bluetoorh en GTW-03 of GTW-08 in de behuizing. De GTW-08 is bij de oosterburen niet leverbaar (levertijd 1-12maanden)
[Afbeelding]
Levertijd vanuit Duitsland blijkt mee te vallen, geen garanties natuurlijk maar in mijn geval 23 september besteld, gisteren verzonden. Naar verwachting morgen binnen.willemoldemans schreef op vrijdag 29 september 2023 @ 13:33:
Bij mij hebben ze gisteren ook een Elga Ace 4kw geinstalleerd, helaas ook hier geen Bluetoorh en GTW-03 of GTW-08 in de behuizing. De GTW-08 is bij de oosterburen (levertijd 44 werkdagen - besteld) en in NL vind ik ~250eu wel erg pittig.
Heeft iemand al geprobeerd om direct op de "modbus kit" in te koppelen? daar zit nu een stekker in naar X16 op EHC-07
[Afbeelding]
[ Voor 26% gewijzigd door rft80 op 12-10-2023 08:36 ]
Op het Hass forum loopt een draadje incl modbus mapping wellicht net een beetje anders door de verbonden gasketel.rft80 schreef op donderdag 12 oktober 2023 @ 08:34:
Vraag, is iemand er in geslaagd om te schrijven naar de modbus registers? Zo ja, kan je de code wellicht delen? Scheelt weer wat trial and error 😄
Mijne is ook binnen, krijg morgen de rs485 to ethernet gateway binnen. Zal ervaring en resultaten delen.
Die is me uiteraard bekend:)willemoldemans schreef op donderdag 12 oktober 2023 @ 14:45:
[...]
Op het Hass forum loopt een draadje incl modbus mapping wellicht net een beetje anders door de verbonden gasketel.
Mag ik linken naar een ander forum?
https://community.home-as...gas-heating-device/336268
Anders even zoeken op elga ace ;-)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
| substitutions: pin_modbus_tx: GPIO17 pin_modbus_rx: GPIO16 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: -10 update_interval: 5s sensor: - name: "Elga Aanvoertempearatuur Combi" #FlowTemperatureReceived platform: modbus_controller modbus_controller_id: epever id: FlowTemperatureReceived internal: false register_type: holding address: 273 response_size: 1 value_type: S_WORD accuracy_decimals: 1 device_class: temperature filters: - multiply: 0.01 unit_of_measurement: °C - name: "Elga Retourtemperatuur" #ReturnTemperatureReceived platform: modbus_controller modbus_controller_id: epever id: ReturnTemperatureReceived internal: false register_type: holding address: 274 response_size: 1 value_type: S_WORD accuracy_decimals: 1 device_class: temperature filters: - multiply: 0.01 unit_of_measurement: °C - name: "Elga Waterdruk" #ApWaterPressure 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 - name: "Elga Buitentemperatuur" #varApTOutside platform: modbus_controller modbus_controller_id: epever id: varApTOutside internal: false register_type: holding address: 384 response_size: 1 value_type: S_WORD accuracy_decimals: 1 device_class: temperature filters: - multiply: 0.01 unit_of_measurement: °C - name: "Elga Aanvoertempearatuur WP" #remeha_varHpHeatPumpTF platform: modbus_controller modbus_controller_id: epever id: varHpHeatPumpTF internal: false register_type: holding address: 403 response_size: 1 value_type: S_WORD device_class: temperature accuracy_decimals: 1 filters: - multiply: 0.01 unit_of_measurement: °C - name: "Elga Waterdoorstroming" #varApFlowmeter platform: modbus_controller modbus_controller_id: epever id: varApFlowmeter internal: false register_type: holding address: 410 response_size: 1 value_type: U_WORD accuracy_decimals: 1 device_class: water filters: - multiply: 0.01 unit_of_measurement: l/min - name: "Elga Aanvoertemperatuur setpoint" #varZoneTemperatureSetpoint platform: modbus_controller modbus_controller_id: epever id: varZoneTemperatureSetpoint internal: false register_type: holding address: 1101 response_size: 1 value_type: S_WORD accuracy_decimals: 1 device_class: temperature filters: - multiply: 0.1 unit_of_measurement: °C - name: "Elga Ruimtesetpoint" #remeha_varZoneTRoomSetpoint platform: modbus_controller modbus_controller_id: epever id: varZoneTRoomSetpoint internal: false register_type: holding address: 1102 response_size: 1 value_type: S_WORD accuracy_decimals: 1 device_class: temperature filters: - multiply: 0.1 unit_of_measurement: °C - name: "Elga Ruimtetemperatuur" #varZoneTRoom platform: modbus_controller modbus_controller_id: epever id: varZoneTRoom internal: false register_type: holding address: 1104 response_size: 1 value_type: S_WORD device_class: temperature accuracy_decimals: 1 filters: - multiply: 0.1 unit_of_measurement: °C - name: "Elga Energieverbruik totaal" #varApChEnergyConsumption platform: modbus_controller modbus_controller_id: epever id: varApChEnergyConsumption internal: false register_type: holding address: 433 response_size: 2 value_type: S_DWORD accuracy_decimals: 1 device_class: energy filters: - multiply: 1 unit_of_measurement: kWh |
[ Voor 88% gewijzigd door willemoldemans op 14-10-2023 20:52 ]
Hi, zou je je volledige esp configuratie kunnen delen? Ik heb een esp wemos d1 met een 485 module gecombineerd, groene lampje op de GWT08 brandt maar krijg error in esphomewillemoldemans schreef op vrijdag 13 oktober 2023 @ 14:05:
First time right 👌
1
2
3
| [20:13:11][D][modbus_controller:040]: Modbus command to device=100 register=0x111 countdown=0 no response received - removed from send queue [20:13:11][C][modbus_controller:298]: ModbusController: [20:13:11][C][modbus_controller:299]: Address: 0x64 |
heb je je A -> B en B-> A en GND goed aangesloten? je adres van 100 zou moeten kloppen ik heb verder geen aanpassingen gemaakt aan de GTW-08rft80 schreef op zaterdag 14 oktober 2023 @ 20:14:
[...]
Hi, zou je je volledige esp configuratie kunnen delen? Ik heb een esp wemos d1 met een 485 module gecombineerd, groene lampje op de GWT08 brandt maar krijg error in esphome
code:
1 2 3 [20:13:11][D][modbus_controller:040]: Modbus command to device=100 register=0x111 countdown=0 no response received - removed from send queue [20:13:11][C][modbus_controller:298]: ModbusController: [20:13:11][C][modbus_controller:299]: Address: 0x64
benieuwd of jij tips hebt
Ik heb geen mogelijkheid om gnd aan te sluiten, heb slechts 2 terminals op mijn rs485 module, A en B, die heb ik inderdaad kruislings aangesloten.willemoldemans schreef op zaterdag 14 oktober 2023 @ 21:03:
[...]
heb je je A -> B en B-> A en GND goed aangesloten? je adres van 100 zou moeten kloppen ik heb verder geen aanpassingen gemaakt aan de GTW-08
ik heb mijn eerdere yaml post bijgewerkt met de laatste versie, de Esphome header heb ik weg gelaten. ik werk veel met substitiutions en packages (heb een stuk of 20 tuya esphome devices ih huis)
Dat is wel vreemd, ben niet direct bekend met modbus (protocol) maar wel met rs485(hardware layer). Dit is een differentiaal signaal maar zou toch wel een ground en/of shield verwachten om het potientiaal van het signaal te definiëren. Je rs485 module is waarschijnlijk niet galvanisch gescheiden, je kan dan gewoon de zelfde GND als de voeding gebruiken.rft80 schreef op zaterdag 14 oktober 2023 @ 21:41:
[...]
Ik heb geen mogelijkheid om gnd aan te sluiten, heb slechts 2 terminals op mijn rs485 module, A en B, die heb ik inderdaad kruislings aangesloten.
Top, dank je - zelfde principe hier met substitution. Heb ook meer modbus connecties met esp maar daar zit geen gnd kabel bij.
[ Voor 4% gewijzigd door willemoldemans op 15-10-2023 09:48 ]
:strip_exif()/f/image/QD864ulVfTT44jf5A0xerf7T.jpg?f=fotoalbum_large)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
| 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) |
er zijn wel wat omwegen om dit voor elkaar te krijgen. Als het goed is kan je het vermogen van de warmtepomp op 2 manieren manipuleren:bastiaant schreef op dinsdag 17 oktober 2023 @ 08:44:
Wel jammer dat (voor zover ik zie) de piek/dal stroomprijzen en de gasprijs niet via modbus aangesproken kunnen worden. Dan zou je met een dynamisch energiecontract nog steeds op "kosten" kunnen regelen zonder dat je iedere dag met de hand parameters aan moet passen.
[ Voor 44% gewijzigd door pasmanm op 19-10-2023 19:24 ]
Als het goed is ligt mijn ew11(Ali) op de deurmat als ik thuiskom. Maar heb (voor mijn situatie) een betere oplossing, standalone esphome met rs485-modbus. Hiermee kan je in principe alles via Hass-api of mqtt beschikbaar maken. De ew11 had ik besteld voordat ik besefte dat ik nog een m5-stack core met commu-hat had liggen (eerder gebruikt als rc-dash canbus logger voor mijn auto)pasmanm schreef op donderdag 19 oktober 2023 @ 18:40:
@willemoldemans @Bever
Vandaag ook mijn GTW-08 Printplaatje uit Duitsland ontvangen. Straks even erin zetten.
Willem & Bever,
Welke EW11 wifi-modbus hebben jullie besteld?
En hoe regelen jullie de stroom toevoer naar deze unit?
Dank voor de tips
[Afbeelding]
:strip_exif()/f/image/z5fjVaerxJ2jmmSavvLiS06M.jpg?f=fotoalbum_large)
[ Voor 8% gewijzigd door Dust-E op 22-10-2023 15:25 ]
Ik heb dezelfde als Willem. Maar nog niet aangesloten, dus weet nog niet of het werkt.pasmanm schreef op donderdag 19 oktober 2023 @ 18:40:
@willemoldemans @Bever
Vandaag ook mijn GTW-08 Printplaatje uit Duitsland ontvangen. Straks even erin zetten.
Willem & Bever,
Welke EW11 wifi-modbus hebben jullie besteld?
En hoe regelen jullie de stroom toevoer naar deze unit?
Dank voor de tips
[Afbeelding]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| - name: "Elga Retourtemperatuur" #ReturnTemperatureReceived
platform: modbus_controller
modbus_controller_id: epever
id: ReturnTemperatureReceived
internal: false
register_type: read
address: 274
response_size: 1
value_type: S_WORD
accuracy_decimals: 1
device_class: temperature
filters:
- multiply: 0.01
unit_of_measurement: °C |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| sensor:
- name: ${name}
platform: modbus_controller
modbus_controller_id: epever
id: ${entityID}
internal: false
register_type: read
address: ${address}
response_size: 1
value_type: ${type}
accuracy_decimals: 1
device_class: ${class}
filters:
- multiply: ${multiply}
unit_of_measurement: ${unit} |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
| 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 #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 ReturnTemperatureReceived: !include file: templates/modbusSensorRead.yaml vars: entityID: ReturnTemperatureReceived name: "Retour apparaat" address: 274 type: U_WORD #INTEGER16 / maar toch unsigned class: temperature multiply: 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: U_WORD #INTEGER16 / maar toch unsigned class: temperature multiply: 0.001 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: U_WORD #UNSIGNED16 class: temperature multiply: 0.001 unit: °C varZoneTRoom: !include file: templates/modbusSensorRead.yaml vars: entityID: varZoneTRoom name: "Aanvoer Setpoint" address: 1104 type: S_WORD #SIGNED16 class: temperature multiply: 0.01 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 |
:strip_exif()/f/image/z3ldo6E0T8uu5pawjxWXbJ5y.jpg?f=fotoalbum_large)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
| type: picture-elements elements: - entity: binary_sensor.modbus_app_staus_2b5_sww_actief style: left: 18% top: 74% type: state-icon icon: mdi:heat-pump - entity: binary_sensor.modbus_app_staus_2b1_ap_pomp style: left: 70% top: 83% type: state-icon icon: mdi:pump - entity: sensor.modbus_werkelijke_waterdruk style: left: 78% top: 83% type: state-label - entity: binary_sensor.modbus_app_staus_2b6_cv_actief style: left: 68% top: 50% type: state-icon icon: mdi:gas-burner - entity: binary_sensor.modbus_app_staus_2b2_3_weg_klep_open style: left: 75% top: 30% type: state-icon icon: mdi:valve-open - entity: binary_sensor.modbus_app_staus_2b4_3_weg_klep_gesloten style: left: 75% top: 43% type: state-icon icon: mdi:valve-closed - entity: sensor.modbus_retour_wp style: left: 64% top: 13% type: state-label - entity: sensor.modbus_aanvoer_apparaat style: left: 64% top: 23% type: state-label - entity: sensor.modbus_aanvoer_wp style: left: 69% top: 66% type: state-label - entity: sensor.modbus_buitentemperatuur style: left: 8% top: 20% type: state-label image: https://portal.husdata.se/img/BV_3_HA.png |
[ Voor 3% gewijzigd door willemoldemans op 22-10-2023 14:14 ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
| sensor:
# 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.h_wp_power #id of your powermeter
internal: false
unit_of_measurement: 'W'
device_class: power
accuracy_decimals: 0
filters:
- timeout:
timeout: 2min
value: 0
- round: 0
- name: "COP"
platform: template
id: elgaCOP
internal: False
unit_of_measurement: "COP"
lambda: |-
if( id(pm_warmtepomp_energy_power).state >= 60 )
{
float Deltat = id(Elga_Aanvoertempearatuur_WP).state - id(Elga_Retourtemperatuur_WP).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 0.0;
}
return 0.0;
# 4 Apparaatinformatie GTW-08 address 1 / 11
# 5 Systeemontdekking address 128 / 200
- name: "GTW08 DeviceTypeBoard" #Type apparaat dat zich bevindt op instance 1 (CUEHC, EEC, SCB,..)
platform: modbus_controller
modbus_controller_id: epever
id: GTW08_DeviceTypeBoard
internal: false
register_type: read
address: 129
response_size: 2
value_type: U_WORD
- name: "GTW08 Softwareversie" #Softwareversie van apparaat dat zich bevindt op instance 1 (CU-EHC, EEC, SCB,..)
platform: modbus_controller
modbus_controller_id: epever
id: GTW08_Softwareversie
internal: false
register_type: read
address: 130
response_size: 2
value_type: U_WORD
- name: "GTW08 DeviceConfigurationTableVersion" #Versie configuratietabel van apparaat dat zich bevindt op instance 1 (CU-EHC, EEC, SCB,..)
platform: modbus_controller
modbus_controller_id: epever
id: GTW08_DeviceConfigurationTableVersion
internal: false
register_type: read
address: 131
response_size: 2
value_type: U_WORD
- name: "GTW08 HardwareVersion" #Hardwareversie van apparaat dat zich bevindt op instance 1 (CU-EHC, EEC, SCB,..)
platform: modbus_controller
modbus_controller_id: epever
id: GTW08_HardwareVersion
internal: false
register_type: read
address: 132
response_size: 2
value_type: U_WORD
# - name: "GTW08 ArticleNumber1 32 25" #Artikelnummer van apparaat dat zich bevindt op instance 1 (CU-EHC, EEC, SCB,..)
# platform: modbus_controller
# modbus_controller_id: epever
# id: GTW08_ArticleNumber1_32_25
# internal: false
# register_type: holding
# address: 133
# response_size: 2
# value_type: U_DWORD
# - name: "GTW08 ArticleNumber1 16 9" #Artikelnummer van apparaat dat zich bevindt op instance 1 (CU-EHC, EEC, SCB,..)
# platform: modbus_controller
# modbus_controller_id: epever
# id: GTW08_ArticleNumber1_16_9
# internal: false
# register_type: holding
# address: 134
# response_size: 2
# value_type: U_DWORD
# 6 Bewaking hoofdregeling address 256 / 352
# - name: "Elga PowerSetpoint" #Vermogenssetpoint warmtevraag om naar het CUapparaat te sturen
# platform: modbus_controller
# modbus_controller_id: epever
# id: Elga_PowerSetpoint
# internal: false
# register_type: read
# address: 256
# response_size: 2
# value_type: U_WORD
# accuracy_decimals: 1
# device_class: power
# filters:
# - multiply: 1
# unit_of_measurement: W
# - name: "Elga TemperatureSetpoint 8-1" #Temperatuursetpoint warmtevraag om naar het CUapparaat te sturen
# platform: modbus_controller
# modbus_controller_id: epever
# id: Elga_TemperatureSetpoint_8_1
# internal: false
# register_type: read
# address: 257
# response_size: 1
# value_type: S_WORD
# accuracy_decimals: 1
# device_class: temperature
# filters:
# - multiply: 0.01
# unit_of_measurement: °C
# - name: "Elga AlgoritthmType" #Type regeling (0 : Beide; 1 : Vermogen; 2 : Temperatuur, 3 : Geen)
# platform: modbus_controller
# modbus_controller_id: epever
# id: Elga_AlgoritthmType
# internal: false
# register_type: holding
# address: 258
# response_size: 1
# value_type: S_WORD
# accuracy_decimals: 1
# - name: "Elga HeatDemandtype" #Type warmtevraag (0 : Geen; 7 : Verwarming; 8 : Koeling)
# platform: modbus_controller
# modbus_controller_id: epever
# id: Elga_HeatDemandtype
# internal: false
# register_type: holding
# address: 259
# response_size: 1
# value_type: S_WORD
# accuracy_decimals: 1
- name: "Elga PowerActualReceived" #Werkelijk uitgangsvermogen (totale werkelijke vermogen ontvangen van de aangesloten ketel)
platform: modbus_controller
modbus_controller_id: epever
id: Elga_PowerActualReceived
internal: false
register_type: read
address: 272
response_size: 2
value_type: U_WORD
accuracy_decimals: 1
device_class: power
filters:
- multiply: 0.01
unit_of_measurement: kW
- name: "Elga Aanvoertempearatuur Combi" #FlowTemperatureReceived
platform: modbus_controller
modbus_controller_id: epever
id: FlowTemperatureReceived
internal: false
register_type: read
address: 273
response_size: 2
value_type: S_WORD
accuracy_decimals: 1
device_class: temperature
filters:
- multiply: 0.01
unit_of_measurement: °C
- name: "Elga Retourtemperatuur" #ReturnTemperatureReceived
platform: modbus_controller
modbus_controller_id: epever
id: ReturnTemperatureReceived
internal: false
register_type: read
address: 274
response_size: 2
value_type: S_WORD
accuracy_decimals: 1
device_class: temperature
filters:
- multiply: 0.01
unit_of_measurement: °C
# - name: "Elga ProducerManagerStatusBitfieldReceived" #0 Pomp actief, 1 Vermogen motor actief (brander, compressor of backup), 2 SWW in uitvoering, 3 CV mogelijk, 4 SWW mogelijk, 5 Koeling mogelijk, 6 Elektrisch mogelijk, 7 Vergrendeling aanwezig
# platform: modbus_controller
# modbus_controller_id: epever
# id: Elga_ProducerManagerStatusBitfieldReceived
# internal: false
# register_type: holding
# address: 275
# response_size: 1
# value_type: S_WORD
# accuracy_decimals: 1
# - name: "Elga ProducerManagerRequestReceived" #0 Vorstbescherming, 1 Vorstbescherming alleen pomp, 2 Schoorsteen / inbedrijfstellingsmodus, 3 Aanvraag service
# platform: modbus_controller
# modbus_controller_id: epever
# id: Elga_ProducerManagerRequestReceived
# internal: false
# register_type: holding
# address: 276
# response_size: 1
# value_type: S_WORD
# accuracy_decimals: 1
- name: "Elga Appliance Error 8-1" #0 Fout apparaatstroom (0xFFFF betekent geen stroom)
platform: modbus_controller
modbus_controller_id: epever
id: Elga_Appliance_Error_8_1
internal: false
register_type: read
address: 277
response_size: 2
value_type: U_WORD
# - name: "Elga Appliance Error Priority" #0: Vergrendeling, 3: Blokkering, 6: Waarschuwing, 255: Geen fout
# platform: modbus_controller
# modbus_controller_id: epever
# id: Elga_Appliance_Error_Priority
# internal: false
# register_type: holding
# address: 278
# response_size: 1
# value_type: S_WORD
# - name: "Elga Appliance status 1" #b0: varVlamAan, 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: Elga_Appliance_status_1
# internal: false
# register_type: holding
# address: 279
# response_size: 1
# value_type: U_WORD
- name: "Elga varChCtrBurnerStarts" #Teller branderstarts
platform: modbus_controller
modbus_controller_id: epever
id: Elga_varChCtrBurnerStarts
internal: false
register_type: read
address: 288
response_size: 2
value_type: U_DWORD
- name: "Elga varApCtrServiceBurningHours 8-1" #Aantal uren dat het apparaat actief was na servicebeurt
platform: modbus_controller
modbus_controller_id: epever
id: Elga_varApCtrServiceBurningHours_8_1
internal: false
register_type: read
address: 292
response_size: 2
value_type: U_WORD
filters:
- multiply: 0.1
unit_of_measurement: hours
- name: "Elga varApCtrServiceBurnerStarts 24-17" #Aantal succesvolle compressorstarts na servicebeurt
platform: modbus_controller
modbus_controller_id: epever
id: Elga_varApCtrServiceBurnerStarts_24_17
internal: false
register_type: read
address: 293
response_size: 2
value_type: U_DWORD
- name: "Elga varApCtrBackup1Starts 24-17" #Teller starts backup1
platform: modbus_controller
modbus_controller_id: epever
id: Elga_varApCtrBackup1Starts_24_17
internal: false
register_type: read
address: 295
response_size: 2
value_type: U_DWORD
- name: "Elga varApCtrHoursTotal 8-1" #Aantal uren dat apparaat actief was
platform: modbus_controller
modbus_controller_id: epever
id: Elga_varApCtrHoursTotal_8_1
internal: false
register_type: read
address: 303
response_size: 2
value_type: U_DWORD
filters:
- multiply: 0.1
unit_of_measurement: hours
# 7 Apparaat address 384 / 503
- name: "Elga Buitentemperatuur" #varApTOutside
platform: modbus_controller
modbus_controller_id: epever
id: varApTOutside
internal: false
register_type: read
address: 384
response_size: 2
value_type: S_WORD
accuracy_decimals: 1
device_class: temperature
filters:
- multiply: 0.01
unit_of_measurement: °C
# - name: "Elga varApSeasonMode" #Seizoensmodus actief, 0: Winter, 1:Bescherming tegen vorst in de winter, 2:Zomer neutrale band, 3: Zomer
# platform: modbus_controller
# modbus_controller_id: epever
# id: Elga_varApSeasonMode
# internal: false
# register_type: holding
# address: 385
# response_size: 1
# value_type: S_WORD
# accuracy_decimals: 1
- name: "Elga parApSummerWinter 8-1" #Buitentemperatuur: bovengrens voor verwarming (30,5 betekent uitgeschakeld)
platform: modbus_controller
modbus_controller_id: epever
id: Elga_parApSummerWinter_8_1
internal: false
register_type: holding
address: 386
response_size: 2
value_type: U_WORD
accuracy_decimals: 2
device_class: temperature
filters:
- multiply: 0.01
unit_of_measurement: °C
- name: "Elga parApNeutralBandSummerWinter 8-1" #Alleen gebruikt wanneer de generator koeling nodig heeft. Neutrale band waarbij de HP wordt gedeactiveerd
platform: modbus_controller
modbus_controller_id: epever
id: Elga_parApNeutralBandSummerWinter_8_1
internal: false
register_type: holding
address: 387
response_size: 2
value_type: U_WORD
- name: "Elga parApFrostMinToutside 8 -1" #Buitentemperatuur waaronder de antivriesbescherming wordt geactiveerd
platform: modbus_controller
modbus_controller_id: epever
id: Elga_parApFrostMinToutside_8_1
internal: false
register_type: holding
address: 388
response_size: 2
value_type: S_WORD
accuracy_decimals: 2
device_class: temperature
filters:
- multiply: 0.01
unit_of_measurement: °C
# - name: "Elga parApForceSummerMode" #De verwarming is gestopt. Heet water wordt gehandhaafd. Forceer zomerstand, 0: Off, 1: On
# platform: modbus_controller
# modbus_controller_id: epever
# id: Elga_parApForceSummerMode
# internal: false
# register_type: holding
# address: 389
# response_size: 1
# value_type: S_WORD
- name: "Elga varApTflow" #Stromingstemperatuur
platform: modbus_controller
modbus_controller_id: epever
id: Elga_varApTflow
internal: false
register_type: read
address: 400
response_size: 2
value_type: S_WORD
device_class: temperature
accuracy_decimals: 2
filters:
- multiply: 0.01
unit_of_measurement: °C
- name: "Elga varApTreturn" #Retourtemperatuur
platform: modbus_controller
modbus_controller_id: epever
id: Elga_varApTreturn
internal: false
register_type: holding
address: 401
response_size: 1
value_type: S_WORD
device_class: temperature
accuracy_decimals: 2
filters:
- multiply: 0.01
unit_of_measurement: °C
- name: "Elga Aanvoertempearatuur WP" #remeha_varHpHeatPumpTF - Stromingstemperatuur verwarmingspomp
platform: modbus_controller
modbus_controller_id: epever
id: Elga_Aanvoertempearatuur_WP
internal: false
register_type: holding
address: 403
response_size: 2
value_type: S_WORD
device_class: temperature
accuracy_decimals: 1
filters:
- multiply: 0.01
unit_of_measurement: °C
- name: "Elga Retourtemperatuur WP" #varHpHeatPumpTR 8 -1 - Retourtemperatuur verwarmingspomp
platform: modbus_controller
modbus_controller_id: epever
id: Elga_Retourtemperatuur_WP
internal: false
register_type: holding
address: 404
response_size: 2
value_type: S_WORD
device_class: temperature
accuracy_decimals: 1
filters:
- multiply: 0.01
unit_of_measurement: °C
- name: "Elga varApInternalSetpoint" #Intern setpoint voor warmwaterproductie
platform: modbus_controller
modbus_controller_id: epever
id: Elga_varApInternalSetpoint
internal: false
register_type: holding
address: 405
response_size: 2
value_type: U_WORD
device_class: temperature
accuracy_decimals: 1
filters:
- multiply: 0.01
unit_of_measurement: °C
- name: "Elga Waterdruk" #ApWaterPressure
platform: modbus_controller
modbus_controller_id: epever
id: ApWaterPressure
internal: false
register_type: read
address: 409
response_size: 1
value_type: U_WORD
accuracy_decimals: 1
device_class: pressure
filters:
- multiply: 0.1
unit_of_measurement: bar
- name: "Elga Waterdoorstroming" #varApFlowmeter
platform: modbus_controller
modbus_controller_id: epever
id: varApFlowmeter
internal: false
register_type: holding
address: 410
response_size: 2
value_type: U_WORD
accuracy_decimals: 1
device_class: water
filters:
- multiply: 0.01
unit_of_measurement: "l/min"
- name: "Elga varApStatus" #Status van apparaat
platform: modbus_controller
modbus_controller_id: epever
id: Elga_varApStatus
internal: false
register_type: holding
address: 411
response_size: 2
value_type: S_WORD
- name: "Elga varApSubStatus" #Substatus van apparaat
platform: modbus_controller
modbus_controller_id: epever
id: Elga_arApSubStatus
internal: false
register_type: holding
address: 412
response_size: 2
value_type: S_WORD
- name: "Elga varApPowerActual" #Werkelijk geproduceerd relatief vermogen
platform: modbus_controller
modbus_controller_id: epever
id: Elga_varApPowerActual
internal: false
register_type: read
address: 413
response_size: 2
value_type: U_WORD
filters:
- calibrate_linear:
method: least_squares
datapoints:
# Map 0.0 (from sensor) to 1.0 (true value)
- 0.0 -> 0
- 65535 -> 100
unit_of_measurement: "%"
- name: "Elga varHePowerSetpoint" #Vermogenssetpoint in % van max
platform: modbus_controller
modbus_controller_id: epever
id: Elga_varHePowerSetpoint
internal: false
register_type: read
address: 414
response_size: 2
value_type: U_WORD
filters:
- calibrate_linear:
method: least_squares
datapoints:
# Map 0.0 (from sensor) to 1.0 (true value)
- 0.0 -> 0
- 65535 -> 100
unit_of_measurement: "%"
- name: "Elga Energieverbruik totaal" #varApChEnergyConsumption
platform: modbus_controller
modbus_controller_id: epever
id: varApChEnergyConsumption
internal: false
register_type: read
address: 433
response_size: 2
value_type: U_DWORD
accuracy_decimals: 1
device_class: energy
filters:
- multiply: 1
unit_of_measurement: kWh
# 8 Service address 512 / 551
# - name: "Elga varApServiceRequired" #Service is vereist, 0:NEE, 1:JA
# platform: modbus_controller
# modbus_controller_id: epever
# id: Elga_varApServiceRequired
# internal: false
# register_type: holding
# address: 512
# response_size: 1
# value_type: S_DWORD
# - name: "Elga varApCurrentOrUpcomingServiceNotification" #Huidige of aanstaande servicemelding 1=A, 2=B, 3=C, 4=Aangepast
# platform: modbus_controller
# modbus_controller_id: epever
# id: Elga_varApCurrentOrUpcomingServiceNotification
# internal: false
# register_type: holding
# address: 513
# response_size: 1
# value_type: S_DWORD
- name: "Elga varApCtrServiceBurningHours" #Aantal uren dat het apparaat actief was na servicebeurt
platform: modbus_controller
modbus_controller_id: epever
id: Elga_varApCtrServiceBurningHours
internal: false
register_type: read
address: 514
response_size: 2
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
unit_of_measurement: h
- name: "Elga varApCtrServiceOperatingHours" #Aantal uren sinds de vorige servicebeurt van het apparaat
platform: modbus_controller
modbus_controller_id: epever
id: Elga_varApCtrServiceOperatingHours
internal: false
register_type: read
address: 515
response_size: 2
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
unit_of_measurement: h
- name: "Elga varApCtrServiceBurnerStarts" #Aantal succesvolle compressorstarts na servicebeurt
platform: modbus_controller
modbus_controller_id: epever
id: Elga_varApCtrServiceBurnerStarts
internal: false
register_type: read
address: 516
response_size: 2
value_type: U_DWORD
- name: "Elga varApplianceOnError" #Fout aanwezig op het apparaat
platform: modbus_controller
modbus_controller_id: epever
id: Elga_varApplianceOnError
internal: false
register_type: holding
address: 531
response_size: 1
value_type: S_DWORD
- name: "Elga varACurrentError1" #Codefout van het apparaat op instance 1 (CUEHC, EEC, SCB,..)
platform: modbus_controller
modbus_controller_id: epever
id: Elga_varACurrentError1
internal: false
register_type: read
address: 532
response_size: 2
value_type: U_WORD
# - name: "Elga ErroPriority1" #Ernst van de fout van het apparaat op instance 1, 0 : Vergrendeling, 3 : Blokkering, 6 : Waarschuwing
# platform: modbus_controller
# modbus_controller_id: epever
# id: Elga_ErroPriority1
# internal: false
# register_type: holding
# address: 533
# response_size: 1
# value_type: S_DWORD
# 9 Zones (max. 12 zones) address 640 / 1120
- name: "Elga parZoneMaxPreHeatTime" #Maximale voorverwarmingstijd
platform: modbus_controller
modbus_controller_id: epever
id: Elga_parZoneMaxPreHeatTime
internal: false
register_type: holding
address: 677
response_size: 2
value_type: U_WORD
device_class: timestamp
filters:
- multiply: 0.1
unit_of_measurement: min
- name: "Elga Aanvoertemperatuur setpoint" #varZoneTemperatureSetpoint
platform: modbus_controller
modbus_controller_id: epever
id: varZoneTemperatureSetpoint
internal: false
register_type: read
address: 1101
response_size: 2
value_type: U_WORD
accuracy_decimals: 1
device_class: temperature
filters:
- multiply: 0.01
unit_of_measurement: °C
- name: "Elga Ruimtesetpoint" #remeha_varZoneTRoomSetpoint
platform: modbus_controller
modbus_controller_id: epever
id: varZoneTRoomSetpoint
internal: false
register_type: read
address: 1102
response_size: 2
value_type: S_WORD
accuracy_decimals: 1
device_class: temperature
filters:
- multiply: 0.1
unit_of_measurement: °C
- name: "Elga Ruimtetemperatuur" #varZoneTRoom
platform: modbus_controller
modbus_controller_id: epever
id: varZoneTRoom
internal: false
register_type: read
address: 1104
response_size: 2
value_type: S_WORD
device_class: temperature
accuracy_decimals: 1
filters:
- multiply: 0.1
unit_of_measurement: °C
- name: "Elga varZoneHdOnOffDemand" #Warmtevraag actief, aan/uit, 0 : UIT, 1: AAN
platform: modbus_controller
modbus_controller_id: epever
id: Elga_varZoneHdOnOffDemand
internal: false
register_type: holding
address: 1106
response_size: 1
value_type: S_DWORD
# 10 Cascade address 7000 / 7146
# 11 Buffertank address 7500 / 7606
binary_sensor:
#appliance status 1: 279
# b0: varVlamAan
# 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: varVlamAan
name: "App Staus 1 b0 VlamAan"
register_type: holding
address: 279
bitmask: 0x00 #(bit 0)
- 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)
text_sensor:
# 4 Apparaatinformatie GTW-08 address 1 / 11
# 5 Systeemontdekking address 128 / 200
# 6 Bewaking hoofdregeling address 256 / 352
- 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;
# name: "Elga ProducerManagerStatusBitfieldReceived" #0 Pomp actief, 1 Vermogen motor actief (brander, compressor of backup), 2 SWW in uitvoering, 3 CV mogelijk, 4 SWW mogelijk, 5 Koeling mogelijk, 6 Elektrisch mogelijk, 7 Vergrendeling aanwezig
- platform: modbus_controller
modbus_controller_id: epever
id: ProducerManagerStatusBitfieldReceived
register_type: holding
address: 275
raw_encode: NONE
response_size: 2
name: "Producer Manager Status Bitfield Received"
lambda: |-
uint8_t value = data[0];
switch (value) {
case 0: return std::string("Pomp actief");
case 1: return std::string("Vermogen motor actief (brander, compressor of backup)");
case 2: return std::string("SWW in uitvoering");
case 3: return std::string("CV mogelijk");
case 4: return std::string("SWW mogelijk");
case 5: return std::string("Koeling mogelijk");
case 6: return std::string("Elektrisch mogelijk");
case 7: return std::string("Vergrendeling aanwezig");
default: return std::to_string(value);
}
return x;
# name: "Elga ProducerManagerRequestReceived" #0 Vorstbescherming, 1 Vorstbescherming alleen pomp, 2 Schoorsteen / inbedrijfstellingsmodus, 3 Aanvraag service
- platform: modbus_controller
modbus_controller_id: epever
id: ProducerManagerRequestReceived
register_type: holding
address: 276
raw_encode: NONE
response_size: 2
name: "Producer Manager Request Received"
lambda: |-
uint8_t value = data[0];
switch (value) {
case 0: return std::string("Vorstbescherming");
case 1: return std::string("Vorstbescherming alleen pomp");
case 2: return std::string("Schoorsteen / inbedrijfstellingsmodus");
case 3: return std::string("Aanvraag service");
default: return std::to_string(value);
}
return x;
# name: "Elga Appliance Error Priority" #0: Vergrendeling, 3: Blokkering, 6: Waarschuwing, 255: Geen fout
- platform: modbus_controller
modbus_controller_id: epever
id: ApplianceErrorPriority
register_type: holding
address: 278
raw_encode: NONE
response_size: 2
name: "Appliance Error Priority"
lambda: |-
uint8_t value = data[0];
switch (value) {
case 0: return std::string("Vergrendeling");
case 3: return std::string("Blokkering");
case 6: return std::string("Waarschuwing");
case 255: return std::string("Geen fout");
default: return std::to_string(value);
}
return x;
# 7 Apparaat address 384 / 503
- 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;
# name: "Elga parApForceSummerMode" #De verwarming is gestopt. Heet water wordt gehandhaafd. Forceer zomerstand, 0: Off, 1: On
- platform: modbus_controller
modbus_controller_id: epever
id: parApForceSummerMode
register_type: holding
address: 389
response_size: 2
raw_encode: NONE
name: "parApForceSummerMode"
lambda: |-
uint8_t value = data[0];
switch (value) {
case 0: return std::string("Off");
case 1: return std::string("On");
default: return std::to_string(value);
}
return x;
# 8 Service address 512 / 551
# name: "Elga varApServiceRequired" #Service is vereist, 0:NEE, 1:JA
- platform: modbus_controller
modbus_controller_id: epever
id: varApServiceRequired
register_type: holding
address: 512
response_size: 2
raw_encode: NONE
name: "varApServiceRequired"
lambda: |-
uint8_t value = data[0];
switch (value) {
case 0: return std::string("NEE");
case 1: return std::string("JA");
default: return std::to_string(value);
}
return x;
# name: "Elga varApCurrentOrUpcomingServiceNotification" #Huidige of aanstaande servicemelding 1=A, 2=B, 3=C, 4=Aangepast
- platform: modbus_controller
modbus_controller_id: epever
id: varApCurrentOrUpcomingServiceNotification
register_type: holding
address: 513
response_size: 2
raw_encode: NONE
name: "varApCurrentOrUpcomingServiceNotification"
lambda: |-
uint8_t value = data[0];
switch (value) {
case 1: return std::string("1=A");
case 2: return std::string("2=B");
case 3: return std::string("3=c");
case 4: return std::string("4=C");
default: return std::to_string(value);
}
return x;
# name: "Elga ErroPriority1" #Ernst van de fout van het apparaat op instance 1, 0 : Vergrendeling, 3 : Blokkering, 6 : Waarschuwing
- platform: modbus_controller
modbus_controller_id: epever
id: ErroPriority1
register_type: holding
address: 533
response_size: 2
raw_encode: NONE
name: "ErroPriority1"
lambda: |-
uint8_t value = data[0];
switch (value) {
case 0: return std::string("Vergrendeling");
case 1: return std::string("Ernst van de fout van het apparaat op instance 1");
case 3: return std::string("Blokkering");
case 6: return std::string("Waarschuwing");
default: return std::to_string(value);
}
return x;
# 9 Zones (max. 12 zones) address 640 / 1120
- 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: 1109
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: 1109
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;
# 10 Cascade address 7000 / 7146
# 11 Buffertank address 7500 / 7606
number:
- platform: modbus_controller
modbus_controller_id: epever
id: Num_TemperatureSetpoint
name: "Temperatuur setpoint"
address: 257
value_type: S_WORD
multiply: 100 |
[ Voor 35% gewijzigd door Dust-E op 27-12-2023 12:36 ]
1
2
3
4
5
6
7
| - platform: modbus_controller modbus_controller_id: epever id: varVlamAan name: "App Staus 1(b0): VlamAan" register_type: holding address: 279 bitmask: 0x00 #(bit 0) |
Dust-E schreef op zaterdag 4 november 2023 @ 14:03:
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15sensor: - name: "Elga PowerActualReceived" #Werkelijk uitgangsvermogen (totale werkelijke vermogen ontvangen van de aangesloten ketel) platform: modbus_controller modbus_controller_id: epever id: Elga_PowerActualReceived internal: false register_type: holding address: 272 response_size: 1 value_type: S_DWORD accuracy_decimals: 1 device_class: power filters: - multiply: 1 unit_of_measurement: W
werktDust-E schreef op dinsdag 7 november 2023 @ 12:26:
@willemoldemans
Zou je het nog eens wiilen proberen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| #reading enums: https://github.com/esphome/feature-requests/issues/1663#issuecomment-1061842308 text_sensor: - platform: modbus_controller modbus_controller_id: epever id: HeatDemandtype register_type: read address: 259 raw_encode: NONE name: "Type warmtevraag" lambda: |- uint8_t value = data[0]; switch (value) { case 0: return std::string("Geen"); case 7: return std::string("Verwarming"); case 8: return std::string("Koeling"); default: return std::to_string(value); } return x; - platform: modbus_controller modbus_controller_id: epever id: varApSeasonMode register_type: holding address: 385 raw_encode: NONE name: "Seizoensmodus actief" lambda: |- //uint8_t value uint8_t value = data[0]; // 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: std::to_string(value); } return x; |
Dust-E schreef op zondag 5 november 2023 @ 09:38:
@bastiaant
Regel 209 had ik hem op een andere manier toegevoegd
Heb hem nu ook in de binary_sensor
Is dit zo goed?
code:
1 2 3 4 5 6 7 - platform: modbus_controller modbus_controller_id: epever id: varVlamAan name: "App Staus 1(b0): VlamAan" register_type: holding address: 279 bitmask: 0x00 #(bit 0)
/f/image/Q0oQJABpaVq0PW3KC9kjdfK5.png?f=fotoalbum_large)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
| - platform: template
sensors:
elga_deltat:
friendly_name: "Elga DeltaT"
unit_of_measurement: '°C'
value_template: >
{{ states('sensor.elga_aanvoertemperatuur_av')|float - states('sensor.elga_retourtemperatuur_av')|float}}
elga_warmte:
friendly_name: "Elga Warmtevermogen"
unit_of_measurement: 'W'
value_template: >
{{ states('sensor.elga_deltat')|float * 69.766667 * states('sensor.elga_flow_aangepast')|float | round(0) }}
elga_elektriciteit:
friendly_name: "Elga Elektrisch vermogen"
unit_of_measurement: 'W'
value_template: >
{{ states('sensor.elga_inputpower_av')|float | round(0) }}
elga_cop:
friendly_name: "Elga COP"
unit_of_measurement: 'W/W'
value_template: >
{% if states('sensor.pm_warmtepomp_energy_power') | float(0) >=60 %}
{{ states('sensor.elga_warmte') | float(0) / states('sensor.elga_elektriciteit')| float(0) | round (2) }}
{% else %} 0.0 {% endif %}
elga_cop_2:
friendly_name: "Elga COP 2"
unit_of_measurement: 'W/W'
value_template: >
{% if states('sensor.elga_elektriciteit') | float(0) >=60 %}
{{ states('sensor.elga_cop_av') | float(0) | round (2) }}
{% else %} 0.0 {% endif %}
elga_warmte_2:
friendly_name: "Elga warmte 2"
unit_of_measurement: 'W'
value_template: >
{% if states('sensor.elga_elektriciteit') | float(0) >=60 %}
{{ states('sensor.elga_warmte_av') | float(0) | round (2) }}
{% else %} 0.0 {% endif %}
elga_retourtemperatuur_aangepast:
friendly_name: "Elga retour aangepast"
unit_of_measurement: '°C'
value_template: >
{{ states('sensor.elga_retourtemperatuur')|float(2) + 0.4}}
elga_flow_aangepast:
friendly_name: "Elga flow aangepast"
unit_of_measurement: 'l/min'
value_template: >
{{ states('sensor.elga_flow_av')|float(2) + 1}}
- platform: statistics
name: "elga_aanvoertemperatuur_av"
entity_id: sensor.elga_aanvoertempearatuur_wp
state_characteristic: mean
max_age:
minutes: 2
- platform: statistics
name: "elga_retourtemperatuur_av"
entity_id: sensor.elga_retourtemperatuur_aangepast
state_characteristic: mean
max_age:
minutes: 2
- platform: statistics
name: "elga_buitentemperatuur_av"
entity_id: sensor.elga_buitentemperatuur
state_characteristic: median
max_age:
minutes: 2
- platform: statistics
name: "elga_flow_av"
entity_id: sensor.elga_waterdoorstroming
state_characteristic: mean
max_age:
minutes: 2
- platform: statistics
name: "elga_inputpower_av"
entity_id: sensor.pm_warmtepomp_energy_power
state_characteristic: mean
max_age:
minutes: 2
- platform: statistics
name: "elga_warmte_av"
entity_id: sensor.elga_warmte
state_characteristic: mean
max_age:
minutes: 5
- platform: statistics
name: "elga_cop_av"
entity_id: sensor.elga_cop
state_characteristic: mean
max_age:
minutes: 5 |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
| type: custom:apexcharts-card
header:
show: false
series:
- entity: sensor.pm_warmtepomp_energy_power
name: vermogen
- entity: sensor.elga_warmte_2
name: vermogen
- entity: sensor.elga_cop_2
name: cop
- entity: sensor.elga_aanvoertemperatuur_av
name: aanvoertemperatuur
- entity: sensor.elga_retourtemperatuur_av
name: retourtemperatuur
- entity: sensor.elga_buitentemperatuur_av
name: buitentemperatuur
graph_span: 18h
update_interval: 1m
all_series_config:
stroke_width: 2
curve: stepline
apex_config:
legend:
show: true
chart:
height: 900
yaxis:
- title:
text: vermogen warmtepomp
opposite: false
min: 0
max: 5000
tickAmount: 10
decimals: 0
- title:
text: vermogen warmtepomp
opposite: false
show: false
min: 0
max: 5000
tickAmount: 10
decimals: 0
- title:
text: cop
opposite: false
min: 0
max: 10
tickAmount: 10
decimals: 0
- title:
text: temperatuur
opposite: true
min: -15
max: 35
tickAmount: 10
decimals: 0
- title:
text: temperatuur
show: false
min: -15
max: 35
tickAmount: 10
decimals: 0
- title:
text: temperatuur
show: false
min: -15
max: 35
tickAmount: 10
decimals: 0 |
[ Voor 3% gewijzigd door JBtL op 14-11-2023 18:07 ]
Remeha Elga Ace 4kW - MHI SRK ZS-W 4kW - 5355 Wp ZO - 1000 Wp vlak - 4200 Wp NW - 7x Jaga Strada + zelfbouw DBE - 3xVictron Multiplus II 48V 5000 + 62kWh LFP accu - DoucheWTW + 1.5kW 200l Smart Boiler
Remeha Elga Ace 4kW - MHI SRK ZS-W 4kW - 5355 Wp ZO - 1000 Wp vlak - 4200 Wp NW - 7x Jaga Strada + zelfbouw DBE - 3xVictron Multiplus II 48V 5000 + 62kWh LFP accu - DoucheWTW + 1.5kW 200l Smart Boiler
@willemoldemanswillemoldemans schreef op dinsdag 7 november 2023 @ 14:12:
[...]
werkt
Ik ben er alleen nog niet uit of ik data[0] of data[1] nodig heb, er komt iig geen jibberish meer uit (althans 0 kan ook verkeerd zijn)
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 #reading enums: https://github.com/esphome/feature-requests/issues/1663#issuecomment-1061842308 text_sensor: - platform: modbus_controller modbus_controller_id: epever id: HeatDemandtype register_type: read address: 259 raw_encode: NONE name: "Type warmtevraag" lambda: |- uint8_t value = data[0]; switch (value) { case 0: return std::string("Geen"); case 7: return std::string("Verwarming"); case 8: return std::string("Koeling"); default: return std::to_string(value); } return x; - platform: modbus_controller modbus_controller_id: epever id: varApSeasonMode register_type: holding address: 385 raw_encode: NONE name: "Seizoensmodus actief" lambda: |- //uint8_t value uint8_t value = data[0]; // 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: std::to_string(value); } return x;
:fill(white):strip_exif()/f/image/0eXfNQAKt90N8lPYu0o7d1n6.png?f=user_large)
:fill(white):strip_exif()/f/image/0741uJQOAMFeJc1gULmgNC7D.png?f=user_large)
[ Voor 5% gewijzigd door Dust-E op 19-11-2023 13:28 ]
Het wil bij mij nog niet helemaal lukken:JBtL schreef op dinsdag 14 november 2023 @ 17:45:
Sinds een week ook de GTW-08 draaien hier (icm een Elfin EW11 om de data door te sturen naar homeassistant). Tot nu toe alleen gebruikt om te visualiseren, ziet er mooi uit zo. Dank ook aan @Ruben9477 voor de code om de modbus data in HA te krijgen:
[Afbeelding]
Van boven naar beneden:
Aanvoertemperatuur (paars)
Retourtemperatuur (geel)
COP (rood)
Buitentemperatuur (groen)
Geleverde warmte (blauw)
Gevraagde elektrische vermogen (oranje)
Instellingen thermostaat:
22:30 - 6:30 op 19.5
6:30 - 14:30 op 20.0
14.30 - 22:30 op 20.5
COP is berekend uit geleverde warmte in Watt (deltaT * flow (in l/min) * 69,76666 (warmtecapaciteit water: 4186/60 sec/min) / gevraagde elektrische vermogen in Watt. Vandaag zat de COP dus tussen 6.0 en 7.0, wat je ook mag verwachten met deze vrij hoge buitentemperaturen.
Ik heb in het systeem ook een (geijkte) Kamstrup 403 + een (geijkte) SDM120 zitten - ik kan dus goed zien of de data uit de Elga een beetje klopt. Niet echt dus. Er zijn een paar issues
-> de temperatuursensoren zijn vrij wiebelig, je moet dus over redelijk wat datapunten middelen om enigszins nuttig het geleverde vermogen/COP te bepalen. Ik gebruik 2 minuten als interval, met 5 seconde/polling is dat 24 punten.
-> de gemeten deltaT (aanvoer-retour WP) is 0.4 graad te hoog. Hieruit komt een te hoog geleverd vermogen.
-> de gemeten flow is 1 l/min te laag. Hieruit komt een te laag geleverd vermogen
Deze twee laatste meetfouten heffen elkaar redelijk op, maar alles bij elkaar is de meting van COP/vermogen van de Elga iets aan de hoge kant -> dit heeft ook effect op de hybride omschakeling. Overigens is dit een euvel dat veel warmtepompen lijken te hebben - die van de Elga is nog relatief precies. Ik heb de volgende aanpassingen gedaan om er correcte (geijkt t.o.v. de Kamstrup) en gemiddelde data uit te krijgen:
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104- platform: template sensors: elga_deltat: friendly_name: "Elga DeltaT" unit_of_measurement: '°C' value_template: > {{ states('sensor.elga_aanvoertemperatuur_av')|float - states('sensor.elga_retourtemperatuur_av')|float}} elga_warmte: friendly_name: "Elga Warmtevermogen" unit_of_measurement: 'W' value_template: > {{ states('sensor.elga_deltat')|float * 69.766667 * states('sensor.elga_flow_aangepast')|float | round(0) }} elga_elektriciteit: friendly_name: "Elga Elektrisch vermogen" unit_of_measurement: 'W' value_template: > {{ states('sensor.elga_inputpower_av')|float | round(0) }} elga_cop: friendly_name: "Elga COP" unit_of_measurement: 'W/W' value_template: > {% if states('sensor.pm_warmtepomp_energy_power') | float(0) >=60 %} {{ states('sensor.elga_warmte') | float(0) / states('sensor.elga_elektriciteit')| float(0) | round (2) }} {% else %} 0.0 {% endif %} elga_cop_2: friendly_name: "Elga COP 2" unit_of_measurement: 'W/W' value_template: > {% if states('sensor.elga_elektriciteit') | float(0) >=60 %} {{ states('sensor.elga_cop_av') | float(0) | round (2) }} {% else %} 0.0 {% endif %} elga_warmte_2: friendly_name: "Elga warmte 2" unit_of_measurement: 'W' value_template: > {% if states('sensor.elga_elektriciteit') | float(0) >=60 %} {{ states('sensor.elga_warmte_av') | float(0) | round (2) }} {% else %} 0.0 {% endif %} elga_retourtemperatuur_aangepast: friendly_name: "Elga retour aangepast" unit_of_measurement: '°C' value_template: > {{ states('sensor.elga_retourtemperatuur')|float(2) + 0.4}} elga_flow_aangepast: friendly_name: "Elga flow aangepast" unit_of_measurement: 'l/min' value_template: > {{ states('sensor.elga_flow_av')|float(2) + 1}} - platform: statistics name: "elga_aanvoertemperatuur_av" entity_id: sensor.elga_aanvoertempearatuur_wp state_characteristic: mean max_age: minutes: 2 - platform: statistics name: "elga_retourtemperatuur_av" entity_id: sensor.elga_retourtemperatuur_aangepast state_characteristic: mean max_age: minutes: 2 - platform: statistics name: "elga_buitentemperatuur_av" entity_id: sensor.elga_buitentemperatuur state_characteristic: median max_age: minutes: 2 - platform: statistics name: "elga_flow_av" entity_id: sensor.elga_waterdoorstroming state_characteristic: mean max_age: minutes: 2 - platform: statistics name: "elga_inputpower_av" entity_id: sensor.pm_warmtepomp_energy_power state_characteristic: mean max_age: minutes: 2 - platform: statistics name: "elga_warmte_av" entity_id: sensor.elga_warmte state_characteristic: mean max_age: minutes: 5 - platform: statistics name: "elga_cop_av" entity_id: sensor.elga_cop state_characteristic: mean max_age: minutes: 5
En hier de grafiek (gemaakt met Apexcharts in HA:
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70type: custom:apexcharts-card header: show: false series: - entity: sensor.pm_warmtepomp_energy_power name: vermogen - entity: sensor.elga_warmte_2 name: vermogen - entity: sensor.elga_cop_2 name: cop - entity: sensor.elga_aanvoertemperatuur_av name: aanvoertemperatuur - entity: sensor.elga_retourtemperatuur_av name: retourtemperatuur - entity: sensor.elga_buitentemperatuur_av name: buitentemperatuur graph_span: 18h update_interval: 1m all_series_config: stroke_width: 2 curve: stepline apex_config: legend: show: true chart: height: 900 yaxis: - title: text: vermogen warmtepomp opposite: false min: 0 max: 5000 tickAmount: 10 decimals: 0 - title: text: vermogen warmtepomp opposite: false show: false min: 0 max: 5000 tickAmount: 10 decimals: 0 - title: text: cop opposite: false min: 0 max: 10 tickAmount: 10 decimals: 0 - title: text: temperatuur opposite: true min: -15 max: 35 tickAmount: 10 decimals: 0 - title: text: temperatuur show: false min: -15 max: 35 tickAmount: 10 decimals: 0 - title: text: temperatuur show: false min: -15 max: 35 tickAmount: 10 decimals: 0
Je moet dus al wel een sensor hebben voor het elektrische vermogen wat de Elga vraagt. Liefst geijkt - want de COP is ook nogal afhankelijk van deze meting. Gelukkig gaat elektrisch vermogen meten meestal wat nauwkeuriger dan een warmtemeting.
1
| {{ states('sensor.elga_appliance_status_1')|int|bitwise_and(0x1) > 0 }} |
[ Voor 73% gewijzigd door Technician- op 14-01-2024 13:24 ]
[ Voor 5% gewijzigd door number3 op 23-01-2024 18:46 ]
Wat betreft die laatste optie, ik heb ook een eTwist, wat heb jij dan geïnstalleerd om de EA in HA te integreren, als ik vragen mag?number3 schreef op dinsdag 23 januari 2024 @ 18:45:
Even voor de duidelijkheid, er zijn meerdere opties.
Je hebt een interne bus (in je Elga Ace) naar modbus gateway van Remeha nodig en dan een esphome die dat vertaald naar je Home Assistant.
Of je gebruikt een OTGW met een Open Therm thermostaat (bv iSense) om de integraties met Home Assistant te doen.
Of je gebruikt een eTwist Thermostaat via de R-bus naar OpenTherm Gateway en OTGW om de integratie met Home Assistant.
Ik heb zelf al enige jaren de laatste goed draaien overigens.
Groet
Robert
Ja, exact, dat was de vraag. GWT-08 of OTGW, de laatste eventueel in combinatie met thermostaat.number3 schreef op dinsdag 23 januari 2024 @ 18:45:
Even voor de duidelijkheid, er zijn meerdere opties.
Je hebt een interne bus (in je Elga Ace) naar modbus gateway van Remeha nodig en dan een esphome die dat vertaald naar je Home Assistant.
Of je gebruikt een OTGW met een Open Therm thermostaat (bv iSense) om de integraties met Home Assistant te doen.
Of je gebruikt een eTwist Thermostaat via de R-bus naar OpenTherm Gateway en OTGW om de integratie met Home Assistant.
Ik heb zelf al enige jaren de laatste goed draaien overigens.
Groet
Robert
Ik heb mijn Calenta Ace met een smart service tool via de PC Recom software uitgelezen met Wireshark ernaast. De Recom software praat via een websocket met de tool wat ongeveer hetzelfde protocol gebruikt als mijn oude niet-ace Calenta ketel over rs232 deed (https://github.com/aequitas/remeha-esp). Dus dat is makkelijk te reverse engineeren adhv de XML files die met Recom mee komen. Ik heb al een kleine websocket implementatie in Python geschreven en kan zonder de PC software waardes opvragen (https://github.com/aequit...ample_package/__main__.py). Moet nu nog even het canbus stukje werkend krijgen en kijken of daar gewoon dezelfde bytes overheen gaan als over de websocket. Als dat het geval is dan denk ik dat je voor een paar tientjes een ESP/canbus interface kan bouwen en deze ook voor b.v. de Elge Ace zal gaan werken.PC-fr schreef op zondag 1 januari 2023 @ 18:13:
We hebben een Calenta Ace. Deze heeft een 6-polige aansluiting aan de voorzijde.
Deze is zeer waarschijnlijk gekoppeld met de can-bus. Niet met de mod-bus.
Zijn hier nog nieuwe ontwikkelingen?
/f/image/92d0SmDWAahTR46MQ6DYD25Y.png?f=fotoalbum_large)
[ Voor 15% gewijzigd door royvz op 22-03-2024 22:04 ]
/f/image/pIodjpTnT99v5LGQuaRZy96y.png?f=fotoalbum_large)
Gebruik je signed of unsigned int16? Ik gebruik esphome dus iets andere syntax. signed int16 is daar s_word.KupkuH schreef op dinsdag 24 september 2024 @ 10:12:
[...]
Ik gebruik modbus 403 en 404 voor aanvoer en retour wp:
- name: "M_Aanvoertemperatuur WP" #remeha_varHpHeatPumpTF
slave: 100
address: 403
slave_count: 0
input_type: holding
data_type: int16
scan_interval: 2
device_class: temperature
unit_of_measurement: °C
Gebruik voor modbus settings 57600 baud rate, 8 databits, even parity, 1 stop bit, geen flow control.
Ik zal de conversatie ook verplaatsen naar de juiste thread.
Ik heb nog niet gekeken naar de buitensensor. Ik heb wel een update over de rare +/- afwijking van 0,5 graden voorheen, dit lag aan de Rbus aansluiting. Met andere woorden, rechtstreeks de etwist op de rbus krijg je dus storing op je meetwaarden via modbus in mijn geval. Nu de gtw16 ertussen en alles netjes +/- 0,1 graden. Wellicht straks ook eens een Opentherm gateway ertussen maken met autotune in home assistant.rft80 schreef op zondag 3 november 2024 @ 14:12:
[...]
Thanks.. ik doelde overigens op Remeha, klant service is niet iets waar ze zich mee bezig houden lijkt het
1
2
3
4
5
6
7
8
9
10
11
12
13
| sensor:
- name: "Elga Ace Calculated COP" #varHpCOPCalculated
platform: modbus_controller
modbus_controller_id: modbus_control
id: varHpCOPCalculated
internal: false
register_type: read
address: 462
value_type: U_WORD
accuracy_decimals: 3
filters:
- multiply: 0.001
unit_of_measurement: COP |
Hi, welke Elga Ace versie heb jij? Ik heb deze toegevoegd maar doet bij mij niets anders dan een error genereren:Martidjen schreef op vrijdag 15 november 2024 @ 09:58:
Mag ik deze er even in gooien voor het uitlezen van de berekende COP uit de Elga Ace voor het gebruik met een ESPHome logger op de modbus? Elga berekent hem zelf ook en is blijkbaar ook uit te lezen, deze mistte ik nog in de andere gedeelde codes.
1
2
3
| [17:19:13][E][modbus_controller:091]: Modbus error function code: 0x4 exception: 2 [17:19:13][E][modbus_controller:095]: Modbus error - last command: function code=0x4 register address = 0x1CE registers count=1 payload size=0[17:19:13][E][modbus_controller:091]: Modbus error function code: 0x4 exception: 2 [17:19:13][E][modbus_controller:095]: Modbus error - last command: function code=0x4 register address = 0x1CE registers count=1 payload size=0 |
Ik heb een Elga Ace Mono MB4 MR/H (misschien zit het alleen in de monoblock dan?) Dit register zou de waarde van parameter HM013 uit de Elga weer moeten geven, hierin staat de berekende COP. Is ook uit te lezen op de Elga zelf. Als deze sowieso niets weergeeft in jouw Elga dan zal het waarschijnlijk niet werken helaasrft80 schreef op zondag 17 november 2024 @ 17:19:
[...]
Hi, welke Elga Ace versie heb jij? Ik heb deze toegevoegd maar doet bij mij niets anders dan een error genereren:
code:
1 2 3 [17:19:13][E][modbus_controller:091]: Modbus error function code: 0x4 exception: 2 [17:19:13][E][modbus_controller:095]: Modbus error - last command: function code=0x4 register address = 0x1CE registers count=1 payload size=0[17:19:13][E][modbus_controller:091]: Modbus error function code: 0x4 exception: 2 [17:19:13][E][modbus_controller:095]: Modbus error - last command: function code=0x4 register address = 0x1CE registers count=1 payload size=0
[ Voor 15% gewijzigd door JoepW op 27-10-2025 05:55 ]
Mede oprichter van GoT iRacen & druk met Home Assistant
Kan niet, wel zo: pj in "Remeha Elga Ace monitoren met OTGW"JoepW schreef op zondag 26 oktober 2025 @ 20:30:
Weet iemand welk modbus adres ik moet raadplegen om te bepalen of er warm water (dwh / douche) door de gasketel wordt gemaakt?
Het betreft een elga ace all in one.
Dat zijn geen modbus adressen, dus hoe kan mij dat helpen?pj schreef op maandag 27 oktober 2025 @ 08:27:
[...]
Kan niet, wel zo: pj in "Remeha Elga Ace monitoren met OTGW"
Mede oprichter van GoT iRacen & druk met Home Assistant
Mede oprichter van GoT iRacen & druk met Home Assistant
Wat jammer dat er blijkbaar niemand is die de modbus besturing van een hybride opstelling kan uitleggen. Ik ben verbaasd...JoepW schreef op vrijdag 31 oktober 2025 @ 10:11:
Misschien moet ik de vraag anders stellen na nader onderzoek.
Is iemand er al achter hoe de modbus adressen werken van de Gasketel en Warmtepomp bij de Elga Ace All in One.
Remeha heeft besloten om de adressering behoorlijk ingewikkeld te maken met een "zone aanduiding" (lekker verwarrend) per type apparaat. Ik heb dat stuk van de handleiding nu een paar keer gelezen, maar kan er nog steeds niks mee.
Mede oprichter van GoT iRacen & druk met Home Assistant
@JoepW deze werkt prima. Heb je de modbus module en een rs485 to Wifi/ethernet module? Remeha heeft zelf ook een prima uitleg op haar website.Imanol82 schreef op zondag 5 januari 2025 @ 17:28:
Hallo.
Voor het geval iemand geïnteresseerd is: ik heb dit project voor Baxi op github gemaakt met behulp van een GTW08 en een ESP32.
Ik denk dat het ook voor jouw machines werkt (ik heb wat informatie gekregen op dit forum).
Ik hoop dat het iemand helpt en vooral hoop ik dat we het kunnen verbeteren
https://github.com/Imanol...e-Assistant-with-an-ESP32