Ik zou ook gewoon de X9 modbus eerst eens proberen. En kijken of je van de oude techneco mensen nog een documentatie van die modbus kan krijgen. Vroeger, toen het nog techneco was, waren ze echt behulpzaam.ThinkPadd schreef op vrijdag 19 maart 2021 @ 19:28:
In de handleiding staat ook RS485/Modbus genoemd. Heb je al eens gemaild met Techneco/Remeha met verzoek om documentatie? Modbus zou redelijk eenvoudig werkend moeten zijn te krijgen van wat ik op Tweakers zie qua omvormers/energiemeters.
Wederom bedankt voor de input. Ik leer er tegelijk veel over. Hopelijk ook waardevol voor mensen die in de toekomst met de warmtepomp aan de slag willen. Hij wordt nog steeds (veel) geïnstalleerd.
Op basis van meerdere adviezen: Ik zal een bericht uitsturen naar Techneco, even kijken hoe ik dat inschiet. Ben namelijk tegelijk uit eigen domotica-hobby, als qua uitsluiten van security vulnerabilities op die open wifi, interesse bezig hiermee.
@ThinkPad , @mkleinman
Ik heb nmap (for Windows zowaar) laten draaien en alle TCP en UDP poorten laten afscannen.
Hierbij kwam er 1 duidelijk naar voren, namelijk 9760.
Tegelijk is dit de poort waarmee die Android App die ik was tegengekomen in Google Play (zie m'n originele post) probeert te verbinden. Zeker geen toeval. Zie screenshots van nmap.:strip_exif()/f/image/5SNXNf4BSyAY0jsMMUwgZ8od.jpg?f=fotoalbum_large)
:strip_exif()/f/image/3qxBQGeoMH5i3Dil1wD5UZp6.jpg?f=fotoalbum_large)
FYI: 192.168.1.100 is het IP dat m'n client (laptop) krijgt toegewezen. Die IP-lease begint vanaf 100.
Nog tips om verder uit te pluizen wat er voor service/mogelijkheden er op die poort worden aangeboden? Argumenten in nmap? Mis hier wederom kennis.
Op basis van meerdere adviezen: Ik zal een bericht uitsturen naar Techneco, even kijken hoe ik dat inschiet. Ben namelijk tegelijk uit eigen domotica-hobby, als qua uitsluiten van security vulnerabilities op die open wifi, interesse bezig hiermee.
@ThinkPad , @mkleinman
Ik heb nmap (for Windows zowaar) laten draaien en alle TCP en UDP poorten laten afscannen.
Hierbij kwam er 1 duidelijk naar voren, namelijk 9760.
Tegelijk is dit de poort waarmee die Android App die ik was tegengekomen in Google Play (zie m'n originele post) probeert te verbinden. Zeker geen toeval. Zie screenshots van nmap.
- Eerste screenshot: Alle TCP poorten en resultaat
- Tweede: Specifiek op 9760 (-p 9760) en met packet-trace
:strip_exif()/f/image/5SNXNf4BSyAY0jsMMUwgZ8od.jpg?f=fotoalbum_large)
:strip_exif()/f/image/3qxBQGeoMH5i3Dil1wD5UZp6.jpg?f=fotoalbum_large)
FYI: 192.168.1.100 is het IP dat m'n client (laptop) krijgt toegewezen. Die IP-lease begint vanaf 100.
Nog tips om verder uit te pluizen wat er voor service/mogelijkheden er op die poort worden aangeboden? Argumenten in nmap? Mis hier wederom kennis.
[ Voor 47% gewijzigd door Snoeikoe op 20-03-2021 12:54 . Reden: plaatje 2 geupdate ]
Ik lees hier ook een referentie naar die 9760/tcp. Als je Googled op '9760 tcp' nog wel wat meer resultaten.
Misschien kun je met telnet connecten naar die poort. Het kan dan overigens zo zijn dat je wel verbinding hebt, maar geen output krijgt. Bij sommige omvormers is dat ook het geval, je moet dan eerst een soort 'magic packet' sturen voordat hij begint met terugpraten.
Niet allemaal moeilijk gaan doen over het wifi protocol, security, port scans e.d., want dan gaan waarschijnlijk de hakken in het zand
Misschien kun je met telnet connecten naar die poort. Het kan dan overigens zo zijn dat je wel verbinding hebt, maar geen output krijgt. Bij sommige omvormers is dat ook het geval, je moet dan eerst een soort 'magic packet' sturen voordat hij begint met terugpraten.
Gewoon simpel houden: "Ik zie dat er een modbus connector aanwezig zou moeten zijn, hebben jullie hier software/documentatie voor beschikbaar zodat ik hem zelf kan uitlezen voor in m'n home automation" ?Snoeikoe schreef op zaterdag 20 maart 2021 @ 12:50:
[...]
Op basis van meerdere adviezen: Ik zal een bericht uitsturen naar Techneco, even kijken hoe ik dat inschiet. Ben namelijk tegelijk uit eigen domotica-hobby, als qua uitsluiten van security vulnerabilities op die open wifi, interesse bezig hiermee.
[...]
Niet allemaal moeilijk gaan doen over het wifi protocol, security, port scans e.d., want dan gaan waarschijnlijk de hakken in het zand
[ Voor 91% gewijzigd door ThinkPad op 20-03-2021 13:11 ]
Welke app is dat? De Smart Service app?mkleinman schreef op vrijdag 19 maart 2021 @ 20:32:
[...]
Ik heb inderdaad een Remeha ELGA ACE warmtepomp hangen. Die kan ik via bluetooth uitlezen via een Remeha app op mijn telefoon. De hele ACE serie van Remeha heeft een vergelijkbare interface, die is denk ik heel anders dan de oude Techneco interface.
Yes via de smart service app kan ik mijn ACE uitlezen, alleen hoe dat protocol werkt ben ik nog niet achter. Ik heb al een poging gewaagd om de APK van Remeha uit elkaar te halen maar daar word ik niet heel veel wijzer van jammer genoeg.
Duurzame nerd. Veel comfort en weinig verbruiken. Zuinig aan doen voor de toekomst.
Helaas is de "service" vanuit Remeha alleen gericht op installateurs, niet op consumenten. Verder begreep ik dat de Remeha eTwist-app vroeger uitgebreider was, maar na (kennelijk) vele consumenten vragen hebben ze deze uitgekleed, dicht getimmerd en versimpeld. Alles om dus minder moeite in consumenten te steken én te voorkomen dat consumenten in de settings van de Elga gaan zitten rommelen.
Overigens moet de Bluetooth module nog in mijn Elga gezet worden. Iets met wereldwijd chip-tekort
Maar als ik hier het forum lees zijn er best wel wat mensen geïnteresseerd om toch meer uit te lezen. Misschien als we een cluppie maken, al dan niet met een installateur erbij, dat we iets meer gedaan kunnen krijgen bij Remeha? Is daar interesse in?
Overigens moet de Bluetooth module nog in mijn Elga gezet worden. Iets met wereldwijd chip-tekort

