@
schjjaap Heb je wel een user/pass op MQTT staan? De code gaat uit van wel, maar als je de var leeg laat wordt er ingelogd met lege gebruiker/wachtwoord. Je zult dan de setUsernamePassword call weg moeten halen.
Ik ben gisteren even bezig geweest met die code om het te porten naar een ESP32. Wat me daarbij opviel was dat de communicatie met de warmtepomp anders is dan bij de code van @
WackoH. Er wordt steeds maar 1 telegram gestuurd, niet die 4 telegrams om beurten en ook de baudrate staat op 9600 ipv 666bps.
Ook het versturen is anders:
code:
1
2
3
4
5
6
7
8
| uint8_t telegram[25] = {0};
telegram[0] = 0x19; // Header: controlbox -> warmtepomp
telegram[1] = stand; // Stand 0-7
telegram[2] = 0x00; // Reserve
// Voeg checksum toe
telegram[23] = bereken_checksum(telegram, 23);
telegram[24] = 0x00; // End marker |
WackoH in "Aurea 5 hybrid: interfaces met de buitenunit en thermostaat"
byte data2[] = { 0x19, 0x2, 0x8,
0x1, 0x1, 0x0,
0x99, 0x37 };
Waarbij byte 4 de werkmodus is (uit/aan/koelen) en byte 5 de stand en byte 7+8 bevatten de checksum.
Verder valt me nog iets op:
code:
1
2
3
4
5
6
| float dt_correctie = 0;
if(delta_t < 4.0){
dt_correctie = (delta_t - 5.0) * 3.0; // Negatief
} else if(delta_t > 6.0){
dt_correctie = (delta_t - 5.0) * 2.0; // Positief
} |
dt_correctie wordt later bij de pid output opgeteld. Nou kan het aan mij liggen, maar bij mij is de deltaT 3 graden omdat ik op lage temperatuur met radiatoren stook. dt_correctie wordt dan (3-5)*3 = -6 op de PID regeling.
Wat ik zie bij de originele Aurea regeling is dat de deltaT gewoon oploopt naar 10+ graden als er volle bak vermogen wordt getrokken met een koud systeem (thermostaat vraagt 20, ding gaat vol gas en levert 37 met een retour van 25). Met bovenstaande formule zou er (10-5)*2 = 10 bij de PID regeling opgeteld worden voor nog meer vermogen.
Ik ga vanavond de controllersoftware die ik in de Mega heb zitten overzetten naar de ESP32 (enige aanpassing is de var "index" renamen naar "idx"), de seriele communicatie tussen de Mega en de ESP8266 slopen en dan de Wifi/MQTT communicatie van de ESP8266 integreren in de ESP32 software en draaien op de 2e core.
De originele regeling van de Aurea is gewoon een verschrikking vergeleken met wat ik gewend ben. Ja het is wel snel warm, maar ik heb nu een grafiek met zaagtanden alsof het een CV ketel is.
Vanaf daar maar verder bouwen aan een stukje modulaire software ipv alles in main.cpp. Liefst bouw ik 4 classes en knoop ik dat aanelkaar in de setup() en loop() functie. Voordeel is dat ESP32 controllers meestal per 2 of 3 verkocht worden, ik heb dus nog wat reserve om offline te testen.
Edit: van de Aurea regeling wel 1 ding geleerd: als ik <25 graden vraag gewoon op stand 2 daarheen stoken en dan terug naar stand 1. Nu doe ik hardcoded stand 1. Bij een koud systeem duurt het vervolgens een halfuur voor de heatboosters merken dat de warmtepomp iets doet en de afgifte in huis merkbaar begint.
[
Voor 5% gewijzigd door
_JGC_ op 13-05-2026 16:06
]