Ik gebruik de meegeleverde router nietThinkPad schreef op woensdag 7 december 2022 @ 10:36:
[...]
Edit: Mogelijk niet helemaal waar, de term 'PPTP' is in dit topic ook gevallen. Best kans dat de meegeleverde router een VPN-tunnel opzet (dat dat met insecure PPTP is laten we dan maar even in het midden...)
Ombouw is inderdaad voor het geluid, ik heb twee EVA units hangen een bij de WP en de andere op zolder.borft schreef op woensdag 7 december 2022 @ 10:34:
[...]
Tof om de installatie te zien, bij mij ziet het er heel anders uit. De EVA hangt hier op zolder, bij de verdeler voor de 1e en 2e verdieping. WP + boilvervat staan beneden. Is die ombouw vanwege geluid?
De EVA unit bij de WP is de Master unit, hierop zijn de kamer thermostaat en de motor voor de begane grond op aangesloten. Van hieruit gaat een aansluiting naar de unit op zolder. Hierop zijn alle overige thermostaten en zones op aangesloten.
Ik heb denk trouwens ook de juiste jst connector gevonden, heb ze meteen besteld. Zodra deze binnen zijn zal ik ze passen.
Zo, ik heb even een verzoek bij Remeha neergelegd, of ze misschien een API hebben zodat ik bij alle data kan die ze van mij verzamelen. Dat kon in de oude portal vrij eenvoudig, maar dat hebben ze gesloopt door er een recaptcha tussen te zetten. Dit is hun super klantvriendelijke antwoord op mijn reactie dat het niet een vooruitgang voor eindgebruikers is, omdat die functionaliteit verliezen:
code:
1
2
3
4
5
6
7
8
| Voor Remeha is het nieuwe portaal wel degelijk een vooruitgang. Er worden geen aanpassingen gedaan tbv. eindgebruikers. Er worden ook geen eindgebruikers meer toegevoegd aan dit portaal. Omdat u via Techneco toegang had heeft u deze behouden. Als u van mening bent dat wij de prive data niet mogen gebruiken dan kunt u de router loskoppelen. Wij monitoren het toestel alleen bij storingen of op verzoek van de installateur. |
Een klein tikje off-topic: ik merk dat bij mij de Toros Vision vannacht met elektrisch element heeft gedraaid, duur grapje met deze energie prijzen. Het lijkt erop dat onder de 3,5 graden vorst het element bijgeschakeld word, en bij 3 graden vorst pas weer uit (hysteryse van 0,5 graad). Ervaren jullie dat ook en hoe staan bij jullie parameters onder Elektrisch Element CV?
[ Voor 0% gewijzigd door Sikkek op 13-12-2022 12:12 . Reden: Tiepfaud ]
Mijn WP staat momenteel in de noodstand. Alles op het elektrische element.... je wilt niet weten wat het me kost. Had afgelopen week een dag waarop ik bijna 120kWh aan stroom heb verbruikt. Ben aan het wachten op een onderdeel dat vervangen moet worden. Ze konden me niet vertellen wat de levertijd is.Sikkek schreef op dinsdag 13 december 2022 @ 11:41:
Een klein tikje off-topic: ik merk dat bij mij de Toros Vision vannacht met elektrisch element heeft gedraaid, duur grapje met deze eenrgie prijzen. Het lijkt erop dat onder de 3,5 graden vorst het element bijgeschakeld word, en bij 3 graden vorst pas weer uit (hysteryse van 0,5 graad). Ervaren jullie dat ook en hoe staan bij jullie parameters onder Elektrisch Element CV?
Wat betreft je vraag... heb even op mijn screenshots gekeken van de instellingen:
Grens EE TBuiten: -3
Hysterese water EE: 3
Tijdvertr EE tov CPR: 60
Max. aanvoer na EE: 50
The Flying Dutchman
Holy, dat is niet best! Dank je voor de waarden, ik heb het idee dat -3 en 60 minuten tijdvertraging best beroerd, is, als de WP het binnen een uur dus niet het setpoint bereikt heeft en het is kouder dan -3, stookt hij met COP 1 erbij. Lijkt me beter om op -15 en 240 te zettenThe Flying Dutchman schreef op dinsdag 13 december 2022 @ 11:49:
[...]
Mijn WP staat momenteel in de noodstand. Alles op het elektrische element.... je wilt niet weten wat het me kost. Had afgelopen week een dag waarop ik bijna 120kWh aan stroom heb verbruikt. Ben aan het wachten op een onderdeel dat vervangen moet worden. Ze konden me niet vertellen wat de levertijd is.
Wat betreft je vraag... heb even op mijn screenshots gekeken van de instellingen:
Grens EE TBuiten: -3
Hysterese water EE: 3
Tijdvertr EE tov CPR: 60
Max. aanvoer na EE: 50
Ja. Dit zijn typisch de zaken die ik zou willen monitoren en aanpassen. Is het echt nodig dat het elektrisch element bij -3 bijschakelt? Is dat puur omdat de woning anders niet meer warm genoeg wordt? Moet de WP te hard werken? Is er risico op snellere uitputting bron? Momenteel kan ik er alleen maar naar gissen.Sikkek schreef op dinsdag 13 december 2022 @ 12:07:
[...]
Holy, dat is niet best! Dank je voor de waarden, ik heb het idee dat -3 en 60 minuten tijdvertraging best beroerd, is, als de WP het binnen een uur dus niet het setpoint bereikt heeft en het is kouder dan -3, stookt hij met COP 1 erbij. Lijkt me beter om op -15 en 240 te zetten
The Flying Dutchman
Ik heb een python script geschreven dat gebruik maakt van pyshark om gegevens uit de netwerk traffic te halen. Het script filtert op uitgaande TCP berichten en moet gedraait worden op een NAT machine (ik draai het op mijn Linux server). Zie hieronder de code:
Voorbeeld output (datetime, aantal bytes aan data, data als hex, aantal bekende waarden eruit gefilterd):
Volgende stap voor mij is het script uitbreiden om de gelezen waarden naar InfluxDB te pushen. Die code heb ik al liggen voor een ander project, dus dat zou erg eenvoudig moeten zijn.
Python:
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
| #!/usr/bin/env python3 import pyshark import datetime import math ## capture settings ## # network interface over which to capture traffic (internal NIC on the server) INTERFACE='eth3' # source host (ip address of the heat pump) HOST='192.168.100.15' # buffer size in bytes for capture ring buffer BUFFER_SIZE=4096 # capture filter, only capture TCP traffic orginating from host CAPTURE_FILTER='ip proto \\tcp and src host ' + HOST # convert numBytes unsigned value to a signed value def toSignedWord(n, numBytes): allOnes = 0x1 mostSignBit = 0x1 << (numBytes * 8 - 1) for i in range(0, numBytes * 8 - 1): allOnes = (allOnes << 1) | 0x1 n = n & allOnes return (n ^ mostSignBit) - mostSignBit # print the list of hexadecimal values over multiple lines def printHexadecimalValues(v): # how many hex values to print on a single line valuesPerLine = 16 rows = math.ceil(len(v) / valuesPerLine) for i in range(rows): for j in range (valuesPerLine): idx = i * valuesPerLine + j if idx < len(v): print(v[idx], end=" ") print("") # extract a value from the array of bytes # firstByte: index of first byte of the value (start at 0) # numBytes: how many bytes to read from the array # toSigned: convert the value to a signed value def convertToValue(v, firstByte, numBytes, toSigned=False): strVal = '0x' # travers the bytes in reverse order for i in range(firstByte + numBytes - 1, firstByte - 1, -1): # append current hex value strVal += v[i] # convert the base 16 string to a (unsigned) int value retVal = int(strVal, base=16) if (toSigned): return toSignedWord(retVal, numBytes) return retVal # print values from the message that holds 98 bytes of data def handleMessage98(v): # error code: byte 29 print("foutcode=", convertToValue(v, 29, 1), sep="") # temperature tap water: bytes 92 and 93, must be divided by 10 (probably should never go negative, but unknown if stored as signed/unsigned value) print("temperatuur tapwater=", convertToValue(v, 92, 2) / 10.0, sep="") # outside temperature: bytes 71 and 72, must be divided by 10, signed value print("temperatuur buiten=", convertToValue(v, 71, 2, True) / 10.0, sep="") # Tvi (BRON WP in): byte 85 (unknown if value is signed/unsigned) print("Tvi (bron WP in)=", convertToValue(v, 85, 1) / 10.0, sep="") # use a ring buffer to capture traffice, make sure we include raw data to access the DATA of TCP packets capture = pyshark.LiveRingCapture(ring_file_size=BUFFER_SIZE, interface=INTERFACE, use_json=True, include_raw=True, bpf_filter=CAPTURE_FILTER) # main loop # start capturing traffice continuously for packet in capture.sniff_continuously(): # only if packet has DATA if ('DATA' in packet): # get current time and print it ct = datetime.datetime.now() print(ct) # get the raw value from the data (a string) and split it by ':' to get an array of hexadecimal values # the raw value looks like: 'a8:58:00:ff' v = packet['DATA'].data.main_field.raw_value.split(":") # print the length of the array of hexadecimal values print(len(v)) # show the data as hexadecimal values printHexadecimalValues(v) if len(v) == 98: handleMessage98(v) print("<<<<<<<<<\n", flush=True) |
Voorbeeld output (datetime, aantal bytes aan data, data als hex, aantal bekende waarden eruit gefilterd):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| 2022-12-16 12:16:26.721679 98 a5 8e 30 5b 00 d5 98 94 58 ff 3c 9c 63 90 16 00 00 84 00 c0 00 00 29 01 00 00 01 00 00 46 00 00 00 be 00 00 03 00 00 00 17 01 00 d2 00 00 00 f1 00 00 b0 07 00 00 06 00 00 32 01 00 00 bb 00 00 d0 00 00 00 12 00 00 14 00 00 00 04 00 00 f5 00 00 00 05 00 00 fc 00 00 00 bc 00 00 d9 01 00 00 79 11 foutcode=70 temperatuur tapwater=47.3 temperatuur buiten=2.0 Tvi (bron WP in)=25.2 <<<<<<<<< |
Volgende stap voor mij is het script uitbreiden om de gelezen waarden naar InfluxDB te pushen. Die code heb ik al liggen voor een ander project, dus dat zou erg eenvoudig moeten zijn.
The Flying Dutchman
Hier heb ik de handleiding en het monteurs programma kunnen downloaden:
https://www.remeha.nl/vee.../toros-vision-servicetool
https://www.remeha.nl/vee.../toros-vision-servicetool
Ik heb ondertussen een vrij goed beeld van hoe de TCP berichten die door de WP verzonden worden eruit zien. Als je kijkt naar de payload (de data) van het TCP bericht dan zie je het volgende:
Temperaturen moet je delen door 10.
Thermosstaat temperatuur staat nergens in de screens maar het viel me op dat de waarde erg veel leek op mijn kamer temperatuur. Met mijn handen heb ik de thermostaat opgewarmd en toen ging de waarde omhoog
.
Belangrijkste bevinding is dat een waarde vooraf gegaan wordt door een ID. Tot nu toe gebruikte ik de data size en de offset in het data blok. Maar doordat er meerdere berichten binnen komen die evenveel data hebben, was dat niet een erg bruikbare methode.
- bytes 0 t/m 5 een header:
- byte 0 is altijd a5
- byte 1 is het volgnummer van het bericht
- byte 2 is onbekend, het is geen onderdeel van het volgnummer zo te zien
- byte 3 is de lengte van het data blok - 7 (mogelijk hoort byte 4 hier ook bij)
- bytes 5 t/m 18 onbekend, mogelijk zijn dit ook al waarden, de waarde van byte 3 lijkt hier wel op te wijzen (5 bytes header, 2 bytes CRC en de rest is data: waarde van byte 3 komt dan overeen met hoeveelheid data)
- vervolgens komt er een lijst met waarden, waarbij iedere waarde gerepresenteerd wordt door 7 bytes. Van deze 7 bytes per waarde:
- bytes 0, 1 en mogelijk ook 2 zijn waarschijnlijk een ID (byte 2 tot nog toe alleen waarde 0 gezien)
- bytes 3, 4 en mogelijk ook 5 en 6 representeren de waarde (bytes 5 en 6 tot nog toe alleen waarde 0 gezien)
- het bericht eindigt met 2 bytes: mogelijk CRC
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| ... skip eerste 19 bytes ... ID|WAARDE |BETEKENIS 192 271 # actuele regelwaarde 1 70 # actuele storing 190 4 # onbekend 279 210 # onbekend 241 1968 # tzc zonnecollector 6 268 # tau (CV WP UIT) 187 213 # temperatuur gemeten door hoofd thermosstaat (?) 18 96 # buiten temperatuur 4 296 # tci (CV WP IN) 5 254 # tcu (CV COND UIT) 188 497 # temperatuur tapwater ... skip laatste 2 bytes ... |
Temperaturen moet je delen door 10.
Thermosstaat temperatuur staat nergens in de screens maar het viel me op dat de waarde erg veel leek op mijn kamer temperatuur. Met mijn handen heb ik de thermostaat opgewarmd en toen ging de waarde omhoog
Belangrijkste bevinding is dat een waarde vooraf gegaan wordt door een ID. Tot nu toe gebruikte ik de data size en de offset in het data blok. Maar doordat er meerdere berichten binnen komen die evenveel data hebben, was dat niet een erg bruikbare methode.
[ Voor 10% gewijzigd door The Flying Dutchman op 23-12-2022 11:50 ]
The Flying Dutchman
Ik volg dit topic ook met veel interesse. Echt een tweakers-waardig onderwerp naar mijn idee.
Wij hebben sinds 2016 een Toros Vision in onze woning en merken dat veel monteurs het maar spannend vinden, zo'n pomp zonder display waarop de instellingen (eenvoudig) aan te passen zijn.
Zou het geweldig vinden als jullie tot iets komen wat data weet te loggen naar Influx, dan kan ik het mooi naast de P1 gegevens houden. Succes!
Wij hebben sinds 2016 een Toros Vision in onze woning en merken dat veel monteurs het maar spannend vinden, zo'n pomp zonder display waarop de instellingen (eenvoudig) aan te passen zijn.
Zou het geweldig vinden als jullie tot iets komen wat data weet te loggen naar Influx, dan kan ik het mooi naast de P1 gegevens houden. Succes!
Ondertussen heb ik met Remeha (een van de oude 'Techneco' engineers) een en ander bepsroken. De -3 en 60 minuten setting zijn simpele defaults, hij heeft het nu aangepast naar -6 en 150. Nu nog de stooklijn goed krijgen...The Flying Dutchman schreef op dinsdag 13 december 2022 @ 12:15:
[...]
Ja. Dit zijn typisch de zaken die ik zou willen monitoren en aanpassen. Is het echt nodig dat het elektrisch element bij -3 bijschakelt? Is dat puur omdat de woning anders niet meer warm genoeg wordt? Moet de WP te hard werken? Is er risico op snellere uitputting bron? Momenteel kan ik er alleen maar naar gissen.
De beste man vertelde me ook dat als iemand anders dan Remeha de instellingen wijzigt, dat dan de garantie vervalt
Tsja... je kunt waarschijnlijk een hoop dingen omzeep helpen of op zijn minst de warmtepomp flink ontregelen als je zomaar dingen gaat aanpassen. Over het algemeen is het denk ik verstandig om geen wijzigingen te maken tenzij je heel goed weet waar je mee bezig bent. Verder zeggen monteurs wel vaker zoiets natuurlijk...Sikkek schreef op vrijdag 23 december 2022 @ 18:02:
[...]
De beste man vertelde me ook dat als iemand anders dan Remeha de instellingen wijzigt, dat dan de garantie vervalt
Ik heb ondertussen veel waarden terug kunnen vinden en die worden nu naar Influx gepubliceerd (ongeveer 30 verschillende waarden). Een aantal waarden ben ik nog niet achter wat de betekenis ervan is (dit zijn er nog eens een stuk of 25). Meestal is dat omdat de waarde die langskomt altijd 0 is en soms omdat ik dan de waarde niet kan matchen met iets in de monitoring schermen.
Verder zie ik dat er in de berichten van 63, 98 en 133 bytes een unix timestamp staat (bytes 9 t/m 12). Deze timestamp wijzigt ongeveer iedere 2 uur. De WP verstuurt iedere 2 uur een bericht met 7 bytes en vervolgens wijzigt de timestamp naar het tijdstip waarop de laatste keer die 7 bytes werden verstuurd. Het zou kunnen dat het bericht van 7 bytes hoort bij een soort interactie met de centrale server. Op het moment kijk ik alleen naar de uitgaande data en zie ik dus niet wat er binnen komt.
Zal binnenkort mijn python script een beetje opschonen en opnieuw delen.
Hieronder een sceenshot van een snel in elkaar gezet Grafana dashboard. Dit toont lang niet alle waarden en moet ook nog even kijken welke waarden nou echt nuttig zijn en wat ik wil tonen.
[ Voor 16% gewijzigd door The Flying Dutchman op 24-12-2022 23:58 ]
The Flying Dutchman
Wat een interessant topic om te volgen. @The Flying Dutchman , mooi overzicht heb je zo bij elkaar gebouwd!
Ook ik heb een Toros Vision en ben bezig geweest met monitoring. Toen een monteur de omkasting er af had gehaald zag ik dat er een kWh meter zit. Een 'raampje' in de omkasting was snel gemaakt en zo kon ik de waardes aflezen. Er zit echter ook een puls LED op de kWh meter. Hier heb ik inmiddels een home assitant glow op geplaatst. Dit werkt in combinatie met home assistant goed en geeft het verbruik weer.
:strip_exif()/f/image/udmtM80fT3mRhXKFqgEuGywK.jpg?f=fotoalbum_large)
Onze WP staat echter zo ingesteld dat in de 'dal uren' tapwater wordt verwarmd. In het kader van comfort gebeurt dit vaak in de ochtend op een moment dat er weinig hernieuwbare energie is en we nog geen eigen opwek hebben. Het is alweer even geleden maar ik heb Remeha gevraagd of er een mogelijkheid is om hier zelf het tijdstip van aan te passen maar hier biedt Remeha (in tegenstelling tot andere warmtepompenleveranciers) niks voor aan. Mooi om te zien dat de service tool beschikbaar is maar het lijkt me nog niet echt bruikbaar. De functie om tijdstip van tapwaterbereiding aan te passen zie ik ook niet terug. Omdat de afschaffing van de salderingsregeling langzaam concreter wordt ga ik hier nogmaals om vragen. Hebben andere hier ook nog contact over gehad?
Ook heb ik gevraagd naar het wijzigen van de standaard wifi instellingen. Ook daar weinig service. Hiervoor moet een monteur langskomen. Ze gaven min of meer aan dat ze voor TP link router met standaard instellingen hebben gekozen zodat bij verhuizing/wijziging netwerk geen monteur nodig is om weer verbinding te krijgen met de monitoring. Er hangen hier in de wijk dus tientallen standaard ingestelde routers met zichtbare SSID's.
Ook ik heb een Toros Vision en ben bezig geweest met monitoring. Toen een monteur de omkasting er af had gehaald zag ik dat er een kWh meter zit. Een 'raampje' in de omkasting was snel gemaakt en zo kon ik de waardes aflezen. Er zit echter ook een puls LED op de kWh meter. Hier heb ik inmiddels een home assitant glow op geplaatst. Dit werkt in combinatie met home assistant goed en geeft het verbruik weer.
:strip_exif()/f/image/udmtM80fT3mRhXKFqgEuGywK.jpg?f=fotoalbum_large)
Onze WP staat echter zo ingesteld dat in de 'dal uren' tapwater wordt verwarmd. In het kader van comfort gebeurt dit vaak in de ochtend op een moment dat er weinig hernieuwbare energie is en we nog geen eigen opwek hebben. Het is alweer even geleden maar ik heb Remeha gevraagd of er een mogelijkheid is om hier zelf het tijdstip van aan te passen maar hier biedt Remeha (in tegenstelling tot andere warmtepompenleveranciers) niks voor aan. Mooi om te zien dat de service tool beschikbaar is maar het lijkt me nog niet echt bruikbaar. De functie om tijdstip van tapwaterbereiding aan te passen zie ik ook niet terug. Omdat de afschaffing van de salderingsregeling langzaam concreter wordt ga ik hier nogmaals om vragen. Hebben andere hier ook nog contact over gehad?
Ook heb ik gevraagd naar het wijzigen van de standaard wifi instellingen. Ook daar weinig service. Hiervoor moet een monteur langskomen. Ze gaven min of meer aan dat ze voor TP link router met standaard instellingen hebben gekozen zodat bij verhuizing/wijziging netwerk geen monteur nodig is om weer verbinding te krijgen met de monitoring. Er hangen hier in de wijk dus tientallen standaard ingestelde routers met zichtbare SSID's.
Ik had geen idee dat het tijdstip van tapwater verwarmen aan te passen was. Bij mij gaat hij gewoon verwarmen als het onder een bepaalde temperatuur komt (4 graden onder doel temperatuur volgens mij). Daarnaast is er het legionella programma. Een keer in de week verwarmen tot 60 graden. Een monteur heeft me een keer gezegd dat die week begint te lopen na het opstarten van de warmtepomp. Dus je zou hem een keer om 3 uur 's nachts van de stroom af kunnen halen om te kijken of het legionella programma dan altijd op dat moment in de week draait.Ahzriaz schreef op dinsdag 7 februari 2023 @ 22:07:
...
Onze WP staat echter zo ingesteld dat in de 'dal uren' tapwater wordt verwarmd. In het kader van comfort gebeurt dit vaak in de ochtend op een moment dat er weinig hernieuwbare energie is en we nog geen eigen opwek hebben. Het is alweer even geleden maar ik heb Remeha gevraagd of er een mogelijkheid is om hier zelf het tijdstip van aan te passen maar hier biedt Remeha (in tegenstelling tot andere warmtepompenleveranciers) niks voor aan. Mooi om te zien dat de service tool beschikbaar is maar het lijkt me nog niet echt bruikbaar. De functie om tijdstip van tapwaterbereiding aan te passen zie ik ook niet terug. Omdat de afschaffing van de salderingsregeling langzaam concreter wordt ga ik hier nogmaals om vragen. Hebben andere hier ook nog contact over gehad?
Verder mooi om te zien dat er steeds meer mensen aansluiten bij dit topic en met hun eigen oplossingen komen! @Ahzriaz, jouw manier van energiemeten wil ik eigenlijk ook doen. Het is nauwkeuriger dan de standen uitlezen via de verzonden wifi data (ik weet niet precies hoe vaak het bericht met energieverbruik gestuurd wordt en daarnaast moet je bij gaan houden hoe vaak de waarden een overflow hebben gehad).
Mijn opgeschoonde python script komt nog. Ik heb het de afgelopen tijd heel erg druk gehad met andere dingen waardoor ik hier geen tijd aan kon besteden.
The Flying Dutchman
Dat het verwarmen van tapwater plaatsvind in de daluren heb ik ergens gelezen (heb nog niet teruggevonden waar). Dat is dan een standaard instelling, aanpassen kan ik niet.
Staat in een document met aanvullende informatie dat ik heb gekregen toen we bezig waren met de koop. Het lijkt een concept document, in een beter opgemaakte versie staat dat het water wordt verwarmd als het is afgekoeld. Dus dat lijkt beter te kloppen.
Wel kan ik via de thermostaat (Chronoterm Touch Modulation) aangeven dat er tijdens 'Slapen' geen tapwater bereid moet worden. Welke tijd ze hierbij hanteren weet ik niet. Ik zou juist graag zelf een tijdblok opgeven (het liefst dynamisch op basis van bv. eigen opwek). Nu is het nogal een dom systeem. Bij 51C (inderdaad 4C onder de standaard doeltemperatuur) gaat die opwarmen, ook al heb ik pas 's-avonds water nodig en 's-middag opwek 'over'.
Ik ga eens kijken of ik het legionella programma kan herkennen en op welk moment die nu plaats vind. Als ik die naar de middag kan verplaatsen is het al iets.
Staat in een document met aanvullende informatie dat ik heb gekregen toen we bezig waren met de koop. Het lijkt een concept document, in een beter opgemaakte versie staat dat het water wordt verwarmd als het is afgekoeld. Dus dat lijkt beter te kloppen.
Wel kan ik via de thermostaat (Chronoterm Touch Modulation) aangeven dat er tijdens 'Slapen' geen tapwater bereid moet worden. Welke tijd ze hierbij hanteren weet ik niet. Ik zou juist graag zelf een tijdblok opgeven (het liefst dynamisch op basis van bv. eigen opwek). Nu is het nogal een dom systeem. Bij 51C (inderdaad 4C onder de standaard doeltemperatuur) gaat die opwarmen, ook al heb ik pas 's-avonds water nodig en 's-middag opwek 'over'.
Ik ga eens kijken of ik het legionella programma kan herkennen en op welk moment die nu plaats vind. Als ik die naar de middag kan verplaatsen is het al iets.
[ Voor 14% gewijzigd door Ahzriaz op 08-02-2023 16:39 . Reden: Verwarmen water in daluren lijkt niet te kloppen dus e.e.a. verduidelijkt. ]
Ze hebben op de eigen website staan:borft schreef op woensdag 7 december 2022 @ 16:03:
Zo, ik heb even een verzoek bij Remeha neergelegd, of ze misschien een API hebben zodat ik bij alle data kan die ze van mij verzamelen. Dat kon in de oude portal vrij eenvoudig, maar dat hebben ze gesloopt door er een recaptcha tussen te zetten. Dit is hun super klantvriendelijke antwoord op mijn reactie dat het niet een vooruitgang voor eindgebruikers is, omdat die functionaliteit verliezen:
code:
1 2 3 4 5 6 7 8 Voor Remeha is het nieuwe portaal wel degelijk een vooruitgang. Er worden geen aanpassingen gedaan tbv. eindgebruikers. Er worden ook geen eindgebruikers meer toegevoegd aan dit portaal. Omdat u via Techneco toegang had heeft u deze behouden. Als u van mening bent dat wij de prive data niet mogen gebruiken dan kunt u de router loskoppelen. Wij monitoren het toestel alleen bij storingen of op verzoek van de installateur.
'Daar komt bij dat de overheid via wetgeving (AMvB voor bodemenergie) stelt dat eigenaren en leveranciers de energiehuishouding en de prestaties van een warmtepompsysteem in kaart moeten kunnen brengen. Met sensoren en monitoring wordt dit automatisch bijgehouden.'
Voor gebruikers met een bodemlus dus volgens hun eigen tekst verplicht. Het zou kunnen dat het niet (meer) klopt maar dat weet ik niet.
Je kunt in de thermostaat instellen wanneer het programma slapen actief is. Dat gebruikt ie ook voor de instelling voor het tapwater bij slapen (ja, het is echt zo simpel)Ahzriaz schreef op woensdag 8 februari 2023 @ 16:29:
Dat het verwarmen van tapwater plaatsvind in de daluren heb ik ergens gelezen (heb nog niet teruggevonden waar). Dat is dan een standaard instelling, aanpassen kan ik niet.
Staat in een document met aanvullende informatie dat ik heb gekregen toen we bezig waren met de koop. Het lijkt een concept document, in een beter opgemaakte versie staat dat het water wordt verwarmd als het is afgekoeld. Dus dat lijkt beter te kloppen.
Wel kan ik via de thermostaat (Chronoterm Touch Modulation) aangeven dat er tijdens 'Slapen' geen tapwater bereid moet worden. Welke tijd ze hierbij hanteren weet ik niet. Ik zou juist graag zelf een tijdblok opgeven (het liefst dynamisch op basis van bv. eigen opwek). Nu is het nogal een dom systeem. Bij 51C (inderdaad 4C onder de standaard doeltemperatuur) gaat die opwarmen, ook al heb ik pas 's-avonds water nodig en 's-middag opwek 'over'.
Ik ga eens kijken of ik het legionella programma kan herkennen en op welk moment die nu plaats vind. Als ik die naar de middag kan verplaatsen is het al iets.
Edit: onderstaande levert mogelijk op termijn problemen op. Het legionella programma lijkt bij mij niet meer (wekelijks) te worden uitgevoerd. Monteur van Remeha was not amused dat ik een programma gebruikte waarmee snachts geen tapwater werd gemaakt. Thermostaat moet gewoon op 'continue temperatuur' staan. De functie om snachts geen tapwater te gebruiken moet niet gebruikt worden icm met de toros vision en de EVA regelunit.
Einde edit
Dat was inderdaad heel makkelijk!
Omdat we een warmtepomp hebben altijd gebruik gemaakt van 'Continue temperatuur'.
Nu zo ingesteld dat het programma 'Opstaan' start begin van de middag en 'Slapen' vanaf begin van de avond.
Temperatuur in beide programma's nagenoeg gelijk gehouden (klein temperatuur daling s'nachts is prima). Ik ben erg benieuwd hoe dit gaat uitpakken.
@borft Dank voor de tip!
Einde edit
Dat was inderdaad heel makkelijk!
Omdat we een warmtepomp hebben altijd gebruik gemaakt van 'Continue temperatuur'.
Nu zo ingesteld dat het programma 'Opstaan' start begin van de middag en 'Slapen' vanaf begin van de avond.
Temperatuur in beide programma's nagenoeg gelijk gehouden (klein temperatuur daling s'nachts is prima). Ik ben erg benieuwd hoe dit gaat uitpakken.
@borft Dank voor de tip!
[ Voor 35% gewijzigd door Ahzriaz op 27-05-2024 10:02 . Reden: aanvullende ervaring die mogelijk relevant is voor anderen ]
Gerelateerde vraag; ik merk dat veel installateurs moeite hebben met de manier waarop ze onderhoud uit kunnen voeren aan de Toros Vision. Hebben jullie goede ervaringen met bepaalde (landelijke) onderhoudspartijen? of eventueel zelfstandigen/zzp-ers die (ook) in het Noorden willen onderhouden?
Wij hebben ook moeite om iemand te vinden voor het onderhoud (Randstad), en kunnen pas over twee weken iemand langs hebben (ondanks het servicecontract). Ondertussen zitten we in de kou. Dus ik ben zelf aan de slag gegaan, met de info uit dit topic (dank!).
De kabel die ik gebruik is zelfgemaakt van een CP2104 Friend van Adafruit. De connectors zijn overigens Molex Microfit, ordercodes 43025 voor de connector en 5558 voor de pins. Logic levels zijn 3.3V(!).
Waar ik nu tegenaan loop, is dat Microcom op drie laptops wel installeert maar vastloopt bij het inladen van de 'screens'. Dan wordt het 'project window' (de zijbalk) grijs. Op mijn Mac (VMWare Fusion, Win10) gaat het wel goed, werkt de communicatie ook (die kan ik 'serieel afluisteren'), onderin de statusbalk van het programma cyclet hij ook door de parameters heen en dat komt ook mooi overeen met de data die ik in hex langs zie komen op een andere serial monitor (op een tweede kabel).
Maar de velden in de screens blijven leeg. Opnieuw geprobeerd met een laptop (Win7) uit de tijd waar de software uit lijkt te komen (2017), maar ook daar hetzelfde probleem. Iemand een idee, behalve de hex data met de hand door te pluizen?
De kabel die ik gebruik is zelfgemaakt van een CP2104 Friend van Adafruit. De connectors zijn overigens Molex Microfit, ordercodes 43025 voor de connector en 5558 voor de pins. Logic levels zijn 3.3V(!).
Waar ik nu tegenaan loop, is dat Microcom op drie laptops wel installeert maar vastloopt bij het inladen van de 'screens'. Dan wordt het 'project window' (de zijbalk) grijs. Op mijn Mac (VMWare Fusion, Win10) gaat het wel goed, werkt de communicatie ook (die kan ik 'serieel afluisteren'), onderin de statusbalk van het programma cyclet hij ook door de parameters heen en dat komt ook mooi overeen met de data die ik in hex langs zie komen op een andere serial monitor (op een tweede kabel).
Maar de velden in de screens blijven leeg. Opnieuw geprobeerd met een laptop (Win7) uit de tijd waar de software uit lijkt te komen (2017), maar ook daar hetzelfde probleem. Iemand een idee, behalve de hex data met de hand door te pluizen?
[ Voor 0% gewijzigd door Kr3Kr op 14-10-2023 10:56 . Reden: microfit niet minifit ]
Al geprobeert om de screen files direct te openen ipv de project file? Dat was bij mij de oplossing.
The Flying Dutchman schreef op maandag 5 december 2022 @ 10:17:
De servicetool heb ik ook geinstalleerd. Hier worden een project file en 'screens' meegeleverd (zie handleiding servicetool). De project file deed het niet goed bij mij (het lukte me niet om de individuele screens te openen). Maar je kunt de 4 screens ook direct openen met de tool en dan lukt het me om de waarden uit te lezen.
The Flying Dutchman
Bedankt. Welke kabel heb jij? Die zelfbouw op basis van CP2102 van Reichelt? Ik gebruik een CP2104 maar ik kan me niet voorstellen dat daar het verschil in zit...The Flying Dutchman schreef op zaterdag 14 oktober 2023 @ 18:49:
Al geprobeert om de screen files direct te openen ipv de project file? Dat was bij mij de oplossing.
[...]
Net geprobeerd de .wcr los te openen op een laptop waar de software eerst vast liep, dan opent hij hem wel inderdaad. Maar daarna is het hetzelfde verhaal als op de laptop waarop de Project File te openen was: Hij gaat alle data af, de lampjes voor verzenden en ontvangen op de kabel knipperen, maar de gegevensvelden zoals in jouw screenshot van dit bericht blijven leeg
Edit: probleem gevonden. De WP verwacht dat de USB-UART een pullup heeft op de RX (data van WP naar PC). Vandaar dat er wel data terug kwam, maar 'ruis', zie bijgevoegd screengrab van 'scope op de RX:
:fill(white):strip_exif()/f/image/Zh8z25HLBezvtNBenDuMypky.png?f=user_large)
De lijn komt wel terug naar 3.3V (door capacitieve koppeling?), maar veel te traag. Met een 4,7k weerstand naar de 3.3V van de CP2104 werkt alles perfect.
[ Voor 60% gewijzigd door Kr3Kr op 14-10-2023 23:05 . Reden: pullup ]
Voor degenen (@Kr3Kr , @The Flying Dutchman ) die zelf een kabel gemaakt hebben: kunnen jullie de pin-out delen? Ik heb net een CP2102 UART bordje besteld, moet ik het volgende aansluiten:
Of moeten TX/RX gekruisd aangesloten worden?
| UART bord | X8 connector |
| TXD | Pin 5 (TX from device to PC) |
| RXD | Pin 2 (RX to device from PC |
| GND | Pin 4 (Ground) |
Of moeten TX/RX gekruisd aangesloten worden?
[ Voor 3% gewijzigd door Sikkek op 22-01-2024 17:33 ]
Dank aan allen die aan deze discussie over het monitoren van de Toros Vision hebben meegedaan.
Ik ben nieuw op dit platform en heb dit onderwerp pas dit weekend gevonden in een zoektocht naar mogelijkheden om de warmtepomp aan te sluiten op mijn nieuw ingerichte Home Assistant omgeving. Mijn Toros draait sinds oktober 2017 conform verwachtingen en heeft me met succes van het gas afgeholpen. Techneco en later Remeha hebben me tot nu toe alleen onder heel veel druk willen ondersteunen. De oorspronkelijke installateur is uit het speelveld verdwenen en directe ondersteuning is nagenoeg nil.
In de periode dat de monitoring op zijn gat lag (voor mij was dat een van de belangrijke aankoop overwegingen geweest) heb ik uiteindelijk bij Techneco via een formele klacht rechtstreeks van hen de software en de passende USB kabel geleverd gekregen, zodat ik de pompgegevens met een laptop zelf kon uitlezen.
Inmiddels draait de monitoring weer netjes via de Remeha webserver, maar mijn account is een puur gebruikers account en Remeha weigert toegangsrechten waarbij instellingen die ik vroeger zelf kon doen ook weer beschikbaar komen, zij willen zelf op afstand aan de knoppen zitten. De monitoring interface bood vroeger ook de mogelijkheid nieuwe parameterwaarden in te voeren, dat lijkt inmiddels niet meer te werken.
Mijn zoekwerk is gericht op het verder optimaliseren van slimme energie verbruik.
Ik wil de verbruiksgegevens van de pomp (Verwarming, Tapwater, Koeling, noodstroom) in mijn gegevens integreren, maar ook bijvoorbeeld instellingen kunnen aanpassen en bijv. mijn tapwater met PV-piek overschotten die niet de accu in kunnen, verder doorverwarmen van 55C naar 75C eventueel met uitschakeling van de anti-legionella cyclus.
Wat is inmiddels jullie beste optie om de communicatie met de pomp op te pakken ?
Mijn voorkeur gaat uit naar het uitlezen van de WIFI communicatie tussen de WIFI module in de pomp en de router die Techneco geplaatst heeft, dus overhevelen naar het eigen netwerk.
Ik ben nieuw op dit platform en heb dit onderwerp pas dit weekend gevonden in een zoektocht naar mogelijkheden om de warmtepomp aan te sluiten op mijn nieuw ingerichte Home Assistant omgeving. Mijn Toros draait sinds oktober 2017 conform verwachtingen en heeft me met succes van het gas afgeholpen. Techneco en later Remeha hebben me tot nu toe alleen onder heel veel druk willen ondersteunen. De oorspronkelijke installateur is uit het speelveld verdwenen en directe ondersteuning is nagenoeg nil.
In de periode dat de monitoring op zijn gat lag (voor mij was dat een van de belangrijke aankoop overwegingen geweest) heb ik uiteindelijk bij Techneco via een formele klacht rechtstreeks van hen de software en de passende USB kabel geleverd gekregen, zodat ik de pompgegevens met een laptop zelf kon uitlezen.
Inmiddels draait de monitoring weer netjes via de Remeha webserver, maar mijn account is een puur gebruikers account en Remeha weigert toegangsrechten waarbij instellingen die ik vroeger zelf kon doen ook weer beschikbaar komen, zij willen zelf op afstand aan de knoppen zitten. De monitoring interface bood vroeger ook de mogelijkheid nieuwe parameterwaarden in te voeren, dat lijkt inmiddels niet meer te werken.
Mijn zoekwerk is gericht op het verder optimaliseren van slimme energie verbruik.
Ik wil de verbruiksgegevens van de pomp (Verwarming, Tapwater, Koeling, noodstroom) in mijn gegevens integreren, maar ook bijvoorbeeld instellingen kunnen aanpassen en bijv. mijn tapwater met PV-piek overschotten die niet de accu in kunnen, verder doorverwarmen van 55C naar 75C eventueel met uitschakeling van de anti-legionella cyclus.
Wat is inmiddels jullie beste optie om de communicatie met de pomp op te pakken ?
Mijn voorkeur gaat uit naar het uitlezen van de WIFI communicatie tussen de WIFI module in de pomp en de router die Techneco geplaatst heeft, dus overhevelen naar het eigen netwerk.
Ook hier terecht gekomen bij zoeken naar opties om de Toros Vision beter in te stellen. Weet niet of dit onderwerp nog actief is, maar toch even reageren.
Had zelf al de lijst met parameters die via chronotherm thermostaat ingesteld kunnen worden. Hier kan je bijvoorbeeld de uren tussen legionella aanpassen, zodat deze naar beter tijdstip (overdag) verschuift of stooklijn aanpassen en meer.
Na lezen van de informatie in dit forum microcom programma geinstalleerd op PC en USB kabel aangesloten Communicatie werkt. Bedankt iedereen!
De instelling voor de bijschakelen elektrisch element iets aangepast zodat deze wat minder snel inschakelt.
Volgende stap is de data uit te gaan lezen (python script). Heeft iemand hier ervaring mee ? Wat hulp of voorbeeld is welkom.
Had zelf al de lijst met parameters die via chronotherm thermostaat ingesteld kunnen worden. Hier kan je bijvoorbeeld de uren tussen legionella aanpassen, zodat deze naar beter tijdstip (overdag) verschuift of stooklijn aanpassen en meer.
Na lezen van de informatie in dit forum microcom programma geinstalleerd op PC en USB kabel aangesloten Communicatie werkt. Bedankt iedereen!
De instelling voor de bijschakelen elektrisch element iets aangepast zodat deze wat minder snel inschakelt.
Volgende stap is de data uit te gaan lezen (python script). Heeft iemand hier ervaring mee ? Wat hulp of voorbeeld is welkom.
Op zoek naar een app om de verbinding met een Techneco warmtepomp te maken, kwam ik op dit forum. Hier wordt Honeywell wifiremo genoemd, maar die app bestaat niet meer. Onze buren hebben bij hun verhuizing per ongeluk de Techneco router opgestuurd samen met KPN modem. KPN kan deze niet meer terugvinden. Zoals jullie al melden is Techneco overgenomen door Remeha en sindsdien is er geen support meer voor particulieren. De Techneco warmtepomp is in 2015 geïnstalleerd, zonder EVA. De diverse fouten van de installateur heb ik prima kunnen oplossen met Techneco. Omdat mijn installateur geen verstand heeft van ICT had ik indertijd prima contact met Techneco. Maar Remeha kent mijn installateur niet.
Ik wil dus nu de wifi module zelf instellen zodat deze verbindt met mijn SSID van mijn eigen router. Zodat de warmtepomp de data weer naar de Remeha server (nu tomos.remeha.nl) kan sturen. Ik ben op de hoogte van de DIP-switch 1 om de wifi module in AP mode te zetten.
Ik wil dus nu de wifi module zelf instellen zodat deze verbindt met mijn SSID van mijn eigen router. Zodat de warmtepomp de data weer naar de Remeha server (nu tomos.remeha.nl) kan sturen. Ik ben op de hoogte van de DIP-switch 1 om de wifi module in AP mode te zetten.
@BouwLuster ik zal je even PM sturen. De app bestaat inderdaad niet meer in de Play Store maar ik heb de installer gedownload (op tijd). Die kan ik je sturen.
[ Voor 3% gewijzigd door Snoeikoe op 05-06-2024 15:17 ]
@Snoeikoe Dat is mooi, alvast bedankt. Ik heb alleen Android (en Windows) apparaten, dus geen iDingen zoals iPhone, iPad, iRack
Maar hoe configureert Remeha dan tegenwoordig de wifi module?
Maar hoe configureert Remeha dan tegenwoordig de wifi module?
Inmiddels is er een Remeha monteur geweest om weer een nieuwe router te brengen en in te stellen. Tegenwoordig installeren ze een kleine access point, de TP-Link TL-WR802N https://www.tp-link.com/n...ng/wifi-router/tl-wr802n/. Deze is met een UTP-kabel aangesloten op het netwerk van mijn buurman (omdat zijn modem in de centrale meterkast staat). Dat is een FRITZ!Box 4040, dus ik heb de kabel aangesloten op poort 4, dat is de poort die voor een guest network gebruikt kan worden. Daardoor zit de warmtepomp-router nu niet meer op het privé netwerk van mijn buurman, maar kan die wel naar het Internet.
En mijn (en anderen?) gemopper over het totaal ontbreken van beveiliging van de router heeft kennelijk toch wat indruk gemaakt, want ze veranderen nu het standaard admin wachtwoord. De wifi-module van de warmtepomp werd nog wel met een app op een smartphone geconfigureerd, maar ik kon niet zien welke. De monteur zei dat deze alleen beschikbaar is voor Remeha-monteurs.
De betreffende monteur had behoorlijk kennis van ICT en bleek (vanwege de keren dat hij gebeld werd door collega's) een technische vraagbaak te zijn. Hij zei ook dat hij dat als hobby had, werkte bijvoorbeeld ook met Home Assistant, maar niet met de Toris Vision warmtepomp (omdat die daar niet geschikt voor was...).
En mijn (en anderen?) gemopper over het totaal ontbreken van beveiliging van de router heeft kennelijk toch wat indruk gemaakt, want ze veranderen nu het standaard admin wachtwoord. De wifi-module van de warmtepomp werd nog wel met een app op een smartphone geconfigureerd, maar ik kon niet zien welke. De monteur zei dat deze alleen beschikbaar is voor Remeha-monteurs.
De betreffende monteur had behoorlijk kennis van ICT en bleek (vanwege de keren dat hij gebeld werd door collega's) een technische vraagbaak te zijn. Hij zei ook dat hij dat als hobby had, werkte bijvoorbeeld ook met Home Assistant, maar niet met de Toris Vision warmtepomp (omdat die daar niet geschikt voor was...).
Hoi Toros gebruikers. Sinds kort zijn wij ook eigenaar van een Toros warmtepomp. Helaas is het zoals jullie weten een grote blackbox.
Mag Remeha eigenlijk wel deze data waarvan wij eigenaar zijn voor zichzelf houden? Kunnen we niet eisen dat Remeha ons toegang moet geven tot de verzamelde data of alle gewonnen data aan ons verstrekt in een leesbaar format?
Verder nog een vraag @Snoeikoe. Kun je met de app die jij had gedownload de data bekijken? Graag ontvang ik dan een kopie. Bij voorbaat hartelijk dank.
Op welke andere manier kunnen we de data bekijken?
Dit heb ik ook al gevonden. Ben er alleen nog niet aan toegekomen. https://github.com/borft/py-remeha?tab=readme-ov-file
Mag Remeha eigenlijk wel deze data waarvan wij eigenaar zijn voor zichzelf houden? Kunnen we niet eisen dat Remeha ons toegang moet geven tot de verzamelde data of alle gewonnen data aan ons verstrekt in een leesbaar format?
Verder nog een vraag @Snoeikoe. Kun je met de app die jij had gedownload de data bekijken? Graag ontvang ik dan een kopie. Bij voorbaat hartelijk dank.
Op welke andere manier kunnen we de data bekijken?
Dit heb ik ook al gevonden. Ben er alleen nog niet aan toegekomen. https://github.com/borft/py-remeha?tab=readme-ov-file
Ik volg dit topic ook met interesse, maar heb niet veel tijd om aan dit project te knutselen. Maar frustrerend dat deze data niet toegankelijk is inderdaad. De code in die github repo lijkt me alleen bruikbaar als je toegang hebt tot het data portal van remeha en als ik me niet vergis is daarvoor een monteur / service account bij remeha nodig en dat is niet beschikbaar voor individuele klanten. Maar mocht iemand wel een route weten, laat het weten !
Goedenavond,
Ook ik heb een Remeha Toros en zou deze graag willen intregreren in Home assistant.
Ik maak gebruik van het Tomos platform en dit werkt prima voor het uitlezen en wijzigen van parameters maar je kunt hem niet aansturen zo ver ik weet.
Ik ben zelf installateurs heb contact gezocht met Remeha over de vermeende API en de Modbus aansluiting.
Hun antwoord op de modbus aansluiting:
hierbij ontvangt u de beschikbare informatie over ModBus aansluiting op de Toros Vision.
Remeha kan hier verder geen ondersteuning op geven;
ModBus zit erop vanaf Firmwareversie C30.02, dus mogelijk is er wel een firmware update nodig.
De standaard instellingen zijn:
Address: 1 (Microcom 0x422A of 0x82CD)
Baud rate: 19200 (Microcom 0x4243 of 0x82CE)
Parity: 8N1 (Microcom 0x424C of 0x82CF)
Deze parameters zijn eventueel via Microcom te wijzigen.
De connector die je voor ModBus gebruikt is X9.
image002.png
Verder ook nog gevonden;
Inprincipe leveren wij geen modbus assistentie, omdat we de kennis hier niet van hebben.
Een collega heeft wel nog een document gevonden waar de gevraagde gegevens in staan, maar of alles klopt en of het intussen nog op deze manier werkt is voor eigen risico van de klant en gaan wij als remeha ook geen ondersteuning op leveren.
Bijgevoegd het gevraagde scherm en hieronder wat in 2019 de werkwijze was die wij dus niet hebben kunnen valideren.
__
Outside air temperature via Microcom / Modbus and OpenTherm.
Outside air temperature can be retrieved by several ways:
From Onboard sensor connected to X3.1
PAR201ENUM_OutsideTempSource has to be set to 1.
If onboard sensor is not connected, the Outside air temperature is not internally used, except OTC room setpoint compensation, where PAR355S_OTCmissingT is used instead. The PAR355S_OTCmissingT is returned to communication interfaces.
If onboard sensor is shorted or disconnected, the Error 48 is generated. Outside air temperature is not internally used, except OTC setpoint compensation, where PAR355S_OTCmissingT is used instead. The PAR355S_OTCmissingT is returned to communication interfaces instead. Error 48 is automatically cleared if sensor is connected.
From Microcom / Modbus communication interface
PAR201ENUM_OutsideTempSource has to be set to 2. Outside air temperature has to written to variable 0x35F7 at least every PAR202HOUR_OutsideTempTimeout hours. Otherwise Error 48 is generated. Valid range from -40 to +127 °C.
In case of Error 48, the Outside air temperature is not internally used, except OTC room setpoint compensation, where PAR355S_OTCmissingT is used instead. The PAR355S_OTCmissingT is also returned to communication interfaces instead. Error 48 is automatically cleared if valid information about Outside air temperature is received.
From OpenTherm communication interface
PAR201ENUM_OutsideTempSource has to be set to 3. Outside air temperature has to written to OpenTherm ID27 at least every PAR202HOUR_OutsideTempTimeout hours. Otherwise Error 48 is generated. Valid range from -40 to +127 °C.
In case of Error 48, the Outside air temperature is not internally used, except OTC room setpoint compensation, where PAR355S_OTCmissingT is used instead. The PAR355S_OTCmissingT is also returned to communication interfaces instead. Error 48 is automatically cleared if valid information about Outside air temperature is received.
Note: if Outside air temperature is written from communication interface, which is not selected by PAR201ENUM_OutsideTempSource, the written value is rejected.
Related Microcom / Modbus parameters
Class 7 ID
Name
meaning
unit
min
max
default
0x81C9
PAR201ENUM_OutsideTempSource
Outside temperature source selection (1=Onboard; 2=Modbus; 3=OpenTherm)
enumeration
1
3
1
0x81CA
PAR202HOUR_OutsideTempTimeout
Outside temperature timeout
hour
1
255
24
0x81DC
PAR220BF_CompProtection
Compressor protection for heating (BIT0=derived from evaporator inlet temperature; BIT1=derived from outside air temperature)
Bit field
0
3
0
0x81E0
PAR224S_EndSetpointLimit
Setpoint end limitation curve (for compressor protection during heating)
°C
10
90
30
0x8263
PAR355S_OTCmissingT
Outside temperature to be used with missing/wrong sensor
°C
-20
+30
-1
Related Microcom / Modbus variables
Class
R/W
ID
Name
Unit
Valid range
4
R W
0x35F7
Outside air temperature
tenth of °C
from -40 to +127 °C in case of write
Related OpenTherm IDs
Nr.
Msg
Type
Description
Implementation notes
27
R W
f8.8
Outside air temperature (°C)
Returns outside temperature. In case of sensor error returns DATA-INVALID. Temperature is limited to range from -40 to +127 °C.
Write attempt returns UNKNOWN-DATAID if it is outside of range from -40 to +127 °C or if it is not configured to receive outside temperature from OpenTherm. It is necessary to write outside temperature regularly (at least every 24 hours) if configured to receive outside temperature from OpenTherm.
Usage of Outside air temperature
Usage
Behavior in case there is no valid information about Outside air temperature
Standard setpoint calculation
No compensation
Room setpoint calculation
PAR355S_OTCmissingT is used instead
Automatic switching between heating and cooling.
Not executed
Inhibition of heating if outside air temperature is too high.
Not executed
Inhibition of cooling if outside air temperature is too low.
Not executed
Reading of OpenTherm ID27 Outside air temperature
Returns DATA_INVALID
Reading of Microcom Class 4 ID 0x35F7
Returns PAR355S_OTCmissingT
Electrical heaters
Not affected/disabled
Compressor protection during heating.
If PAR220BF_CompProtection BIT1 is set AND if condenser temperature is bigger than PAR224S_EndSetpointLimit, Error 60 is generated, and HP is blocked. Affects both central heating and domestic hot water.
hierbij ontvangt u de beschikbare informatie over ModBus aansluiting op de Toros Vision.
Remeha kan hier verder geen ondersteuning op geven;
ModBus zit erop vanaf Firmwareversie C30.02, dus mogelijk is er wel een firmware update nodig.
De standaard instellingen zijn:
Address: 1 (Microcom 0x422A of 0x82CD)
Baud rate: 19200 (Microcom 0x4243 of 0x82CE)
Parity: 8N1 (Microcom 0x424C of 0x82CF)
Deze parameters zijn eventueel via Microcom te wijzigen.
De connector die je voor ModBus gebruikt is X9.
image002.png
Verder ook nog gevonden;
Inprincipe leveren wij geen modbus assistentie, omdat we de kennis hier niet van hebben.
Een collega heeft wel nog een document gevonden waar de gevraagde gegevens in staan, maar of alles klopt en of het intussen nog op deze manier werkt is voor eigen risico van de klant en gaan wij als remeha ook geen ondersteuning op leveren.
Bijgevoegd het gevraagde scherm en hieronder wat in 2019 de werkwijze was die wij dus niet hebben kunnen valideren.
__
Outside air temperature via Microcom / Modbus and OpenTherm.
Outside air temperature can be retrieved by several ways:
From Onboard sensor connected to X3.1
PAR201ENUM_OutsideTempSource has to be set to 1.
If onboard sensor is not connected, the Outside air temperature is not internally used, except OTC room setpoint compensation, where PAR355S_OTCmissingT is used instead. The PAR355S_OTCmissingT is returned to communication interfaces.
If onboard sensor is shorted or disconnected, the Error 48 is generated. Outside air temperature is not internally used, except OTC setpoint compensation, where PAR355S_OTCmissingT is used instead. The PAR355S_OTCmissingT is returned to communication interfaces instead. Error 48 is automatically cleared if sensor is connected.
From Microcom / Modbus communication interface
PAR201ENUM_OutsideTempSource has to be set to 2. Outside air temperature has to written to variable 0x35F7 at least every PAR202HOUR_OutsideTempTimeout hours. Otherwise Error 48 is generated. Valid range from -40 to +127 °C.
In case of Error 48, the Outside air temperature is not internally used, except OTC room setpoint compensation, where PAR355S_OTCmissingT is used instead. The PAR355S_OTCmissingT is also returned to communication interfaces instead. Error 48 is automatically cleared if valid information about Outside air temperature is received.
From OpenTherm communication interface
PAR201ENUM_OutsideTempSource has to be set to 3. Outside air temperature has to written to OpenTherm ID27 at least every PAR202HOUR_OutsideTempTimeout hours. Otherwise Error 48 is generated. Valid range from -40 to +127 °C.
In case of Error 48, the Outside air temperature is not internally used, except OTC room setpoint compensation, where PAR355S_OTCmissingT is used instead. The PAR355S_OTCmissingT is also returned to communication interfaces instead. Error 48 is automatically cleared if valid information about Outside air temperature is received.
Note: if Outside air temperature is written from communication interface, which is not selected by PAR201ENUM_OutsideTempSource, the written value is rejected.
Related Microcom / Modbus parameters
Class 7 ID
Name
meaning
unit
min
max
default
0x81C9
PAR201ENUM_OutsideTempSource
Outside temperature source selection (1=Onboard; 2=Modbus; 3=OpenTherm)
enumeration
1
3
1
0x81CA
PAR202HOUR_OutsideTempTimeout
Outside temperature timeout
hour
1
255
24
0x81DC
PAR220BF_CompProtection
Compressor protection for heating (BIT0=derived from evaporator inlet temperature; BIT1=derived from outside air temperature)
Bit field
0
3
0
0x81E0
PAR224S_EndSetpointLimit
Setpoint end limitation curve (for compressor protection during heating)
°C
10
90
30
0x8263
PAR355S_OTCmissingT
Outside temperature to be used with missing/wrong sensor
°C
-20
+30
-1
Related Microcom / Modbus variables
Class
R/W
ID
Name
Unit
Valid range
4
R W
0x35F7
Outside air temperature
tenth of °C
from -40 to +127 °C in case of write
Related OpenTherm IDs
Nr.
Msg
Type
Description
Implementation notes
27
R W
f8.8
Outside air temperature (°C)
Returns outside temperature. In case of sensor error returns DATA-INVALID. Temperature is limited to range from -40 to +127 °C.
Write attempt returns UNKNOWN-DATAID if it is outside of range from -40 to +127 °C or if it is not configured to receive outside temperature from OpenTherm. It is necessary to write outside temperature regularly (at least every 24 hours) if configured to receive outside temperature from OpenTherm.
Usage of Outside air temperature
Usage
Behavior in case there is no valid information about Outside air temperature
Standard setpoint calculation
No compensation
Room setpoint calculation
PAR355S_OTCmissingT is used instead
Automatic switching between heating and cooling.
Not executed
Inhibition of heating if outside air temperature is too high.
Not executed
Inhibition of cooling if outside air temperature is too low.
Not executed
Reading of OpenTherm ID27 Outside air temperature
Returns DATA_INVALID
Reading of Microcom Class 4 ID 0x35F7
Returns PAR355S_OTCmissingT
Electrical heaters
Not affected/disabled
Compressor protection during heating.
If PAR220BF_CompProtection BIT1 is set AND if condenser temperature is bigger than PAR224S_EndSetpointLimit, Error 60 is generated, and HP is blocked. Affects both central heating and domestic hot water.
hierbij ontvangt u de beschikbare informatie over ModBus aansluiting op de Toros Vision.
Remeha kan hier verder geen ondersteuning op geven;
ModBus zit erop vanaf Firmwareversie C30.02, dus mogelijk is er wel een firmware update nodig.
De standaard instellingen zijn:
Address: 1 (Microcom 0x422A of 0x82CD)
Baud rate: 19200 (Microcom 0x4243 of 0x82CE)
Parity: 8N1 (Microcom 0x424C of 0x82CF)
Deze parameters zijn eventueel via Microcom te wijzigen.
De connector die je voor ModBus gebruikt is X9.
image002.png
Verder ook nog gevonden;
Inprincipe leveren wij geen modbus assistentie, omdat we de kennis hier niet van hebben.
Een collega heeft wel nog een document gevonden waar de gevraagde gegevens in staan, maar of alles klopt en of het intussen nog op deze manier werkt is voor eigen risico van de klant en gaan wij als remeha ook geen ondersteuning op leveren.
Bijgevoegd het gevraagde scherm en hieronder wat in 2019 de werkwijze was die wij dus niet hebben kunnen valideren.
__
Outside air temperature via Microcom / Modbus and OpenTherm.
Outside air temperature can be retrieved by several ways:
From Onboard sensor connected to X3.1
PAR201ENUM_OutsideTempSource has to be set to 1.
If onboard sensor is not connected, the Outside air temperature is not internally used, except OTC room setpoint compensation, where PAR355S_OTCmissingT is used instead. The PAR355S_OTCmissingT is returned to communication interfaces.
If onboard sensor is shorted or disconnected, the Error 48 is generated. Outside air temperature is not internally used, except OTC setpoint compensation, where PAR355S_OTCmissingT is used instead. The PAR355S_OTCmissingT is returned to communication interfaces instead. Error 48 is automatically cleared if sensor is connected.
From Microcom / Modbus communication interface
PAR201ENUM_OutsideTempSource has to be set to 2. Outside air temperature has to written to variable 0x35F7 at least every PAR202HOUR_OutsideTempTimeout hours. Otherwise Error 48 is generated. Valid range from -40 to +127 °C.
In case of Error 48, the Outside air temperature is not internally used, except OTC room setpoint compensation, where PAR355S_OTCmissingT is used instead. The PAR355S_OTCmissingT is also returned to communication interfaces instead. Error 48 is automatically cleared if valid information about Outside air temperature is received.
From OpenTherm communication interface
PAR201ENUM_OutsideTempSource has to be set to 3. Outside air temperature has to written to OpenTherm ID27 at least every PAR202HOUR_OutsideTempTimeout hours. Otherwise Error 48 is generated. Valid range from -40 to +127 °C.
In case of Error 48, the Outside air temperature is not internally used, except OTC room setpoint compensation, where PAR355S_OTCmissingT is used instead. The PAR355S_OTCmissingT is also returned to communication interfaces instead. Error 48 is automatically cleared if valid information about Outside air temperature is received.
Note: if Outside air temperature is written from communication interface, which is not selected by PAR201ENUM_OutsideTempSource, the written value is rejected.
Related Microcom / Modbus parameters
Class 7 ID
Name
meaning
unit
min
max
default
0x81C9
PAR201ENUM_OutsideTempSource
Outside temperature source selection (1=Onboard; 2=Modbus; 3=OpenTherm)
enumeration
1
3
1
0x81CA
PAR202HOUR_OutsideTempTimeout
Outside temperature timeout
hour
1
255
24
0x81DC
PAR220BF_CompProtection
Compressor protection for heating (BIT0=derived from evaporator inlet temperature; BIT1=derived from outside air temperature)
Bit field
0
3
0
0x81E0
PAR224S_EndSetpointLimit
Setpoint end limitation curve (for compressor protection during heating)
°C
10
90
30
0x8263
PAR355S_OTCmissingT
Outside temperature to be used with missing/wrong sensor
°C
-20
+30
-1
Related Microcom / Modbus variables
Class
R/W
ID
Name
Unit
Valid range
4
R W
0x35F7
Outside air temperature
tenth of °C
from -40 to +127 °C in case of write
Related OpenTherm IDs
Nr.
Msg
Type
Description
Implementation notes
27
R W
f8.8
Outside air temperature (°C)
Returns outside temperature. In case of sensor error returns DATA-INVALID. Temperature is limited to range from -40 to +127 °C.
Write attempt returns UNKNOWN-DATAID if it is outside of range from -40 to +127 °C or if it is not configured to receive outside temperature from OpenTherm. It is necessary to write outside temperature regularly (at least every 24 hours) if configured to receive outside temperature from OpenTherm.
Usage of Outside air temperature
Usage
Behavior in case there is no valid information about Outside air temperature
Standard setpoint calculation
No compensation
Room setpoint calculation
PAR355S_OTCmissingT is used instead
Automatic switching between heating and cooling.
Not executed
Inhibition of heating if outside air temperature is too high.
Not executed
Inhibition of cooling if outside air temperature is too low.
Not executed
Reading of OpenTherm ID27 Outside air temperature
Returns DATA_INVALID
Reading of Microcom Class 4 ID 0x35F7
Returns PAR355S_OTCmissingT
Electrical heaters
Not affected/disabled
Compressor protection during heating.
If PAR220BF_CompProtection BIT1 is set AND if condenser temperature is bigger than PAR224S_EndSetpointLimit, Error 60 is generated, and HP is blocked. Affects both central heating and domestic hot water.
/f/image/voHG4pQ1wsSyVP3qH6MEt3Kv.png?f=fotoalbum_large)
Misschien helpt jullie dit verder om een oplossing te vinden voor het aansturen van de Toros.
Ook ik heb een Remeha Toros en zou deze graag willen intregreren in Home assistant.
Ik maak gebruik van het Tomos platform en dit werkt prima voor het uitlezen en wijzigen van parameters maar je kunt hem niet aansturen zo ver ik weet.
Ik ben zelf installateurs heb contact gezocht met Remeha over de vermeende API en de Modbus aansluiting.
Hun antwoord op de modbus aansluiting:
hierbij ontvangt u de beschikbare informatie over ModBus aansluiting op de Toros Vision.
Remeha kan hier verder geen ondersteuning op geven;
ModBus zit erop vanaf Firmwareversie C30.02, dus mogelijk is er wel een firmware update nodig.
De standaard instellingen zijn:
Address: 1 (Microcom 0x422A of 0x82CD)
Baud rate: 19200 (Microcom 0x4243 of 0x82CE)
Parity: 8N1 (Microcom 0x424C of 0x82CF)
Deze parameters zijn eventueel via Microcom te wijzigen.
De connector die je voor ModBus gebruikt is X9.
image002.png
Verder ook nog gevonden;
Inprincipe leveren wij geen modbus assistentie, omdat we de kennis hier niet van hebben.
Een collega heeft wel nog een document gevonden waar de gevraagde gegevens in staan, maar of alles klopt en of het intussen nog op deze manier werkt is voor eigen risico van de klant en gaan wij als remeha ook geen ondersteuning op leveren.
Bijgevoegd het gevraagde scherm en hieronder wat in 2019 de werkwijze was die wij dus niet hebben kunnen valideren.
__
Outside air temperature via Microcom / Modbus and OpenTherm.
Outside air temperature can be retrieved by several ways:
From Onboard sensor connected to X3.1
PAR201ENUM_OutsideTempSource has to be set to 1.
If onboard sensor is not connected, the Outside air temperature is not internally used, except OTC room setpoint compensation, where PAR355S_OTCmissingT is used instead. The PAR355S_OTCmissingT is returned to communication interfaces.
If onboard sensor is shorted or disconnected, the Error 48 is generated. Outside air temperature is not internally used, except OTC setpoint compensation, where PAR355S_OTCmissingT is used instead. The PAR355S_OTCmissingT is returned to communication interfaces instead. Error 48 is automatically cleared if sensor is connected.
From Microcom / Modbus communication interface
PAR201ENUM_OutsideTempSource has to be set to 2. Outside air temperature has to written to variable 0x35F7 at least every PAR202HOUR_OutsideTempTimeout hours. Otherwise Error 48 is generated. Valid range from -40 to +127 °C.
In case of Error 48, the Outside air temperature is not internally used, except OTC room setpoint compensation, where PAR355S_OTCmissingT is used instead. The PAR355S_OTCmissingT is also returned to communication interfaces instead. Error 48 is automatically cleared if valid information about Outside air temperature is received.
From OpenTherm communication interface
PAR201ENUM_OutsideTempSource has to be set to 3. Outside air temperature has to written to OpenTherm ID27 at least every PAR202HOUR_OutsideTempTimeout hours. Otherwise Error 48 is generated. Valid range from -40 to +127 °C.
In case of Error 48, the Outside air temperature is not internally used, except OTC room setpoint compensation, where PAR355S_OTCmissingT is used instead. The PAR355S_OTCmissingT is also returned to communication interfaces instead. Error 48 is automatically cleared if valid information about Outside air temperature is received.
Note: if Outside air temperature is written from communication interface, which is not selected by PAR201ENUM_OutsideTempSource, the written value is rejected.
Related Microcom / Modbus parameters
Class 7 ID
Name
meaning
unit
min
max
default
0x81C9
PAR201ENUM_OutsideTempSource
Outside temperature source selection (1=Onboard; 2=Modbus; 3=OpenTherm)
enumeration
1
3
1
0x81CA
PAR202HOUR_OutsideTempTimeout
Outside temperature timeout
hour
1
255
24
0x81DC
PAR220BF_CompProtection
Compressor protection for heating (BIT0=derived from evaporator inlet temperature; BIT1=derived from outside air temperature)
Bit field
0
3
0
0x81E0
PAR224S_EndSetpointLimit
Setpoint end limitation curve (for compressor protection during heating)
°C
10
90
30
0x8263
PAR355S_OTCmissingT
Outside temperature to be used with missing/wrong sensor
°C
-20
+30
-1
Related Microcom / Modbus variables
Class
R/W
ID
Name
Unit
Valid range
4
R W
0x35F7
Outside air temperature
tenth of °C
from -40 to +127 °C in case of write
Related OpenTherm IDs
Nr.
Msg
Type
Description
Implementation notes
27
R W
f8.8
Outside air temperature (°C)
Returns outside temperature. In case of sensor error returns DATA-INVALID. Temperature is limited to range from -40 to +127 °C.
Write attempt returns UNKNOWN-DATAID if it is outside of range from -40 to +127 °C or if it is not configured to receive outside temperature from OpenTherm. It is necessary to write outside temperature regularly (at least every 24 hours) if configured to receive outside temperature from OpenTherm.
Usage of Outside air temperature
Usage
Behavior in case there is no valid information about Outside air temperature
Standard setpoint calculation
No compensation
Room setpoint calculation
PAR355S_OTCmissingT is used instead
Automatic switching between heating and cooling.
Not executed
Inhibition of heating if outside air temperature is too high.
Not executed
Inhibition of cooling if outside air temperature is too low.
Not executed
Reading of OpenTherm ID27 Outside air temperature
Returns DATA_INVALID
Reading of Microcom Class 4 ID 0x35F7
Returns PAR355S_OTCmissingT
Electrical heaters
Not affected/disabled
Compressor protection during heating.
If PAR220BF_CompProtection BIT1 is set AND if condenser temperature is bigger than PAR224S_EndSetpointLimit, Error 60 is generated, and HP is blocked. Affects both central heating and domestic hot water.
hierbij ontvangt u de beschikbare informatie over ModBus aansluiting op de Toros Vision.
Remeha kan hier verder geen ondersteuning op geven;
ModBus zit erop vanaf Firmwareversie C30.02, dus mogelijk is er wel een firmware update nodig.
De standaard instellingen zijn:
Address: 1 (Microcom 0x422A of 0x82CD)
Baud rate: 19200 (Microcom 0x4243 of 0x82CE)
Parity: 8N1 (Microcom 0x424C of 0x82CF)
Deze parameters zijn eventueel via Microcom te wijzigen.
De connector die je voor ModBus gebruikt is X9.
image002.png
Verder ook nog gevonden;
Inprincipe leveren wij geen modbus assistentie, omdat we de kennis hier niet van hebben.
Een collega heeft wel nog een document gevonden waar de gevraagde gegevens in staan, maar of alles klopt en of het intussen nog op deze manier werkt is voor eigen risico van de klant en gaan wij als remeha ook geen ondersteuning op leveren.
Bijgevoegd het gevraagde scherm en hieronder wat in 2019 de werkwijze was die wij dus niet hebben kunnen valideren.
__
Outside air temperature via Microcom / Modbus and OpenTherm.
Outside air temperature can be retrieved by several ways:
From Onboard sensor connected to X3.1
PAR201ENUM_OutsideTempSource has to be set to 1.
If onboard sensor is not connected, the Outside air temperature is not internally used, except OTC room setpoint compensation, where PAR355S_OTCmissingT is used instead. The PAR355S_OTCmissingT is returned to communication interfaces.
If onboard sensor is shorted or disconnected, the Error 48 is generated. Outside air temperature is not internally used, except OTC setpoint compensation, where PAR355S_OTCmissingT is used instead. The PAR355S_OTCmissingT is returned to communication interfaces instead. Error 48 is automatically cleared if sensor is connected.
From Microcom / Modbus communication interface
PAR201ENUM_OutsideTempSource has to be set to 2. Outside air temperature has to written to variable 0x35F7 at least every PAR202HOUR_OutsideTempTimeout hours. Otherwise Error 48 is generated. Valid range from -40 to +127 °C.
In case of Error 48, the Outside air temperature is not internally used, except OTC room setpoint compensation, where PAR355S_OTCmissingT is used instead. The PAR355S_OTCmissingT is also returned to communication interfaces instead. Error 48 is automatically cleared if valid information about Outside air temperature is received.
From OpenTherm communication interface
PAR201ENUM_OutsideTempSource has to be set to 3. Outside air temperature has to written to OpenTherm ID27 at least every PAR202HOUR_OutsideTempTimeout hours. Otherwise Error 48 is generated. Valid range from -40 to +127 °C.
In case of Error 48, the Outside air temperature is not internally used, except OTC room setpoint compensation, where PAR355S_OTCmissingT is used instead. The PAR355S_OTCmissingT is also returned to communication interfaces instead. Error 48 is automatically cleared if valid information about Outside air temperature is received.
Note: if Outside air temperature is written from communication interface, which is not selected by PAR201ENUM_OutsideTempSource, the written value is rejected.
Related Microcom / Modbus parameters
Class 7 ID
Name
meaning
unit
min
max
default
0x81C9
PAR201ENUM_OutsideTempSource
Outside temperature source selection (1=Onboard; 2=Modbus; 3=OpenTherm)
enumeration
1
3
1
0x81CA
PAR202HOUR_OutsideTempTimeout
Outside temperature timeout
hour
1
255
24
0x81DC
PAR220BF_CompProtection
Compressor protection for heating (BIT0=derived from evaporator inlet temperature; BIT1=derived from outside air temperature)
Bit field
0
3
0
0x81E0
PAR224S_EndSetpointLimit
Setpoint end limitation curve (for compressor protection during heating)
°C
10
90
30
0x8263
PAR355S_OTCmissingT
Outside temperature to be used with missing/wrong sensor
°C
-20
+30
-1
Related Microcom / Modbus variables
Class
R/W
ID
Name
Unit
Valid range
4
R W
0x35F7
Outside air temperature
tenth of °C
from -40 to +127 °C in case of write
Related OpenTherm IDs
Nr.
Msg
Type
Description
Implementation notes
27
R W
f8.8
Outside air temperature (°C)
Returns outside temperature. In case of sensor error returns DATA-INVALID. Temperature is limited to range from -40 to +127 °C.
Write attempt returns UNKNOWN-DATAID if it is outside of range from -40 to +127 °C or if it is not configured to receive outside temperature from OpenTherm. It is necessary to write outside temperature regularly (at least every 24 hours) if configured to receive outside temperature from OpenTherm.
Usage of Outside air temperature
Usage
Behavior in case there is no valid information about Outside air temperature
Standard setpoint calculation
No compensation
Room setpoint calculation
PAR355S_OTCmissingT is used instead
Automatic switching between heating and cooling.
Not executed
Inhibition of heating if outside air temperature is too high.
Not executed
Inhibition of cooling if outside air temperature is too low.
Not executed
Reading of OpenTherm ID27 Outside air temperature
Returns DATA_INVALID
Reading of Microcom Class 4 ID 0x35F7
Returns PAR355S_OTCmissingT
Electrical heaters
Not affected/disabled
Compressor protection during heating.
If PAR220BF_CompProtection BIT1 is set AND if condenser temperature is bigger than PAR224S_EndSetpointLimit, Error 60 is generated, and HP is blocked. Affects both central heating and domestic hot water.
hierbij ontvangt u de beschikbare informatie over ModBus aansluiting op de Toros Vision.
Remeha kan hier verder geen ondersteuning op geven;
ModBus zit erop vanaf Firmwareversie C30.02, dus mogelijk is er wel een firmware update nodig.
De standaard instellingen zijn:
Address: 1 (Microcom 0x422A of 0x82CD)
Baud rate: 19200 (Microcom 0x4243 of 0x82CE)
Parity: 8N1 (Microcom 0x424C of 0x82CF)
Deze parameters zijn eventueel via Microcom te wijzigen.
De connector die je voor ModBus gebruikt is X9.
image002.png
Verder ook nog gevonden;
Inprincipe leveren wij geen modbus assistentie, omdat we de kennis hier niet van hebben.
Een collega heeft wel nog een document gevonden waar de gevraagde gegevens in staan, maar of alles klopt en of het intussen nog op deze manier werkt is voor eigen risico van de klant en gaan wij als remeha ook geen ondersteuning op leveren.
Bijgevoegd het gevraagde scherm en hieronder wat in 2019 de werkwijze was die wij dus niet hebben kunnen valideren.
__
Outside air temperature via Microcom / Modbus and OpenTherm.
Outside air temperature can be retrieved by several ways:
From Onboard sensor connected to X3.1
PAR201ENUM_OutsideTempSource has to be set to 1.
If onboard sensor is not connected, the Outside air temperature is not internally used, except OTC room setpoint compensation, where PAR355S_OTCmissingT is used instead. The PAR355S_OTCmissingT is returned to communication interfaces.
If onboard sensor is shorted or disconnected, the Error 48 is generated. Outside air temperature is not internally used, except OTC setpoint compensation, where PAR355S_OTCmissingT is used instead. The PAR355S_OTCmissingT is returned to communication interfaces instead. Error 48 is automatically cleared if sensor is connected.
From Microcom / Modbus communication interface
PAR201ENUM_OutsideTempSource has to be set to 2. Outside air temperature has to written to variable 0x35F7 at least every PAR202HOUR_OutsideTempTimeout hours. Otherwise Error 48 is generated. Valid range from -40 to +127 °C.
In case of Error 48, the Outside air temperature is not internally used, except OTC room setpoint compensation, where PAR355S_OTCmissingT is used instead. The PAR355S_OTCmissingT is also returned to communication interfaces instead. Error 48 is automatically cleared if valid information about Outside air temperature is received.
From OpenTherm communication interface
PAR201ENUM_OutsideTempSource has to be set to 3. Outside air temperature has to written to OpenTherm ID27 at least every PAR202HOUR_OutsideTempTimeout hours. Otherwise Error 48 is generated. Valid range from -40 to +127 °C.
In case of Error 48, the Outside air temperature is not internally used, except OTC room setpoint compensation, where PAR355S_OTCmissingT is used instead. The PAR355S_OTCmissingT is also returned to communication interfaces instead. Error 48 is automatically cleared if valid information about Outside air temperature is received.
Note: if Outside air temperature is written from communication interface, which is not selected by PAR201ENUM_OutsideTempSource, the written value is rejected.
Related Microcom / Modbus parameters
Class 7 ID
Name
meaning
unit
min
max
default
0x81C9
PAR201ENUM_OutsideTempSource
Outside temperature source selection (1=Onboard; 2=Modbus; 3=OpenTherm)
enumeration
1
3
1
0x81CA
PAR202HOUR_OutsideTempTimeout
Outside temperature timeout
hour
1
255
24
0x81DC
PAR220BF_CompProtection
Compressor protection for heating (BIT0=derived from evaporator inlet temperature; BIT1=derived from outside air temperature)
Bit field
0
3
0
0x81E0
PAR224S_EndSetpointLimit
Setpoint end limitation curve (for compressor protection during heating)
°C
10
90
30
0x8263
PAR355S_OTCmissingT
Outside temperature to be used with missing/wrong sensor
°C
-20
+30
-1
Related Microcom / Modbus variables
Class
R/W
ID
Name
Unit
Valid range
4
R W
0x35F7
Outside air temperature
tenth of °C
from -40 to +127 °C in case of write
Related OpenTherm IDs
Nr.
Msg
Type
Description
Implementation notes
27
R W
f8.8
Outside air temperature (°C)
Returns outside temperature. In case of sensor error returns DATA-INVALID. Temperature is limited to range from -40 to +127 °C.
Write attempt returns UNKNOWN-DATAID if it is outside of range from -40 to +127 °C or if it is not configured to receive outside temperature from OpenTherm. It is necessary to write outside temperature regularly (at least every 24 hours) if configured to receive outside temperature from OpenTherm.
Usage of Outside air temperature
Usage
Behavior in case there is no valid information about Outside air temperature
Standard setpoint calculation
No compensation
Room setpoint calculation
PAR355S_OTCmissingT is used instead
Automatic switching between heating and cooling.
Not executed
Inhibition of heating if outside air temperature is too high.
Not executed
Inhibition of cooling if outside air temperature is too low.
Not executed
Reading of OpenTherm ID27 Outside air temperature
Returns DATA_INVALID
Reading of Microcom Class 4 ID 0x35F7
Returns PAR355S_OTCmissingT
Electrical heaters
Not affected/disabled
Compressor protection during heating.
If PAR220BF_CompProtection BIT1 is set AND if condenser temperature is bigger than PAR224S_EndSetpointLimit, Error 60 is generated, and HP is blocked. Affects both central heating and domestic hot water.
/f/image/voHG4pQ1wsSyVP3qH6MEt3Kv.png?f=fotoalbum_large)
Misschien helpt jullie dit verder om een oplossing te vinden voor het aansturen van de Toros.
Het is al een tijdje rustig hier, maar nu het weer kouder wordt ben ik voornemens hier weer mee aan de slag te gaan. Het idee: Geen backend-api's, wireshark enz. Maar de UART communicatie tussen de wifi-module van de Toros en de hoofdprint aftappen (X8). Die om te beginnen voeren aan een ESPhome-device die ingesteld staat als 'text sensor'. In de microcom-software (die beschikbaar is/was op de Remeha-site en via dezelfde X8 communiceert) staan zelfs de adressen en manier van encoding van elke parameter:
/f/image/w0uSBIVyA3ZEfbeEORVUzNPi.png?f=fotoalbum_large)
Dus met een beetje geduld (en ChatGPT) zou het mogelijk moeten zijn om een stuk C++-code te schrijven die alle info die langskomt om te zetten in nette variabelen waar Home Assistant iets mee kan.
/f/image/w0uSBIVyA3ZEfbeEORVUzNPi.png?f=fotoalbum_large)
Dus met een beetje geduld (en ChatGPT) zou het mogelijk moeten zijn om een stuk C++-code te schrijven die alle info die langskomt om te zetten in nette variabelen waar Home Assistant iets mee kan.
Wow knap van jou als je dit mogelijk kan maken.💪 Als het werkt dan hoor ik het graag.
Kr3Kr schreef op zondag 29 september 2024 @ 21:09:
Het is al een tijdje rustig hier, maar nu het weer kouder wordt ben ik voornemens hier weer mee aan de slag te gaan. Het idee: Geen backend-api's, wireshark enz. Maar de UART communicatie tussen de wifi-module van de Toros en de hoofdprint aftappen (X8). Die om te beginnen voeren aan een ESPhome-device die ingesteld staat als 'text sensor'. In de microcom-software (die beschikbaar is/was op de Remeha-site en via dezelfde X8 communiceert) staan zelfs de adressen en manier van encoding van elke parameter:
[Afbeelding]
Dus met een beetje geduld (en ChatGPT) zou het mogelijk moeten zijn om een stuk C++-code te schrijven die alle info die langskomt om te zetten in nette variabelen waar Home Assistant iets mee kan.
Ik heb dit topic met veel interesse doorgelezen, maar helaas niet gevonden wat ik zocht. Ik zoek een manier om het gedrag van de warmtepomp te beïnvloeden, zodat ik de tijden waarop hij veel energie gebruikt kan laten samenvallen met de momenten waarop de energie goedkoop is.
Klopt het dat dit nog niemand gelukt is?
Ik dacht dat het misschien een optie was om de thermostaat te vervangen door een Evohome en dan de temperatuur een beetje te variëren, maar nu lees ik hier dat je volgens Remeha geen slimme thermostaat kunt aansluiten. Heeft hier iemand ervaring mee?
Off-topic: iemand die een installateur (in het midden van het land) met Toros Vision-ervaring kan aanbevelen?
Klopt het dat dit nog niemand gelukt is?
Ik dacht dat het misschien een optie was om de thermostaat te vervangen door een Evohome en dan de temperatuur een beetje te variëren, maar nu lees ik hier dat je volgens Remeha geen slimme thermostaat kunt aansluiten. Heeft hier iemand ervaring mee?
Off-topic: iemand die een installateur (in het midden van het land) met Toros Vision-ervaring kan aanbevelen?
Ja die moeten gekruisd worden, met dus ook een pullup op de RX. Sorry voor de late reactie!Sikkek schreef op maandag 22 januari 2024 @ 17:32:
Of moeten TX/RX gekruisd aangesloten worden?
Mijn idee daarvoor is dat je aan de "Tele-ingang" van de thermostaat bijv. een ESP met relais kan hangen, waardoor je i.i.g. een hoge en een lage temperatuur op verschillende tijden kunt kiezen. Dit heb ik 'droog' getest door de teleingang kort te sluiten. Nog niet aan toegekomen om er een ESPHome-project voor te maken.Bert-R schreef op dinsdag 24 december 2024 @ 17:10:
Klopt het dat dit nog niemand gelukt is?
Ik dacht dat het misschien een optie was om de thermostaat te vervangen door een Evohome en dan de temperatuur een beetje te variëren, maar nu lees ik hier dat je volgens Remeha geen slimme thermostaat kunt aansluiten. Heeft hier iemand ervaring mee?
Noodbedrijf aanzetten op een manier die wel werkt
Overigens hadden de buren weer een storing, en kreeg de monteur de pomp niet in het noodbedrijf. Dat is me bij 3 verschillende installaties ook nog nooit gelukt... Pas over een week zou er iemand van Remeha komen. Ondertussen was het 13ºC bij ze.
In de installateurshandleiding staan 3 mogelijkheden om de machine in noodbedrijf te krijgen, maar blijkbaar is er nog een vierde, ongedocumenteerde, die wel werkte: als je met de servicetool (en de kabel) numeriek '255' naar het 'noodbedrijf' register schrijft (dubbel klikken op het invoerveld), dan gaat de machine wel in het noodbedrijf op de gloeispiraal.
Mijn inzicht was; als zij dat kunnen via de 'cloud', dan moet dat via die X8-poort gaan, en als je dat uit kunt lezen met de servicetool kun je het wellicht ook 'schrijven'.
Ook goed om te weten: die service tool werkt bij mij alleen op een gare oude Windows 7 laptop. Moest er vijf proberen voordat ik het werkend had
[ Voor 3% gewijzigd door Kr3Kr op 20-01-2025 23:12 ]
Heb dit even door een AI gehaald en krijg dit terug;Hometec schreef op vrijdag 12 juli 2024 @ 23:53:
Ik ben zelf installateurs heb contact gezocht met Remeha over de vermeende API en de Modbus aansluiting.
Hun antwoord op de modbus aansluiting:
....
Misschien helpt jullie dit verder om een oplossing te vinden voor het aansturen van de Toros.
| ID | Name | Meaning | Unit | Min | Max | Default |
| 0x81C9 | PAR201ENUM_OutsideTempSource | Outside temperature source selection (1=Onboard; 2=Modbus; 3=OpenTherm) | Enumeration | 1 | 3 | 1 |
| 0x81CA | PAR202HOUR_OutsideTempTimeout | Outside temperature timeout | Hour | 1 | 255 | 24 |
| 0x81DC | PAR220BF_CompProtection | Compressor protection for heating (BIT0=derived from evaporator inlet temperature; BIT1=derived from outside air temperature) | Bit field | 0 | 3 | 0 |
| 0x81E0 | PAR224S_EndSetpointLimit | Setpoint end limitation curve (for compressor protection during heating) | °C | 10 | 90 | 30 |
| 0x8263 | PAR355S_OTCmissingT | Outside temperature to be used with missing/wrong sensor | °C | -20 | 30 | -1 |
| Class | R/W | ID | Name | Unit | Valid range |
| 4 | R/W | 0x35F7 | Outside air temperature | Tenth of °C | From -40 to +127 °C in case of write |
Bij modbus is een "read input register" operatie 0x04, dus mogelijk dat ID/adres 0x35F7 dan buitentemperatuur is. Die zou je dan kunnen schrijven met operatie 0x06 (write single register).
Dat is een andere manier om de werking van de pomp te beinvloeden: Een 'verkeerde' buitentemperatuur (tijdelijk) doorgeven zodat hij gaat stoken (of juist even niet) als jij dat wilt.
Dat is het fallback scenario waar ik later ook op kwam. Bedankt!Kr3Kr schreef op maandag 20 januari 2025 @ 22:57:
[...]
Mijn idee daarvoor is dat je aan de "Tele-ingang" van de thermostaat bijv. een ESP met relais kan hangen, waardoor je i.i.g. een hoge en een lage temperatuur op verschillende tijden kunt kiezen. Dit heb ik 'droog' getest door de teleingang kort te sluiten. Nog niet aan toegekomen om er een ESPHome-project voor te maken.
[...]
Met Open Therm Gateway tussen warmtepomp en chronotherm en home assistant kan ik data lezen en bijvoorbeeld warm water setpunt aanpassen, zodat warmtepomp voor warm water voornamelijk draait op uur van de dag dat zon maximaal is.Bert-R schreef op dinsdag 24 december 2024 @ 17:10:
Ik heb dit topic met veel interesse doorgelezen, maar helaas niet gevonden wat ik zocht. Ik zoek een manier om het gedrag van de warmtepomp te beïnvloeden, zodat ik de tijden waarop hij veel energie gebruikt kan laten samenvallen met de momenten waarop de energie goedkoop is.
Klopt het dat dit nog niemand gelukt is?
Ik dacht dat het misschien een optie was om de thermostaat te vervangen door een Evohome en dan de temperatuur een beetje te variëren, maar nu lees ik hier dat je volgens Remeha geen slimme thermostaat kunt aansluiten. Heeft hier iemand ervaring mee?
Off-topic: iemand die een installateur (in het midden van het land) met Toros Vision-ervaring kan aanbevelen?
Dat wel, maar de ruimtesetpoint is niet aan te passen.pf1 schreef op zaterdag 25 januari 2025 @ 15:27:
[...]
Met Open Therm Gateway tussen warmtepomp en chronotherm en home assistant kan ik data lezen en bijvoorbeeld warm water setpunt aanpassen, zodat warmtepomp voor warm water voornamelijk draait op uur van de dag dat zon maximaal is.
Ik ben vandaag begonnen met het debuggen van mijn ESPHome-modbus interface. Ik ben erachter gekomen dat (bijna) alle modbusparameters in de Servicetool staan; de microcom-aansluiting is geen RS485, maar het berichtenverkeer is wel Modbus. De 'screens' (*.scr) zijn eigenlijk CSV's van parameters, modbusadressen, datatype enz.
Deze heb ik opgeschoond, de juiste vermenigvuldigheidsfactoren aan toegevoegd (temperaturen zijn vrijwel allemaal in ºC*10 bijv.) en aan een AI gevoerd met de vraag om er een ESPHome-yaml-file voor te maken. Die heb ik nagekeken en ben ik nu aan het debuggen.
De hardware is simpel: elk ESP-board met een (ingebouwde of losse) RS485-interface (3.3V!) zou moeten werken. Ik heb een AI-thinker devboard met een ali-converter in wat ductape gewikkeld;
:strip_exif()/f/image/8roUGfMiYq9rihR1UbMNTqG0.png?f=user_large)
De ESPHome interface ziet er dan zo uit;
/f/image/BL4ArBfyGpxb9rnYhTsBOQSL.png?f=fotoalbum_large)
En in Home Assistant:
/f/image/1rPkxwqXBnZ4dFAJ6tU2Kkha.png?f=fotoalbum_large)
Vooralsnog werkt de communicatie niet, omdat ik denk dat er iets met mijn 485-module aan de hand is (termination resistor / flow control).
Daarnaast is de config een eerste aanzet. Veel waardes zullen niet kloppen en met bitmasks 'uit elkaar getrokken' moeten worden.
Hierbij toch alvast de config voor als iemand zelf ook aan de slag wilt:
Deze heb ik opgeschoond, de juiste vermenigvuldigheidsfactoren aan toegevoegd (temperaturen zijn vrijwel allemaal in ºC*10 bijv.) en aan een AI gevoerd met de vraag om er een ESPHome-yaml-file voor te maken. Die heb ik nagekeken en ben ik nu aan het debuggen.
De hardware is simpel: elk ESP-board met een (ingebouwde of losse) RS485-interface (3.3V!) zou moeten werken. Ik heb een AI-thinker devboard met een ali-converter in wat ductape gewikkeld;
:strip_exif()/f/image/8roUGfMiYq9rihR1UbMNTqG0.png?f=user_large)
De ESPHome interface ziet er dan zo uit;
/f/image/BL4ArBfyGpxb9rnYhTsBOQSL.png?f=fotoalbum_large)
En in Home Assistant:
/f/image/1rPkxwqXBnZ4dFAJ6tU2Kkha.png?f=fotoalbum_large)
Vooralsnog werkt de communicatie niet, omdat ik denk dat er iets met mijn 485-module aan de hand is (termination resistor / flow control).
Daarnaast is de config een eerste aanzet. Veel waardes zullen niet kloppen en met bitmasks 'uit elkaar getrokken' moeten worden.
Hierbij toch alvast de config voor als iemand zelf ook aan de slag wilt:
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
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
| esphome:
name: toros-modbus
friendly_name: Toros Vision Modbus bridge
min_version: 2024.11.0
name_add_mac_suffix: false
esp32:
board: esp32dev
framework:
type: esp-idf
# disable logging
logger:
baud_rate: 0
# Enable Home Assistant API
api:
# Allow Over-The-Air updates
ota:
- platform: esphome
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
web_server:
uart:
tx_pin: GPIO13
rx_pin: GPIO14
baud_rate: 19200
modbus:
id: modbus1
flow_control_pin: GPIO27
modbus_controller:
- id: modbus_device
address: 0x1 ## address of the Modbus slave device on the bus
modbus_id: modbus1
setup_priority: -10
output:
- platform: modbus_controller
modbus_controller_id: modbus_device
id: uren_noodbedrijf
address: 0x8282
register_type: holding
value_type: U_WORD
sensor:
- platform: modbus_controller
modbus_controller_id: modbus_device
id: zomer_winter_stand
name: "Zomer-winter-stand. 0 = winter"
address: 0x81E6
register_type: holding
unit_of_measurement: "boolean"
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: actual_error
name: "Actuale storing"
address: 0x0032
register_type: holding
unit_of_measurement: "integer"
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: vergrendeld
name: "Vergrendeld"
address: 0x0032
register_type: holding
unit_of_measurement: "boolean"
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: lage_druk_schakelaar
name: "Lage druk schakelaar"
address: 0x30CE
register_type: holding
unit_of_measurement: "integer"
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: hoge_druk_schakelaar
name: "Hoge druk schakelaar"
address: 0x30CE
register_type: holding
unit_of_measurement: "integer"
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: max_t_cpr
name: "MaxT CPR"
address: 0xF12B
register_type: holding
unit_of_measurement: "integer"
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: max_t_ee
name: "MaxT EE"
address: 0xF830
register_type: holding
unit_of_measurement: "integer"
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: ec1
name: "EC1"
address: 0xF12A
register_type: holding
unit_of_measurement: "integer"
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: ec2
name: "EC2"
address: 0xFA70
register_type: holding
unit_of_measurement: "integer"
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: afgiftesysteem
name: "Afgiftesysteem(min:sec)"
address: 0xF37C
register_type: holding
unit_of_measurement: "sec"
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: pompen
name: "Pompen(min:sec)"
address: 0xF37A
register_type: holding
unit_of_measurement: "sec"
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: warmtepomp
name: "Warmtepomp(sec)"
address: 0xF364
register_type: holding
unit_of_measurement: "sec"
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: cpr_aan_aan
name: "CPR AAN-AAN (min:sec)"
address: 0xF37E
register_type: holding
unit_of_measurement: "sec"
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: cpr_uit_aan
name: "CPR UIT_AAN (min:sec)"
address: 0xF380
register_type: holding
unit_of_measurement: "sec"
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: cpr_aan_uit
name: "CPR AAN-UIT(min:sec)"
address: 0xF382
register_type: holding
unit_of_measurement: "sec"
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: tzc_zonnecollector
name: "TZC ZONNECOLLECTOR"
address: 0x500B
register_type: holding
unit_of_measurement: "temperature"
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_device
id: tbu_buiten_actueel
name: "TBU BUITEN Actueel"
address: 0x35F7
register_type: holding
unit_of_measurement: "temperature"
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_device
id: ttw_tapwater
name: "TTW TAPWATER"
address: 0x3561
register_type: holding
unit_of_measurement: "temperature"
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_device
id: solarpomp
name: "Solarpomp [%]"
address: 0xF3F6
register_type: holding
unit_of_measurement: "percentage"
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: mengpositie_klep
name: "Mengpositie klep (%)"
address: 0x1DB6
register_type: holding
unit_of_measurement: "percentage"
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: tbr_bron_wp_in
name: "TBR Bron WP IN"
address: 0x5AAB
register_type: holding
unit_of_measurement: "temperature"
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1 |
Inderdaad niet mogelijk. Heb nog "oude" Techneco warmtepomp, waarbij de chronotherm niet als ruimte(woonkamer) thermostaat wordt gebruikt. Iedere ruimte een aparte eenvoudige aan/uit thermostaat. Heb overwogen deze door thermostaat die op afstand in te stellen is te vervangen. Maar besloten om ethernet relais (8 of 16 relais) te plaatsen. Met eerste relais kan ik keuze maken tussen lokale thermostaat of aansturing via home assistant en met tweede relais kan ik (als ik keuze heb gemaakt van sturing via home assistant) deze aan en uit zetten. Bij wegvallen spanning gaat alles terug naar lokale thermostaat sturing.Kr3Kr schreef op dinsdag 28 januari 2025 @ 11:59:
[...]
Dat wel, maar de ruimtesetpoint is niet aan te passen.
Maar het plan van uitlezen via ESPhome is nog weer stap verder. Kijk er met interesse naar.
Super interessant, ben je nog verder gegaan?. Ik heb net mijn 20 jaar oude toros vision vervangen door een nieuwe toros en heb dus ook dezelfde wensen. Ben aan het wachten op molex connectoren, esp’s en 485 boardjes had ik nog van een pv omvormer project dus wil ook gaan beginnen.Kr3Kr schreef op maandag 3 februari 2025 @ 09:45:
Ik ben vandaag begonnen met het debuggen van mijn ESPHome-modbus interface. Ik ben erachter gekomen dat (bijna) alle modbusparameters in de Servicetool staan; de microcom-aansluiting is geen RS485, maar het berichtenverkeer is wel Modbus. De 'screens' (*.scr) zijn eigenlijk CSV's van parameters, modbusadressen, datatype enz.
Deze heb ik opgeschoond, de juiste vermenigvuldigheidsfactoren aan toegevoegd (temperaturen zijn vrijwel allemaal in ºC*10 bijv.) en aan een AI gevoerd met de vraag om er een ESPHome-yaml-file voor te maken. Die heb ik nagekeken en ben ik nu aan het debuggen.
De hardware is simpel: elk ESP-board met een (ingebouwde of losse) RS485-interface (3.3V!) zou moeten werken. Ik heb een AI-thinker devboard met een ali-converter in wat ductape gewikkeld;
[Afbeelding]
oh wauw, ik lees hier interessante voortgang. Ik heb ook een Toros Vision, en de belachelijk hoge rekeningen van monteurs van Remeha die beginnen me te storen
Dus hoe chill zou het zijn om zelf basale dingen te kunnen uitlezen of zelfs aan te kunnen passen!
Weer stukje verder, de niet correcte waardes bij parameters lag aan de bus zelf. Na wat zitten denken de 120 ohm weerstand op de modbus rs486 interface (weerstand r7 bij mij) weggehaald en alles is nu zoals het hoort. Kan zelfs updaten per sec en de waardes zijn correct. Natuurlijk moeten sommige waardes nog een vertaling krijgen en op dit moment alleen read only waardes.
In de screen files van de microcom tool van Remeha kan je de modbus registers vinden en makkelijk de esp file uitbreiden..
Kijk, zo kom je nog ergens
In de screen files van de microcom tool van Remeha kan je de modbus registers vinden en makkelijk de esp file uitbreiden..
Kijk, zo kom je nog ergens
Sommige waardes bevatten een high en low bit, bv de kWh waardes.
In ESPHome een lambda berekening moeten doen
Hieronder een dashboard in ha, kan nu ook de setpoint van tapwater en de hysterese (de maxima daling van tapwater) met een slider schrijven naar de WP.
Enige wat niet kan is beïnvloeden wanneer de verwarming aangaat, dat loopt echt via de thermostaat en niet via modbus.. Maar…. Ik kan nu wel bv de set point van tapwater beïnvloeden en bv hoog zetten als de zon schijnt, dan zal de WP tapwater maken..
Voor de rest nog geen ideeen maar dit is al heel leuk
Dit is een compact dashboard, in de uitgebreide versie kan ik nu ook echt parameters aanpassen zoals in de microcom software.. Maar dat is echt voor debuggen en niet voor dagelijkse info
URL="https://tweakers.net/i/aJaFHXv-v5xHysMhBZEOzPO_udc=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/IKJ95lEMkqd3dQTWzb3mC2lL.png?f=user_large",,"1"]
[/URL]
In ESPHome een lambda berekening moeten doen
code:
om de high bit te krijgen. Nu zijn alle waardes helemaal goed.1
| (x >> 8) &0xFF |
Hieronder een dashboard in ha, kan nu ook de setpoint van tapwater en de hysterese (de maxima daling van tapwater) met een slider schrijven naar de WP.
Enige wat niet kan is beïnvloeden wanneer de verwarming aangaat, dat loopt echt via de thermostaat en niet via modbus.. Maar…. Ik kan nu wel bv de set point van tapwater beïnvloeden en bv hoog zetten als de zon schijnt, dan zal de WP tapwater maken..
Voor de rest nog geen ideeen maar dit is al heel leuk
Dit is een compact dashboard, in de uitgebreide versie kan ik nu ook echt parameters aanpassen zoals in de microcom software.. Maar dat is echt voor debuggen en niet voor dagelijkse info
URL="https://tweakers.net/i/aJaFHXv-v5xHysMhBZEOzPO_udc=/fit-in/4000x4000/filters:no_upscale():strip_exif()/f/image/IKJ95lEMkqd3dQTWzb3mC2lL.png?f=user_large",,"1"]
[/URL]
Dat is een prachtig resultaat! Kan je delen wat je gebruikt om dit te doen, zowel qua hardware als configuratie?
Oke, dit is het project tot nu toe, wat nog extra komt is een opentherm module en sketch zodat ik de thermostaat kan beïnvloeden. De modbus kan alles nu aansturen van de warmtepomp behalve de CV onderdelen want de toros heeft zelf geen idee van de temperatuur dat komt van de thermostaat.
Behalve dat is nu wel de toros te beïnvloeden op tapwater, je kan bv als er geen zon is de setpoint dynamisch verlagen zodat er geen tapwater gemaakt wordt en als de zon schijnt dit te verhogen. Werkt erg leuk
Dit is de electronica die gebruikt is, erg simpel, een esp32, een max485 bordje en een IR detector (ik heb er met 1 detector led) voor de kWH meter.
/f/image/PhjgQapg8qAKTFCYrcgBc49a.png?f=fotoalbum_large)
Als er geen communicatie is dan de aansluitingen A en B naar de modbus verwisselen. Ik moest ook uiteindelijk de 120ohm weerstand verwijderen, de bus had een te lage weerstand en slechte communicatie
Nu de ESPHome sketch;
Naast de modbus code gebruik ik ook een pulsmeter voor de kWh meter in de toros vision. Die code kan je natuurlijk verwijderen en heb je ook de extra bestanden niet nodig onder 'packages'
Nu de extra packages;
basis: !include ./components/basis.yaml
updates: !include ./components/updates.yaml
status: !include ./components/status_led.yaml
pulse: !include ./components/pulse_meter.yaml
updates.yaml
status_led.yaml
basis.yaml
pulse_meter.yaml
Behalve dat is nu wel de toros te beïnvloeden op tapwater, je kan bv als er geen zon is de setpoint dynamisch verlagen zodat er geen tapwater gemaakt wordt en als de zon schijnt dit te verhogen. Werkt erg leuk
Dit is de electronica die gebruikt is, erg simpel, een esp32, een max485 bordje en een IR detector (ik heb er met 1 detector led) voor de kWH meter.
/f/image/PhjgQapg8qAKTFCYrcgBc49a.png?f=fotoalbum_large)
Als er geen communicatie is dan de aansluitingen A en B naar de modbus verwisselen. Ik moest ook uiteindelijk de 120ohm weerstand verwijderen, de bus had een te lage weerstand en slechte communicatie
Nu de ESPHome sketch;
Naast de modbus code gebruik ik ook een pulsmeter voor de kWh meter in de toros vision. Die code kan je natuurlijk verwijderen en heb je ook de extra bestanden niet nodig onder 'packages'
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
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
| # Toros Vision warmtepomp interface via Modbus en kWh pulsmeter
esphome:
name: toros-modbuskwh
min_version: 2024.11.0
name_add_mac_suffix: false
platform: ESP32
board: nodemcu-32s #esp32dev
packages:
basis: !include ./components/basis.yaml
updates: !include ./components/updates.yaml
status: !include ./components/status_led.yaml
pulse: !include ./components/pulse_meter.yaml
substitutions:
# Define the GPIO pins
pulse_pin: GPIO5
status_led: GPIO2 #D4
friendly_name: WP Modbus kwh meter
# disable logging
logger:
baud_rate: 0
# Enable Home Assistant API
api:
# Allow Over-The-Air updates
ota:
- platform: esphome
wifi:
ssid: "Access Point SSID"
password: "Access Point wachtwoord"
web_server:
uart:
tx_pin: GPIO17
rx_pin: GPIO16
baud_rate: 19200
modbus:
id: modbus1
flow_control_pin: GPIO4
modbus_controller:
- id: modbus_device
address: 0x1 ## address of the Modbus slave device on the bus
modbus_id: modbus1
setup_priority: -10
update_interval: 30s
# Number (slider) input voor WP settings zoals de tapwater temperatuur
# hiermee kan misschien ook de switch functie gebruikt worden met modbus control om later te toggelen tussen temps bij zon bv.
number:
- platform: modbus_controller #template
modbus_controller_id: modbus_device
name: "Gewenste Tapwater temp"
id: tapwater_setpoint_ha
address: 0x817A
register_type: holding
value_type: U_WORD
entity_category: config
icon: mdi:chart-bell-curve
min_value: 35
max_value: 55
step: 1
mode: slider #box
lambda: "return x; "
write_lambda: |-
return x;
- platform: modbus_controller #template
modbus_controller_id: modbus_device
name: "Tapwater ECO minimum"
id: tapwater_eco_setpoint_ha
address: 0x8264
register_type: holding
value_type: U_WORD
entity_category: config
icon: mdi:chart-bell-curve
min_value: 30
max_value: 45
step: 1
mode: slider #box
lambda: "return x; "
write_lambda: |-
return x;
- platform: modbus_controller #template
modbus_controller_id: modbus_device
name: "Tapwater Max daling temp:"
id: tapwater_hysterese_ha
address: 0x817B
register_type: holding
value_type: U_WORD
entity_category: config
icon: mdi:chart-bell-curve
min_value: 2
max_value: 12
step: 1
mode: slider #box
lambda: "return x; "
write_lambda: |-
return x;
sensor:
- platform: modbus_controller
modbus_controller_id: modbus_device
id: status
name: "Status WP"
address: 0x539E
register_type: holding
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
id: zomer_winter_stand
name: "Zomer-winter-stand. 0 = winter"
address: 0x81E6
register_type: holding
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: actual_error
name: "Actuale storing"
address: 0x0032
register_type: holding
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: vergrendeld
name: "Vergrendeld"
address: 0x0032
register_type: holding
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: lage_druk_schakelaar
name: "Lage druk schakelaar"
address: 0x30CE
register_type: holding
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: hoge_druk_schakelaar
name: "Hoge druk schakelaar"
address: 0x30CE
register_type: holding
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: max_t_cpr
name: "MaxT CPR"
address: 0xF12B
register_type: holding
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: max_t_ee
name: "MaxT EE"
address: 0xF830
register_type: holding
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: ec1
name: "EC1"
address: 0xF12A
register_type: holding
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: ec2
name: "EC2"
address: 0xFA70
register_type: holding
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: afgiftesysteem
name: "Afgiftesysteem(min:sec)"
address: 0xF37C
register_type: holding
unit_of_measurement: "sec"
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: pompen
name: "Pompen(min:sec)"
address: 0xF37A
register_type: holding
unit_of_measurement: "sec"
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: warmtepomp
name: "Warmtepomp(sec)"
address: 0xF364
register_type: holding
unit_of_measurement: "sec"
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: cpr_aan_aan
name: "CPR AAN-AAN (min:sec)"
address: 0xF37E
register_type: holding
unit_of_measurement: "sec"
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: cpr_uit_aan
name: "CPR UIT_AAN (min:sec)"
address: 0xF380
register_type: holding
unit_of_measurement: "sec"
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: cpr_aan_uit
name: "CPR AAN-UIT(min:sec)"
address: 0xF382
register_type: holding
unit_of_measurement: "sec"
value_type: U_WORD
accuracy_decimals: 0
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: tbu_buiten_actueel
name: "Temp Buitensensor"
address: 0x35F7
register_type: holding
unit_of_measurement: "°C"
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_device
id: ttw_tapwater
name: "Tapwater actueel"
address: 0x3561
register_type: holding
unit_of_measurement: "°C"
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_device
id: tapwater_setpoint
name: "Tapwater Gewenst"
address: 0x817A
register_type: holding
unit_of_measurement: "°C"
value_type: U_WORD
accuracy_decimals: 1
- platform: modbus_controller
modbus_controller_id: modbus_device
id: tapwater_eco_setpoint
name: "Tapwater ECO minimum"
address: 0x8264
register_type: holding
unit_of_measurement: "°C"
value_type: U_WORD
accuracy_decimals: 1
- platform: modbus_controller
modbus_controller_id: modbus_device
id: tapwater_hysterese
name: "Tapwater Max Daling"
address: 0x817B
register_type: holding
unit_of_measurement: "°C"
value_type: U_WORD
accuracy_decimals: 1
- platform: template
id: tapwater_minimum_ha
name: "Tapwater minimum temp"
unit_of_measurement: "°C"
lambda: "return id(tapwater_setpoint_ha).state - id(tapwater_hysterese).state;"
- platform: modbus_controller
modbus_controller_id: modbus_device
id: mengpositie_klep
name: "Mengpositie klep (%)"
address: 0x1DB6
register_type: holding
unit_of_measurement: "%"
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 1.0
- platform: modbus_controller
modbus_controller_id: modbus_device
id: tbr_bron_wp_in
name: "TBR Bron WP IN"
address: 0x5AAB
register_type: holding
unit_of_measurement: "C"
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
# de kWh registers bevatten waardes voor 2 parameters. De highbit van het d_WORD is nodig en wordt via de lambda berekend
- platform: modbus_controller
modbus_controller_id: modbus_device
id: standby_kwh
name: "kWh Standby"
address: 0x5334
register_type: holding
unit_of_measurement: "kWh"
value_type: U_WORD
lambda: |-
uint16_t value = x;
uint16_t highbit = (value >> 8) & 0xFF;
return highbit;
- platform: modbus_controller
modbus_controller_id: modbus_device
id: tapwater_kwh
name: "kWh Tapwater"
address: 0x533B
register_type: holding
unit_of_measurement: "kWh"
value_type: U_WORD
lambda: |-
uint16_t value = x;
uint16_t highbit = (value >> 8) & 0xFF;
return highbit;
# warmte kWh zit in de lowbits van het register.
- platform: modbus_controller
modbus_controller_id: modbus_device
id: warmte_kwh
name: "kWh Warmte"
address: 0x5352
register_type: holding
unit_of_measurement: "kWh"
value_type: U_WORD
lambda: |-
uint16_t value = x;
uint16_t lowbit = value & 0xFF;
return lowbit;
- platform: modbus_controller
modbus_controller_id: modbus_device
id: actief_koel_kWh
name: "kWh Koel"
address: 0x5361
register_type: holding
unit_of_measurement: "kWh"
value_type: U_WORD
lambda: |-
uint16_t value = x;
uint16_t highbit = (value >> 8) & 0xFF;
return highbit;
- platform: modbus_controller
modbus_controller_id: modbus_device
id: passief_koel_kWh
name: "kWh Koel passief"
address: 0x535D
register_type: holding
unit_of_measurement: "kWh"
value_type: U_WORD
lambda: |-
uint16_t value = x;
uint16_t lowbit = value & 0xFF;
return lowbit;
- platform: modbus_controller
modbus_controller_id: modbus_device
id: totaal_kwh
name: "kWh Totaal"
address: 0x6557
register_type: holding
unit_of_measurement: "kWh"
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
id: actief_tap_uren
name: "Actief Tap Uren"
address: 0x53C4
register_type: holding
unit_of_measurement: "uur"
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
id: actief_CV_uren
name: "Actief CV Uren"
address: 0x5532
register_type: holding
unit_of_measurement: "uur"
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
id: actief_koel_uren
name: "Actief Koel Uren"
address: 0x5597
register_type: holding
unit_of_measurement: "uur"
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
id: passief_koel_uren
name: "Passief Koel Uren"
address: 0x5567
register_type: holding
unit_of_measurement: "uur"
value_type: U_WORD
# Vertalen van waardes naar tekst
text_sensor:
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Status"
id: status_string
address: 0x539E
register_type: holding
lambda: |-
uint16_t value = id(status).state;
switch (value) {
case 1: return std::string("Stand-By");
case 2: return std::string("Passief Tapwater");
case 4: return std::string("Actief Tapwater voor");
case 8: return std::string("Passief CV");
case 16: return std::string("Actief CV voor");
case 32: return std::string("Passief Koelen");
case 64: return std::string("Regenereren");
case 256: return std::string("Noodbedrijf TapW");
case 512: return std::string("Noodbedrijf CV");
case 1028: return std::string("Actief TapWater");
case 1040: return std::string("Actief CV");
default: return std::string("Unknown");
}
return x;
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Seizoen"
id: seizoen_string
address: 0x81E6
register_type: holding
lambda: |-
uint16_t value = id(zomer_winter_stand).state;
switch (value) {
case 0: return std::string("Winter");
case 1: return std::string("Zomer");
default: return std::string("Unknown");
}
return x; |
Nu de extra packages;
basis: !include ./components/basis.yaml
updates: !include ./components/updates.yaml
status: !include ./components/status_led.yaml
pulse: !include ./components/pulse_meter.yaml
updates.yaml
code:
1
2
3
4
5
6
7
8
9
10
| # OTA configuration #
ota:
- platform: esphome
id: ota_esphome
- platform: http_request
id: ota_http_request
http_request:
timeout: 10s
verify_ssl: false |
status_led.yaml
code:
1
2
3
4
5
6
7
| light:
- platform: status_led
internal: true
id: led_red
pin:
number: ${status_led}
inverted: true |
basis.yaml
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
| # Basic configuration #
button:
# Restart the ESP
- platform: restart
name: "Restart - WP kWh"
# Sensors for ESP version and WIFI information
text_sensor:
# # Installed version
# - platform: template
# name: "Glow - Installed version"
# id: glow_version
# icon: "mdi:label-outline"
# entity_category: diagnostic
# lambda: |-
# return {"${project_version}"};
# update_interval: 6h
# # ESPHome version
# - platform: version
# hide_timestamp: true
# name: '${friendly_name} - ESPHome Version'
# IP address and connected SSID
- platform: wifi_info
ip_address:
name: '${friendly_name} - IP Address'
icon: mdi:wifi
ssid:
name: '${friendly_name} - Connected SSID'
icon: mdi:wifi-strength-2
sensor:
# WiFi signal
- platform: wifi_signal
name: "${friendly_name} - WiFi Signal"
update_interval: 120s
# Enable time component to reset energy at midnight
# https://esphome.io/components/time/homeassistant.html
time:
- platform: homeassistant
id: homeassistant_time |
pulse_meter.yaml
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
| # Pulse meter configuration #
# Enable Home Assistant API
api:
services:
- service: reset_total_energy
then:
- button.press:
id: button_reset_total
number:
# Set the pulse rate of the LED on your meter
- platform: template
id: select_pulse_rate
name: 'Puls rate - imp/kWh'
optimistic: true
mode: box
min_value: 100
max_value: 10000
step: 100
restore_value: yes
initial_value: 800
# Reset total energy to given value
- platform: template
id: select_reset_total
name: 'Reset Value - Total Energy kWh'
entity_category: config
optimistic: true
mode: box
min_value: 0
max_value: 1000000
step: 1
initial_value: 985 # energie oude WP stond op 617kWh . 985 @28 maart 2025
button:
# Reset the total energy entity
- platform: template
id: button_reset_total
name: "Reset - Total Energy"
on_press:
- pulse_meter.set_total_pulses:
id: sensor_energy_pulse_meter
value: !lambda "return id(select_reset_total).state * id(select_pulse_rate).state;"
sensor:
# Pulse meter
- platform: pulse_meter
id: sensor_energy_pulse_meter
name: '${friendly_name} - Power Consumption'
unit_of_measurement: W
state_class: measurement
device_class: power
icon: mdi:flash-outline
accuracy_decimals: 0
pin: ${pulse_pin}
internal_filter: 100ms # in theory 800 pulse per kwh, max around 6kWh peak would be 1.33 pulse per second. 1/1.33 = 730ms so starting with 100ms as filter
timeout: 1min
on_raw_value:
then:
- light.turn_off:
id: led_red
- delay: 0.2s
- light.turn_on:
id: led_red
filters:
# multiply value = (60 / imp value) * 1000
# - multiply: 60
- lambda: return x * ((60.0 / id(select_pulse_rate).state) * 1000.0);
# Update the sensor with an average every 10th second. See
- throttle_average: 5s
- filter_out: NaN
- timeout: 60s # sent value will be NaN
- timeout:
timeout: 60s
value: !lambda return 3;
- clamp:
min_value: 1
max_value: 5500 # max Wh usage, eliminate spikes
ignore_out_of_range: true
total:
id: sensor_total_energy
name: '${friendly_name} - Total Energy'
unit_of_measurement: kWh
icon: mdi:circle-slice-3
state_class: total_increasing
device_class: energy
accuracy_decimals: 3
filters:
# multiply value = 1 / imp value
# - multiply: 0.001
- lambda: return x * (1.0 / id(select_pulse_rate).state);
# Update the sensor once per 0.1 kWh consumed, or every 5th minute, whichever happens sooner.
- delta: 0.01
- heartbeat: 60s
# Total day usage
- platform: total_daily_energy
id: sensor_total_daily_energy
name: '${friendly_name} - Daily Energy'
power_id: sensor_energy_pulse_meter
restore: true
unit_of_measurement: kWh
icon: mdi:circle-slice-3
state_class: total_increasing
device_class: energy
accuracy_decimals: 3
filters:
# Multiplication factor from W to kW is 0.001
- multiply: 0.001 |
[ Voor 100% gewijzigd door JoebarRC op 08-04-2025 12:48 ]
Mooi gedaan!
Hou er rekening mee dat sommige waarden overflowen (kwh, aantal uren). Maximale waarde is 255. Ik geloof niet dat er ergens bijgeouden wordt hoe vaak de waarde over de kop is gegaan, dus dat zul je zelf moeten doen.
Hou er rekening mee dat sommige waarden overflowen (kwh, aantal uren). Maximale waarde is 255. Ik geloof niet dat er ergens bijgeouden wordt hoe vaak de waarde over de kop is gegaan, dus dat zul je zelf moeten doen.
The Flying Dutchman
Dank je voor het delen! Na de zomer verwacht ik meer tijd en ga ik hier in duiken.JoebarRC schreef op dinsdag 8 april 2025 @ 11:08:
Oke, dit is het project tot nu toe...
Whoa, lekker bezig. Dit is inderdaad wat ik voor ogen had. Leuk om na zo'n tijd weer terug te komen op dit onderwerp en alle vooruitgang te zien. Ik zal de komende tijd eens kijken of ik het na kan bouwen.JoebarRC schreef op dinsdag 8 april 2025 @ 11:08:
Oke, dit is het project tot nu toe, wat nog extra komt is een opentherm module en sketch zodat ik de thermostaat kan beïnvloeden. De modbus kan alles nu aansturen van de warmtepomp behalve de CV onderdelen want de toros heeft zelf geen idee van de temperatuur dat komt van de thermostaat.
Behalve dat is nu wel de toros te beïnvloeden op tapwater, je kan bv als er geen zon is de setpoint dynamisch verlagen zodat er geen tapwater gemaakt wordt en als de zon schijnt dit te verhogen. Werkt erg leuk
Dit is de electronica die gebruikt is, erg simpel, een esp32, een max485 bordje en een IR detector (ik heb er met 1 detector led) voor de kWH meter.
[Afbeelding]
Als er geen communicatie is dan de aansluitingen A en B naar de modbus verwisselen. Ik moest ook uiteindelijk de 120ohm weerstand verwijderen, de bus had een te lage weerstand en slechte communicatie
Nu de ESPHome sketch;
Naast de modbus code gebruik ik ook een pulsmeter voor de kWh meter in de toros vision. Die code kan je natuurlijk verwijderen en heb je ook de extra bestanden niet nodig onder 'packages'
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 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# Toros Vision warmtepomp interface via Modbus en kWh pulsmeter esphome: name: toros-modbuskwh min_version: 2024.11.0 name_add_mac_suffix: false platform: ESP32 board: nodemcu-32s #esp32dev packages: basis: !include ./components/basis.yaml updates: !include ./components/updates.yaml status: !include ./components/status_led.yaml pulse: !include ./components/pulse_meter.yaml substitutions: # Define the GPIO pins pulse_pin: GPIO5 status_led: GPIO2 #D4 friendly_name: WP Modbus kwh meter # disable logging logger: baud_rate: 0 # Enable Home Assistant API api: # Allow Over-The-Air updates ota: - platform: esphome wifi: ssid: "Access Point SSID" password: "Access Point wachtwoord" web_server: uart: tx_pin: GPIO17 rx_pin: GPIO16 baud_rate: 19200 modbus: id: modbus1 flow_control_pin: GPIO4 modbus_controller: - id: modbus_device address: 0x1 ## address of the Modbus slave device on the bus modbus_id: modbus1 setup_priority: -10 update_interval: 30s # Number (slider) input voor WP settings zoals de tapwater temperatuur # hiermee kan misschien ook de switch functie gebruikt worden met modbus control om later te toggelen tussen temps bij zon bv. number: - platform: modbus_controller #template modbus_controller_id: modbus_device name: "Gewenste Tapwater temp" id: tapwater_setpoint_ha address: 0x817A register_type: holding value_type: U_WORD entity_category: config icon: mdi:chart-bell-curve min_value: 35 max_value: 55 step: 1 mode: slider #box lambda: "return x; " write_lambda: |- return x; - platform: modbus_controller #template modbus_controller_id: modbus_device name: "Tapwater ECO minimum" id: tapwater_eco_setpoint_ha address: 0x8264 register_type: holding value_type: U_WORD entity_category: config icon: mdi:chart-bell-curve min_value: 30 max_value: 45 step: 1 mode: slider #box lambda: "return x; " write_lambda: |- return x; - platform: modbus_controller #template modbus_controller_id: modbus_device name: "Tapwater Max daling temp:" id: tapwater_hysterese_ha address: 0x817B register_type: holding value_type: U_WORD entity_category: config icon: mdi:chart-bell-curve min_value: 2 max_value: 12 step: 1 mode: slider #box lambda: "return x; " write_lambda: |- return x; sensor: - platform: modbus_controller modbus_controller_id: modbus_device id: status name: "Status WP" address: 0x539E register_type: holding value_type: U_WORD - platform: modbus_controller modbus_controller_id: modbus_device id: zomer_winter_stand name: "Zomer-winter-stand. 0 = winter" address: 0x81E6 register_type: holding value_type: U_WORD accuracy_decimals: 0 filters: - multiply: 1.0 - platform: modbus_controller modbus_controller_id: modbus_device id: actual_error name: "Actuale storing" address: 0x0032 register_type: holding value_type: U_WORD accuracy_decimals: 0 filters: - multiply: 1.0 - platform: modbus_controller modbus_controller_id: modbus_device id: vergrendeld name: "Vergrendeld" address: 0x0032 register_type: holding value_type: U_WORD accuracy_decimals: 0 filters: - multiply: 1.0 - platform: modbus_controller modbus_controller_id: modbus_device id: lage_druk_schakelaar name: "Lage druk schakelaar" address: 0x30CE register_type: holding value_type: U_WORD accuracy_decimals: 0 filters: - multiply: 1.0 - platform: modbus_controller modbus_controller_id: modbus_device id: hoge_druk_schakelaar name: "Hoge druk schakelaar" address: 0x30CE register_type: holding value_type: U_WORD accuracy_decimals: 0 filters: - multiply: 1.0 - platform: modbus_controller modbus_controller_id: modbus_device id: max_t_cpr name: "MaxT CPR" address: 0xF12B register_type: holding value_type: U_WORD accuracy_decimals: 0 filters: - multiply: 1.0 - platform: modbus_controller modbus_controller_id: modbus_device id: max_t_ee name: "MaxT EE" address: 0xF830 register_type: holding value_type: U_WORD accuracy_decimals: 0 filters: - multiply: 1.0 - platform: modbus_controller modbus_controller_id: modbus_device id: ec1 name: "EC1" address: 0xF12A register_type: holding value_type: U_WORD accuracy_decimals: 0 filters: - multiply: 1.0 - platform: modbus_controller modbus_controller_id: modbus_device id: ec2 name: "EC2" address: 0xFA70 register_type: holding value_type: U_WORD accuracy_decimals: 0 filters: - multiply: 1.0 - platform: modbus_controller modbus_controller_id: modbus_device id: afgiftesysteem name: "Afgiftesysteem(min:sec)" address: 0xF37C register_type: holding unit_of_measurement: "sec" value_type: U_WORD accuracy_decimals: 0 filters: - multiply: 1.0 - platform: modbus_controller modbus_controller_id: modbus_device id: pompen name: "Pompen(min:sec)" address: 0xF37A register_type: holding unit_of_measurement: "sec" value_type: U_WORD accuracy_decimals: 0 filters: - multiply: 1.0 - platform: modbus_controller modbus_controller_id: modbus_device id: warmtepomp name: "Warmtepomp(sec)" address: 0xF364 register_type: holding unit_of_measurement: "sec" value_type: U_WORD accuracy_decimals: 0 filters: - multiply: 1.0 - platform: modbus_controller modbus_controller_id: modbus_device id: cpr_aan_aan name: "CPR AAN-AAN (min:sec)" address: 0xF37E register_type: holding unit_of_measurement: "sec" value_type: U_WORD accuracy_decimals: 0 filters: - multiply: 1.0 - platform: modbus_controller modbus_controller_id: modbus_device id: cpr_uit_aan name: "CPR UIT_AAN (min:sec)" address: 0xF380 register_type: holding unit_of_measurement: "sec" value_type: U_WORD accuracy_decimals: 0 filters: - multiply: 1.0 - platform: modbus_controller modbus_controller_id: modbus_device id: cpr_aan_uit name: "CPR AAN-UIT(min:sec)" address: 0xF382 register_type: holding unit_of_measurement: "sec" value_type: U_WORD accuracy_decimals: 0 filters: - multiply: 1.0 - platform: modbus_controller modbus_controller_id: modbus_device id: tbu_buiten_actueel name: "Temp Buitensensor" address: 0x35F7 register_type: holding unit_of_measurement: "°C" value_type: U_WORD accuracy_decimals: 1 filters: - multiply: 0.1 - platform: modbus_controller modbus_controller_id: modbus_device id: ttw_tapwater name: "Tapwater actueel" address: 0x3561 register_type: holding unit_of_measurement: "°C" value_type: U_WORD accuracy_decimals: 1 filters: - multiply: 0.1 - platform: modbus_controller modbus_controller_id: modbus_device id: tapwater_setpoint name: "Tapwater Gewenst" address: 0x817A register_type: holding unit_of_measurement: "°C" value_type: U_WORD accuracy_decimals: 1 - platform: modbus_controller modbus_controller_id: modbus_device id: tapwater_eco_setpoint name: "Tapwater ECO minimum" address: 0x8264 register_type: holding unit_of_measurement: "°C" value_type: U_WORD accuracy_decimals: 1 - platform: modbus_controller modbus_controller_id: modbus_device id: tapwater_hysterese name: "Tapwater Max Daling" address: 0x817B register_type: holding unit_of_measurement: "°C" value_type: U_WORD accuracy_decimals: 1 - platform: template id: tapwater_minimum_ha name: "Tapwater minimum temp" unit_of_measurement: "°C" lambda: "return id(tapwater_setpoint_ha).state - id(tapwater_hysterese).state;" - platform: modbus_controller modbus_controller_id: modbus_device id: mengpositie_klep name: "Mengpositie klep (%)" address: 0x1DB6 register_type: holding unit_of_measurement: "%" value_type: U_WORD accuracy_decimals: 1 filters: - multiply: 1.0 - platform: modbus_controller modbus_controller_id: modbus_device id: tbr_bron_wp_in name: "TBR Bron WP IN" address: 0x5AAB register_type: holding unit_of_measurement: "C" value_type: U_WORD accuracy_decimals: 1 filters: - multiply: 0.1 # de kWh registers bevatten waardes voor 2 parameters. De highbit van het d_WORD is nodig en wordt via de lambda berekend - platform: modbus_controller modbus_controller_id: modbus_device id: standby_kwh name: "kWh Standby" address: 0x5334 register_type: holding unit_of_measurement: "kWh" value_type: U_WORD lambda: |- uint16_t value = x; uint16_t highbit = (value >> 8) & 0xFF; return highbit; - platform: modbus_controller modbus_controller_id: modbus_device id: tapwater_kwh name: "kWh Tapwater" address: 0x533B register_type: holding unit_of_measurement: "kWh" value_type: U_WORD lambda: |- uint16_t value = x; uint16_t highbit = (value >> 8) & 0xFF; return highbit; # warmte kWh zit in de lowbits van het register. - platform: modbus_controller modbus_controller_id: modbus_device id: warmte_kwh name: "kWh Warmte" address: 0x5352 register_type: holding unit_of_measurement: "kWh" value_type: U_WORD lambda: |- uint16_t value = x; uint16_t lowbit = value & 0xFF; return lowbit; - platform: modbus_controller modbus_controller_id: modbus_device id: actief_koel_kWh name: "kWh Koel" address: 0x5361 register_type: holding unit_of_measurement: "kWh" value_type: U_WORD lambda: |- uint16_t value = x; uint16_t highbit = (value >> 8) & 0xFF; return highbit; - platform: modbus_controller modbus_controller_id: modbus_device id: passief_koel_kWh name: "kWh Koel passief" address: 0x535D register_type: holding unit_of_measurement: "kWh" value_type: U_WORD lambda: |- uint16_t value = x; uint16_t lowbit = value & 0xFF; return lowbit; - platform: modbus_controller modbus_controller_id: modbus_device id: totaal_kwh name: "kWh Totaal" address: 0x6557 register_type: holding unit_of_measurement: "kWh" value_type: U_WORD - platform: modbus_controller modbus_controller_id: modbus_device id: actief_tap_uren name: "Actief Tap Uren" address: 0x53C4 register_type: holding unit_of_measurement: "uur" value_type: U_WORD - platform: modbus_controller modbus_controller_id: modbus_device id: actief_CV_uren name: "Actief CV Uren" address: 0x5532 register_type: holding unit_of_measurement: "uur" value_type: U_WORD - platform: modbus_controller modbus_controller_id: modbus_device id: actief_koel_uren name: "Actief Koel Uren" address: 0x5597 register_type: holding unit_of_measurement: "uur" value_type: U_WORD - platform: modbus_controller modbus_controller_id: modbus_device id: passief_koel_uren name: "Passief Koel Uren" address: 0x5567 register_type: holding unit_of_measurement: "uur" value_type: U_WORD # Vertalen van waardes naar tekst text_sensor: - platform: modbus_controller modbus_controller_id: modbus_device name: "Status" id: status_string address: 0x539E register_type: holding lambda: |- uint16_t value = id(status).state; switch (value) { case 1: return std::string("Stand-By"); case 2: return std::string("Passief Tapwater"); case 4: return std::string("Actief Tapwater voor"); case 8: return std::string("Passief CV"); case 16: return std::string("Actief CV voor"); case 32: return std::string("Passief Koelen"); case 64: return std::string("Regenereren"); case 256: return std::string("Noodbedrijf TapW"); case 512: return std::string("Noodbedrijf CV"); case 1028: return std::string("Actief TapWater"); case 1040: return std::string("Actief CV"); default: return std::string("Unknown"); } return x; - platform: modbus_controller modbus_controller_id: modbus_device name: "Seizoen" id: seizoen_string address: 0x81E6 register_type: holding lambda: |- uint16_t value = id(zomer_winter_stand).state; switch (value) { case 0: return std::string("Winter"); case 1: return std::string("Zomer"); default: return std::string("Unknown"); } return x;
Nu de extra packages;
basis: !include ./components/basis.yaml
updates: !include ./components/updates.yaml
status: !include ./components/status_led.yaml
pulse: !include ./components/pulse_meter.yaml
updates.yaml
code:
1 2 3 4 5 6 7 8 9 10# OTA configuration # ota: - platform: esphome id: ota_esphome - platform: http_request id: ota_http_request http_request: timeout: 10s verify_ssl: false
status_led.yaml
code:
1 2 3 4 5 6 7light: - platform: status_led internal: true id: led_red pin: number: ${status_led} inverted: true
basis.yaml
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# Basic configuration # button: # Restart the ESP - platform: restart name: "Restart - WP kWh" # Sensors for ESP version and WIFI information text_sensor: # # Installed version # - platform: template # name: "Glow - Installed version" # id: glow_version # icon: "mdi:label-outline" # entity_category: diagnostic # lambda: |- # return {"${project_version}"}; # update_interval: 6h # # ESPHome version # - platform: version # hide_timestamp: true # name: '${friendly_name} - ESPHome Version' # IP address and connected SSID - platform: wifi_info ip_address: name: '${friendly_name} - IP Address' icon: mdi:wifi ssid: name: '${friendly_name} - Connected SSID' icon: mdi:wifi-strength-2 sensor: # WiFi signal - platform: wifi_signal name: "${friendly_name} - WiFi Signal" update_interval: 120s # Enable time component to reset energy at midnight # https://esphome.io/components/time/homeassistant.html time: - platform: homeassistant id: homeassistant_time
pulse_meter.yaml
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# Pulse meter configuration # # Enable Home Assistant API api: services: - service: reset_total_energy then: - button.press: id: button_reset_total number: # Set the pulse rate of the LED on your meter - platform: template id: select_pulse_rate name: 'Puls rate - imp/kWh' optimistic: true mode: box min_value: 100 max_value: 10000 step: 100 restore_value: yes initial_value: 800 # Reset total energy to given value - platform: template id: select_reset_total name: 'Reset Value - Total Energy kWh' entity_category: config optimistic: true mode: box min_value: 0 max_value: 1000000 step: 1 initial_value: 985 # energie oude WP stond op 617kWh . 985 @28 maart 2025 button: # Reset the total energy entity - platform: template id: button_reset_total name: "Reset - Total Energy" on_press: - pulse_meter.set_total_pulses: id: sensor_energy_pulse_meter value: !lambda "return id(select_reset_total).state * id(select_pulse_rate).state;" sensor: # Pulse meter - platform: pulse_meter id: sensor_energy_pulse_meter name: '${friendly_name} - Power Consumption' unit_of_measurement: W state_class: measurement device_class: power icon: mdi:flash-outline accuracy_decimals: 0 pin: ${pulse_pin} internal_filter: 100ms # in theory 800 pulse per kwh, max around 6kWh peak would be 1.33 pulse per second. 1/1.33 = 730ms so starting with 100ms as filter timeout: 1min on_raw_value: then: - light.turn_off: id: led_red - delay: 0.2s - light.turn_on: id: led_red filters: # multiply value = (60 / imp value) * 1000 # - multiply: 60 - lambda: return x * ((60.0 / id(select_pulse_rate).state) * 1000.0); # Update the sensor with an average every 10th second. See - throttle_average: 5s - filter_out: NaN - timeout: 60s # sent value will be NaN - timeout: timeout: 60s value: !lambda return 3; - clamp: min_value: 1 max_value: 5500 # max Wh usage, eliminate spikes ignore_out_of_range: true total: id: sensor_total_energy name: '${friendly_name} - Total Energy' unit_of_measurement: kWh icon: mdi:circle-slice-3 state_class: total_increasing device_class: energy accuracy_decimals: 3 filters: # multiply value = 1 / imp value # - multiply: 0.001 - lambda: return x * (1.0 / id(select_pulse_rate).state); # Update the sensor once per 0.1 kWh consumed, or every 5th minute, whichever happens sooner. - delta: 0.01 - heartbeat: 60s # Total day usage - platform: total_daily_energy id: sensor_total_daily_energy name: '${friendly_name} - Daily Energy' power_id: sensor_energy_pulse_meter restore: true unit_of_measurement: kWh icon: mdi:circle-slice-3 state_class: total_increasing device_class: energy accuracy_decimals: 3 filters: # Multiplication factor from W to kW is 0.001 - multiply: 0.001
[Afbeelding]
Over de opentherm-methode om de setpoint aan te passen: dit werkt (voor zover ik weet) niet omdat de Chronotherm Touch modulation thermostaat (die bij eigenlijk alle installaties toegepast worden) dit niet ondersteunen. Zie ook mijn bericht hierover in het OTGW topic met de bijbehorende antwoorden (die ik even niet kan vinden).
Wat wel kan is de eerder beschreven methode van tijdelijk via de modbus/serial de buitentemperatuur handmatig overschrijven.
Wat voor andere tweakers misschien ook wel goed is om te weten, vooral in deze periode: bij ons bouwproject zijn alle 6 de pompen ingeregeld om pas te beginnen met stoken als de buitentemperatuur onder de 17 graden gezakt is. In de handleiding en minicom lijkt het alsof dit alleen geldt als de Toros ingesteld is op 'Automatisch koelen/verwarmen'. Maar: Zelfs als hij op 'alleen verwarmen' staat, en de setpoint is bijv. 21°C, gemeten ruimte temperatuur is 19°C en buiten is het 18°C dan zal hij alsnog niet gaan stoken. De Remeha klantenservice beaamt dat dit "heel raar" is ("als u het 25°C in huis wil hebben moet hij gewoon luisteren!").
Als je dit aan wilt passen, moet je in de Minicom onder de pagina "Installateur compact" de waarde voor "Stookgrens Tbu actueel" instellen op een logische waarde (bijv. 21). Dit doe je door op het getal te klikken, in de popup de waarde te wijzigen, en daarna op "Write OK" te drukken.
Succes, ik heb @JoebarRC's Modbus code ook draaiend. Ik heb alleen nog een rare waarde:
In principe zijn alle waardes die met de Minicom te lezen en schrijven zijn, ook via de Modbus benaderbaar.
De 'screens' zijn eigenlijk CSV-bestanden met de modbusregisters en hun eigenschappen. Mijn volgende stap is dat ik een aantal extra statistieken toe wil voegen, zoals beschreven in de "NL-Monitoring.scr";
Stap daarna zou zijn om de werking van de pomp te beïnvloeden, bijv. op basis van EPEX prijs of PV-opbrengst:
1) de buitensensor tijdelijk via modbus te regelen (0x81C9 = 2)
2) een temperatuur hoger dan de stookgrens in te stellen (bijv. 0x35F7 = 400), in tienden graden
3) een timeout op die waarde in te stellen (0x81CA = 1), in uren
4) evt. na een uur alles weer terug op de buitensensor zetten (0x81C9 = 1)
Daarmee kun je niet de ruimtesetpoint beïnvloeden, maar wel tijdelijk het stoken uit zetten / uitstellen, bijv. op momenten dat dit niet uitkomt i.v.m. piekprijzen.
Een tip voor het debuggen: hang een pc'tje/laptop met minicom en remote desktop aan de andere poort, dan kun je live meekijken wat er veranderd.
@JoebarRC zou je nog je HA 'card' code willen delen, want die van jou ziet er een stuk netter uit!
code:
1
| TBR Bron WP IN 6492.3 C |
In principe zijn alle waardes die met de Minicom te lezen en schrijven zijn, ook via de Modbus benaderbaar.
De 'screens' zijn eigenlijk CSV-bestanden met de modbusregisters en hun eigenschappen. Mijn volgende stap is dat ik een aantal extra statistieken toe wil voegen, zoals beschreven in de "NL-Monitoring.scr";
code:
1
2
3
4
5
6
7
8
9
| "I",1,4,"42E6",0,"Tvu (BRON WP UIT)","",0,0,0,0,"0",0,3572,14103,3572,12408,"0",4,2 "I",1,4,"3AF8",0,"Tvi (BRON WP IN)","",0,0,0,0,"0",0,3196,14103,3196,12408,"0",4,2 "I",1,4,"17DA",0,"Tci (CV WP IN)","Not Assigned",0,0,0,0,"0",0,3948,14103,3948,12408,"0",4,2 "I",1,4,"178F",0,"Tcu (CV COND UIT)","Not Assigned",0,0,0,0,"0",0,4324,14103,4324,12408,"0",4,2 "I",1,4,"3F6B",0,"=Tau (CV WP UIT)","Not Assigned",0,0,0,0,"0",0,4700,14103,4700,12408,"0",4,2 "I",1,1,"36F4",0,"FVD (Flow bron in Hz)","Not Assigned",0,0,0,0,"0",0,5452,14103,5452,12408,"0",4,0 "I",1,4,"500B",0,"Tzc (ZONNECOLLECTOR)","Not Assigned",0,0,0,0,"0",0,2444,14103,2444,12408,"0",4,2 "I",1,3,"5AAB",0,"Tbr (BRON WP IN)","Not Assigned",0,0,0,0,"0",0,2820,14103,2820,12408,"0",4,2 "I",1,3,"3561",0,"=Ttw (TAPWATER)","Not Assigned",0,0,0,0,"0",0,5076,14103,5076,12408,"0",4,2 |
Stap daarna zou zijn om de werking van de pomp te beïnvloeden, bijv. op basis van EPEX prijs of PV-opbrengst:
1) de buitensensor tijdelijk via modbus te regelen (0x81C9 = 2)
2) een temperatuur hoger dan de stookgrens in te stellen (bijv. 0x35F7 = 400), in tienden graden
3) een timeout op die waarde in te stellen (0x81CA = 1), in uren
4) evt. na een uur alles weer terug op de buitensensor zetten (0x81C9 = 1)
Daarmee kun je niet de ruimtesetpoint beïnvloeden, maar wel tijdelijk het stoken uit zetten / uitstellen, bijv. op momenten dat dit niet uitkomt i.v.m. piekprijzen.
Een tip voor het debuggen: hang een pc'tje/laptop met minicom en remote desktop aan de andere poort, dan kun je live meekijken wat er veranderd.
@JoebarRC zou je nog je HA 'card' code willen delen, want die van jou ziet er een stuk netter uit!
[ Voor 5% gewijzigd door Kr3Kr op 19-09-2025 10:42 ]
Heel goed inzicht, bedankt hiervoor. Wat betreft de temperatuurdrempels: op de Chrono-thermostaat kun je de ketelinstellingen openen en de volgende opties instellen:Kr3Kr schreef op zaterdag 13 september 2025 @ 17:12:
[...]
Whoa, lekker bezig. Dit is inderdaad wat ik voor ogen had. Leuk om na zo'n tijd weer terug te komen op dit onderwerp en alle vooruitgang te zien. Ik zal de komende tijd eens kijken of ik het na kan bouwen.
Over de opentherm-methode om de setpoint aan te passen: dit werkt (voor zover ik weet) niet omdat de Chronotherm Touch modulation thermostaat (die bij eigenlijk alle installaties toegepast worden) dit niet ondersteunen. Zie ook mijn bericht hierover in het OTGW topic met de bijbehorende antwoorden (die ik even niet kan vinden).
Wat wel kan is de eerder beschreven methode van tijdelijk via de modbus/serial de buitentemperatuur handmatig overschrijven.
Wat voor andere tweakers misschien ook wel goed is om te weten, vooral in deze periode: bij ons bouwproject zijn alle 6 de pompen ingeregeld om pas te beginnen met stoken als de buitentemperatuur onder de 17 graden gezakt is. In de handleiding en minicom lijkt het alsof dit alleen geldt als de Toros ingesteld is op 'Automatisch koelen/verwarmen'. Maar: Zelfs als hij op 'alleen verwarmen' staat, en de setpoint is bijv. 21°C, gemeten ruimte temperatuur is 19°C en buiten is het 18°C dan zal hij alsnog niet gaan stoken. De Remeha klantenservice beaamt dat dit "heel raar" is ("als u het 25°C in huis wil hebben moet hij gewoon luisteren!").![]()
Als je dit aan wilt passen, moet je in de Minicom onder de pagina "Installateur compact" de waarde voor "Stookgrens Tbu actueel" instellen op een logische waarde (bijv. 21). Dit doe je door op het getal te klikken, in de popup de waarde te wijzigen, en daarna op "Write OK" te drukken.
244 - verwarmen
243 - koelen
(bijvoorbeeld 244 ingesteld op 15 °C en 243 ingesteld op 17 °C - als de buitentemperatuur hoger is dan 17 °C gedurende het aantal uren dat je pomp is ingesteld, dan begint deze te “koelen”)
In mijn tests moet het verschil tussen de drempels 2 °C zijn en moet de buitentemperatuur gedurende ongeveer 12-24 uur boven (of onder) de ingestelde drempels liggen. Je kunt ook het aantal uren wijzigen om hiermee rekening te houden, maar ik weet niet wat de code daarvoor is en of je daarvoor de software moet gebruiken.
Klopt, dat was ik alweer vergeten. Ik kwam gisteren toevallig ook weer dit (heel leesbare en mooieForeigner schreef op maandag 22 september 2025 @ 14:43:
[...]
Heel goed inzicht, bedankt hiervoor. Wat betreft de temperatuurdrempels: op de Chrono-thermostaat kun je de ketelinstellingen openen en de volgende opties instellen:
244 - verwarmen
243 - koelen
(bijvoorbeeld 244 ingesteld op 15 °C en 243 ingesteld op 17 °C - als de buitentemperatuur hoger is dan 17 °C gedurende het aantal uren dat je pomp is ingesteld, dan begint deze te “koelen”)
In mijn tests moet het verschil tussen de drempels 2 °C zijn en moet de buitentemperatuur gedurende ongeveer 12-24 uur boven (of onder) de ingestelde drempels liggen. Je kunt ook het aantal uren wijzigen om hiermee rekening te houden, maar ik weet niet wat de code daarvoor is en of je daarvoor de software moet gebruiken.
/f/image/FQ8p0DXDWydjYCOjs9BVRzYM.png?f=fotoalbum_large)
Gisteren nog de buren geholpen (die een baby van een week oud hebben!) waarbij de ketel, zelfs nadat die drempels anders ingesteld stonden, in 'zomerbedrijf' bleef hangen (Chronotherm stond op 'alleen verwarmen'). Het was ondertussen lekker fris in huis. Niets hielp: Setpoint op 25°C, in/uit/in winterbedrijf via de thermostaat, parameter 0013 van de Chronotherm 0/1...
Pas toen ik de Zomer-winterbedrijf op "0" zette via de Minicom wilde hij beginnen. Die dame stond al de hele avond onder de douche om op te warmen, moet je voorstellen dat je de monteur moet bellen.
Dat is een geweldige pagina! Wat ik ooit hoop te vinden is de servicehandleiding met uitleg voor alle verborgen codes.
Is het ook mogelijk om het opwarmen van het tapwater te sturen op basis van de energie prijs? Met andere woorden, het voorraad vat in een batterij veranderen?
In theorie kan je dat doen door de gewenste sww temperatuur te varieren, waardoor de wp gaan verwarmen of niet.cyspoz schreef op donderdag 9 oktober 2025 @ 14:33:
Is het ook mogelijk om het opwarmen van het tapwater te sturen op basis van de energie prijs? Met andere woorden, het voorraad vat in een batterij veranderen?
Nice, vraagje, hoe heb je het fysiek aangesloten op de WP? heb je zelf een kabel/ connector gemaakt, of heb je die ergens vandaan gehaald?Kr3Kr schreef op vrijdag 19 september 2025 @ 10:36:
Succes, ik heb @JoebarRC's Modbus code ook draaiend. Ik heb alleen nog een rare waarde:
Na een lange zoektocht online dit topic van voor naar achter doorgelezen, mooi werk en uitzoekwerk!
Hier een hele nieuwbouwwijk met 420 toros vision tvpt5 warmtepompen die allemaal een “slimme” warmtepomp willen. Ik gok dat als er een kant en klare oplossing is er best wel een verdienmodel aanvast zit als het helemaal uit gewerkt is
Vooral het warmtevat bijvullen en temp omhoog bij lage temp / zon uren is bij iedereen wel wenselijk.
Op de site van remeha hebben ze het wel over een smart app om de parameters uit te lezen/ in te stellen. Maar ik verwacht dat deze niet zomaar communiceert met “onze” wp.
https://www.remeha.nl/zakelijk/tools-en-apps/recom-software Iemand als de recom software van remeha uitgeprobeerd?
Hier een hele nieuwbouwwijk met 420 toros vision tvpt5 warmtepompen die allemaal een “slimme” warmtepomp willen. Ik gok dat als er een kant en klare oplossing is er best wel een verdienmodel aanvast zit als het helemaal uit gewerkt is
Vooral het warmtevat bijvullen en temp omhoog bij lage temp / zon uren is bij iedereen wel wenselijk.
Op de site van remeha hebben ze het wel over een smart app om de parameters uit te lezen/ in te stellen. Maar ik verwacht dat deze niet zomaar communiceert met “onze” wp.
https://www.remeha.nl/zakelijk/tools-en-apps/recom-software Iemand als de recom software van remeha uitgeprobeerd?
Ik denk dat dit weinig kans maakt. Er staat een hele lijst Remeha-producten op, maar geen Toros Vision.Jbuitenhuis schreef op donderdag 23 oktober 2025 @ 21:59:
Op de site van remeha hebben ze het wel over een smart app om de parameters uit te lezen/ in te stellen. Maar ik verwacht dat deze niet zomaar communiceert met “onze” wp.
https://www.remeha.nl/zakelijk/tools-en-apps/recom-software Iemand als de recom software van remeha uitgeprobeerd?
Mag ik je een side-track-vraag stellen? Hebben jullie in die wijk een installateur die verstand heeft van dit type warmtepomp? Ik heb er de hele wereld al naar afgezocht, maar nog niemand gevonden.
Er ging iets mis op de site, waardoor deze post dubbel was
[ Voor 90% gewijzigd door Bert-R op 25-10-2025 15:32 . Reden: Er ging iets mis op de site, waardoor deze post dubbel was ]
Ik heb de kabel zelf gemaakt. Wat je hiervoor nodig hebt, is een krimptang, wat draad, een 6 pins Molex Microfit housing (43025-0600) en drie contacten (43030-0007 , maar bestel vooral meerborft schreef op donderdag 9 oktober 2025 @ 16:20:
[...]
Nice, vraagje, hoe heb je het fysiek aangesloten op de WP? heb je zelf een kabel/ connector gemaakt, of heb je die ergens vandaan gehaald?
Een kant-en-klare oplossing wordt door bijv. Econtro aangeboden, maar daarbij zit je dan wel aan een dienstverleningscontract vast. Een kant-en-klare oplossing is nog niet zo makkelijk - e.e.a. is namelijk afhankelijk van het energiecontract wat men heeft, hun wensen, enz.Jbuitenhuis schreef op donderdag 23 oktober 2025 @ 21:59:
Na een lange zoektocht online dit topic van voor naar achter doorgelezen, mooi werk en uitzoekwerk!
Hier een hele nieuwbouwwijk met 420 toros vision tvpt5 warmtepompen die allemaal een “slimme” warmtepomp willen. Ik gok dat als er een kant en klare oplossing is er best wel een verdienmodel aanvast zit als het helemaal uit gewerkt is
Vooral het warmtevat bijvullen en temp omhoog bij lage temp / zon uren is bij iedereen wel wenselijk.
ESPhome update
Ik heb weer een paar uurtjes kunnen besteden, en een hoop parameters toegevoegd. Ik draai dit script nu thuis, maar ik zou het wel in de gaten houden: als het koud wordt in huis ben je zelf verantwoordelijkBelangrijkste toevoegingen:
- Via een select kun je nu de bron van de buitentemperatuur-informatie kiezen, en er is een parameter voor de handmatige buitentemperatuur. Hiermee zou het mogelijk moeten zijn om de WP te 'sturen' - eventjes niet, of juist wel stoken. Dit heb ik kort kunnen testen en lijkt te werken.
- Alle starts, kWh's, enz. zijn zo veel mogelijk toegevoegd.
Een hoop parameters kloppen nog niet (temperaturen *10 enz.), maar het begint ergens op te lijken. Disclaimer is dat grootste gedeelte AI-gegenereerd is
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
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
| esphome:
name: toros-modbus
friendly_name: Toros Vision Modbus bridge
min_version: 2024.11.0 # Using a recent version for syntax correctness
name_add_mac_suffix: false
esp32:
board: nodemcu-32s
framework:
type: esp-idf
# You can include other components here as needed
# packages:
# basis: !include ./components/basis.yaml
# updates: !include ./components/updates.yaml
# status: !include ./components/status_led.yaml
# pulse: !include ./components/pulse_meter.yaml
substitutions:
# Define the GPIO pins
pulse_pin: GPIO5
status_led: GPIO2 #D4
friendly_name: WP Modbus kwh meter
# disable logging
logger:
baud_rate: 0
# Enable Home Assistant API
api:
# Allow Over-The-Air updates
ota:
- platform: esphome
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
web_server:
uart:
tx_pin: GPIO13
rx_pin: GPIO14
baud_rate: 19200
stop_bits: 1
modbus:
id: modbus1
flow_control_pin: GPIO27
modbus_controller:
- id: modbus_device
address: 0x1 # Address of the Modbus slave device on the bus
modbus_id: modbus1
setup_priority: -10
update_interval: 30s
#=======================================================================
# SELECT - Writable drop-down selection in HA
#=======================================================================
select:
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Outside Temperature Source"
id: outside_temp_source
address: 0x81C9
entity_category: config
icon: mdi:thermometer-lines
value_type: U_WORD
optionsmap:
"Onboard": 1
"Modbus": 2
"OpenTherm": 3
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Season Setting"
id: season_setting
address: 0x81E6
entity_category: config
icon: mdi:sun-snowflake
value_type: U_WORD
optionsmap:
"Winter": 0
"Zomer": 1
#=======================================================================
# SWITCH - Writable On/Off parameters
#=======================================================================
switch:
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Cooling Curve Enabled"
id: cooling_curve_enabled
address: 0x81B2
entity_category: config
icon: mdi:snowflake-thermometer
register_type: holding
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Compressor Protection from Evaporator"
id: comp_protection_evaporator
address: 0x81DC
bitmask: 0b0000000000000001 # BIT0
entity_category: config
register_type: holding
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Compressor Protection from Outside Air"
id: comp_protection_outside_air
address: 0x81DC
bitmask: 0b0000000000000010 # BIT1
entity_category: config
register_type: holding
#=======================================================================
# NUMBER - Writable parameters for configuration from Home Assistant
#=======================================================================
number:
# --- DHW Settings ---
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Set DHW Setpoint"
id: tapwater_setpoint_ha
address: 0x817A
value_type: U_WORD
entity_category: config
icon: mdi:water-boiler-edit
unit_of_measurement: "°C"
min_value: 35
max_value: 55
step: 1
mode: slider
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Set DHW Eco Setpoint"
id: tapwater_eco_setpoint_ha
address: 0x8264
value_type: U_WORD
entity_category: config
icon: mdi:leaf-circle-outline
unit_of_measurement: "°C"
min_value: 30
max_value: 45
step: 1
mode: slider
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Set DHW Hysteresis"
id: tapwater_hysterese_ha
address: 0x817B
value_type: U_WORD
entity_category: config
icon: mdi:arrow-expand-vertical
unit_of_measurement: "K"
min_value: 2
max_value: 12
step: 1
mode: slider
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Set Anti-Legionella Setpoint"
id: anti_legionella_setpoint
address: 0x8188
value_type: U_WORD
entity_category: config
icon: mdi:bacteria-outline
unit_of_measurement: "°C"
min_value: 55
max_value: 70
step: 1
mode: slider
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Set Anti-Legionella Interval"
id: anti_legionella_interval
address: 0x8232
value_type: U_WORD
entity_category: config
icon: mdi:timer-sync-outline
unit_of_measurement: "h"
min_value: 24
max_value: 720
step: 24
mode: box
# --- Heating/Cooling Curve & Thresholds ---
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Set Central Heating Hysteresis"
id: cv_hysterese
address: 0x1275
value_type: U_WORD
entity_category: config
unit_of_measurement: "K"
icon: mdi:arrow-expand-vertical
min_value: 0.5
max_value: 10.0
step: 0.1
mode: box
write_lambda: |-
return x * 10;
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Set Heating Curve"
id: stooklijn
address: 0x825B
value_type: U_WORD
entity_category: config
icon: mdi:chart-line
min_value: 0.2
max_value: 3.0
step: 0.1
mode: slider
write_lambda: |-
return x * 10;
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Set Heating Curve Offset"
id: stooklijn_offset
address: 0x825C
value_type: S_WORD
entity_category: config
unit_of_measurement: "K"
icon: mdi:arrow-up-down
min_value: -10
max_value: 10
step: 0.5
mode: box
write_lambda: |-
return x * 10;
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Set Winter Mode Threshold"
id: winter_threshold
address: 0x81E8
value_type: S_WORD
entity_category: config
unit_of_measurement: "°C"
icon: mdi:snowflake-thermometer
min_value: -10
max_value: 25
step: 1
mode: slider
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Set Summer Mode Threshold"
id: summer_threshold
address: 0x81E9
value_type: S_WORD
entity_category: config
unit_of_measurement: "°C"
icon: mdi:sun-thermometer-outline
min_value: 10
max_value: 30
step: 1
mode: slider
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Set Heating Limit Outside Temp"
id: heating_limit_temp
address: 0x826A
value_type: S_WORD
entity_category: config
unit_of_measurement: "°C"
icon: mdi:radiator
min_value: -10
max_value: 25
step: 1
mode: slider
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Set Cooling Limit Outside Temp"
id: cooling_limit_temp
address: 0x826B
value_type: S_WORD
entity_category: config
unit_of_measurement: "°C"
icon: mdi:air-conditioner
min_value: 15
max_value: 40
step: 1
mode: slider
# --- General/Misc Settings ---
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Set Manual Outside Air Temp"
id: manual_outside_air_temp
address: 0x35F7
value_type: S_WORD
entity_category: config
unit_of_measurement: "°C"
icon: mdi:thermometer-plus
min_value: -40
max_value: 255
step: 0.1
mode: box
#write_lambda: |-
# return x * 10;
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Set Outside Temperature Timeout"
id: outside_temp_timeout
address: 0x81CA
value_type: U_WORD
entity_category: config
unit_of_measurement: "h"
icon: mdi:timer-sand
min_value: 1
max_value: 255
step: 1
mode: box
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Set Endpoint Limitation Curve"
id: end_setpoint_limit
address: 0x81E0
value_type: U_WORD
entity_category: config
unit_of_measurement: "°C"
icon: mdi:chart-bell-curve-cumulative
min_value: 10
max_value: 90
step: 1
mode: slider
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Set Temperature for Missing Sensor"
id: missing_sensor_temp
address: 0x8263
value_type: S_WORD
entity_category: config
unit_of_measurement: "°C"
icon: mdi:thermometer-off
min_value: -20
max_value: 30
step: 1
mode: slider
#=======================================================================
# SENSOR - Read-only values from the heatpump
#=======================================================================
sensor:
# --- Core Status & Temps ---
- platform: modbus_controller
modbus_controller_id: modbus_device
id: status
name: "Status WP"
address: 0x539E
register_type: holding
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
id: actual_error
name: "Actual Error Code"
address: 0x0032
register_type: holding
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Outside Temperature"
address: 0x35F7
register_type: holding
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
value_type: S_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "DHW Temperature"
address: 0x3561
register_type: holding
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
# --- Sensors for Writable Values (to see current state) ---
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Current DHW Setpoint"
address: 0x817A
register_type: holding
unit_of_measurement: "°C"
icon: mdi:water-boiler
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Current DHW Eco Setpoint"
address: 0x8264
register_type: holding
unit_of_measurement: "°C"
icon: mdi:leaf
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Current DHW Hysteresis"
address: 0x817B
register_type: holding
unit_of_measurement: "K"
icon: mdi:arrow-expand-vertical
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Current Central Heating Hysteresis"
address: 0x1275
register_type: holding
unit_of_measurement: "K"
icon: mdi:arrow-expand-vertical
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Current Heating Curve"
address: 0x825B
register_type: holding
icon: mdi:chart-line
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Current Heating Curve Offset"
address: 0x825C
register_type: holding
unit_of_measurement: "K"
icon: mdi:arrow-up-down
value_type: S_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
# --- Monitoring CSV Sensors ---
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Source Temp Out (Tvu)"
address: 0x42E6
register_type: holding
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
value_type: S_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Source Temp In (Tvi)"
address: 0x3AF8
register_type: holding
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
value_type: S_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "CV Temp In (Tci)"
address: 0x17DA
register_type: holding
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
value_type: S_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "CV Condenser Temp Out (Tcu)"
address: 0x178F
register_type: holding
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
value_type: S_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "CV Temp Out (Tau)"
address: 0x3F6B
register_type: holding
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
value_type: S_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Solar Collector Temperature"
address: 0x500B
register_type: holding
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
value_type: S_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Source Temp In (Tbr)"
address: 0x5AAB
register_type: holding
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
value_type: S_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Source Flow"
address: 0x36F4
register_type: holding
unit_of_measurement: "Hz"
icon: mdi:pump
state_class: measurement
value_type: U_WORD
accuracy_decimals: 0
- platform: template
name: "DHW Minimum Temperature"
unit_of_measurement: "°C"
device_class: temperature
state_class: measurement
lambda: "return id(tapwater_setpoint_ha).state - id(tapwater_hysterese_ha).state;"
# --- kWh Energy Counters ---
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "kWh Standby"
address: 0x5334
register_type: holding
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
value_type: U_WORD
#lambda: "return (x >> 8) & 0xFF;"
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "kWh Passive DHW"
address: 0x5334
register_type: holding
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
value_type: U_WORD
#lambda: "return x & 0xFF;"
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "kWh Active DHW"
address: 0x533B
register_type: holding
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
value_type: U_WORD
#lambda: "return (x >> 8) & 0xFF;"
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "kWh EE DHW"
address: 0x533B
register_type: holding
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
value_type: U_WORD
#lambda: "return x & 0xFF;"
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "kWh Passive Heating"
address: 0x5352
register_type: holding
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
value_type: U_WORD
#lambda: "return (x >> 8) & 0xFF;"
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "kWh Active Heating"
address: 0x5352
register_type: holding
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
value_type: U_WORD
#lambda: "return x & 0xFF;"
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "kWh EE Heating"
address: 0x535D
register_type: holding
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
value_type: U_WORD
#lambda: "return (x >> 8) & 0xFF;"
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "kWh Passive Cooling"
address: 0x535D
register_type: holding
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
value_type: U_WORD
#lambda: "return x & 0xFF;"
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "kWh Active Cooling"
address: 0x5361
register_type: holding
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
value_type: U_WORD
#lambda: "return (x >> 8) & 0xFF;"
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "kWh Regeneration"
address: 0x5361
register_type: holding
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
value_type: U_WORD
#lambda: "return x & 0xFF;"
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "kWh Emergency DHW"
address: 0x536E
register_type: holding
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
value_type: U_WORD
#lambda: "return (x >> 8) & 0xFF;"
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "kWh Emergency Heating"
address: 0x536E
register_type: holding
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
value_type: U_WORD
#lambda: "return x & 0xFF;"
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Zonnepanelen kWh"
address: 0x6557
register_type: holding
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Totale Woning kWh"
address: 0x6558
register_type: holding
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
value_type: U_WORD
# --- Hour Counters ---
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Passive DHW Hours"
address: 0x53A2
register_type: holding
unit_of_measurement: "h"
icon: mdi:clock-time-eight
state_class: total_increasing
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Active DHW Hours"
address: 0x53C4
register_type: holding
unit_of_measurement: "h"
icon: mdi:clock-time-eight
state_class: total_increasing
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "EE DHW Hours"
address: 0x53F7
register_type: holding
unit_of_measurement: "h"
icon: mdi:clock-time-eight
state_class: total_increasing
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Passive Heating Hours"
address: 0x5501
register_type: holding
unit_of_measurement: "h"
icon: mdi:clock-time-eight
state_class: total_increasing
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Active Heating Hours"
address: 0x5532
register_type: holding
unit_of_measurement: "h"
icon: mdi:clock-time-eight
state_class: total_increasing
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "EE Heating Hours"
address: 0x5554
register_type: holding
unit_of_measurement: "h"
icon: mdi:clock-time-eight
state_class: total_increasing
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Passive Cooling Hours"
address: 0x5567
register_type: holding
unit_of_measurement: "h"
icon: mdi:clock-time-eight
state_class: total_increasing
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Active Cooling Hours"
address: 0x5597
register_type: holding
unit_of_measurement: "h"
icon: mdi:clock-time-eight
state_class: total_increasing
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Regeneration Hours"
address: 0x55A4
register_type: holding
unit_of_measurement: "h"
icon: mdi:clock-time-eight
state_class: total_increasing
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Emergency DHW Hours"
address: 0x55C2
register_type: holding
unit_of_measurement: "h"
icon: mdi:clock-time-eight
state_class: total_increasing
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Emergency Heating Hours"
address: 0x55F1
register_type: holding
unit_of_measurement: "h"
icon: mdi:clock-time-eight
state_class: total_increasing
value_type: U_WORD
# --- Start Counters ---
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Passive DHW Starts"
address: 0x53AD
register_type: holding
icon: mdi:play-count
state_class: total_increasing
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Active DHW Starts"
address: 0x53CB
register_type: holding
icon: mdi:play-count
state_class: total_increasing
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "EE DHW Starts"
address: 0x53F8
register_type: holding
icon: mdi:play-count
state_class: total_increasing
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Passive Heating Starts"
address: 0x550E
register_type: holding
icon: mdi:play-count
state_class: total_increasing
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Active Heating Starts"
address: 0x553D
register_type: holding
icon: mdi:play-count
state_class: total_increasing
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "EE Heating Starts"
address: 0x555B
register_type: holding
icon: mdi:play-count
state_class: total_increasing
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Passive Cooling Starts"
address: 0x5568
register_type: holding
icon: mdi:play-count
state_class: total_increasing
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Active Cooling Starts"
address: 0x5598
register_type: holding
icon: mdi:play-count
state_class: total_increasing
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Regeneration Starts"
address: 0x55AB
register_type: holding
icon: mdi:play-count
state_class: total_increasing
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Emergency DHW Starts"
address: 0x55CD
register_type: holding
icon: mdi:play-count
state_class: total_increasing
value_type: U_WORD
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Emergency Heating Starts"
address: 0x55FE
register_type: holding
icon: mdi:play-count
state_class: total_increasing
value_type: U_WORD
#=======================================================================
# TEXT SENSOR - For translating states into human-readable text
#=======================================================================
text_sensor:
- platform: modbus_controller
modbus_controller_id: modbus_device
name: "Status Text"
id: status_string
address: 0x539E
register_type: holding
lambda: |-
if (id(status).has_state()) {
// CORRECTED: Cast the float state to an integer for the switch
switch ((int)id(status).state) {
case 1: return {"Stand-By"};
case 2: return {"Passive DHW"};
case 4: return {"Active DHW Pre-Run"};
case 8: return {"Passive Heating"};
case 16: return {"Active Heating Pre-Run"};
case 32: return {"Passive Cooling"};
case 64: return {"Regenerating"};
case 256: return {"Emergency DHW"};
case 512: return {"Emergency Heating"};
case 1028: return {"Active DHW"};
case 1040: return {"Active Heating"};
default: return {"Unknown"};
}
}
return {"Unknown"}; |
Ook heb ik de "screens" doorgelopen op parameters en deze gegroepeerd in een markdown gezet voor mijn eigen documentatie;
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
| 35F7 Outside temperature (manual) 30CE Lage druk schakelaar 30CE Hoge druk schakelaar F12B MaxT CPR F830 MaxT EE F12A EC1 FA70 EC2 F37C Afgiftesysteem(min:sec) F37A Pompen(min:sec) F364 Warmtepomp(sec) F37E CPR AAN-AAN (min:sec) F380 CPR UIT_AAN (min:sec) F382 CPR AAN-UIT(min:sec) # Temperature sensors 500B TZC ZONNECOLLECTOR 35F7 TBU BUITEN Actueel 3561 TTW TAPWATER 5AAB TBR Bron WP IN 3AF8 TVI Bron WP IN 178F TCU CV WP UIT 178F Tcu (CV COND UIT) 3F6B TAU CV WP UIT na EE 3F6B Tau (CV WP UIT) 42E6 TVU Bron WP UIT 17DA TCI CV WP IN 4D25 TBU BUITEN Gemiddeld 42E6 Tvu (BRON WP UIT) 3AF8 Tvi (BRON WP IN) 178F Tcu (CV COND UIT) 3F6B Tau (CV WP UIT) 500B Tzc (ZONNECOLLECTOR) 5AAB Tbr (BRON WP IN) 3561 Ttw (TAPWATER) 539E Status warmtepomp 356E Actuele regelwaarde F3F6 Solarpomp [%] 1DB6 Mengpositie klep (%) F831 Condensorpomp [%] 3301 Verdamperpomp [%] 36F4 Debiet verdamper (Hz) 36F4 FVD (Flow bron in Hz) FA78 Positie 2-wegklep (s) F103 Real flow ON-OFF F104 Flowcheck # Software versions 0098 FW custom versie 0504 FW basis versie 00A4 FW instellingen versie 14E5 FW CRC-code # Energy usage 5334 Standby_kWh 5334 Passief_tap_kWh 533B Actief_tap_kWh 533B EE_tap_kWh 5352 Passief_CV_kWh 5352 Actief_CV_kWh 535D EE_CV_kWh 535D Passief_koel_kWh 5361 Actief_koel_kWh 5361 Regeneratie_kWh 536E Noodbedrijf_tap_kWh 536E Noodbedrijf_CV_kWh 6557 Zonnepanelen (kWh 1) 6558 Totale woning (kWh2) # Hours of usage 53A2 Passief_tap_uren 53C4 Actief_tap_uren 53F7 EE_tap_uren 5501 Passief_CV_uren 5532 Actief_CV_uren 5554 EE_CV_uren 5567 Passief_koel_uren 5597 Actief_koel_uren 55A4 Regeneratie_uren 55C2 Noodbedrijf_tap_uren 55F1 Noodbedrijf_CV_uren # Number of starts 53AD Passief_tap_starts 53CB Actief_tap_starts 53F8 EE_tap_starts 550E Passief_CV_starts 553D Actief_CV_starts 555B EE_CV_starts 5568 Passief_koel_starts 5598 Actief_koel_starts 55AB Regeneratie_starts 55CD Noodbedrijf_tap_starts 55FE Noodbedrijf_CV_starts |
To be continued. Op naar energie-aanbod-gestuurd verwarmen!
Dat klinkt als goed te doen. Heb je een pinout?Kr3Kr schreef op maandag 10 november 2025 @ 23:01:
Ik heb de kabel zelf gemaakt. Wat je hiervoor nodig hebt, is een krimptang, wat draad, een 6 pins Molex Microfit housing (43025-0600) en drie contacten (43030-0007 , maar bestel vooral meer)
Die staat geloof ik ook elders in de thread, maar vooruit. Ooit komt er vast een mooie TS-pagina met alle informatie netjes op één plekborft schreef op dinsdag 11 november 2025 @ 22:30:
[...]
Dat klinkt als goed te doen. Heb je een pinout?
Let op; in de installatiehandleiding zijn A & B / + & - omgedraaid. Als ik het me goed herinner.
De correcte pinout is zoals dit (brakke) screenshot:
Ik ga ook de modbus bouwen. Woning in nieuwbouwhuis met Remeha Toros Vision TVTP5 WP. We hebben sinds de oplevering alleen maar problemen gehad. Veel defecten, ketelstoringen.. Koelcircuit is al 2 x vervangen en ook de vloerpomp. Installateur repareert het wel steeds netjes maar we willen duurzaam herstel, zijn we mee bezig via juridisch traject, maar dat is moeilijk en kostbaar want onze rechtsbijstandsverzekering is te laat ingegaan (terugverhuizing uit Duitsland).
WiFi module die eraan hangt communiceert naar apart TP-link AP, die dan weer bij ons aan de switch hangt. Op AP kom ik wel, maar daarna is het idd wel beetje black box verhaaltje - vandaar dus de modbus. Ik ga waarschijnlijk ook voor het NodeMcu ESP32 verhaal in combinatie met de RS485 module. Denk dat ik de infrarood sensor nog even achterwege laat.
Ga binnenkort alle onderdelen bestellen en hou jullie op de hoogte.
Even terzijde vraag: hoe is het bij de meesten hier mbt betrouwbaarheid van de Toros Vision WP en hoe ziet jullie installatie eruit qua naregeling? In ons gevel heeft de installatie geen buffervat, 100% naregeling die niet conform lijkt te zijn (de zoneregelaars op de verdiepingsvloeren zijn Honeywel HCL-80s itt tot de EVA box op de BG. Hij functioneert ook niet, itt wat de installatietekeningen beweren, in master-master en / of master-slave set-up. Je kan hem na veel resetten daar wel in forceren, maar dan lijkt hij weer in een loop te komen waar hij niet uitkomt (ook daar vermoeden wij slechte communicatie tussein Honeywell en EVA-box). Mijn vermoeden is nl dat de WP an sich prima is, maar dat veel van de problemen die we hebben worden veroorzaakt door slecht ontwerp / slechte installatie. Alvast bedankt voor de feedback.
WiFi module die eraan hangt communiceert naar apart TP-link AP, die dan weer bij ons aan de switch hangt. Op AP kom ik wel, maar daarna is het idd wel beetje black box verhaaltje - vandaar dus de modbus. Ik ga waarschijnlijk ook voor het NodeMcu ESP32 verhaal in combinatie met de RS485 module. Denk dat ik de infrarood sensor nog even achterwege laat.
Ga binnenkort alle onderdelen bestellen en hou jullie op de hoogte.
Even terzijde vraag: hoe is het bij de meesten hier mbt betrouwbaarheid van de Toros Vision WP en hoe ziet jullie installatie eruit qua naregeling? In ons gevel heeft de installatie geen buffervat, 100% naregeling die niet conform lijkt te zijn (de zoneregelaars op de verdiepingsvloeren zijn Honeywel HCL-80s itt tot de EVA box op de BG. Hij functioneert ook niet, itt wat de installatietekeningen beweren, in master-master en / of master-slave set-up. Je kan hem na veel resetten daar wel in forceren, maar dan lijkt hij weer in een loop te komen waar hij niet uitkomt (ook daar vermoeden wij slechte communicatie tussein Honeywell en EVA-box). Mijn vermoeden is nl dat de WP an sich prima is, maar dat veel van de problemen die we hebben worden veroorzaakt door slecht ontwerp / slechte installatie. Alvast bedankt voor de feedback.
Hier gematigd tevredenDOP_ERWT|IA schreef op donderdag 5 maart 2026 @ 14:30:
Even terzijde vraag: hoe is het bij de meesten hier mbt betrouwbaarheid van de Toros Vision WP en hoe ziet jullie installatie eruit qua naregeling?
Over het algemeen werkt het systeem prima, maar ik heb er een paar issues mee:
- de software is brak, en je kunt niets zelf. Er is geen app, er is geen display, er is geen web interface, niets.
- bv de legionella timer, die begint te tellen als een run klaar is, en zo schuift het tijdstip dus elke week een stukje op. Als je dat combineert met niet 's nachts draaien (Want herrie en geen PV), dan gaat ie dus falen en in storing, en daar komt ie niet zelf uit. PROTIP: de legionella timer gaat lopen vanaf het moment dat de WP stroom krijgt, dus je kunt hem zelf resetten door een power cycle.
- Voor alle instellingen en/of troubleshooting moet er iemand van Remeha komen, en dat is duur
- de Eva is al een keer vervangen door een nieuwere revisie, dat was niet goedkoop
- voor onverklaarbare redenen was ie gestopt met koelen, monteur van Remeha kon het fixen, kostte ruim 200 euro
- voor onverklaarbare reden was ie gestopt met naar de thermostaat luisteren (het werk erg warm), monteur van Remeha kon het fixen, nog een keer 200 euro
- er is nagenoeg niets fatsoenlijk gedocumenteerd, software is niet beschikbaar en Remeha is totaal niet behulpzaam. Bassale instellingen en meetgegevens zijn er gewoon niet
Dat gezegd hebbende, in 5 jaar tijd hebben we het niet koud gehad
Als ik weer es een keer tijd heb, ga ik hem ook met modbus uitlezen. De onderdelen liggen op mijn bureau
[ Voor 3% gewijzigd door borft op 09-03-2026 10:37 ]
Flink schopje hier, ik sta op het punt om dit ook te gaan doen maar ik zie dat het gebruik van X8 en X9 een beetje door elkaar loopt. Welke heb je uiteindelijk gebruikt en zijn jullie (& @JoebarRC ) nog verder gekomen dan je hierboven hebt gedeeld?Kr3Kr schreef op dinsdag 18 november 2025 @ 21:28:
[...]
Die staat geloof ik ook elders in de thread, maar vooruit. Ooit komt er vast een mooie TS-pagina met alle informatie netjes op één plek
Let op; in de installatiehandleiding zijn A & B / + & - omgedraaid. Als ik het me goed herinner.
De correcte pinout is zoals dit (brakke) screenshot:
[Afbeelding]
alvast dank
edit:
Gekozen voor X9, was meteen bingo en kreeg alle waardes netjes te zien.
Heb gekozen voor een ESP32 waar er RS485 poort op aanwezig is, werkt perfect tot dusver. nu alleen nog wegwerken.
Een paar zaken die mij ook opvielen:
- Ook ik kreeg op bron WP in (tbr) waarschijnlijk een onzinwaarde maar ik zal m in de gaten houden.
- De buiten temperatuur bron (select) staat bij mij op 6, dit is geen bekende waarde en heb dus ook geen idee wat dit betekend.
Heb ook nog 3 Micro-fit Molex MX3.0 2X6 stekkertjes met 50cm kabel eraan liggen voor degene die interesse hebben.
[ Voor 41% gewijzigd door joon op 20-05-2026 16:10 ]
Veel dank aan iedereen die hier al zoveel nuttige informatie heeft gedeeld!
Ik probeer momenteel verbinding te maken met de X9-poort met een ESP32 via Modbus over RS485, maar helaas zonder succes. Mijn vermoeden is dat mijn firmware mogelijk te oud is; ik zag een eerdere reactie waarin werd genoemd dat firmwareversie C30.02 vereist is.
Het is me wel gelukt om via Microcom verbinding te maken met de X8-poort. Daar wordt "FW basis versie" als 14 vermeld, "FW custom versie" en "FW instelligen versie" als 22, en de FW CRC-code als CED0. Is er hier toevallig iemand bij wie dit wel werkt, die de eigen waarden zou willen delen? Deze zouden zichtbaar moeten zijn in het NL-Status.wcr-scherm. En mocht mijn firmware inderdaad te oud zijn: weet iemand hoe je deze kunt upgraden?
/f/image/cKH69QOszxlRrmgZzniiaKuR.png?f=fotoalbum_large)
Hier is een foto van de Molex-adapter die is aangesloten op de X9-poort.
:strip_exif()/f/image/f6HpesFQhtjKK7Ma2YXLQSHg.jpg?f=fotoalbum_large)
De groene kabel rechtsboven is verbonden met de aarde (GND) van de RS485-adapter. De blauwe en rode kabels zitten in de middelste pinnen (boven en onder) van de Molex-connector. De andere uiteinden zijn aangesloten op de A- en B-poorten van de RS485-adapter. (Ik heb ze al eens omgewisseld omdat ik weet dat adapters niet altijd consistent zijn met wat positief en negatief is, maar zonder succes).
Ik heb het geprobeerd met verschillende adapters en met zowel handmatige als automatische flow control. Het is natuurlijk heel goed mogelijk dat ik iets stoms over het hoofd zie – heeft iemand hier nog ideeën?
Ik probeer momenteel verbinding te maken met de X9-poort met een ESP32 via Modbus over RS485, maar helaas zonder succes. Mijn vermoeden is dat mijn firmware mogelijk te oud is; ik zag een eerdere reactie waarin werd genoemd dat firmwareversie C30.02 vereist is.
Het is me wel gelukt om via Microcom verbinding te maken met de X8-poort. Daar wordt "FW basis versie" als 14 vermeld, "FW custom versie" en "FW instelligen versie" als 22, en de FW CRC-code als CED0. Is er hier toevallig iemand bij wie dit wel werkt, die de eigen waarden zou willen delen? Deze zouden zichtbaar moeten zijn in het NL-Status.wcr-scherm. En mocht mijn firmware inderdaad te oud zijn: weet iemand hoe je deze kunt upgraden?
/f/image/cKH69QOszxlRrmgZzniiaKuR.png?f=fotoalbum_large)
Hier is een foto van de Molex-adapter die is aangesloten op de X9-poort.
:strip_exif()/f/image/f6HpesFQhtjKK7Ma2YXLQSHg.jpg?f=fotoalbum_large)
De groene kabel rechtsboven is verbonden met de aarde (GND) van de RS485-adapter. De blauwe en rode kabels zitten in de middelste pinnen (boven en onder) van de Molex-connector. De andere uiteinden zijn aangesloten op de A- en B-poorten van de RS485-adapter. (Ik heb ze al eens omgewisseld omdat ik weet dat adapters niet altijd consistent zijn met wat positief en negatief is, maar zonder succes).
Ik heb het geprobeerd met verschillende adapters en met zowel handmatige als automatische flow control. Het is natuurlijk heel goed mogelijk dat ik iets stoms over het hoofd zie – heeft iemand hier nog ideeën?
[ Voor 32% gewijzigd door raghav op 01-06-2026 15:53 ]
Je hebt inderdaad gelijk, je zal nieuwere firmware nodig hebben om de modbus poort te kunnen gebruiken.raghav schreef op maandag 1 juni 2026 @ 15:40:
Veel dank aan iedereen die hier al zoveel nuttige informatie heeft gedeeld!
Ik probeer momenteel verbinding te maken met de X9-poort met een ESP32 via Modbus over RS485, maar helaas zonder succes. Mijn vermoeden is dat mijn firmware mogelijk te oud is; ik zag een eerdere reactie waarin werd genoemd dat firmwareversie C30.02 vereist is.
Het is me wel gelukt om via Microcom verbinding te maken met de X8-poort. Daar wordt "FW basis versie" als 14 vermeld, "FW custom versie" en "FW instelligen versie" als 22, en de FW CRC-code als CED0. Is er hier toevallig iemand bij wie dit wel werkt, die de eigen waarden zou willen delen? Deze zouden zichtbaar moeten zijn in het NL-Status.wcr-scherm. En mocht mijn firmware inderdaad te oud zijn: weet iemand hoe je deze kunt upgraden?
[Afbeelding]
Hier is een foto van de Molex-adapter die is aangesloten op de X9-poort.
[Afbeelding]
De groene kabel rechtsboven is verbonden met de aarde (GND) van de RS485-adapter. De blauwe en rode kabels zitten in de middelste pinnen (boven en onder) van de Molex-connector. De andere uiteinden zijn aangesloten op de A- en B-poorten van de RS485-adapter. (Ik heb ze al eens omgewisseld omdat ik weet dat adapters niet altijd consistent zijn met wat positief en negatief is, maar zonder succes).
Ik heb het geprobeerd met verschillende adapters en met zowel handmatige als automatische flow control. Het is natuurlijk heel goed mogelijk dat ik iets stoms over het hoofd zie – heeft iemand hier nog ideeën?
Hoe dit precies werkt is niet gedocumenteerd, het is een proces die uitsluitend een remeha monteur mag uitvoeren, de firmware wordt ook door remeha zelf geleverd.
Je projectje zal helaas wat duurder worden ben ik bang.
nieuw huis, torosvision in de trapkast. Complete black box…
Voordat ik dit projectje oppak: is het ook mogelijk om het koelprotocol aan te passen?
Ik ben nog niet helemaal onder de indruk op warme dagen namelijk. Ik zie nu een flow rate van net aan 0,5l/ en meet een verschil tussen aanvoer en retour op de leiding van ongeveer een halve graad (20,5->20). Op de bron aanvoer retour ongeveer hetzelfde, maar dan ca. 15,5->15.
Dit heb ik geknipt uit een screenshot dat de bewoner me stuurde van toen een installateur voor onderhoud was langsgeweest. volgens mij is die koelingssetpoint te hoog ingesteld en zou naar 19 of 18 kunnen.
Lijkt me dat de aanvoertemperatuur lager zou kunnen / doorstroom groter zou kunnen zijn met deze waarden dus.
Is dit via de modbus dan handmatig aan te passen?
Thanks alvast!
Voordat ik dit projectje oppak: is het ook mogelijk om het koelprotocol aan te passen?
Ik ben nog niet helemaal onder de indruk op warme dagen namelijk. Ik zie nu een flow rate van net aan 0,5l/ en meet een verschil tussen aanvoer en retour op de leiding van ongeveer een halve graad (20,5->20). Op de bron aanvoer retour ongeveer hetzelfde, maar dan ca. 15,5->15.
Dit heb ik geknipt uit een screenshot dat de bewoner me stuurde van toen een installateur voor onderhoud was langsgeweest. volgens mij is die koelingssetpoint te hoog ingesteld en zou naar 19 of 18 kunnen.
Lijkt me dat de aanvoertemperatuur lager zou kunnen / doorstroom groter zou kunnen zijn met deze waarden dus.
Is dit via de modbus dan handmatig aan te passen?Thanks alvast!
[ Voor 32% gewijzigd door ReSa op 18-06-2026 09:23 ]
Hoeveel warme dagen heb je al gehad? In mijn ervaring (wij wonen hier nu sinds 2019) heeft het systeem echt wel een paar dagen nodig om 'echt koud' te worden. Hij bouwt dat ook rustig op om geen condensatie te veroorzaken etc.ReSa schreef op donderdag 18 juni 2026 @ 09:03:
nieuw huis, torosvision in de trapkast. Complete black box…
Voordat ik dit projectje oppak: is het ook mogelijk om het koelprotocol aan te passen?
Ik ben nog niet helemaal onder de indruk op warme dagen namelijk. Ik zie nu een flow rate van net aan 0,5l/ en meet een verschil tussen aanvoer en retour op de leiding van ongeveer een halve graad (20,5->20). Op de bron aanvoer retour ongeveer hetzelfde, maar dan ca. 15,5->15.
Lijkt me dat de aanvoertemperatuur lager zou kunnen / doorstroom groter zou kunnen zijn met deze waarden. Is dit via de modbus dan handmatig aan te passen?
Thanks alvast!
afhankelijk van je installatie, kan je sommige settings ook aanpassen via de woonkamerthermostaat (het blijft behelpen, maar is soms beter dan niets)ReSa schreef op donderdag 18 juni 2026 @ 09:33:
Eigenlijk vanaf de vorige warme weken. Ik zie over die tijd geen verschil…
Er zijn ook verschillende installatiemethodes voor warmtepompen, die van mij kan bijvoorbeeld alleen passief koelen dmv een lus in de achtertuin. Actieve koeling is niet geinstalleerd waardoor de winst in huis klein is, desalniettemin koeler dan een regulier huis.
Volgens mij is passief koelen de enige optie (wordt ook aangeraden ivm regeneratie van de bron). That said, hier is het verschil zeker een graad of 3, beneden is het nog niet boven de 23 graden geweest. Enige nadeel, imo, is de hoge relatieve luchtvochtigheid als het temperatuurverschil met buiten zo groot is.joon schreef op zaterdag 20 juni 2026 @ 11:58:
Er zijn ook verschillende installatiemethodes voor warmtepompen, die van mij kan bijvoorbeeld alleen passief koelen dmv een lus in de achtertuin. Actieve koeling is niet geinstalleerd waardoor de winst in huis klein is, desalniettemin koeler dan een regulier huis.
Snap dat het aangeraden wordt, deze WP heeft wel de optie in de software staan om actief te kunnen koelen maar daar is wat extra 'hardware' voor nodig om het mogelijk te maken. that said kan je dat geld beter in een mooie airco steken als de temperatuur het probleem is, heb je ook meteen een wat lagere luchtvochtigheidborft schreef op maandag 22 juni 2026 @ 13:40:
[...]
Volgens mij is passief koelen de enige optie (wordt ook aangeraden ivm regeneratie van de bron). That said, hier is het verschil zeker een graad of 3, beneden is het nog niet boven de 23 graden geweest. Enige nadeel, imo, is de hoge relatieve luchtvochtigheid als het temperatuurverschil met buiten zo groot is.
Bij ons hielp het om de minimum instelling van de vloercirculatiepomp voor koelen omhoog te gooien. Dat is "Condensorpomp koelen; Min. pompsnelheid (%)", die staat standaard op 30% en blijft daar ook vaak op hangen. Let wel op dat je geen condens op de leidingen of vloer (of onder je vloerbedekking indien die niet verlijmd is!) krijgt.ReSa schreef op donderdag 18 juni 2026 @ 09:03:
nieuw huis, torosvision in de trapkast. Complete black box…
Voordat ik dit projectje oppak: is het ook mogelijk om het koelprotocol aan te passen?
Ik ben nog niet helemaal onder de indruk op warme dagen namelijk. Ik zie nu een flow rate van net aan 0,5l/ en meet een verschil tussen aanvoer en retour op de leiding van ongeveer een halve graad (20,5->20). Op de bron aanvoer retour ongeveer hetzelfde, maar dan ca. 15,5->15.
Dit heb ik geknipt uit een screenshot dat de bewoner me stuurde van toen een installateur voor onderhoud was langsgeweest. volgens mij is die koelingssetpoint te hoog ingesteld en zou naar 19 of 18 kunnen.
Lijkt me dat de aanvoertemperatuur lager zou kunnen / doorstroom groter zou kunnen zijn met deze waarden dus. [Afbeelding] Is dit via de modbus dan handmatig aan te passen?
Thanks alvast!
De koelingsetpoint (gewenste vloertemperatuur) wordt geregeld door een 'koellijn' (omgekeerde van een stooklijn) die in de software onder het kopje "Koeling instellingen" is te vinden. Zie de installateurshandleiding op pagina 33. Lees wel eerst even goed in wat de verschillende parameters betekenen. Die kunnen inderdaad via modbus aangepast worden (81b2 ... 81b6). Al jouw parameters komen overeen met die van mij (op een graad na), behalve "Min. koelsetpoint", die is 16 bij mij. Dat is register 818d.
Ik weet niet hoe je de FW zou kunnen upgraden, maar een installateur misschien wel. Ik zal het eens aan die van mij vragen. Ik zit op Basis 15 - custom 3018 en heb wel modbus. Je pinout klopt. Op je foto zou blauw 'b' moeten zijn, en rood 'a'.raghav schreef op maandag 1 juni 2026 @ 15:40:
Veel dank aan iedereen die hier al zoveel nuttige informatie heeft gedeeld!
...
En mocht mijn firmware inderdaad te oud zijn: weet iemand hoe je deze kunt upgraden?
...
Ik heb het geprobeerd met verschillende adapters en met zowel handmatige als automatische flow control. Het is natuurlijk heel goed mogelijk dat ik iets stoms over het hoofd zie – heeft iemand hier nog ideeën?
Wat je beschrijft is wel het algemene beeld wat ik heb van onze installatie en die van de buren. Wij hebben geen naregeling (die ga ik zelf nog maken). Voor nu draaien we per seizoen handmatige sommige lussen aan en uit. De buren hebben wel naregeling en ook allemaal problemen. Hier (6 woningen, 4 jaar) zijn nu diverse lekkages geweest, een defecte compressor, kapotte sensoren enz. en allerlei kleine problemen. Vaak werden die pas na veel gehannes door de installateur opgelost, als dat al het geval was. Wij hebben zelf nog geen koud huis gehad, maar ik heb wel vandaag nog een lekkage opgelost die voorkwam dat de vloer gekoeld werd (en mogelijk veel schade op had kunnen leveren als die niet opgemerkt en opgelost was).DOP_ERWT|IA schreef op donderdag 5 maart 2026 @ 14:30:
Even terzijde vraag: hoe is het bij de meesten hier mbt betrouwbaarheid van de Toros Vision WP en hoe ziet jullie installatie eruit qua naregeling?
Mijn beeld: Over het algemeen zijn de machines 'okay'. Hoewel ze verouderd zijn qua electronica en software - maar wees eerlijk: welke vergelijkbare machine is dat niet? De specifieke installaties daarentegen, zijn vaak overhaast, incompleet en/of foutief uitgevoerd. Missende of verkeerde onderdelen, slechte of ontbrekende isolatie, slordige inregeling enz. enz. Voeg daar ontbrekende monitoring aan toe (wel wettelijk verplicht!) en het kan zomaar zijn dat een machine een vol stookseizoen in het noodbedrijf staat(!) en op het elektrisch element lekker kWh's aan het wegbranden is zonder dat iemand het doorheeft.
Nog een eigenaardigheid om van op de hoogte te zijn: bij ons stond de buitensensor een keer onder water door verkeerde installatie, waardoor de pomp dacht dat het 40°C was terwijl het 5° was buiten. Zelfs na een gesprek van 3u met Remeha kregen we de machine niet in noodbedrijf, ook niet op de gloeispiraal. Ik moest een vaste weerstand installeren in plaats van de (kapotte) NTC om de machine weer aan het stoken te krijgen. Stel dat dit gebeurt als je op vakantie bent, kom je terug bij bevroren leidingen...
Idem voor de instelling voor het automatisch wisselen tussen verwarmen en koelen: "Stookgrens Tbu-actue" zou volgens de documentatie alleen moeten gelden wanneer de thermostaat op 'automatisch koelen / verwarmen' staat, maar in ieder geval bij onze installatie bepaalt die parameter ook de ondergrens voor de buitentemperatuur waarboven de installatie weigert te stoken. Ook bij "alleen verwarmen". Die geldt ook nog eens voor het gemiddelde van de afgelopen 24u. Dus dat kan bij de standaardinstelling van 18°C zomaar betekenen dat het in het najaar <17°C in huis is en de machine weigert te gaan stoken
Ook hier gaf een gesprek met een techneut van Remeha geen oplossing: hij beaamde dat het niet zo zou moeten zijn maar dat het wel erg waarschijnlijk was dat er een bug in de software zit.
Die 24 uur is dus instelbaar (vraag me niet hoe). Maar bij ons waren problemen met het koelen, specifiek, er werd niet gekoeld, ondanks dat het buiten warm genoeg was. Toen heeft ie de RVA vervangen allerlei instellingen aangepast, maar er werd nog steeds niet gekoeld, omdat het systeem vond dat het niet lang genoeg gemiddeld warm genoeg was om over te schakelen op zomerbedrijf. Toen bleek de monteur van Remeha een truc te hebben die dat interval kon verlagen. En nu gaat ie bij ons dus ook eerder koelen dan bij de buren.Idem voor de instelling voor het automatisch wisselen tussen verwarmen en koelen: "Stookgrens Tbu-actue" zou volgens de documentatie alleen moeten gelden wanneer de thermostaat op 'automatisch koelen / verwarmen' staat, maar in ieder geval bij onze installatie bepaalt die parameter ook de ondergrens voor de buitentemperatuur waarboven de installatie weigert te stoken. Ook bij "alleen verwarmen". Die geldt ook nog eens voor het gemiddelde van de afgelopen 24u. Dus dat kan bij de standaardinstelling van 18°C zomaar betekenen dat het in het najaar <17°C in huis is en de machine weigert te gaan stoken
De hack die ik zelf had toegepast was nog lelijker, dmw opentherm gateway de thermostaat overrulen, zodat ie wel ging koelen, maar dat werkte dan alleen voor de zones achter de eva, maar niet voor de hoofdzone direct achter de WP( dat is bij ons alleen de benedenverdieping)
Ik kreeg zojuist een mail van Remeha dat ze het TOMOS monitoing pltaform gaan beeindigen, nu wordt het voor mij ook wel tijd om via Home Assistant de warmtepomp te kunnen monitoren! Onduidelijk voor mij is welke firmware versie ik heb en welke nodig is voor modbus. In de TOMOS online tool zie ik firmware versions 00.06, komt dat iemand bekend voor? Hoe zou ik de 'echte' firmware versie kunnen achterhalen?
Ik heb ook bericht van Remeha ontvangen dat zij stoppen met TOMOS. Ik heb contact opgenomen met Remeha en zij berichten het volgende:
" Wij begrijpen uw reactie en u heeft gelijk dat het beëindigen van Tomos vanuit onze organisatie is besloten en niet door uw installateur.
Voor de beoordeling van een eventuele coulance hanteren wij echter de procedure dat dit via de betrokken installateur wordt voorgelegd aan onze afdeling Casemanagement. Uw installateur kan uw situatie en eventuele wensen namens u bij ons kenbaar maken, waarna onze afdeling Casemanagement kan beoordelen wat hierin mogelijk is.
Wij begrijpen dat dit wellicht niet de gewenste route voor u is, maar hierin kunnen wij helaas geen rechtstreeks traject met u als eindklant aanbieden."
Wordt vervolgd, ik ben benieuwd naar jullie ervaringen
" Wij begrijpen uw reactie en u heeft gelijk dat het beëindigen van Tomos vanuit onze organisatie is besloten en niet door uw installateur.
Voor de beoordeling van een eventuele coulance hanteren wij echter de procedure dat dit via de betrokken installateur wordt voorgelegd aan onze afdeling Casemanagement. Uw installateur kan uw situatie en eventuele wensen namens u bij ons kenbaar maken, waarna onze afdeling Casemanagement kan beoordelen wat hierin mogelijk is.
Wij begrijpen dat dit wellicht niet de gewenste route voor u is, maar hierin kunnen wij helaas geen rechtstreeks traject met u als eindklant aanbieden."
Wordt vervolgd, ik ben benieuwd naar jullie ervaringen
Bedankt, ik ben heel benieuwd naar het antwoord! Ik heb zelf contact opgenomen met Remeha, maar zij gaven aan dat het verzoek per se via de installateur moet lopen. Vervolgens weigerde mijn installateur (Paans) eigenlijk om actie te ondernemen, omdat de warmtepomp volgens hen naar behoren functioneert.Kr3Kr schreef op vrijdag 31 juli 2026 @ 21:39:
[...]
[...]Ik weet niet hoe je de FW zou kunnen upgraden, maar een installateur misschien wel. Ik zal het eens aan die van mij vragen. Ik zit op Basis 15 - custom 3018 en heb wel modbus. Je pinout klopt. Op je foto zou blauw 'b' moeten zijn, en rood ‘a’
Remeha verschuilt zich ten onrechte achter de installateur. Feitelijk heeft Remeha geen adequaat installateur netwerk voor de Toros Vision, daarvoor is het product te complex. Het is een schandalige werkwijze van Remeha om de eindgebruiker niet te helpen. Ook mijn installateur houdt zijn handen ervan af. Mijn systeem werkt naar behoren, maar als er problemen ontstaan kunnen we niet bij Remeha aankloppen. Hoe zit het met vervangen van defecte onderdelen in de toekomst? Zitten we dan in de kou met een waardeloos systeem? Wie het weet mag het zeggen.
Het beeld wat ik heb is dat Remeha intellectueel eigendom heeft overgenomen van Techneco, maar niet de verplichting voelt om de oude Techneco klanten nog op enige wijze te helpen.EddieO schreef op vrijdag 9 oktober 2026 @ 11:35:
Remeha verschuilt zich ten onrechte achter de installateur. Feitelijk heeft Remeha geen adequaat installateur netwerk voor de Toros Vision, daarvoor is het product te complex. Het is een schandalige werkwijze van Remeha om de eindgebruiker niet te helpen. Ook mijn installateur houdt zijn handen ervan af. Mijn systeem werkt naar behoren, maar als er problemen ontstaan kunnen we niet bij Remeha aankloppen. Hoe zit het met vervangen van defecte onderdelen in de toekomst? Zitten we dan in de kou met een waardeloos systeem? Wie het weet mag het zeggen.
Ik ben gestopt met energie steken in communicatie met hen en heb zelf een derde partij gezocht en gevonden voor het onderhoud. Met onderhoud door hun kan ik ook gebruik maken van hun storingsdienst, wat mij genoeg rust geeft. Veel installateurs hebben moeite met de manier van aansturing van de pomp. Als iemand in dit topic daar nu een uitdaging in ziet; ik denk dat je hier een goed belegde boterham in kan verdienen, want de spoeling is erg dun.
Onze Toros stookte op basis van alleen de buitentemperatuur, ook als het binnen al warm was: in het voorjaar ging ~94% van het CV-stroomverbruik op terwijl de woonkamer al >= 21,3 C was, en in oktober trok hij de woonkamer in drie dagen van 20,7 naar 23,2 C. Bovendien draaide 58% 's nachts, tegen de duurste uurprijzen. Ik wilde dus weten hoe de regeling precies werkt en of ik er via de thermostaatkant (OpenTherm Gateway) zelf invloed op kan uitoefenen. Hieronder wat ik in een week meten en testen heb gevonden; misschien heeft iemand er wat aan.
Opstelling: Toros TVPT 5 (bodem-water), vloerverwarming, Honeywell Chronotherm (OpenTherm) via een Nodo Shop OTGW, Techneco GIW-box 070401 ("v4.0 + 1200 Ohm"), en een laptop op de X8-servicepoort.
Het X8-protocol: Ik heb het seriële verkeer van Microcom afgeluisterd en nagebouwd in Python. Seriële poort: 19200 baud, 8N1. Elk bericht is precies 16 bytes:
Lezen, instellingen/geheugen (klasse 7): identifier FFAB, data = geheugenadres. Het antwoord bevat het little-endian woord [adres, adres+1]; voor een byte-instelling neem je de lage byte. Bijvoorbeeld 8265 (Ruimtetemp.comp.):
OT1 vs. OT2: Klemmenstrook laagspanning (voor wie zoekt):
Een Finder-relais (230 V-spoel) schakelt het zomer/wintercontact naar de GIW-box. De installateur had tde GIW box op OT1 gezet en de Chronotherm op OT2. De GIW-box spreekt geen OpenTherm: het is een vrijgavecontact (in het X8-geheugen staat bij OT1 "geen data", 0x7FFF). Op OT2 accepteerde de Toros alles van de thermostaat (ruimte-setpoint, ruimtetemperatuur, control setpoint, CH enable), schreef het zelfs in zijn geheugen (FA3A/FA46), maar gebruikte het nergens voor. regelwaarde bleef exact op de stooklijn, wat ik ook instelde. Dat past bij de Techneco-ontwerphandleiding: met een GIW-box is de weersafhankelijke regeling van de warmtepomp leidend.
De oplossing was: GIW-paar losgenomen (afgedopt), en de OTGW-draden van OT2 naar OT1 (6/56). Sindsdien werkt alles wat hieronder staat. Twee kanttekeningen:
* Op OT1 is CH enable van de thermostaat verplicht: zonder vraag blijft de Toros in standby, hoe koud het ook is.
* Een thermostaat op OT1 die om koeling vraagt, zet de Toros in zomerstand (en Zomer-winter-stand := 0 wordt dan genegeerd). Zet de thermostaat op "alleen verwarmen". Dit verklaart misschien ook het "blijft in zomerstand hangen"-probleem eerder in dit topic.
De formules
Seizoen
Home Assistant stuurt nu via de OTGW: CV-vraag alleen als de woonkamer onder 21 C is, 's nachts alleen als de woonkamer om 7 uur anders onder ~19,5 komt (de vloer koelt 's nachts maar 0,2–0,6 K af), en "laden" van de vloer met ruimte-setpoint 22 (+2,7 K) in de goedkoopste uren of bij zonne-overschot. Een backtest op voorjaar en oktober gaf vergelijkbaar comfort voor een fractie van het verbruik; ik draai nu een proef met afwisselende dagen en meld me nog met de resultaten.
Vragen of aanvullingen (vooral als iemand de betekenis van HPchangeMode 81E7 = 17 of de stooklijnvormen 1–8 kent) zijn welkom.
Opstelling: Toros TVPT 5 (bodem-water), vloerverwarming, Honeywell Chronotherm (OpenTherm) via een Nodo Shop OTGW, Techneco GIW-box 070401 ("v4.0 + 1200 Ohm"), en een laptop op de X8-servicepoort.
Het X8-protocol: Ik heb het seriële verkeer van Microcom afgeluisterd en nagebouwd in Python. Seriële poort: 19200 baud, 8N1. Elk bericht is precies 16 bytes:
code:
1
2
| CR | klasse (1 byte, binair) | slave (1 hex-teken) | identifier (4 hex) | data (4 hex) | CRC (4 hex) | LF 0D 07 0 FFAB 8265 535B 0A |
- Hex-tekens zijn ASCII, hoofdletters.
- CRC = CRC-16/XMODEM (CCITT, poly 0x1021, init 0x0000; in Python binascii.crc_hqx(data, 0)) over de klasse-byte plus de 9 hex-tekens (slave+identifier+data).
- Het antwoord heeft klasse = vraagklasse + 0x10, dezelfde slave en identifier; de waarde staat in het data-veld.
Lezen, instellingen/geheugen (klasse 7): identifier FFAB, data = geheugenadres. Het antwoord bevat het little-endian woord [adres, adres+1]; voor een byte-instelling neem je de lage byte. Bijvoorbeeld 8265 (Ruimtetemp.comp.):
code:
Schrijven (klasse 0x87): identifier FF3D voor de 81xx-pagina en FCA7 voor de 82xx-pagina; data = (lage adresbyte << 8) | nieuwe waarde. Voorbeelden (precies wat Microcom stuurt):1
| 0D 07 "0FFAB8265" "535B" 0A |
code:
De Toros antwoordt met een echo in klasse 0x97. Let op: een echo betekent niet dat de waarde is overgenomen. Lees altijd terug. Voorbeelden:1
2
| Zomergrens 81E9 := 21 0D 87 "0FF3DE915" "A6A3" 0A Ruimtetemp.comp. 8265 := 10 0D 87 "0FCA7650A" "4366" 0A |
- Tijdvertr. EE 150 werd ge-echood maar bleef 60 (de suggestie van −6/150 eerder in dit topic lukte bij mij dus maar half: Grens EE −6 nam hij wel, de tijd niet).
- Zomer-winter-stand (81E6) := 0 wordt genegeerd zolang een thermostaat op OT1 om koeling vraagt (zie onder).
OT1 vs. OT2: Klemmenstrook laagspanning (voor wie zoekt):
| Klem | Functie | Bij ons |
| 1 | Max EE | — |
| 2–3 | kWh-meter | leeg |
| 4 | Ttw (boilervoeler) | voeler |
| 5 | Tbu (buitenvoeler) | voeler |
| 6/56 | OT1 | was GIW-box, nu Chronotherm → OTGW |
| 7/57 | OT2 | was Chronotherm → OTGW, nu leeg |
| 8/9 | EC1/EC2 | doorverbonden |
Een Finder-relais (230 V-spoel) schakelt het zomer/wintercontact naar de GIW-box. De installateur had tde GIW box op OT1 gezet en de Chronotherm op OT2. De GIW-box spreekt geen OpenTherm: het is een vrijgavecontact (in het X8-geheugen staat bij OT1 "geen data", 0x7FFF). Op OT2 accepteerde de Toros alles van de thermostaat (ruimte-setpoint, ruimtetemperatuur, control setpoint, CH enable), schreef het zelfs in zijn geheugen (FA3A/FA46), maar gebruikte het nergens voor. regelwaarde bleef exact op de stooklijn, wat ik ook instelde. Dat past bij de Techneco-ontwerphandleiding: met een GIW-box is de weersafhankelijke regeling van de warmtepomp leidend.
De oplossing was: GIW-paar losgenomen (afgedopt), en de OTGW-draden van OT2 naar OT1 (6/56). Sindsdien werkt alles wat hieronder staat. Twee kanttekeningen:
* Op OT1 is CH enable van de thermostaat verplicht: zonder vraag blijft de Toros in standby, hoe koud het ook is.
* Een thermostaat op OT1 die om koeling vraagt, zet de Toros in zomerstand (en Zomer-winter-stand := 0 wordt dan genegeerd). Zet de thermostaat op "alleen verwarmen". Dit verklaart misschien ook het "blijft in zomerstand hangen"-probleem eerder in dit topic.
De formules
Seizoen
- Gemiddelde buitentemperatuur 4D25 = exponentieel gemiddelde: elk uur nieuw = oud + (Tbu − oud) / 32 (Tijdconstante Tbuiten 81EC = 7 --> 0,5 h * 2^6 = 32 h). Na een stroomonderbreking start het gemiddelde opnieuw vanaf de actuele waarde; bij ons ging hij daardoor op een zonnige ochtend naar zomer.
- Zomer als gemiddelde > Zomergrens (81E9, standaard 17), winter als < Wintergrens (81E8, 15); daartussen blijft de stand (81E6, 0 = winter).
- CV alleen als Tbu actueel <= Stookgrens (826A, 18 C; uit bij 18,1). Passief koelen alleen in zomer en Tbu actueel > Koelgrens (826B, 15).
- Onze buitenvoeler hangt in de zon (tot 47 C!), wat zonnige middagen de CV uitzet. De OTGW-buitentemperatuur-override negeert de Toros.
code:
Compressor (vaste toeren, aan/uit):1
2
3
4
| regelwaarde (356E) = 28,915 − 0,30586·T − 0,0026543·T² (T = Tbu actueel, 35F7; minimaal 21) T buiten −5 0 5 10 15 18 regelw. 30,4 28,9 27,3 25,6 23,7 22,5 |
- Start als retour (TCI, 17DA = OT ID 28) ≤ regelwaarde − 2,0 (CV Hysterese 1275).
- Stop als retour >= regelwaarde.
- Anti-pendeltijden (F37E/F380/F382): minimaal 10 min aan, 10 min uit, 15 min start-tot-start. Brijnpomp 60 s voor-, 30 s nadraai.
- Status 539E: 1 standby, 4 tapwater, 16 CV, 32 koelen, +1024 compressor aan (1040 = CV-run, 1028 = tapwater-run).
- Tussen runs zakt de retour maar ~0,2 K/uur, dus de 0,1 C-afronding maakt het startmoment +/-15-30 min onzeker.
code:
1
2
3
4
5
6
| regelwaarde = stooklijn(T) + k·(ID16 − 20) + 0,1·f·(ID16 − ID24) ID16 = ruimte-setpoint van de thermostaat (geheugen FA40) ID24 = ruimtetemperatuur van de thermostaat (geheugen FA34) k ≈ 1,34 (licht afhankelijk van buiten: ≈ 1,262 + 0,0075·T) f = Ruimtetemp.comp. (8265), in TIENDEN: f = 2 → 0,2 K per K, f = 10 → 1,0 K per K |
- Het control setpoint (OT ID 1) van de thermostaat wordt genegeerd.
- Geen bovengrens gezien tot regelwaarde 44,1 (Max. regelwaarde 81AF = 30 begrenst dit dus niet).
- Ruimtecompensatie werkt direct (binnen 15 s) en proportioneel, geen integrerend gedrag gezien.
- GIW-box op OT1 = gedrag alsof ID16 = 20 en f = 0: kale stooklijn, vraag via het contact.
- Met een OTGW kun je ID16 en ID24 overschrijven (commando's BS= en RT=), dus de regelwaarde zelf sturen zonder X8-schrijfacties (geen slijtage).
Home Assistant stuurt nu via de OTGW: CV-vraag alleen als de woonkamer onder 21 C is, 's nachts alleen als de woonkamer om 7 uur anders onder ~19,5 komt (de vloer koelt 's nachts maar 0,2–0,6 K af), en "laden" van de vloer met ruimte-setpoint 22 (+2,7 K) in de goedkoopste uren of bij zonne-overschot. Een backtest op voorjaar en oktober gaf vergelijkbaar comfort voor een fractie van het verbruik; ik draai nu een proef met afwisselende dagen en meld me nog met de resultaten.
Vragen of aanvullingen (vooral als iemand de betekenis van HPchangeMode 81E7 = 17 of de stooklijnvormen 1–8 kent) zijn welkom.
[ Voor 15% gewijzigd door raghav op 17-10-2026 11:49 ]
De stooklijn vormen kun je terugvinden in plaatje in de installateurshandleiding. hstk 8.3Vragen of aanvullingen (vooral als iemand de betekenis van HPchangeMode 81E7 = 17 of de stooklijnvormen 1–8 kent) zijn welkom.
Wellicht kun je ook nog extra informatie vinden in de Service tool: https://kennisbank.remeha.nl/toros-vision-servicetool/ De scherm beschrijvingen in de tool zelf bevatten sowieso een flink aantal lees en schrijf adressen met veld titel erbij.raghav schreef op zaterdag 17 oktober 2026 @ 11:30:
Onze Toros stookte op basis van alleen de buitentemperatuur, ook als het binnen al warm was: in het voorjaar ging ~94% van het CV-stroomverbruik op terwijl de woonkamer al >= 21,3 C was, en in oktober trok hij de woonkamer in drie dagen van 20,7 naar 23,2 C. Bovendien draaide 58% 's nachts, tegen de duurste uurprijzen. Ik wilde dus weten hoe de regeling precies werkt en of ik er via de thermostaatkant (OpenTherm Gateway) zelf invloed op kan uitoefenen. Hieronder wat ik in een week meten en testen heb gevonden; misschien heeft iemand er wat aan.
Opstelling: Toros TVPT 5 (bodem-water), vloerverwarming, Honeywell Chronotherm (OpenTherm) via een Nodo Shop OTGW, Techneco GIW-box 070401 ("v4.0 + 1200 Ohm"), en een laptop op de X8-servicepoort.
Het X8-protocol: Ik heb het seriële verkeer van Microcom afgeluisterd en nagebouwd in Python. Seriële poort: 19200 baud, 8N1. Elk bericht is precies 16 bytes:code:
1 2 CR | klasse (1 byte, binair) | slave (1 hex-teken) | identifier (4 hex) | data (4 hex) | CRC (4 hex) | LF 0D 07 0 FFAB 8265 535B 0ALezen, live waarden (klasse 106): identifier = adres van de waarde, data = 0000. Voorbeeld "Actuele regelwaarde": klasse 04, identifier 356E --> antwoord klasse 14 met de waarde. Datatypes: 1 = byte, 2 = signed byte, 3 = word, 4 = signed word; temperaturen meestal ×0,1.
- Hex-tekens zijn ASCII, hoofdletters.
- CRC = CRC-16/XMODEM (CCITT, poly 0x1021, init 0x0000; in Python binascii.crc_hqx(data, 0)) over de klasse-byte plus de 9 hex-tekens (slave+identifier+data).
- Het antwoord heeft klasse = vraagklasse + 0x10, dezelfde slave en identifier; de waarde staat in het data-veld.
Lezen, instellingen/geheugen (klasse 7): identifier FFAB, data = geheugenadres. Het antwoord bevat het little-endian woord [adres, adres+1]; voor een byte-instelling neem je de lage byte. Bijvoorbeeld 8265 (Ruimtetemp.comp.):code:Schrijven (klasse 0x87): identifier FF3D voor de 81xx-pagina en FCA7 voor de 82xx-pagina; data = (lage adresbyte << 8) | nieuwe waarde. Voorbeelden (precies wat Microcom stuurt):
1 0D 07 "0FFAB8265" "535B" 0Acode:De Toros antwoordt met een echo in klasse 0x97. Let op: een echo betekent niet dat de waarde is overgenomen. Lees altijd terug. Voorbeelden:
1 2 Zomergrens 81E9 := 21 0D 87 "0FF3DE915" "A6A3" 0A Ruimtetemp.comp. 8265 := 10 0D 87 "0FCA7650A" "4366" 0ASchrijven doe ik alleen met de collector gepauzeerd en Microcom dicht (één programma tegelijk op de poort), met terugleescontrole.
- Tijdvertr. EE 150 werd ge-echood maar bleef 60 (de suggestie van −6/150 eerder in dit topic lukte bij mij dus maar half: Grens EE −6 nam hij wel, de tijd niet).
- Zomer-winter-stand (81E6) := 0 wordt genegeerd zolang een thermostaat op OT1 om koeling vraagt (zie onder).
OT1 vs. OT2: Klemmenstrook laagspanning (voor wie zoekt):[Afbeelding]
Klem Functie Bij ons 1 Max EE — 2–3 kWh-meter leeg 4 Ttw (boilervoeler) voeler 5 Tbu (buitenvoeler) voeler 6/56 OT1 was GIW-box, nu Chronotherm → OTGW 7/57 OT2 was Chronotherm → OTGW, nu leeg 8/9 EC1/EC2 doorverbonden
Een Finder-relais (230 V-spoel) schakelt het zomer/wintercontact naar de GIW-box. De installateur had tde GIW box op OT1 gezet en de Chronotherm op OT2. De GIW-box spreekt geen OpenTherm: het is een vrijgavecontact (in het X8-geheugen staat bij OT1 "geen data", 0x7FFF). Op OT2 accepteerde de Toros alles van de thermostaat (ruimte-setpoint, ruimtetemperatuur, control setpoint, CH enable), schreef het zelfs in zijn geheugen (FA3A/FA46), maar gebruikte het nergens voor. regelwaarde bleef exact op de stooklijn, wat ik ook instelde. Dat past bij de Techneco-ontwerphandleiding: met een GIW-box is de weersafhankelijke regeling van de warmtepomp leidend.
De oplossing was: GIW-paar losgenomen (afgedopt), en de OTGW-draden van OT2 naar OT1 (6/56). Sindsdien werkt alles wat hieronder staat. Twee kanttekeningen:
* Op OT1 is CH enable van de thermostaat verplicht: zonder vraag blijft de Toros in standby, hoe koud het ook is.
* Een thermostaat op OT1 die om koeling vraagt, zet de Toros in zomerstand (en Zomer-winter-stand := 0 wordt dan genegeerd). Zet de thermostaat op "alleen verwarmen". Dit verklaart misschien ook het "blijft in zomerstand hangen"-probleem eerder in dit topic.
De formules
SeizoenStooklijn (Stooklijn 825B = 4, offset 825C = +1,0 K, regelsensor 81DB = 1 = retour). De vorm staat niet in de handleiding; gefit op ~165 start/stop-momenten en de X8-regelwaarde (RMSE 0,04 K), gemeten tussen ca. 2 en 18 °C buiten:
- Gemiddelde buitentemperatuur 4D25 = exponentieel gemiddelde: elk uur nieuw = oud + (Tbu − oud) / 32 (Tijdconstante Tbuiten 81EC = 7 --> 0,5 h * 2^6 = 32 h). Na een stroomonderbreking start het gemiddelde opnieuw vanaf de actuele waarde; bij ons ging hij daardoor op een zonnige ochtend naar zomer.
- Zomer als gemiddelde > Zomergrens (81E9, standaard 17), winter als < Wintergrens (81E8, 15); daartussen blijft de stand (81E6, 0 = winter).
- CV alleen als Tbu actueel <= Stookgrens (826A, 18 C; uit bij 18,1). Passief koelen alleen in zomer en Tbu actueel > Koelgrens (826B, 15).
- Onze buitenvoeler hangt in de zon (tot 47 C!), wat zonnige middagen de CV uitzet. De OTGW-buitentemperatuur-override negeert de Toros.
code:Compressor (vaste toeren, aan/uit):
1 2 3 4 regelwaarde (356E) = 28,915 − 0,30586·T − 0,0026543·T² (T = Tbu actueel, 35F7; minimaal 21) T buiten −5 0 5 10 15 18 regelw. 30,4 28,9 27,3 25,6 23,7 22,5Met een OpenTherm-thermostaat op OT1 (getest 16-17 okt, ruimte-setpoint 20-34, buiten 10-16,5 C):
- Start als retour (TCI, 17DA = OT ID 28) ≤ regelwaarde − 2,0 (CV Hysterese 1275).
- Stop als retour >= regelwaarde.
- Anti-pendeltijden (F37E/F380/F382): minimaal 10 min aan, 10 min uit, 15 min start-tot-start. Brijnpomp 60 s voor-, 30 s nadraai.
- Status 539E: 1 standby, 4 tapwater, 16 CV, 32 koelen, +1024 compressor aan (1040 = CV-run, 1028 = tapwater-run).
- Tussen runs zakt de retour maar ~0,2 K/uur, dus de 0,1 C-afronding maakt het startmoment +/-15-30 min onzeker.
code:
1 2 3 4 5 6 regelwaarde = stooklijn(T) + k·(ID16 − 20) + 0,1·f·(ID16 − ID24) ID16 = ruimte-setpoint van de thermostaat (geheugen FA40) ID24 = ruimtetemperatuur van de thermostaat (geheugen FA34) k ≈ 1,34 (licht afhankelijk van buiten: ≈ 1,262 + 0,0075·T) f = Ruimtetemp.comp. (8265), in TIENDEN: f = 2 → 0,2 K per K, f = 10 → 1,0 K per K[Afbeelding]
- Het control setpoint (OT ID 1) van de thermostaat wordt genegeerd.
- Geen bovengrens gezien tot regelwaarde 44,1 (Max. regelwaarde 81AF = 30 begrenst dit dus niet).
- Ruimtecompensatie werkt direct (binnen 15 s) en proportioneel, geen integrerend gedrag gezien.
- GIW-box op OT1 = gedrag alsof ID16 = 20 en f = 0: kale stooklijn, vraag via het contact.
- Met een OTGW kun je ID16 en ID24 overschrijven (commando's BS= en RT=), dus de regelwaarde zelf sturen zonder X8-schrijfacties (geen slijtage).
[Afbeelding]
Home Assistant stuurt nu via de OTGW: CV-vraag alleen als de woonkamer onder 21 C is, 's nachts alleen als de woonkamer om 7 uur anders onder ~19,5 komt (de vloer koelt 's nachts maar 0,2–0,6 K af), en "laden" van de vloer met ruimte-setpoint 22 (+2,7 K) in de goedkoopste uren of bij zonne-overschot. Een backtest op voorjaar en oktober gaf vergelijkbaar comfort voor een fractie van het verbruik; ik draai nu een proef met afwisselende dagen en meld me nog met de resultaten.
Vragen of aanvullingen (vooral als iemand de betekenis van HPchangeMode 81E7 = 17 of de stooklijnvormen 1–8 kent) zijn welkom.
Bedankt! Dat had ik gemist. Dit lijkt de vorm van de stooklijn die ik experimenteel voor stooklijn 4 heb afgeleid te bevestigen, inclusief de kromming waarvan ik dacht dat die misschien op een fout wees.Maarren schreef op maandag 19 oktober 2026 @ 10:14:
De stooklijn vormen kun je terugvinden in plaatje in de installateurshandleiding. hstk 8.3
Thanks, ja. Ik heb hier het verkeer van Microcom afgeluisterd om het hierboven beschreven protocol af te leiden, met wat hulp van Claude. Noch de Microcom-schermbestanden, noch de handleiding leggen uit wat HPchangeMode = 17 betekent. In NL-Installateur.wcr heet deze parameter HPchangeMode, terwijl hij in NL-Installateur-compact.wcr Omschakelconfiguratie wordt genoemd. De handleiding lijkt de betekenis ervan niet te vermelden.Sikkek schreef op maandag 19 oktober 2026 @ 12:37:
Wellicht kun je ook nog extra informatie vinden in de Service tool: https://kennisbank.remeha.nl/toros-vision-servicetool/ De scherm beschrijvingen in de tool zelf bevatten sowieso een flink aantal lees en schrijf adressen met veld titel erbij.
Daar wordt je inderdaad weinig wijzer van. Meer info dan in de handleiding (HPchangeMode - Configuratie van omschakelen tussen zomer- en winterbedrijf) kan ik ook niet vindenraghav schreef op maandag 19 oktober 2026 @ 13:14:
[...]
In NL-Installateur.wcr heet deze parameter HPchangeMode, terwijl hij in NL-Installateur-compact.wcr Omschakelconfiguratie wordt genoemd. De handleiding lijkt de betekenis ervan niet te vermelden.
[ Voor 16% gewijzigd door Sikkek op 19-10-2026 15:50 ]
Voor wie met de X8-poort aan de slag wil: ik heb de code uit mijn eerdere bericht inmiddels opgeschoond en op GitHub gezet: https://github.com/theaprilhare/toros-x8
De repository bevat de Python-uitlezer, registerlijst, Home Assistant MQTT Discovery, een optionele JSON-endpoint en documentatie over de hardware, bedrading en installatie. Uitlezen is de standaard; schrijven van instellingen is bewust voorzien van extra controles.
Ervaringen met andere Toros-modellen en firmwareversies zijn welkom.
De repository bevat de Python-uitlezer, registerlijst, Home Assistant MQTT Discovery, een optionele JSON-endpoint en documentatie over de hardware, bedrading en installatie. Uitlezen is de standaard; schrijven van instellingen is bewust voorzien van extra controles.
Ervaringen met andere Toros-modellen en firmwareversies zijn welkom.
Ik ga met de ESP32 modbus koppeling naar Home Assistant aan de slag (via x9), ik heb de officiële monitor kabel gekocht voor de Microcom tool, deze werkte in 1 keer zonder issues op Windows 11. De firmware is up to date, dus ik kan verder
. Ik heb dit ESP32 product besteld, wel wat duurder maar heeft al RS485 en klikt mooi op de DIN rails in de warmtepomp
https://www.amazon.nl/dp/...11269701_t_fed_asin_title
Ik houd jullie op de hoogte!
https://www.amazon.nl/dp/...11269701_t_fed_asin_title
Ik houd jullie op de hoogte!
Gaaf project hoor, erg nuttig voor degenen die geen modbus hebben!raghav schreef op maandag 19 oktober 2026 @ 16:55:
Voor wie met de X8-poort aan de slag wil: ik heb de code uit mijn eerdere bericht inmiddels opgeschoond en op GitHub gezet: https://github.com/theaprilhare/toros-x8
De repository bevat de Python-uitlezer, registerlijst, Home Assistant MQTT Discovery, een optionele JSON-endpoint en documentatie over de hardware, bedrading en installatie. Uitlezen is de standaard; schrijven van instellingen is bewust voorzien van extra controles.
Ervaringen met andere Toros-modellen en firmwareversies zijn welkom.
Waar heb je die kabel gekocht? En hoe sluit je die aan op je ESP32?Sikkek schreef op maandag 19 oktober 2026 @ 17:16:
ik heb de officiële monitor kabel gekocht voor de Microcom tool, deze werkte in 1 keer zonder issues op Windows 11
Ik luister hier al een heel poosje mee en wil hier van de winter ook mee aan de slag.
De kabel heb ik alleen gekocht om de X8 poort uit te lezen met de Remeha Service tool: https://cvdeals.eu/produc...-tbv-toros-vision-remeha/Bert-R schreef op maandag 19 oktober 2026 @ 20:58:
[...]
Waar heb je die kabel gekocht? En hoe sluit je die aan op je ESP32?
Ik luister hier al een heel poosje mee en wil hier van de winter ook mee aan de slag.
Voor de verbinding van X9 naar een ESP32 maak ik zelf een kabeltje.
Je kunt een goedkope CH340 USB-naar-UART-module gebruiken, voor niet meer dan €4: https://github.com/theapr...lob/main/docs/hardware.mdBert-R schreef op maandag 19 oktober 2026 @ 20:58:
Waar heb je die kabel gekocht? En hoe sluit je die aan op je ESP32?
:strip_exif()/f/image/7DlWP8sblxI3zSJlGdltW8ly.jpg?f=fotoalbum_large)
:strip_exif()/f/image/9YmvyTiTLjOxCQd51a9rqoUe.jpg?f=fotoalbum_large)
/f/image/f3DhL1IARu6YQq7FopRkJFvX.png?f=fotoalbum_large)
:strip_exif()/f/image/vbuJTzk4AG19u8JtJsQhZ4Xk.jpg?f=fotoalbum_large)
/f/image/ESnwjHf2vSQUIgBURBxpyBXC.png?f=fotoalbum_large)
/f/image/yKBK8S8RnE8sN0dIgSkthsMV.png?f=fotoalbum_large)