Maar als ik hier het forum lees zijn er best wel wat mensen geïnteresseerd om toch meer uit te lezen. Misschien als we een cluppie maken, al dan niet met een installateur erbij, dat we iets meer gedaan kunnen krijgen bij Remeha? Is daar interesse in?
Uiteraard! Ik vrees alleen bij Remeha dat je nul op het rekest gaat krijgen. Ook gezien de vele e-mails met vragen over de ELGA ACE in mijn mailbox.
Duurzame nerd. Veel comfort en weinig verbruiken. Zuinig aan doen voor de toekomst.
Niet geschoten is altijd mis 
Nu ga ik binnenkort over naar een nieuwe job in de duurzame sector (warmtetransitie), dus wellicht dat dit iets meer gewicht mee brengt.
Hoeveel "fanmail" ontvang jij per maand? Is de strekking van de meeste mails hoe jij jouw Elga uitleest/monitort?
Als we goed kunnen verwoorden wat we willen dan kunnen we een voorstel maken.
Nu ga ik binnenkort over naar een nieuwe job in de duurzame sector (warmtetransitie), dus wellicht dat dit iets meer gewicht mee brengt.
Hoeveel "fanmail" ontvang jij per maand? Is de strekking van de meeste mails hoe jij jouw Elga uitleest/monitort?
Als we goed kunnen verwoorden wat we willen dan kunnen we een voorstel maken.
@Snoeikoe
Wellicht een hele late toevoeging, maar Remeha heeft de Microcom servicetool voor de Toros Vision warmtepomp op de website staan, inclusief handleiding:
Service Tool
Met een CP2102 USB naar UART bordje zou je de pomp moeten kunnen uitlezen:
https://www.reichelt.nl/n....html?&trstct=pos_2&nbc=1
Wellicht een hele late toevoeging, maar Remeha heeft de Microcom servicetool voor de Toros Vision warmtepomp op de website staan, inclusief handleiding:
Service Tool
Met een CP2102 USB naar UART bordje zou je de pomp moeten kunnen uitlezen:
https://www.reichelt.nl/n....html?&trstct=pos_2&nbc=1
[ Voor 14% gewijzigd door Sikkek op 13-10-2022 19:16 . Reden: Url fix ]
@Sikkek
Goh, zo maken ze het ineens heel makkelijk... Zelfs een tool die de COM-port resolved...
De URL die je had gepost naar dat boardje wijst alleen naar je eigen winkelwagen lijkt, dus toont bij mij niet het juiste product. Naar UART is alleen 1 ding, maar weet je toevallig ook welke verloopkabel dan nodig is voor die X8 connector op de PCB? Dat is een soort 2x3 female connector, maar in de handleiding staat verder geen detail.
Goh, zo maken ze het ineens heel makkelijk... Zelfs een tool die de COM-port resolved...
De URL die je had gepost naar dat boardje wijst alleen naar je eigen winkelwagen lijkt, dus toont bij mij niet het juiste product. Naar UART is alleen 1 ding, maar weet je toevallig ook welke verloopkabel dan nodig is voor die X8 connector op de PCB? Dat is een soort 2x3 female connector, maar in de handleiding staat verder geen detail.
Excuus, deze moet het zijn https://www.reichelt.nl/n....html?&trstct=pos_2&nbc=1Snoeikoe schreef op woensdag 12 oktober 2022 @ 14:38:
De URL die je had gepost naar dat boardje wijst alleen naar je eigen winkelwagen lijkt, dus toont bij mij niet het juiste product. Naar UART is alleen 1 ding, maar weet je toevallig ook welke verloopkabel dan nodig is voor die X8 connector op de PCB? Dat is een soort 2x3 female connector, maar in de handleiding staat verder geen detail.
Er komt een kabeltje bij met losse 1 polige headers, je moet even uitvogelen welke pijn op de print van de warmtepomp welke functie heeft...
Hier nog een eigennaar van een Toros Vision warmtepomp.
Ik ben ook op zoek naar meer mogelijkheden om te monitoren en eventueel zelf aanpassingen te maken. Hierbij denk ik aan wanneer bijvoorbeeld het anti legionella programma draait (voor zover ik weet draait dat 1x in de week of 1x in de twee weken, hiermee wordt het water in de boiler tot 60 graden verwarmd). Ik zou dat programma het liefst draaien op een moment dat de stroom goedkoop is (dynamische prijzen). Als ik dat dynamisch kan aanpassen zou dat erg leuk zijn.
Momenteel kan ik wat dingen uitlezen via de online monitoring tool van Remeha. Maar ik zou liever geen verbinding hebben met een online tool (of deze alleen inschakelen wanneer ik service nodig heb). Als ik dan waarden kan uitlezen zonder online te zijn, dan zou dat erg plezierig zijn.
Ik heb ondertussen het CP2102 USB naar UART bordje besteld. Het kan wel enige tijd duren voordat ik er daadwerkelijk mee aan de slag ga... (er zijn nog zoveel dingen te doen in mijn nieuwe woning).
Ik ben ook op zoek naar meer mogelijkheden om te monitoren en eventueel zelf aanpassingen te maken. Hierbij denk ik aan wanneer bijvoorbeeld het anti legionella programma draait (voor zover ik weet draait dat 1x in de week of 1x in de twee weken, hiermee wordt het water in de boiler tot 60 graden verwarmd). Ik zou dat programma het liefst draaien op een moment dat de stroom goedkoop is (dynamische prijzen). Als ik dat dynamisch kan aanpassen zou dat erg leuk zijn.
Momenteel kan ik wat dingen uitlezen via de online monitoring tool van Remeha. Maar ik zou liever geen verbinding hebben met een online tool (of deze alleen inschakelen wanneer ik service nodig heb). Als ik dan waarden kan uitlezen zonder online te zijn, dan zou dat erg plezierig zijn.
Ik heb ondertussen het CP2102 USB naar UART bordje besteld. Het kan wel enige tijd duren voordat ik er daadwerkelijk mee aan de slag ga... (er zijn nog zoveel dingen te doen in mijn nieuwe woning).
The Flying Dutchman
In de hoop wat meer details te vinden over de interface kabel ben ik eens in de onderdelen lijst (te vinden via Remeha website) van de Toros Vision gedoken. Daarin staat een service tool vermeld waarvan ik vermoed dat het de interface kabel betreft. Artikelnummer is: 7798607
Zie:
https://mijn.remeha.nl/ap...rdelenprijslijst_2022.pdf
Ik heb deze hier gevonden:
https://rensa.nl/Product/0FT7461
https://www.wasco.nl/arti...os-vision-7798607/8740933
Je kunt daar als individu niet zomaar bestellen zo te zien. Maar ik heb het ook niet echt geprobeerd. Denk dat als je een KvK nummer hebt, het waarschijnlijk wel zal lukken.
Hier nog een webshop, kun je zonder account bestellen zo te zien. Nog wel weer een klapje duurder (120 euro met verzendkosten erbij):
https://www.techniekwebsh...0933-0ft7461-5472660.html
Mocht je graag je warmtepomp direct kunnen uitlezen via de software die ook op de website van Remeha te vinden is, dan heb je hier (een hele dure!) kant en klare kabel. Zoals eerder in dit topic vermeld zou het ook met een goedkoop verloopje moeten kunnen, maar dan weet je nog niet de pin layout.
Zou zelf waarschijnlijk niet direct gaan experimenteren met het risico dat je iets in je warmtepomp omzeep helpt (zelfs al zijn het 'slechts' de settings). Wellicht is een kabel van 80 euro dan het geld waard.
Zie:
https://mijn.remeha.nl/ap...rdelenprijslijst_2022.pdf
Ik heb deze hier gevonden:
https://rensa.nl/Product/0FT7461
https://www.wasco.nl/arti...os-vision-7798607/8740933
Je kunt daar als individu niet zomaar bestellen zo te zien. Maar ik heb het ook niet echt geprobeerd. Denk dat als je een KvK nummer hebt, het waarschijnlijk wel zal lukken.
Hier nog een webshop, kun je zonder account bestellen zo te zien. Nog wel weer een klapje duurder (120 euro met verzendkosten erbij):
https://www.techniekwebsh...0933-0ft7461-5472660.html
Mocht je graag je warmtepomp direct kunnen uitlezen via de software die ook op de website van Remeha te vinden is, dan heb je hier (een hele dure!) kant en klare kabel. Zoals eerder in dit topic vermeld zou het ook met een goedkoop verloopje moeten kunnen, maar dan weet je nog niet de pin layout.
Zou zelf waarschijnlijk niet direct gaan experimenteren met het risico dat je iets in je warmtepomp omzeep helpt (zelfs al zijn het 'slechts' de settings). Wellicht is een kabel van 80 euro dan het geld waard.
[ Voor 24% gewijzigd door ThinkPad op 16-11-2022 09:45 . Reden: Google tracking meuk uit link gehaald ]
The Flying Dutchman
Dat ziet er niet uit als een kabeltje waar iets van slimmigheid in zit eigenlijk. Sowieso niet in de USB-stekker, dat lijkt gewoon een standaard aangegoten stekker i.p.v. een plastic huisje waar chips in kunnen zitten zoals je bij USB-Serial ziet. Het uiteinde met de speciale stekker zou misschien nog iets in kunnen zitten, maar gezien de smalle diameter hooguit iets van een weerstandje o.i.d.
Heb je al eens gemeten aan de aansluiting op de warmtepomp? Of de pomp deels ontmantelen en dan de printsporen vanaf de connector volgen tot je bij een chip uit komt? (Dan kun je van die chip de datasheet weer opzoeken en kijken op welke pins de connector is aangesloten).
Kans is best wel groot dat het gewoon een USB-Serial gebeuren is en dat het kabeltje de USB verbinding 1:1 doorzet, maar dan via een speciale connector en dat het USB-Serial gebeuren in de warmtepomp zit. Maar dit is met een korreltje zout
Producten bij Wasco kun je vaak wel via Warmteservice bestellen. Zij kopen in bij Wasco.
Is @Snoeikoe nog verder gekomen eigenlijk?
Heb je al eens gemeten aan de aansluiting op de warmtepomp? Of de pomp deels ontmantelen en dan de printsporen vanaf de connector volgen tot je bij een chip uit komt? (Dan kun je van die chip de datasheet weer opzoeken en kijken op welke pins de connector is aangesloten).
Kans is best wel groot dat het gewoon een USB-Serial gebeuren is en dat het kabeltje de USB verbinding 1:1 doorzet, maar dan via een speciale connector en dat het USB-Serial gebeuren in de warmtepomp zit. Maar dit is met een korreltje zout
Producten bij Wasco kun je vaak wel via Warmteservice bestellen. Zij kopen in bij Wasco.
Is @Snoeikoe nog verder gekomen eigenlijk?
[ Voor 24% gewijzigd door ThinkPad op 16-11-2022 09:54 ]
Ben er inmiddels ook mee verder gegaan!
Ik vlieg het inmiddels wat meer vanuit de software hoek aan.
Ik bevestig overigens wel dat X8 --> Wifi module bord de connectie is inderdaad. En X8 wordt ook gebruikt door servicemonteur. Had er namelijk een op bezoek en die trok X8 los van het moederbord, en prikte z'n eigen laptop in met die speciale kabel.
Volgende overzichtje is denk ik ook handig, die kreeg ik, maar was ik nog niet in documentatie tegengekomen
Mijn laatste stappen deze week
Ik heb wel een (service) account gekregen bij Remeha online monitoring. Alleen verbond mijn warmtepomp (nog) niet met het internet. En ben het volgende gaan doen:
Maar toen, ik wilde dat de warmtepomp met mijn eigen netwerk verbindt. Dit is me nog niet gelukt. Waarom wil ik dat? Dan kan ik de packets ook uitlezen die uitgewisseld worden met de server. Dat is de eerste stap naar via wifi (niet bekabeld) de pomp uitlezen.
Ik vlieg het inmiddels wat meer vanuit de software hoek aan.
Ik bevestig overigens wel dat X8 --> Wifi module bord de connectie is inderdaad. En X8 wordt ook gebruikt door servicemonteur. Had er namelijk een op bezoek en die trok X8 los van het moederbord, en prikte z'n eigen laptop in met die speciale kabel.
Volgende overzichtje is denk ik ook handig, die kreeg ik, maar was ik nog niet in documentatie tegengekomen
Monitor state value | State meaning |
1 | Standby state |
2 | Passief tapwater |
4 | Actief tapwater voordraaien |
8 | Passief CV |
16 | Passief CV voordraaien |
32 | Passief koelen |
128 | Regeneren van bron |
1028 | Actief: Tapwater |
1040 | Actief: CV |
Mijn laatste stappen deze week
Ik heb wel een (service) account gekregen bij Remeha online monitoring. Alleen verbond mijn warmtepomp (nog) niet met het internet. En ben het volgende gaan doen:
- Ik heb een van de buren gevraagd kort hun Router (TP-Link) die bij hun warmtepomp kwam, te lenen.
- Ik ben er achter gekomen dat als je DIP switch nummer 1, die op die Wifi module PCB zit, switched naar beneden (OFF), dat de Wifi module dan in Soft AP mode gaat. Je kan het netwerk dan ook vinden met PC / telefoon als je wifis scanned. SSID: Wifi_Remo_jouwMAC. Probeer dit gerust ook zelf. Je ziet de DIP switch ook op de fotos van @The Flying Dutchman
- Met de Honeywell Remo App heb ik het SSID ingesteld van de geleende TP-Link router
- DIP-switch 1 terug omhoog gezet, dan gaat hij weer in Wifi Client mode (vrij zeker). De Soft AP verdwijnt van de radar ook.
- De toros verbindt succesvol met internet en packets begint te sturen / ontvangen van de Remeha server (in TP-Link Router portal te zien)
- Als ik daarna inlog op de Remeha Monitoring portal is de warmtepomp CONNECTED
- DIP-switch 1 op de PCB lijkt te bepalen of het bord in Soft AP of Wifi Client mode staat.
- Er 1 groene LED op het bord (die aan de zijkant) die de status van Wifi connectiviteit weergeeft. Die kan uitstaan/knipperen of constant ON zijn.
Maar toen, ik wilde dat de warmtepomp met mijn eigen netwerk verbindt. Dit is me nog niet gelukt. Waarom wil ik dat? Dan kan ik de packets ook uitlezen die uitgewisseld worden met de server. Dat is de eerste stap naar via wifi (niet bekabeld) de pomp uitlezen.
- De pomp weer in Soft AP mode gezet
- Eigen SSID en Password ingevuld (ook een 2.4Ghz netwerk met WPA2, net als de TP-link router die bij de pomp kwam)
- De pomp weer in Wifi Client mode gezet
- Hij verbindt NIET met mijn eigen netwerk
- Zelfde gedaan, maar nu mijn eigen netwerk dezelfde SSID gegeven als TP-Link Router + zelfde password. En die TP-Link router uitgezet. In de hoop dat de pomp met mijn eigen fysieke netwerk verbindt dat dezelfde naam + password draagt
- Werkt niet
- Mijn eigen netwerk weer uitgezet dat dezelfde naam droeg als TP-Link router die bij de pomp kwam, en die laatste dus weer aangezet
- Toros verbindt wel weer.
[ Voor 57% gewijzigd door Snoeikoe op 20-11-2022 10:43 . Reden: tabel toegevoegd, list gemaakt ]
Mogelijk kijkt hij naar het BSSID van de router, het MAC-adres dus. Maar de TP-Link heeft een bedrade uplink naar je netwerk; ik zou een testopstelling maken met een PC/laptop die twee netwerkkaarten heeft (externe USB netwerkkaart bijv.) zodat je het verkeer kan meelezen via Wireshark. Grote kans overigens dat het versleuteld is.
@The Flying Dutchman Ik heb de foto’s even bekeken. Er zit een L6219DSA in, maar dat is een ‘stepper motor driver’. Verder nog een ATMega, dat zal de hoofd CPU zijn.
Maar onder connector ‘6X’ zit ook een ‘ST485C’. Die is veel interessanter, de naam geeft het al een beetje weg: RS485! https://www.st.com/en/int...-transceivers/st485c.html mogelijk dat daar ‘gewoon’ Modbus overheen gaat zoals al eerder werd genoemd in dit topic.
Maar of dat ook via poort 8X naar buiten gaat is lastig te zien. Mogelijk alleen via 6X.
Wat voor 8-potige chip zit er in het wifi doosje vlakbij de rode connector? Recht boven het component met opdruk ‘330’.
@The Flying Dutchman Ik heb de foto’s even bekeken. Er zit een L6219DSA in, maar dat is een ‘stepper motor driver’. Verder nog een ATMega, dat zal de hoofd CPU zijn.
Maar onder connector ‘6X’ zit ook een ‘ST485C’. Die is veel interessanter, de naam geeft het al een beetje weg: RS485! https://www.st.com/en/int...-transceivers/st485c.html mogelijk dat daar ‘gewoon’ Modbus overheen gaat zoals al eerder werd genoemd in dit topic.
Maar of dat ook via poort 8X naar buiten gaat is lastig te zien. Mogelijk alleen via 6X.
Wat voor 8-potige chip zit er in het wifi doosje vlakbij de rode connector? Recht boven het component met opdruk ‘330’.
[ Voor 31% gewijzigd door ThinkPad op 20-11-2022 21:29 ]
Dat is een L5970AD GK929. Voltage regulatie?ThinkPad schreef op zondag 20 november 2022 @ 21:20:
Wat voor 8-potige chip zit er in het wifi doosje vlakbij de rode connector? Recht boven het component met opdruk ‘330’.
The Flying Dutchman
Mooie progressie! Bij mij connect de WP wel gewoon naar mijn eigen AP. Heb SSID, wachtwoord en beveiliging overgenomen. Ik zal eens kijken wat ik met wireshark kan vinden. De WP stuurt zover ik weet zelfstandig met een regelmatig interval data naar de centrale server van Remeha. Bij de servicedesk konden ze de waarden uitlezen terwijl er geen spanning op het apparaat stond.Snoeikoe schreef op zondag 20 november 2022 @ 09:41:
Volgende stap, nog niet gelukt
Maar toen, ik wilde dat de warmtepomp met mijn eigen netwerk verbindt. Dit is me nog niet gelukt. Waarom wil ik dat? Dan kan ik de packets ook uitlezen die uitgewisseld worden met de server. Dat is de eerste stap naar via wifi (niet bekabeld) de pomp uitlezen.Ik weet niet zo goed waarom de Toros niet wil verbinden met een andere AP, ook al draagt die dezelfde naam (SSID), password en WPA2 setting. Hij blijft 'sticky' aan de TP-Link router die een pomp geleverd wordt.
- De pomp weer in Soft AP mode gezet
- Eigen SSID en Password ingevuld (ook een 2.4Ghz netwerk met WPA2, net als de TP-link router die bij de pomp kwam)
- De pomp weer in Wifi Client mode gezet
- Hij verbindt NIET met mijn eigen netwerk
- Zelfde gedaan, maar nu mijn eigen netwerk dezelfde SSID gegeven als TP-Link Router + zelfde password. En die TP-Link router uitgezet. In de hoop dat de pomp met mijn eigen fysieke netwerk verbindt dat dezelfde naam + password draagt
- Werkt niet
- Mijn eigen netwerk weer uitgezet dat dezelfde naam droeg als TP-Link router die bij de pomp kwam, en die laatste dus weer aangezet
- Toros verbindt wel weer.
edit: ondertussen even met wireshark aan de slag geweest. Ik zie de communicatie tussen WP en de monitoring server. Ik heb een uur aan data, hierin zie ik 1x dat er een PPTP connectie opgezet wordt. Verder zijn het allemaal TCP berichten die langskomen met data waar ik vooralsnog niet veel mee kan (allemaal naar poort 7001 op de remote server).
[ Voor 9% gewijzigd door The Flying Dutchman op 24-11-2022 23:09 ]
The Flying Dutchman
Ik zie hetzelfde na gebruik Wireshark
Vanaf poort 2263 (local) naar remote (server) 7001 (op 90.145...)
Het lijkt wel een sequence te zijn waarbij de warmtepomp steeds een kleine TCP payload stuurt (1 parameter) en dan de server weer reageert. En dat 20 keer. Ipv 1 groot/lang TCP bericht.
Maar binnen die data zie ik ook zo gauw (nog) niet hoe ik het kan lezen. Lijkt niet encrypted omdat in 1 van die sequence berichten de MAC van mijn warmtepomp gewoon 'plain text' staat.
@The Flying Dutchman
Mag ik overigens vragen hoe je dit precies hebt ingesteld?
Of heb je simpelweg je AP dezelfde naam en settings gegeven als de router die bij de pomp kwam?
Vanaf poort 2263 (local) naar remote (server) 7001 (op 90.145...)
Het lijkt wel een sequence te zijn waarbij de warmtepomp steeds een kleine TCP payload stuurt (1 parameter) en dan de server weer reageert. En dat 20 keer. Ipv 1 groot/lang TCP bericht.
Maar binnen die data zie ik ook zo gauw (nog) niet hoe ik het kan lezen. Lijkt niet encrypted omdat in 1 van die sequence berichten de MAC van mijn warmtepomp gewoon 'plain text' staat.
@The Flying Dutchman
Mag ik overigens vragen hoe je dit precies hebt ingesteld?
Heb je ook AP settings in de warmtepomp geprogrammeerd met die App of heb je een andere manier?Bij mij connect de WP wel gewoon naar mijn eigen AP. Heb SSID, wachtwoord en beveiliging overgenomen.
Of heb je simpelweg je AP dezelfde naam en settings gegeven als de router die bij de pomp kwam?
Ik geloof niet dat ik iets bijzonders heb ingesteld. Heb SSID zelfs verborgen gezet en een MAC access control list toegevoegd zodat alleen mijn warmtepomp op dit SSID mag.
/f/image/4vYgh0ttQcRc0cjrvuEGngqb.png?f=fotoalbum_large)
Ik heb overigens niets aan mijn warmtepomp zelf ingesteld. Niet via de app en ook niet via dipswitches op de wifi module oid. Dus alles helemaal op de standaard settings en het meegeleverde access point vervangen door mijn eigen met exact dezelfde gegevens.
Zou het kunnen dat jouw access point PPTP blokkeert? (je gaf aan dat hij uberhaupt niet connect met AP, dus ik neem aan dat het al eerder mis gaat...)
/f/image/4vYgh0ttQcRc0cjrvuEGngqb.png?f=fotoalbum_large)
Ik heb overigens niets aan mijn warmtepomp zelf ingesteld. Niet via de app en ook niet via dipswitches op de wifi module oid. Dus alles helemaal op de standaard settings en het meegeleverde access point vervangen door mijn eigen met exact dezelfde gegevens.
Zou het kunnen dat jouw access point PPTP blokkeert? (je gaf aan dat hij uberhaupt niet connect met AP, dus ik neem aan dat het al eerder mis gaat...)
[ Voor 28% gewijzigd door The Flying Dutchman op 25-11-2022 11:23 ]
The Flying Dutchman
Hij connect nu wel met mn eigen AP, mits ik geen encryptie zet (Open, dus geen password).
Hoewel ik op mn Unifi AP eerder WPA2 PSK (2.4ghz) had gezet, zelfde als op bijgeleverde router, maar dat werkt dus niet.
Zit toch een verschil in de encryptie settings.
Wordt vervolgd...
Hoewel ik op mn Unifi AP eerder WPA2 PSK (2.4ghz) had gezet, zelfde als op bijgeleverde router, maar dat werkt dus niet.
Zit toch een verschil in de encryptie settings.
Wordt vervolgd...
Ik volg dit draadje met veel interesse. Ook wij hebben een Toros Vision warmtepomp inclusief EVA na regeling in de master-master variant. De hoofd thermostaat (Honeywell home modulation) hangt in de woonkamer en de rest van de ruimtes in huis hebben alle een eigen thermostaat (Honeywell round). We hebben aardige goede ervaringen met het systeem ( zo’n twee jaar in gebruik nu) echter is er wel twee keer een EVA unit vervangen. Gelukkig garantie, maar die dingen kosten gewoon minimaal €500,- per stuk.
Maar ook wij kunnen de WP niet meer uitlezen. Eerst ging dat via een server van Techneco en na overname door Remeha via het online Remeha dashboard. Maar ook die is nu uit de lucht.
Ik heb nu dus de kabel besteld die hier eerder al werd voorgesteld en de software op me laptop gezet. Nog even wachten tot de kabel binnen is en dan maar is kijken hoe gebruiksvriendelijk het allemaal is. Het liefst doe ik het allemaal dmv WiFi dus ik hoop dat er een oplossing voor komt, door Remeha of de slimme koppen hier
Maar ook wij kunnen de WP niet meer uitlezen. Eerst ging dat via een server van Techneco en na overname door Remeha via het online Remeha dashboard. Maar ook die is nu uit de lucht.
Ik heb nu dus de kabel besteld die hier eerder al werd voorgesteld en de software op me laptop gezet. Nog even wachten tot de kabel binnen is en dan maar is kijken hoe gebruiksvriendelijk het allemaal is. Het liefst doe ik het allemaal dmv WiFi dus ik hoop dat er een oplossing voor komt, door Remeha of de slimme koppen hier
@DJJK
Leuk dat je er ook mee bezig bent!
Werkt hier wel nog, maar vreemdgenoeg loopt de data daar bij mij ineens 23 / 24 uur achter. Ik zie de data van dit moment pas over 23 uur daar als 'last update'. Vraag me af of dat bug server-side is, of dat de warmtepomp clock-drift heeft en de web portal puur de tijd neemt die de pomp heeft meegestuurd.
Leuk dat je er ook mee bezig bent!
Vraagje, want ik heb die niet. Je hebt dan op iedere vloerverdeler-knop, 1 motor zitten toch? Draait hij dan een groep volledig dicht (dus dat debiet naar 0 gaat en dan de rest meer debiet krijgt) of kan hij ook 'half' openen? Want die motoren sturen niet de debiet-regelaars zelf aan toch?Ook wij hebben een Toros Vision warmtepomp inclusief EVA na regeling in de master-master variant
Dus je kan ook niet meer bij https://monitoring.remeha.nl/ inloggen met je oude login credentials van monitoring.techneco.nl ?Maar ook wij kunnen de WP niet meer uitlezen. Eerst ging dat via een server van Techneco en na overname door Remeha via het online Remeha dashboard.
Werkt hier wel nog, maar vreemdgenoeg loopt de data daar bij mij ineens 23 / 24 uur achter. Ik zie de data van dit moment pas over 23 uur daar als 'last update'. Vraag me af of dat bug server-side is, of dat de warmtepomp clock-drift heeft en de web portal puur de tijd neemt die de pomp heeft meegestuurd.
Heel benieuwd!Ik heb nu dus de kabel besteld die hier eerder al werd voorgesteld en de software op me laptop gezet. Nog even wachten tot de kabel binnen is en dan maar is kijken hoe gebruiksvriendelijk het allemaal is
Dit is wat ik in beeld krijg als ik inlog via de Remeha link;
:strip_exif()/f/image/WPnnxx3d8OfUkVP6bRYTCYQ6.jpg?f=fotoalbum_large)
De X8 aansluiting op de printplaat zit nu nog op het WiFi kastje (las doosje) aangesloten. Ik ben er wel achter dat de aansluiting een seriële UART com port is. Op de printplaat bij de poort staat het cijfer 3 en 6. Die geven volgens mij de poort volgorde aan. 6 pins, dus een Vcc, gnd, Txd, Rxd, Cts en Rts? De kabel die ze gebruikt hebben heeft andere kleuren dan voor UART is aangegeven. Dus moet dat nog even uitzoeken.
En hoe het systeem precies werkt geen idee haha.
Misschien beantwoord dit je vraag, uit de handleiding;
[/quote] De EVA wordt geplaatst tussen de thermostaten en de thermische motoren op de verdeler.
• Iedere EVA heeft een eigen 230 Volt netspanning aansluiting nodig.
• Alleen de master EVA is direct verbonden met de warmtepomp.
• Wordt de EVA toegepast met een Toros Vision, dan is alleen een 2-aderige (zwakstroom) signaalkabel
nodig om de EVA aan te sluiten op de warmtepomp, zie hoofdstuk 3. In het geval van een oudere warmte- pomp zijn meer aansluitingen nodig (2 aders voor het vrijgavecontact, 2 aders voor het zomer-/wintercon- tact en 2 aders voor een maximaalthermostaat), zie hoofdstuk 6.
• Indien er meerdere verdelers in de woning zijn geplaatst kan worden overwogen om meerdere EVA’s te plaatsen. Onderling worden deze EVA’s verbonden met een 4-aderige (zwakstroom) signaalkabel. In hoofdstuk 5 staat beschreven hoe deze aansluiting moet worden gemaakt.
• In de regeling is opgenomen dat wanneer er geen verwarmingsvraag is er toch altijd een zone “open” blijft. Op deze manier wordt stroming over de warmtepomp gegarandeerd gedurende de opwarmtijd van de thermische motoren bij de eerstvolgende keer dat de warmtepomp aan gaat. De open zone is altijd de laatst vragende zone op de master EVA. In het geval de laatst vragende zone een van de zones op een slave EVA was, gaat na het wegvallen van de vraag de laatst vragende zone aangesloten op de master EVA open.
• Het heeft de voorkeur om zone 1 van de master EVA op een zo groot mogelijke ruimte aan te sluiten welke regelmatig warmte vraagt, zoals bijvoorbeeld de woonkamer.
• Voor een optimaal rendement dient de warmtepomp zo min mogelijk schakelingen te maken en is de mini- male draaitijd van de warmtepomp in de software ingesteld op 10 minuten.
• Een zone wordt op de EVA geactiveerd door eenmaal het vraagcontact van de thermostaat te sluiten.
[quote]
Ik heb sowieso installateurs handleidingen van de WP als er iemand interesse heeft. Zowel de nieuwe van Remeha als de oude van Techneco zelf.
:strip_exif()/f/image/WPnnxx3d8OfUkVP6bRYTCYQ6.jpg?f=fotoalbum_large)
De X8 aansluiting op de printplaat zit nu nog op het WiFi kastje (las doosje) aangesloten. Ik ben er wel achter dat de aansluiting een seriële UART com port is. Op de printplaat bij de poort staat het cijfer 3 en 6. Die geven volgens mij de poort volgorde aan. 6 pins, dus een Vcc, gnd, Txd, Rxd, Cts en Rts? De kabel die ze gebruikt hebben heeft andere kleuren dan voor UART is aangegeven. Dus moet dat nog even uitzoeken.
En hoe het systeem precies werkt geen idee haha.
Misschien beantwoord dit je vraag, uit de handleiding;
[/quote] De EVA wordt geplaatst tussen de thermostaten en de thermische motoren op de verdeler.
• Iedere EVA heeft een eigen 230 Volt netspanning aansluiting nodig.
• Alleen de master EVA is direct verbonden met de warmtepomp.
• Wordt de EVA toegepast met een Toros Vision, dan is alleen een 2-aderige (zwakstroom) signaalkabel
nodig om de EVA aan te sluiten op de warmtepomp, zie hoofdstuk 3. In het geval van een oudere warmte- pomp zijn meer aansluitingen nodig (2 aders voor het vrijgavecontact, 2 aders voor het zomer-/wintercon- tact en 2 aders voor een maximaalthermostaat), zie hoofdstuk 6.
• Indien er meerdere verdelers in de woning zijn geplaatst kan worden overwogen om meerdere EVA’s te plaatsen. Onderling worden deze EVA’s verbonden met een 4-aderige (zwakstroom) signaalkabel. In hoofdstuk 5 staat beschreven hoe deze aansluiting moet worden gemaakt.
• In de regeling is opgenomen dat wanneer er geen verwarmingsvraag is er toch altijd een zone “open” blijft. Op deze manier wordt stroming over de warmtepomp gegarandeerd gedurende de opwarmtijd van de thermische motoren bij de eerstvolgende keer dat de warmtepomp aan gaat. De open zone is altijd de laatst vragende zone op de master EVA. In het geval de laatst vragende zone een van de zones op een slave EVA was, gaat na het wegvallen van de vraag de laatst vragende zone aangesloten op de master EVA open.
• Het heeft de voorkeur om zone 1 van de master EVA op een zo groot mogelijke ruimte aan te sluiten welke regelmatig warmte vraagt, zoals bijvoorbeeld de woonkamer.
• Voor een optimaal rendement dient de warmtepomp zo min mogelijk schakelingen te maken en is de mini- male draaitijd van de warmtepomp in de software ingesteld op 10 minuten.
• Een zone wordt op de EVA geactiveerd door eenmaal het vraagcontact van de thermostaat te sluiten.
[quote]
Ik heb sowieso installateurs handleidingen van de WP als er iemand interesse heeft. Zowel de nieuwe van Remeha als de oude van Techneco zelf.
Ik heb de (officiele service) kabel ook maar besteld en ondertussen ook binnen. Ik heb de kabel nog niet ontmanteld, maar het lijkt erop alsof er slechts 3 van de 6 draden in gebruik zijn.
Draden in gebruik (bekeken alsof je voor de warmtepomp / printplaat staat)
Op mijn eedere foto zijn dat dus de twee draden rechtsboven en onder de middelste (geel, grijs en bruin).
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.
De screen files zelf bevatten ook interessante informatie die ik probeer te interpreteren. Het zijn gewoon tekst files met daarin de configuratie van de screens. Het meest intressante is dat er geheugen addressen in staan. Hier een klein stukje van het 'status' scherm:
Het 4e veld is het geheugen address en volgens mij is het 5e veld het bit wat uitgelezen moet worden. Sommige waarden zijn unsigned byte, andere waarden zijn bits. Zie bijvoorbeeld het 2e en 3e veld, die hebben hetzelfde adres, maar het vergrendeld veld is een bit (dit is te zien in de servicetool, als je het scherm opent en dubbelklikt op het veld 'vergrendeld').
Ik ben ondertussen ook nog met wireshark in de weer om te kijken of ik dezelfde waarden terug kan vinden in de berichten. Ik zie (net als Snoeikoe) het MAC address van de warmtepomp in de berichten. Veel waarden in de berichten zijn redelijk constant. Er is één waarde die overeenkomt met de hex waarde van de actuele storing op mijn warmtepomp. Kan toeval zijn... ik probeer een veld te vinden wat ik redelijk makkelijk kan manipuleren of waarvan de waarde veranderd (en ik die kan volgen). Temperaturen worden in tiende graden weergegeven, dus tapwater temperatuur 48,3 is 483.
Hieronder een voorbeeld van hoe de tool eruit ziet met de details van het 'regelsensor' veld:
/f/image/R6FitmDi2KKOCsoEPGDdYohN.png?f=fotoalbum_large)
Hier ook nog detail foto's van de kabel:
:strip_exif()/f/image/cYBWtUaXYeCuwjkinw7kUPpc.jpg?f=fotoalbum_large)
:strip_exif()/f/image/AeoZJ4Zax3dkjwaUkbaFpDhM.jpg?f=fotoalbum_large)
:strip_exif()/f/image/RlMc1MrbwGjnd5eveEKXE6LH.jpg?f=fotoalbum_large)
Kabel driver download verwijst naar:
http://www.di100001.com/system/app/pages/sitemap/hierarchy
Wordt vervolgd...
Draden in gebruik (bekeken alsof je voor de warmtepomp / printplaat staat)
code:
1
2
| | |x|x| | |x| | |
Op mijn eedere foto zijn dat dus de twee draden rechtsboven en onder de middelste (geel, grijs en bruin).
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.
De screen files zelf bevatten ook interessante informatie die ik probeer te interpreteren. Het zijn gewoon tekst files met daarin de configuratie van de screens. Het meest intressante is dat er geheugen addressen in staan. Hier een klein stukje van het 'status' scherm:
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
| 9408399 "L",0,1,"81E6",0,"Zomer-winter-stand","",0,0,0,0,"0",0,2068,4515,2068,2820,"0" "I",1,1,"0032",0,"Actuale storing","Actual Error",0,0,0,0,"0",0,2068,7899,2068,6204,"0",1,0 "I",1,0,"0032",7,"Vergrendeld","Not Assigned",0,0,0,0,"0",0,2444,7899,2444,6204,"0",1,1 "I",1,3,"00AB",0,"Reset (code: AA55)","",0,0,1,0,"0",1,2820,7899,2820,6204,"0",3,2 "I",1,1,"30CE",0,"Lage druk schakelaar","",0,0,0,0,"0",0,3572,7899,3572,6204,"0",4,1 "I",1,1,"30CE",0,"Hoge druk schakelaar","",0,0,0,0,"0",0,3948,7899,3948,6204,"0",4,0 "L",0,1,"F12B",0,"MaxT CPR","gbMaxCompTherm",0,0,0,0,"0",0,4324,7899,4324,6204,"0" "L",0,1,"F830",0,"MaxT EE","gbMaxEE",0,0,0,0,"0",0,4700,7899,4700,6204,"0" "L",0,1,"F12A",0,"EC1","gubRelieve",0,0,0,0,"0",0,5076,7899,5076,6204,"0" "L",0,1,"FA70",0,"EC2","gbDistWPSwitch",0,0,0,0,"0",0,5452,7899,5452,6204,"0" "L",0,3,"F37C",0,"Afgiftesysteem(min:sec)","guwMinTimers+1",0,0,0,0,"0",1,2068,11283,2068,9588,"0" "L",0,3,"F37A",0,"Pompen(min:sec)","guwMinTimers",0,0,0,0,"0",1,2446,11296,2446,9601,"0" "L",0,1,"F364",0,"Warmtepomp(sec)","gubSecTimers+1",0,0,0,0,"0",0,2820,11283,2820,9588,"0" "L",0,3,"F37E",0,"CPR AAN-AAN (min:sec)","guwMinTimers+2",0,0,0,0,"0",1,3196,11283,3196,9588,"0" "L",0,3,"F380",0,"CPR UIT_AAN (min:sec)","guwMinTimers+3",0,0,0,0,"0",1,3572,11283,3572,9588,"0" "L",0,3,"F382",0,"CPR AAN-UIT(min:sec)","guwMinTimers+4",0,0,0,0,"0",1,3948,11283,3948,9588,"0" "I",1,4,"500B",0,"TZC ZONNECOLLECTOR","Not Assigned",0,0,0,0,"0",0,7144,6019,7144,4324,"0",4,2 "I",1,4,"35F7",0,"TBU BUITEN Actueel","Not Assigned",0,0,0,0,"0",0,7144,9779,7144,8084,"0",4,2 "I",1,4,"3561",0,"TTW TAPWATER","",0,0,0,0,"0",0,7144,13351,7144,11656,"0",4,2 "L",0,1,"F3F6",0,"Solarpomp [%]","gubSP6",0,0,0,0,"0",0,7520,6019,7520,4324,"0" "I",1,1,"1DB6",0,"Mengpositie klep (%)","Not Assigned",0,0,0,0,"0",0,8851,13336,8851,11641,"0",4,0 "I",1,3,"5AAB",0,"TBR Bron WP IN","Not Assigned",0,0,0,0,"0",0,8460,7335,8460,5640,"0",4,2 "I",1,4,"3AF8",0,"TVI Bron WP IN","",0,0,0,0,"0",0,8836,7335,8836,5640,"0",4,2 "I",1,4,"178F",0,"TCU CV WP UIT","",0,0,0,0,"0",0,8836,10531,8836,8836,"0",4,2 "I",1,3,"3F6B",0,"TAU CV WP UIT na EE","Not Assigned",0,0,0,0,"0",0,8460,10531,8460,8836,"0",4,2 "I",1,3,"356E",0,"Actuele regelwaarde","Not Assigned",0,0,0,0,"0",0,9211,13336,9211,11641,"0",4,2 |
Het 4e veld is het geheugen address en volgens mij is het 5e veld het bit wat uitgelezen moet worden. Sommige waarden zijn unsigned byte, andere waarden zijn bits. Zie bijvoorbeeld het 2e en 3e veld, die hebben hetzelfde adres, maar het vergrendeld veld is een bit (dit is te zien in de servicetool, als je het scherm opent en dubbelklikt op het veld 'vergrendeld').
Ik ben ondertussen ook nog met wireshark in de weer om te kijken of ik dezelfde waarden terug kan vinden in de berichten. Ik zie (net als Snoeikoe) het MAC address van de warmtepomp in de berichten. Veel waarden in de berichten zijn redelijk constant. Er is één waarde die overeenkomt met de hex waarde van de actuele storing op mijn warmtepomp. Kan toeval zijn... ik probeer een veld te vinden wat ik redelijk makkelijk kan manipuleren of waarvan de waarde veranderd (en ik die kan volgen). Temperaturen worden in tiende graden weergegeven, dus tapwater temperatuur 48,3 is 483.
Hieronder een voorbeeld van hoe de tool eruit ziet met de details van het 'regelsensor' veld:
/f/image/R6FitmDi2KKOCsoEPGDdYohN.png?f=fotoalbum_large)
Hier ook nog detail foto's van de kabel:
:strip_exif()/f/image/cYBWtUaXYeCuwjkinw7kUPpc.jpg?f=fotoalbum_large)
:strip_exif()/f/image/AeoZJ4Zax3dkjwaUkbaFpDhM.jpg?f=fotoalbum_large)
:strip_exif()/f/image/RlMc1MrbwGjnd5eveEKXE6LH.jpg?f=fotoalbum_large)
Kabel driver download verwijst naar:
http://www.di100001.com/system/app/pages/sitemap/hierarchy
Wordt vervolgd...
[ Voor 12% gewijzigd door The Flying Dutchman op 05-12-2022 10:23 ]
The Flying Dutchman
Nog een hele korte follow up:
0000005F a5 0d 01 00 00 b3 00 .......
000002E1 a5 0e 30 5b 00 d5 98 94 58 ff ff ff ff 78 00 00 ..0[.... X....x..
000002F1 00 84 00 c0 00 00 1d 01 00 00 01 00 00 46 00 00 ........ .....F..
00000301 00 be 00 00 03 00 00 00 17 01 00 d2 00 00 00 f1 ........ ........
00000311 00 00 b0 07 00 00 06 00 00 e5 00 00 00 bb 00 00 ........ ........
00000321 cd 00 00 00 12 00 00 38 00 00 00 04 00 00 e7 00 .......8 ........
00000331 00 00 05 00 00 e1 00 00 00 bc 00 00 d9 01 00 00 ........ ........
00000341 2b 13 +.
Dit is een stukje data gezien via wireshark. Een packet met daarin 98 bytes aan data. Hierin zie ik het veld staan dat overeen komt met mijn huidige storingscode (ik heb momenteel last van een storing: code 70 - hex 46). Ik heb ook een 2e veld gevonden dat mogelijk de temperatuur van het tapwater weergeeft (gemeten via service tool: 47,3 oftewel 473, hex: 1d9, in het bericht vind ik dat terug als d9 01, iets later zie ik ook dA 01). Ik ben nog helemaal niet zeker of dit daadwerkelijk klopt, ik ga de waarden van deze velden volgen om te kijken of ze mee gaan met de waarden die ik uitlees via de servicetool/thermostaat.
edit:
Tapwater temperatuur ondertussen gedaald naar 46.9 (waarde: 469, hex: 1d5) en ik zie nu d5 01 in hetzelfde veld in wireshark. Begint er dus erg op te lijken dat ik in het bericht inderdaad de tapwater temperatuur gevonden heb!
Ga kijken of ik nog meer waarden kan vinden/bevestigen en zal vervolgens kijken of de informatie in een tabel te vatten is.
edit 2:
Gevonden in hetzelfde bericht (nu ook rood gemarkeerd):
- actuele buitentemperatuur (5,6 graden, oftewel 56, hex: 38)
- TZC zonnecollector (1968, hex: 7b0)
In het bericht dat daarna komt (63 bytes aan data) vond ik een waarden die overeen lijkt te komen met 'TVI Bron WP IN' en 'TBR BRON WP IN' zoals die in de servicetool te zien is. In een derde package (133 bytes aan data) vond ik waarden die lijken te matchen met standby kWh en actief tapwater kWh, actief CV kWh, passief koel kWh, noodbedrijf tp kWh en noodbedrijf CV kWh (dit zijn allemaal unsigned bytes, dus bij 255 is er een overflow).
Ik denk dat met meer speurwerk op deze manier heel wat info te vinden is!
0000005F a5 0d 01 00 00 b3 00 .......
000002E1 a5 0e 30 5b 00 d5 98 94 58 ff ff ff ff 78 00 00 ..0[.... X....x..
000002F1 00 84 00 c0 00 00 1d 01 00 00 01 00 00 46 00 00 ........ .....F..
00000301 00 be 00 00 03 00 00 00 17 01 00 d2 00 00 00 f1 ........ ........
00000311 00 00 b0 07 00 00 06 00 00 e5 00 00 00 bb 00 00 ........ ........
00000321 cd 00 00 00 12 00 00 38 00 00 00 04 00 00 e7 00 .......8 ........
00000331 00 00 05 00 00 e1 00 00 00 bc 00 00 d9 01 00 00 ........ ........
00000341 2b 13 +.
Dit is een stukje data gezien via wireshark. Een packet met daarin 98 bytes aan data. Hierin zie ik het veld staan dat overeen komt met mijn huidige storingscode (ik heb momenteel last van een storing: code 70 - hex 46). Ik heb ook een 2e veld gevonden dat mogelijk de temperatuur van het tapwater weergeeft (gemeten via service tool: 47,3 oftewel 473, hex: 1d9, in het bericht vind ik dat terug als d9 01, iets later zie ik ook dA 01). Ik ben nog helemaal niet zeker of dit daadwerkelijk klopt, ik ga de waarden van deze velden volgen om te kijken of ze mee gaan met de waarden die ik uitlees via de servicetool/thermostaat.
edit:
Tapwater temperatuur ondertussen gedaald naar 46.9 (waarde: 469, hex: 1d5) en ik zie nu d5 01 in hetzelfde veld in wireshark. Begint er dus erg op te lijken dat ik in het bericht inderdaad de tapwater temperatuur gevonden heb!
Ga kijken of ik nog meer waarden kan vinden/bevestigen en zal vervolgens kijken of de informatie in een tabel te vatten is.
edit 2:
Gevonden in hetzelfde bericht (nu ook rood gemarkeerd):
- actuele buitentemperatuur (5,6 graden, oftewel 56, hex: 38)
- TZC zonnecollector (1968, hex: 7b0)
In het bericht dat daarna komt (63 bytes aan data) vond ik een waarden die overeen lijkt te komen met 'TVI Bron WP IN' en 'TBR BRON WP IN' zoals die in de servicetool te zien is. In een derde package (133 bytes aan data) vond ik waarden die lijken te matchen met standby kWh en actief tapwater kWh, actief CV kWh, passief koel kWh, noodbedrijf tp kWh en noodbedrijf CV kWh (dit zijn allemaal unsigned bytes, dus bij 255 is er een overflow).
Ik denk dat met meer speurwerk op deze manier heel wat info te vinden is!
[ Voor 29% gewijzigd door The Flying Dutchman op 05-12-2022 12:59 ]
The Flying Dutchman
Wat betreft toegang tot online monitoring: heb van een Remeha monteur begrepen dat er een server transitie plaatsvindt. Heb zelf ook al 2-3 weken geen toegang.
The Flying Dutchman
@The Flying Dutchman Mooi dat het nu een vlucht begint te nemen!
Ik heb zelf niet zo'n warmtepomp, maar vind het erg interessant om mee te lezen. Heb zelf destijds e.e.a. zo uit zitten pluizen voor m'n zonnepanelen omvormer.
Bij klooien met de hex-data vond ik deze site wel handig: https://hexed.it/ Daar kun je de data inplakken en dan is het een kwestie van de bytes bij langs en aan de linkerkant speuren of je ergens een integer ziet die overeenkomt met data die je verwacht te vinden. Scheelt zelf weer omrekenen
Maar zo was je zelf ook al op weg zie ik 
De tool Node-RED is heel mooi om op een toegankelijke manier aan de slag te gaan met dit soort data. Ik heb daarin een flow gebouwd voor de omvormer, wellicht heb je daar iets aan als voorbeeld: ThinkPad in "GoodWe inverter lokaal uitlezen (USB / WiFi)"
Wat die kabel betreft, ik heb de link van de driver even bekeken. Het lijkt inderdaad een USB to Serial kabeltje te zijn zoals ik al vermoedde. Als ik hier kijk: http://www.di100001.com/home dan zie ik nog 'ESYS Reference' staan met een pinout van 3 pinnen: RX/TX/GND wat overeenkomt met jouw kabel die ook maar 3 bezette pinnen heeft. Ik ben heel erg geneigd om te zeggen dat je met een $3 USB-Serial kabeltje van AliExpress waar je het juiste stekkertje op maakt, net zoveel kunt uitlezen als met deze kabel van €83-120
Eigenlijk wat @DJJK ook al aangaf.
Bij klooien met de hex-data vond ik deze site wel handig: https://hexed.it/ Daar kun je de data inplakken en dan is het een kwestie van de bytes bij langs en aan de linkerkant speuren of je ergens een integer ziet die overeenkomt met data die je verwacht te vinden. Scheelt zelf weer omrekenen
De tool Node-RED is heel mooi om op een toegankelijke manier aan de slag te gaan met dit soort data. Ik heb daarin een flow gebouwd voor de omvormer, wellicht heb je daar iets aan als voorbeeld: ThinkPad in "GoodWe inverter lokaal uitlezen (USB / WiFi)"
Wat die kabel betreft, ik heb de link van de driver even bekeken. Het lijkt inderdaad een USB to Serial kabeltje te zijn zoals ik al vermoedde. Als ik hier kijk: http://www.di100001.com/home dan zie ik nog 'ESYS Reference' staan met een pinout van 3 pinnen: RX/TX/GND wat overeenkomt met jouw kabel die ook maar 3 bezette pinnen heeft. Ik ben heel erg geneigd om te zeggen dat je met een $3 USB-Serial kabeltje van AliExpress waar je het juiste stekkertje op maakt, net zoveel kunt uitlezen als met deze kabel van €83-120

[ Voor 29% gewijzigd door ThinkPad op 05-12-2022 21:14 ]
Bedankt voor de tips! Ben met je eens dat het met een kabel van 3 euro waarschijnlijk ook prima te doen is. Maar op deze manier kon ik één variabele afvinken en loop ik ook geen risico dat ik iets verkeerds doe met mijn warmtepomp.ThinkPad schreef op maandag 5 december 2022 @ 19:43:
@The Flying Dutchman Mooi dat het nu een vlucht begint te nemen!Ik heb zelf niet zo'n warmtepomp, maar vind het erg interessant om mee te lezen. Heb zelf destijds e.e.a. zo uit zitten pluizen voor m'n zonnepanelen omvormer.
Bij klooien met de hex-data vond ik deze site wel handig: https://hexed.it/ Daar kun je de data inplakken en dan is het een kwestie van de bytes bij langs en aan de linkerkant speuren of je ergens een integer ziet die overeenkomt met data die je verwacht te vinden. Scheelt zelf weer omrekenenMaar zo was je zelf ook al op weg zie ik
De tool Node-RED is heel mooi om op een toegankelijke manier aan de slag te gaan met dit soort data. Ik heb daarin een flow gebouwd voor de omvormer, wellicht heb je daar iets aan als voorbeeld: ThinkPad in "GoodWe inverter lokaal uitlezen (USB / WiFi)"
Wat die kabel betreft, ik heb de link van de driver even bekeken. Het lijkt inderdaad een USB to Serial kabeltje te zijn zoals ik al vermoedde. Als ik hier kijk: http://www.di100001.com/home dan zie ik nog 'ESYS Reference' staan met een pinout van 3 pinnen: RX/TX/GND wat overeenkomt met jouw kabel die ook maar 3 bezette pinnen heeft. Ik ben heel erg geneigd om te zeggen dat je met een $3 USB-Serial kabeltje van AliExpress waar je het juiste stekkertje op maakt, net zoveel kunt uitlezen als met deze kabel van €83-120Eigenlijk wat @DJJK ook al aangaf.
Ben verder in de berichten structuur gedoken. Ik zie berichten met verschillende hoeveelheden data. Daar zit ook een patroon in:
a5 XX ?? YY 00 ...
Als je naar de data kijkt dan zie je de volgende bytes:
- 1e byte is altijd a5
- 2e byte is een volgnummer
- 3e byte onbekend, mogelijk een bericht type oid, ik zie wel een patroon:
-- berichten met 7 bytes aan data is dit altijd 17
-- berichten met 8 bytes aan data is dit altijd 20
-- berichten met 35 bytes data is dit altijd 12
-- berichten met 63, 98 of 133 bytes data is dit altijd 30
- 4e byte is de hoeveelheid data - 7 (bijvoorbeeld bij bericht met 98 bytes aan data is de waarde 5b, oftewel 91)
- 5e byte onbekend, lijkt altijd 00 te zijn
- 6e byte?
- 7e byte?
- Vanaf byte 8 begint de data? Aangezien de waarde 4e byte altijd 7 minder is dan het data block?
- Voor berichten met 63, 98 en 133 bytes aan data zijn de eerste 9 bytes (behalve volgnummer en berichtgrootte / bytes 2 en 4) altijd identiek: a5 XX 30 YY 00 d5 98 94 58
The Flying Dutchman
Er zal ongetwijfeld ook nog ergens een CRC in het datapakket zitten, zodat corrupte data niet getoond wordt in de applicatie.
Ja, dat vermoed ik ook. Eens kijken of ik dat kan uitvogelen....ThinkPad schreef op dinsdag 6 december 2022 @ 09:53:
Er zal ongetwijfeld ook nog ergens een CRC in het datapakket zitten, zodat corrupte data niet getoond wordt in de applicatie.
Verder wil ik eens kijken naar die geheugen addressen die in de files staan die gebruikt worden in de service tool. Mogelijk wordt de data op volgorde van geheugen adres verstuurd oid.
Een aantal berichten kan ik herkennen op basis van de lengte van het bericht. Maar ik zie ook duidelijke verschillen tussen meerdere berichten die elk 63 bytes aan data bevatten. Dus ik denk dat er ook nog iets moet zijn als:
- Een vaste volgorde waarin berichten worden gestuurd
- Een identifier (welk type bericht)
- Een identifier voor iedere verzonden waarde
- Of een combinatie van bovenstaande
De berichten met 98 en 133 bytes lijken altijd dezelfde informatie te versturen.
The Flying Dutchman
De datapakketten die je hier deelt, dat heb je uit Wireshark toch?
Je zou ook nog een man-in-the-middle sniffing tool kunnen installeren die meeluistert op de COM-poort. Zodat je tussen de warmtepomp en de uitleessoftware zit. Wellicht kun je daar dan het 'gesprek' beter mee volgen. Volgens mij kan een programma zoals 'RealTerm' dit. Of bijv. 'PortMon' zie ik ook wel genoemd worden.
Je zou ook nog een man-in-the-middle sniffing tool kunnen installeren die meeluistert op de COM-poort. Zodat je tussen de warmtepomp en de uitleessoftware zit. Wellicht kun je daar dan het 'gesprek' beter mee volgen. Volgens mij kan een programma zoals 'RealTerm' dit. Of bijv. 'PortMon' zie ik ook wel genoemd worden.
Dat klopt, dit is inderdaad via wireshark.ThinkPad schreef op dinsdag 6 december 2022 @ 13:03:
De datapakketten die je hier deelt, dat heb je uit Wireshark toch?
Je zou ook nog een man-in-the-middle sniffing tool kunnen installeren die meeluistert op de COM-poort. Zodat je tussen de warmtepomp en de uitleessoftware zit. Wellicht kun je daar dan het 'gesprek' beter mee volgen. Volgens mij kan een programma zoals 'RealTerm' dit. Of bijv. 'PortMon' zie ik ook wel genoemd worden.
Het idee dat jij oppert zou ik inderdaad ook willen proberen. Ik weet niet precies hoe het protocol werkt, misschien is het zelfs zo simpel als: de warmtepomp dumpt continu alle waarden naar de interface (beetje zoals de P1 poort van een slimme meter). In dat geval zou ik gewoon kunnen luisteren naar de poort en de data opslaan.
The Flying Dutchman
probeer anders eens https://tomos.remeha.nl daar lijkt de nieuwe portal te draaien. Zit alleen helaas recaptcha op, dus mijn scraper werkt niet meerThe Flying Dutchman schreef op maandag 5 december 2022 @ 19:26:
Wat betreft toegang tot online monitoring: heb van een Remeha monteur begrepen dat er een server transitie plaatsvindt. Heb zelf ook al 2-3 weken geen toegang.
Oh ja, ik heb dus ook en toros vision, met EVA zoneregeling. dmv een OTGW kan ik redelijk wat uitlezen qua temperaturen, maar verbruik haalde ik tot nu toe uit de portal, en daar komt mijn script niet meer in
Dus als iemand een mooie manier weet om het direct uit de WP te halen...
Hier ook inmiddels de kabel binnen. Volgende probleem diende zich meteen alweer aan, geen windows pc
Heel even een laptop van mijn werk geleend en ik kan inmiddels in het microcom programma, en contact maken met de WP. Nog niet echt een deep dive gedaan.
Ik probeer ook de connector te zoeken die aan de kabel zit, want bijna 90 euro voor een usb kabel is wel een beetje belachelijk. Want ben er nu toch wel zeker van dat het gewoon om een seriële poort gaat.
:fill(white):strip_exif()/f/image/zfgtyhCC9Y0RFVJErMJwrkLb.png?f=user_large)
:strip_exif()/f/image/ArfcZpIwQJ1eU6NJypkGh0CF.jpg?f=fotoalbum_large)
Ik ben nog niet bereid om op de printplaat te gaan solderen i.v.m. garantie en de kans dat ik heel de boel sloop
Dus als ik de connector heb gevonden dan ga ik even een spitter maken zodat het wifi kastje samen met de usb kabel gebruikt kan worden. Ik kan dan in ieder geval ook de aansluiting buiten de WP brengen.
De installateur heeft bij namelijk een omkasting om de unit gezet.
:strip_exif()/f/image/6UzVQOc4wMFH7EylO49SWPJS.jpg?f=fotoalbum_large)
Goed om te zien dat er meerdere Tweakers mee bezig zijn vanuit verschillende invalshoeken, ik heb namelijk geen kaas gegeten van de software kant.
@borft Via die link krijg ik inderdaad wel een inlogpagina, alleen krijg ik de melding dat mijn inloggegevens onjuist zijn.

Heel even een laptop van mijn werk geleend en ik kan inmiddels in het microcom programma, en contact maken met de WP. Nog niet echt een deep dive gedaan.
Ik probeer ook de connector te zoeken die aan de kabel zit, want bijna 90 euro voor een usb kabel is wel een beetje belachelijk. Want ben er nu toch wel zeker van dat het gewoon om een seriële poort gaat.
:fill(white):strip_exif()/f/image/zfgtyhCC9Y0RFVJErMJwrkLb.png?f=user_large)
:strip_exif()/f/image/ArfcZpIwQJ1eU6NJypkGh0CF.jpg?f=fotoalbum_large)
Ik ben nog niet bereid om op de printplaat te gaan solderen i.v.m. garantie en de kans dat ik heel de boel sloop
De installateur heeft bij namelijk een omkasting om de unit gezet.
:strip_exif()/f/image/6UzVQOc4wMFH7EylO49SWPJS.jpg?f=fotoalbum_large)
Goed om te zien dat er meerdere Tweakers mee bezig zijn vanuit verschillende invalshoeken, ik heb namelijk geen kaas gegeten van de software kant.
@borft Via die link krijg ik inderdaad wel een inlogpagina, alleen krijg ik de melding dat mijn inloggegevens onjuist zijn.
Dat had ik ook, password reset deed de truc. Maar dan moet Remeha dus wel je email adres hebben, anders werkt het niet.DJJK schreef op woensdag 7 december 2022 @ 09:07:
@borft Via die link krijg ik inderdaad wel een inlogpagina, alleen krijg ik de melding dat mijn inloggegevens onjuist zijn.
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?
ben erg benieuwd naar het reverse engineeren van het protocol. Als het, blijkbaar, mogelijk is chocola te maken van packet dumps, dan gaat de data dus ook onversleuteld over Internet?!
[ Voor 15% gewijzigd door borft op 07-12-2022 10:35 ]
Dat is sowieso het geval, anders had @The Flying Dutchman in Wireshark geen waardes kunnen terugherleiden...borft schreef op woensdag 7 december 2022 @ 10:34:
[...]
ben erg benieuwd naar het reverse engineeren van het protocol. Als het, blijkbaar, mogelijk is chocola te maken van packet dumps, dan gaat de data dus ook onversleuteld over Internet?!
Je mag nog wel opletten ook dat ze niet meelezen hier en een firmware update naar je wifi-module pushen en hij de data ineens versleuteld gaat verzenden. Dan gooien ze effectief de deur voor je dicht
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...)
[ Voor 14% gewijzigd door ThinkPad op 07-12-2022 11:39 ]
Ik heb gisteravond nog een speurtocht gedaan op internet naar het Esys / CVBC / Microcom protocol. Wat ik gevonden heb is dat het iets van Honeywell is. Ik heb ook verwijzingen gevonden naar een document dat het protocol beschrijft, maar het document zelf heb ik niet kunnen vinden. Heb wel ergens een document gevonden dat ook verwijst naar dit protocol en waar ook geheugenaddressen genoemd worden die uitgelezen kunnen worden. Ik zag voor de foutcode hetzelfde geheugenadres dat ook in de servicetool gebruikt wordt. Deze geheugen adressen zijn dus blijkbaar een standaard van Honeywell.
Ook gevonden: voor sommige waarden worden de high bits of de low bits van een byte gebruikt. Op die manier staan er dus 2 waarden in 1 byte. Hierdoor is het zoeken soms iets moeilijker misschien. Maar dit valt allemaal terug te vinden via de service tool en de bijbehorende screen files.
Volgende stap is het meelezen op de COM poort. Die screen files zijn erg eenvoudig. Ik zou er zelf eentje kunnen maken (in een text editor) waar slechts 1 waarde uitgelezen worden. Vervolgens meeluisteren op de COM poort om te kijken wat er precies gebeurt om die waarde uit te lezen. Ik weet in ieder geval dat de service tool continu (en zo te zien één voor één) de waarden uitleest en refreshed in een soort loop.
Ook gevonden: voor sommige waarden worden de high bits of de low bits van een byte gebruikt. Op die manier staan er dus 2 waarden in 1 byte. Hierdoor is het zoeken soms iets moeilijker misschien. Maar dit valt allemaal terug te vinden via de service tool en de bijbehorende screen files.
Volgende stap is het meelezen op de COM poort. Die screen files zijn erg eenvoudig. Ik zou er zelf eentje kunnen maken (in een text editor) waar slechts 1 waarde uitgelezen worden. Vervolgens meeluisteren op de COM poort om te kijken wat er precies gebeurt om die waarde uit te lezen. Ik weet in ieder geval dat de service tool continu (en zo te zien één voor één) de waarden uitleest en refreshed in een soort loop.
[ Voor 38% gewijzigd door The Flying Dutchman op 07-12-2022 10:47 ]
The Flying Dutchman
Uiteindelijk wil ik de wifi module loskoppelen en er een raspberry pi oid aanhangen die de data uitleest en in InfluxDB stopt. Vervolgens wat mooie grafieken maken met Grafana. Maar een eerste stap zou een python programma kunnen zijn dat op mijn server draait en wat gegevens uit de netwerk communicatie trekt (met pyshark).ThinkPad schreef op woensdag 7 december 2022 @ 10:36:
[...]
Dat is sowieso het geval, anders had @The Flying Dutchman in Wireshark geen waardes kunnen terugherleiden...
Je mag nog wel opletten ook dat ze niet meelezen hier en een firmware update naar je wifi-module pushen en hij de data ineens versleuteld gaat verzenden. Dan gooien ze effectief de deur voor je dicht
The Flying Dutchman
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.
/f/image/kWsbky9jX4F6E8sImpR1Arl6.png?f=fotoalbum_large)
[ 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"]
/f/image/IKJ95lEMkqd3dQTWzb3mC2lL.png?f=fotoalbum_large)
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 |
/f/image/s0NZ8wBM75SRQbfiTHKZZkop.png?f=fotoalbum_large)
[ 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 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
[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: