PVOutput Youless - 9600Wp OZO+WNW | 38° | Goodwe GW6K-DT | Mitsubishi PUHZ-SW75YAA + ERSD-VM2D | Zonneplan Nexus | Gasloos
[ Voor 7% gewijzigd door RichieB op 09-12-2024 21:36 ]
Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp
De 303 is duidelijk de goedkoopste maar vraagt wat extra hardware om uit te lezen. Als je alles mee hebt geteld is zo’n 403 KNX gek genoeg maar klein beetje duurder. Modbus is verreweg de duurste. Zowel KNX als Modbus heb ik al liggen in huis dus daar kan ik zo op inprikken.
Ik neig nu naar de KNX versie. Krijgt ook meteen voeding via de bus. Zie ik nog iets over het hoofd?
[ Voor 4% gewijzigd door Sethro op 09-12-2024 21:39 ]
Dan snap ik het wat beter inderdaad, als je je SWW niet doet met de WP.RichieB schreef op maandag 9 december 2024 @ 21:36:
@Robindd Omdat ik het onzin vind om in de zomer elke 10 minuten te pollen. Maar ik wil pas langere tijd slapen als ook echt lang geen flow is gemeten. Ik doe SWW met een aparte WP-boiler. Flow meten is inderdaad genoeg, zonder flow heb je geen warmteproductie.
In mijn geval heb ik zo'n beetje minimaal elke 2 dagen een SWW run, dus om daar nu voor te gaan programmeren weer.
Ik heb dacht ik een jaar of 4 gedaan met de batterij toen die nog gedeeltelijk op 10sec stond, en vervolgens op 1 minuut een tijd.
PVOutput Youless - 9600Wp OZO+WNW | 38° | Goodwe GW6K-DT | Mitsubishi PUHZ-SW75YAA + ERSD-VM2D | Zonneplan Nexus | Gasloos
Ik ben op zoek naar een goede kamstrup meter voor mijn warmtepomp installatie. Het is een Daikin altherma 3, dus een lage temperatuur systeem. Sww wordt door de warmtepompboiler gedaan, dus geen behoefte om dat te meten.
Nu zie ik dat de "cooling meter" van 2 graden celcius tot 50 graden Celsius meet. Dat lijkt me eigenlijk prima voldoen, gezien de warmtepomp nooit 50 graden water zou moeten produceren.
Klopt deze gedachtegang? Of heb ik een meter nodig die specifiek ook hitte registreert?
Ik begrijp uit een ander topic dat de meter beslist tussen koude / warmte door de delta T tussen aanvoer en retour.
Maar is deze cooling meter nou echt niet de juiste? Zijn er mensen die er zo een hebben? En zouden die mensen dan misschien hun registers met informatie kunnen posten en/of hun ervaringen kunnen posten?
PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?
/f/image/mxPSLBrm9mp1kaESMrA4mRPi.png?f=fotoalbum_large)
In dit voorbeeld springt de waarde voor de totale energieproductie terug van 32248 kWh naar 32240 kWh. Dat vind ik wel kwalijk: daardoor krijg ik toch een vertekend beeld van de opbrengst van mijn warmtepomp.
Heeft iemand anders ook zoiets gezien in hun data?
Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp
Ja, 2 - 50 °C is een prima range voor een LT warmtepomp.Tanuki schreef op donderdag 26 december 2024 @ 17:01:
[...]
Nu zie ik dat de "cooling meter" van 2 graden celcius tot 50 graden Celsius meet. Dat lijkt me eigenlijk prima voldoen, gezien de warmtepomp nooit 50 graden water zou moeten produceren.
Klopt deze gedachtegang?
Voor een warmtepomp is het handig om een Kamstrup te nemen die zowel warmte (Taanvoer > Tretour) als koeling (Tretour > Taanvoer) bijhoudt. Ook al gebruik je de warmtepomp niet voor koeling, tijdens een defrost wordt even Tretour > Taanvoer en die data mis je als je alleen warmte kan registeren.Of heb ik een meter nodig die specifiek ook hitte registreert?
[...]
Een Kamstrup die alleen koeling registreert is alleen handig voor een airco, niet voor een warmtepomp.
[ Voor 22% gewijzigd door RichieB op 04-01-2025 15:27 ]
Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp
Ik herken dit niet. Ik heb ook wel eens wat problemen met 't uitlezen van de Kamstrup waardoor ook mijn eigen logica om warmte te splitsen naar Heat en DHW en ook Cool/Defrost te registreren niet goed gaan maar de Heat Energy van de Kamstrup heb ik in dat soort periode's gewoon zien doorlopen.RichieB schreef op zaterdag 4 januari 2025 @ 15:17:
Ik lees mijn Kamstrup MultiCal 303 (303-WA02DB-71920) uit via USB-wired libmbus op een RPi. Dat gaat eigenlijk heel goed, maar af en toe (2x per maand ofzo) crasht er iets in de Kamstrup en geeft de mbus een paar minuten geen antwoord. Daar kan ik goed mee leven, maar nu zie ik dat de Kamstrup op die momenten ook ongeveer een uur aan data kwijt is:
[Afbeelding]
In dit voorbeeld springt de waarde voor de totale energieproductie terug van 32248 kWh naar 32240 kWh. Dat vind ik wel kwalijk: daardoor krijg ik toch een vertekend beeld van de opbrengst van mijn warmtepomp.![]()
Heeft iemand anders ook zoiets gezien in hun data?
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+MT GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Dank voor deze waardevolle post!RichieB schreef op zaterdag 4 januari 2025 @ 15:24:
[...]
Ja, 2 - 50 °C is een prima range voor een LT warmtepomp.
[...]
Voor een warmtepomp is het handig om een Kamstrup te nemen die zowel warmte (Taanvoer > Tretour) als koeling (Tretour > Taanvoer) bijhoudt. Ook al gebruik je de warmtepomp niet voor koeling, tijdens een defrost wordt even Tretour > Taanvoer en die data mis je als je alleen warmte kan registeren.
Een Kamstrup die alleen koeling registreert is alleen handig voor een airco, niet voor een warmtepomp.
Ik hoor van verschillende mensen dat er meters zijn die alleen "cooling meter" of "heat meter" erop hebben staan, maar stiekem toch beide meten. Via mbus is dan toch het andere register beschikbaar. Kwestie van dat eens checken dus..
Is het gebruik van een kamstrup meter bij een airco überhaupt een ding? Dat heb ik volgens mij nog nooit gezien.
PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| <DataRecord id="0">
<Function>Instantaneous value</Function>
<StorageNumber>0</StorageNumber>
<Unit>Energy (kWh)</Unit>
<Value>32311</Value>
<Timestamp>2025-01-04T22:14:11Z</Timestamp>
</DataRecord>
<DataRecord id="14">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>Energy (kWh)</Unit>
<Value>32102</Value>
<Timestamp>2025-01-04T22:14:11Z</Timestamp>
</DataRecord> |
Dus ik heb geen backward kWh / consumption kWh zoals bij een heat + cool meter.
Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp
Ik heb zelf in node-red wat geprutst om, bij negatief vermogen (wat wel wordt weergegeven) de hoeveelheid energie uit te rekenen en in node-red op te tellen. Minder nauwkeuring en robuust dan dat de Kamstrum dat doet maar 't geeft een goede indicatie.RichieB schreef op zaterdag 4 januari 2025 @ 23:42:
@Tanuki Ik heb een Kamstrup MultiCal 303-WA02DB-71920 waarbij de W staat voor "Warming" (C is Cooling en T voor beiden). Met libmbus zie ik qua energy alleen:
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14<DataRecord id="0"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit>Energy (kWh)</Unit> <Value>32311</Value> <Timestamp>2025-01-04T22:14:11Z</Timestamp> </DataRecord> <DataRecord id="14"> <Function>Instantaneous value</Function> <StorageNumber>1</StorageNumber> <Unit>Energy (kWh)</Unit> <Value>32102</Value> <Timestamp>2025-01-04T22:14:11Z</Timestamp> </DataRecord>
Dus ik heb geen backward kWh / consumption kWh zoals bij een heat + cool meter.
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+MT GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Op welk tijds interval bereken je dat dan? Want dat is wel lastig en onnauwkeurig idd..blb4 schreef op zondag 5 januari 2025 @ 02:55:
[...]
Ik heb zelf in node-red wat geprutst om, bij negatief vermogen (wat wel wordt weergegeven) de hoeveelheid energie uit te rekenen en in node-red op te tellen. Minder nauwkeuring en robuust dan dat de Kamstrum dat doet maar 't geeft een goede indicatie.
Als iemand nog iets moet aanschaffen koop je beter gewoon een unit geschikt voor beide.
PVOutput Youless - 9600Wp OZO+WNW | 38° | Goodwe GW6K-DT | Mitsubishi PUHZ-SW75YAA + ERSD-VM2D | Zonneplan Nexus | Gasloos
Dat werkte bij een 302, maar schijnt bij een 303 niet meer te kunnen.Tanuki schreef op zaterdag 4 januari 2025 @ 23:12:
Ik hoor van verschillende mensen dat er meters zijn die alleen "cooling meter" of "heat meter" erop hebben staan, maar stiekem toch beide meten. Via mbus is dan toch het andere register beschikbaar. Kwestie van dat eens checken dus..
@RichieB was in de war. Bij een airco is er natuurlijk helemaal geen waterleiding om de Kamstrup in te plaatsen. Dat maakt het meten van het afgegeven vermogen (en het berekenen van de echte COP) bij een airco ook zo lastig.Is het gebruik van een kamstrup meter bij een airco überhaupt een ding? Dat heb ik volgens mij nog nooit gezien.
Het enige wat je bij een airco goed kunt meten is het opgenomen (elektrische) vermogen.
WP: ME PUHZ-SW75YAA + ERSD-VM2D + EV-WP-TWS-1W 300; AC: ME MXZ-2F42VF + 2x MSZ-LN25VGV; PV: 14.08 kWp O/W + SMA STP 8.0; Vent: Zehnder Q600 ERV + Ubbink AirExcellent.
Klopt, beter 1 die beide registreert maar die zijn soms lastig verkrijgbaar & een stuk duurder geloof ik.Robindd schreef op zondag 5 januari 2025 @ 08:21:
[...]
Op welk tijds interval bereken je dat dan? Want dat is wel lastig en onnauwkeurig idd..
Als iemand nog iets moet aanschaffen koop je beter gewoon een unit geschikt voor beide.
Ik gebruik nu wat Logic die de kamstrup vaker uitleest tijdens defrost om zo de nauwkeurigheid wat te verhogen.
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+MT GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Goed punt! Waar zal zo'n Cooling-only Kamstrup dan voor gebruikt worden? L/W warmtepomp die alleen koeling doet lijkt me ook raar..Andrehj schreef op zondag 5 januari 2025 @ 09:20:
[...]
@RichieB was in de war. Bij een airco is er natuurlijk helemaal geen waterleiding om de Kamstrup in te plaatsen.
[...]
[ Voor 8% gewijzigd door RichieB op 05-01-2025 14:27 ]
Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp
Geen idee. Wellicht voor industriële koelinstallaties?RichieB schreef op zondag 5 januari 2025 @ 14:26:
Goed punt! Waar zal zo'n Cooling-only Kamstrup dan voor gebruikt worden? L/W warmtepomp die alleen koeling doet lijkt me ook raar..
Overigens kun je deze ook wel voor een WP warmtemeting gebruiken: Gewoon via de instellingen de meter vertellen dat ie in de aanvoer zit ipv in de retour, en dan dus de koude-registers gebruiken om de warmteopwekking te zien.
Enige beperking is dan die max 50°C water. De meter mag dan dus niet in het SWW-circuit zitten, maar enkel in het CV-circuit.
[ Voor 5% gewijzigd door Andrehj op 05-01-2025 14:37 ]
WP: ME PUHZ-SW75YAA + ERSD-VM2D + EV-WP-TWS-1W 300; AC: ME MXZ-2F42VF + 2x MSZ-LN25VGV; PV: 14.08 kWp O/W + SMA STP 8.0; Vent: Zehnder Q600 ERV + Ubbink AirExcellent.
Hardware matig heb ik een HomeAssistant Yellow en MBUS naar USB master module vanuit China.
Alleen merk ik nu dat ik op willekeurige momenten de volgende error krijg:
Het herstarten van node-red of het wijzigen van de serial port op de mbus-client node (kopieren van dezelfde usb-port fixed het alerror: Failed to init slaves
Dit zijn mijn instellingen van de mbus-client node:
:strip_exif()/f/image/Mh0ynczjlllz8HZPx2fXpBOg.png?f=user_large)
Ik verwijs hier al naar het USB apparaat dmv het ID en niet naar ttyUSB, snap even niet hoe en waarom het er op willekeurige momenten uitklapt. Iemand hier ervaring mee?
WP: PUHZ-SW75 YAA & ERST20D-VM2D; PV: 10.8 kWp O/W + SMA STP 8.0; Vent: Zehnder Q450 ERV
Houdt deze de kamstrup wakker? Welke command verstuur je anders om de 302 uit de slaapstand te halen. Ik zit nu in de situatie dat ik de meter wel kan uitlezen maar dat ik eerst op de fysieke knop moet drukken.dunklefaser schreef op woensdag 21 juni 2023 @ 07:48:
[...]
Voor zover ik weet is de "IR Schreib/Lesekopf USB" volledig compatibel
met dezelfde standaard die ook door Kamstrup wordt gebruikt.
En de naam zegt het al: lezen en schrijven.
Funktion: IR Sendediode (Tx)
IR Phototransistor (Rx)
IC: FTDI FT232R / FT230X
USB-to-UART Serial Converter
Typ: USB 2.0
Baudraten: 300 Baud bis 28800 Baud
Normen: DIN EN 62056-21
IEC-62056-21
Protokolle: SML
ASCII Protokoll nach IEC-62056-21
Kabellänge: 3m
Maße: LxBxH (mm): 32x32x19
e-Golf 2018 | Climarad Sensa V2X | 3200 Wp WZW I WP: ME Ecodan SUZ-SWM60VA2 + ERST20D-VM2E
Ik gebruikte de IR-Lese/Schreibkopf heel even om te kijken welke konfiguratieparameters je additioneel kon lesen & vooral schrijven. Of je de Kamstrups permanent kan laten reageren op de IR-zenddiode weet ik niet.Djvdb schreef op vrijdag 31 januari 2025 @ 13:57:
[...]
Houdt deze de kamstrup wakker? Welke command verstuur je anders om de 302 uit de slaapstand te halen. Ik zit nu in de situatie dat ik de meter wel kan uitlezen maar dat ik eerst op de fysieke knop moet drukken.
Voor het "normale" gebruik d.w.z. het routinematige uitlezen gebruik ik de bedrade m-bus met een busmaster adapter. Hiermee lees ik dan ook twee warmte/koudemeters tegelijkertijd uit.
Dit is volgens mij ook de beste en makkelijkste manier.
YMMV
Nobody is perfeckt - But who wants to be Nobody? - Vrijwillig Energycoach Fiat LUXus! - Some Insights
Helaas heeft de mijne geen m-busdunklefaser schreef op vrijdag 31 januari 2025 @ 14:10:
[...]
Ik gebruikte de IR-Lese/Schreibkopf heel even om te kijken welke konfiguratieparameters je additioneel kon lesen & vooral schrijven. Of je de Kamstrups permanent kan laten reageren op de IR-zenddiode weet ik niet.
Voor het "normale" gebruik d.w.z. het routinematige uitlezen gebruik ik de bedrade m-bus met een busmaster adapter. Hiermee lees ik dan ook twee warmte/koudemeters tegelijkertijd uit.
Dit is volgens mij ook de beste en makkelijkste manier.
YMMV
e-Golf 2018 | Climarad Sensa V2X | 3200 Wp WZW I WP: ME Ecodan SUZ-SWM60VA2 + ERST20D-VM2E
1
| 303T10319 |
op staat.
Over de "Static data written on the front of the meter" zegt de documentatie van Kamstrup dan:
303 = Kamstrup 303
T = heat/cooling meter
10 = 0.6m3
3 = "Heat/cooling meter (MID module B+D & TS27.02+DK268)" 0hc = OFF (Wat betekent dit? Heb ik dit nodig?)
19 = Country code
Maar dan staat er nog "Dynamic data shown in the Display", echter, dat kan ik dan op de product foto's niet zien? Ik zie in ieder geval niet op de foto's waar die dynamic data dan zou staan.
De laatste 2 getallen daarvan zouden dan "20" (Mbus) of "30" (Wireless Mbus) moeten zijn.
Kan ik er dan vanuit gaan dat dit altijd 20 of 30 is? M.a.w., zit er op de 303 altijd een communicatie module?
En weet iemand waar ik die dynamic data op een product foto kan zien, zodat ik kan verifieren dat ik het juiste koop?
Voor mij maakt het overigens niet uit of het nu wireless mbus, mbus of modbus of wat dan ook is. Als ik het maar kan uitlezen op een manier.
[ Voor 6% gewijzigd door Tanuki op 06-05-2025 09:59 ]
PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?
I.v.m. batterij en ervaring op Tweakers zou ik nu altijd wired mbus kiezen. Niet wireless.Tanuki schreef op dinsdag 6 mei 2025 @ 09:57:
Ook ik ben in de markt voor een Kamstrup meter.Hoeft niet per se de 302 te zijn. En uitlezen komt wel goed. Waar ik mee struggle is welke ik nou precies moet nemen: Ik heb bijvoorbeeld een meter gevonden die een cooling & heating meter is, waar
code:
1 303T10319
op staat.
Over de "Static data written on the front of the meter" zegt de documentatie van Kamstrup dan:
303 = Kamstrup 303
T = heat/cooling meter
10 = 0.6m3
3 = "Heat/cooling meter (MID module B+D & TS27.02+DK268)" 0hc = OFF (Wat betekent dit? Heb ik dit nodig?)
19 = Country code
Maar dan staat er nog "Dynamic data shown in the Display", echter, dat kan ik dan op de product foto's niet zien? Ik zie in ieder geval niet op de foto's waar die dynamic data dan zou staan.
De laatste 2 getallen daarvan zouden dan "20" (Mbus) of "30" (Wireless Mbus) moeten zijn.
Kan ik er dan vanuit gaan dat dit altijd 20 of 30 is? M.a.w., zit er op de 303 altijd een communicatie module?
En weet iemand waar ik die dynamic data op een product foto kan zien, zodat ik kan verifieren dat ik het juiste koop?
Voor mij maakt het overigens niet uit of het nu wireless mbus, mbus of modbus of wat dan ook is. Als ik het maar kan uitlezen op een manier.
Verder zou ik niet 100% vertrouwen op de foto en de aanbieder contacteren (mail) met jouw wensen, zodat je zeker weet dat je de goede krijgt.
WP: Mitsubishi Electric SUZ-SWM80VA2 + ERSD-VM2D. PV 3330 Wp. Huis 1931, gasloos sinds jan '24.
Ja, dat is prima... Maar ik kan dus op dit moment zelf ook niet aanwijzen waar de teksten / informatie staan waar ik zelf uit kan halen of ik de juiste krijg of niet. Vandaar mijn vraag.SebastiaanPs schreef op dinsdag 6 mei 2025 @ 10:21:
[...]
I.v.m. batterij en ervaring op Tweakers zou ik nu altijd wired mbus kiezen. Niet wireless.
Verder zou ik niet 100% vertrouwen op de foto en de aanbieder contacteren (mail) met jouw wensen, zodat je zeker weet dat je de goede krijgt.
PV: Growatt MOD5000TL3-XH + 5720wp, WPB: Atlantic Explorer v4 270LC, L/L: MHI SCM 125ZM-S + SRK 50ZS-W + 2x SRK 25ZS-W + SRK 20ZS-W Modbus kWh meter nodig?
Nu wil mijn Mbus omzetten naar HA met NodeRed maar krijg in de log van NodeRed de volgende melding:
mbus_serial_connect: failed to open tty.
mbus_serial_connect: failed to open tty.
mbus_serial_connect: failed to open tty.
Zelfs als de node-red flow disabled is.
Ook kan ik met de Serial IN node kan ik seriele poort selecteren.
HA draait op een Synology NAS als virtuele machine en de USB-MBUS converter is aangeloten op:
ttyUSB3
/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AK069ZFT-if00-port0
Het lijkt me een rechten issue maar weet niet wat.
18.090 Wp | 60Heatpipes | Auer Edel eau 270ltr | Panasonic J 9kW | Mitsubishi HI 5kW | 3 x Fujitsu General 2,5kW
- Maar 1 proces kan de tty open hebben. Je moet dus eerst het "oude php script" stoppen voordat je verder gaat.
- Als NodeRed ook in de VM (docker?) draait moet je de tty beschikbaar maken in de VM.
- Onder welke user/groep draait NodeRed? Heeft die user/groep leesrechten op de tty?
Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp
Thanks voor je reactie!RichieB schreef op zaterdag 4 oktober 2025 @ 16:00:
@Nickkie55 Er kunnen verschillende oorzaken zijn waarom dit nu niet werkt:
- Maar 1 proces kan de tty open hebben. Je moet dus eerst het "oude php script" stoppen voordat je verder gaat.
- Als NodeRed ook in de VM (docker?) draait moet je de tty beschikbaar maken in de VM.
- Onder welke user/groep draait NodeRed? Heeft die user/groep leesrechten op de tty?
- oude script loopt op een PI. De USB kabel wordt nu fysiek aangesloten op de synology NAS.
- Ik heb een VM laag met Home Assistant en NodeRed draait in Home Assistant.
- User heb ik werkelijk geen idee. Zou je me kunnen zeggen waar ik dit kan vinden?
Dit zijn mijn instellingen van NodeRed:
theme: default
http_node:
username: ""
password: ""
http_static:
username: ""
password: ""
ssl: false
certfile: fullchain.pem
keyfile: privkey.pem
system_packages:
- python3
- musl
- make
- g++
- linux-headers
npm_packages: []
init_commands: []
credential_secret: "geheimwachtwoord"
Edit:
Ik zie de USB wel in Home Assistant. Onde de Hardware instellingen.
18.090 Wp | 60Heatpipes | Auer Edel eau 270ltr | Panasonic J 9kW | Mitsubishi HI 5kW | 3 x Fujitsu General 2,5kW
Ik heb dit in nodered
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| theme: default http_node: username: redacted password: redacted http_static: username: redacted password: redacted ssl: false certfile: fullchain.pem keyfile: privkey.pem system_packages: - python3 - musl - make - g++ - linux-headers npm_packages: - node-red-contrib-m-bus init_commands: [] credential_secret: redacted |
neem die npm_packages eens over?
[ Voor 3% gewijzigd door AUijtdehaag op 04-10-2025 18:58 ]
Gedaan helaas geen resultaatAUijtdehaag schreef op zaterdag 4 oktober 2025 @ 18:56:
@Nickkie55
Ik heb dit in nodered
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 theme: default http_node: username: redacted password: redacted http_static: username: redacted password: redacted ssl: false certfile: fullchain.pem keyfile: privkey.pem system_packages: - python3 - musl - make - g++ - linux-headers npm_packages: - node-red-contrib-m-bus init_commands: [] credential_secret: redacted
neem die npm_packages eens over?
18.090 Wp | 60Heatpipes | Auer Edel eau 270ltr | Panasonic J 9kW | Mitsubishi HI 5kW | 3 x Fujitsu General 2,5kW
Iemand deze ook buiten Engeland besteld (webshop dichtbij )? Of is er een andere oplossing om de kamstrub op 230v te zetten?
Ik wist niet dat die modules bestonden. Overigens lees ik mijn Kamstrup al bijna 5 jaar elke minuut uit, en dat gaat tot nu toe goed. Ben benieuwd hoe lang de batterijen dit vol houden.hallorichard schreef op donderdag 25 december 2025 @ 11:41:
Ik heb 2x kamstrup 403 hangen om de cv en elga ace warmtepomp te monitoren. Deze zitten nu nog op een d-cell batterij. Ik wil ze graag op 230v zetten om ze zo vaker uit te lezen. Op internet zie ik deze module daarvoor: https://ableinstruments.c...mstrup-230v-power-supply/
Iemand deze ook buiten Engeland besteld (webshop dichtbij )? Of is er een andere oplossing om de kamstrub op 230v te zetten?
WP: ME PUHZ-SW75YAA + ERSD-VM2D + EV-WP-TWS-1W 300; AC: ME MXZ-2F42VF + 2x MSZ-LN25VGV; PV: 14.08 kWp O/W + SMA STP 8.0; Vent: Zehnder Q600 ERV + Ubbink AirExcellent.
Ik wist dat ook niet. Gisteren ff gezocht, is vanaf Multical 403 zo te zien, niet voor de 30x serie. Ik heb een batterij voor 16 jaar, lees 'm tijdens WP bedrijf 1 x per minuut uit, als de WP uit staat eens in de 155 minuten en tijdens defrost elke 15 seconden. Dit omdat mijn Kamstrup wel negatief vermogen registreert maar geen negatief vermogen. Middels Node-Red flow bereken ik het negatief vermogen tijdens Defrost en gewoon Cool bedrijf:Andrehj schreef op vrijdag 26 december 2025 @ 10:40:
[...]
Ik wist niet dat die modules bestonden. Overigens lees ik mijn Kamstrup al bijna 5 jaar elke minuut uit, en dat gaat tot nu toe goed. Ben benieuwd hoe lang de batterijen dit vol houden.
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
| // formats output for MQTT (output 1) and for Influxdb (output 2)
var CoolEnergy = global.get('CoolEnergy',"file");
if (CoolEnergy === undefined) { CoolEnergy = 0 }
var DefrostEnergy = global.get('DefrostEnergy',"file");
if (DefrostEnergy === undefined) { DefrostEnergy = 0 }
var DHWEnergy = global.get('DHWEnergy',"file");
if (DHWEnergy === undefined) { DHWEnergy = 0 }
var Defrost = 0;
Defrost = global.get('Defrost',"file");
if (Defrost === undefined) { Defrost = 0 }
var Threewayvalve = 0;
Threewayvalve = global.get('Threewayvalve',"file");
if (Threewayvalve === undefined) { Threewayvalve = 0 }
var TimeCurrent = new Date().getTime();
var TimeLast = global.get('TimeLast',"file");
if (TimeLast === undefined) {TimeLast = TimeCurrent}
var TimeDelta = TimeCurrent - TimeLast;
global.set('TimeLast', TimeCurrent, "file");
var TotalHeatEnergy = msg.payload.DataRecord[0].Value;
// var TotalFlow = msg.payload.DataRecord[1].Value;
// var TotalHours = msg.payload.DataRecord[4].Value;
// var TotalErrorHours = msg.payload.DataRecord[5].Value;
var FlowTemperature = msg.payload.DataRecord[6].Value /100;
var ReturnTemperature = msg.payload.DataRecord[7].Value /100;
var DiffTemperature = msg.payload.DataRecord[8].Value /100;
var PowerValue = msg.payload.DataRecord[9].Value *100;
var PowerMaxValue = msg.payload.DataRecord[10].Value * 100;
var FlowValue = msg.payload.DataRecord[11].Value;
var FlowMaxValue = msg.payload.DataRecord[12].Value;
var FlowValuelm = Number((FlowValue/60).toFixed(2));
// global.set('CoolEnergy', 15115.11095153208, "file");
// global.set('DefrostEnergy', 47044.29054383436, "file");
// global.set('DHWEnergy', 110037.05540274233, "file");
// calculate CoolEnergy as not delivered by Kamstrup
if (PowerValue < 0 && Defrost == 0) {
CoolEnergy = CoolEnergy + PowerValue * -TimeDelta/3600000;
global.set('CoolEnergy',CoolEnergy, "file");
}
CoolEnergy = Number((CoolEnergy / 1000).toFixed(2));
// calculate DefrostEnergy as not delivered by Kamstrup
if (PowerValue < 0 && Defrost == 1 && Threewayvalve == 0) {
DefrostEnergy = DefrostEnergy + PowerValue * -TimeDelta/3600000;
global.set('DefrostEnergy',DefrostEnergy, "file");
}
DefrostEnergy = Number((DefrostEnergy / 1000).toFixed(2));
// calculate DHWEnergy as not delivered by Kamstrup. Defrost Energy during DHW will be subtracted
if (Threewayvalve == 1) {
DHWEnergy = DHWEnergy + PowerValue * TimeDelta/3600000;
global.set('DHWEnergy', DHWEnergy, "file");
}
DHWEnergy = Number((DHWEnergy / 1000).toFixed(2));
var TotalEnergy = TotalHeatEnergy + CoolEnergy + DefrostEnergy;
var HeatingEnergy = TotalHeatEnergy - DefrostEnergy - DHWEnergy;
// calculate Heat, DHW, Cool & ABS Power values
var HeatPower = 0;
var DHWPower = 0;
var CoolPower = 0;
var AbsPower = Math.abs(PowerValue);
if (PowerValue >= 0) {
if (Threewayvalve == 0) {
HeatPower = PowerValue;
}
else {
DHWPower = PowerValue;
}
}
else {
CoolPower = -PowerValue;
}
let msg1 = {
payload: []
};
let msg2 = {
payload: []
};
msg1.payload=
{
kamstrup: {
totalheatenergy : TotalHeatEnergy,
flowtemperature : FlowTemperature,
returntemperature : ReturnTemperature,
difftemperature : DiffTemperature,
powervalue : PowerValue,
powermaxvalue : PowerMaxValue,
flowvalue : FlowValue,
flowvaluelm : FlowValuelm,
flowmaxvalue : FlowMaxValue,
coolenergy : CoolEnergy,
totalenergy : TotalEnergy,
heatpower : HeatPower,
coolpower : CoolPower,
dhwpower : DHWPower,
abspower : AbsPower,
heatingenergy : HeatingEnergy,
defrostenergy : DefrostEnergy,
dhwEnergy : DHWEnergy,
},
}
msg2.payload=
[
{
"TotalHeatEnergy" : TotalHeatEnergy,
"FlowTemperature" : FlowTemperature,
"ReturnTemperature" : ReturnTemperature,
"DiffTemperature" : DiffTemperature,
"PowerValue" : PowerValue,
"PowerMaxValue" : PowerMaxValue,
"FlowValue" : FlowValue,
"FlowValuelm" : FlowValuelm,
"FlowMaxValuelm" : FlowMaxValue,
"TotalCoolEnergy" : CoolEnergy,
"TotalEnergy" : TotalEnergy,
"HeatPower" : HeatPower,
"CoolPower" : CoolPower,
"DHWPower" : DHWPower,
"absPower" : AbsPower,
"HeatingEnergy" : HeatingEnergy,
"DefrostEnergy" : DefrostEnergy,
"DHWEnergy" : DHWEnergy,
},
{
"identity1": "Kamstrup"
}
]
let msg3 = {};
msg3.payload = TimeDelta;
return [msg1, msg2, msg3]; |
[ Voor 83% gewijzigd door blb4 op 26-12-2025 13:19 . Reden: correctie uitlezen en stukje node-red flow toegevoegd voor berekening energie koelen en Defrost ]
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+MT GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Dat laatste is wel een goeie, het is veel logischer om deze enkel uit te lezen als de WP ook daadwerkelijk produceert. En daarbuiten misschien elke 10 minuten.blb4 schreef op vrijdag 26 december 2025 @ 11:53:
Ik wist dat ook niet. Gisteren ff gezocht, is vanaf Multical 403 zo te zien, niet voor de 30x serie. Ik heb een batterij voor 16 jaar, lees 'm tijdens WP bedrijf 1 x per minuut uit, als de WP uit staat eens in de 5 minuten.
Even rekenen:
Nu lees ik de WP 365 dagen * 24 h/dag * 60 min/h = 525.600 maal per jaar uit.
Een jaar heeft 365*24 = 8760 uur.
De WP draait hier 2000 uur per jaar (volgens zijn urenteller).
Tijdens draaien zou ik die dus 2000*60 = 120.000 maal uitlezen.
Tijdens stilstand (elke 10 minuten) 6760 * 10 = 67.600 maal.
In totaal 187.600 maal per jaar.
Door deze tactiek zou de batterij dus ca 3x zo lang mee gaan.
Tijd om dit in het script te verwerken dus!
Dankjewel voor de hint
WP: ME PUHZ-SW75YAA + ERSD-VM2D + EV-WP-TWS-1W 300; AC: ME MXZ-2F42VF + 2x MSZ-LN25VGV; PV: 14.08 kWp O/W + SMA STP 8.0; Vent: Zehnder Q600 ERV + Ubbink AirExcellent.
Welke gebruik je? Eigenlijk jammer dat ze niet via IP kunnen lopen. JSON via MQTT zou wel handig zijndunklefaser schreef op vrijdag 31 januari 2025 @ 14:10:
[...]
Voor het "normale" gebruik d.w.z. het routinematige uitlezen gebruik ik de bedrade m-bus met een busmaster adapter. Hiermee lees ik dan ook twee warmte/koudemeters tegelijkertijd uit.
Dit is volgens mij ook de beste en makkelijkste manier.
YMMV
Sommige kan je via een netadapter van stroom voorzien.
Ik weet niet of je de adapter nog kan krijgen- mijn is uit 2018 nog met de eerste batterij.
De adapter (Ali?) staat trouwens in het begin van dit topic genoemd.
Ik zie net dat hij blijkbaar nog leverbaar is.
[ Voor 15% gewijzigd door dunklefaser op 07-01-2026 16:11 ]
Nobody is perfeckt - But who wants to be Nobody? - Vrijwillig Energycoach Fiat LUXus! - Some Insights
Dit kwam ik tegen en heb dat geïmplementeerd:
https://the78mole.de/taking-your-m-bus-online-with-mqtt/
Deze komt nu direct zichtbaar in Home Assitant MQTT Explorer:
/f/image/bgZILAIjaxhtoZwvHwTXbUDA.png?f=fotoalbum_large)
Leek me wel een handige toevoeging voor dit topic.
Nee. Met een script wat ergens in het begin van dit topic staat. Ondertussen wel zwaar verbouwd trouwens, maar de basis komt daar vandaan.buiter schreef op woensdag 7 januari 2026 @ 17:45:
Deze topic al heel lang als bookmark staan maar pas onlangs tijd gehad om mbus eens aan de praat te krijgen. Roept iedereen mbus aan met NodeRed?
WP: ME PUHZ-SW75YAA + ERSD-VM2D + EV-WP-TWS-1W 300; AC: ME MXZ-2F42VF + 2x MSZ-LN25VGV; PV: 14.08 kWp O/W + SMA STP 8.0; Vent: Zehnder Q600 ERV + Ubbink AirExcellent.
En die is in de beerput van PostNL blijven steken… dus die gaat morgen in de claim bak van Ali… en dat is dus wel de reden dat ik Choise wel fijn vind.
Het identiek ogende model is nu niet meer te vinden met choise, maar modellen met 2 sets aansluitingen of zelfs 3 sets zonder behuizing (nog veel voordeliger) …
Heeft iemand ervaring met alternatieven? Ik heb de indruk dat het niet veel uit zou moeten maken?
PV Output - Obdam; SolarEdge SE5K 'Voor korte strings'; 12x350Wp Oost-West 13°; 8x415Wp Zuid 10°; Totaal 7520Wp.
Ik maak gebruik van deze MBUS naar USB-module die ik aangesloten heb op mijn HP GEN8 Microserver.
Op deze kleine server heb ik PROXMOX geïnstalleerd en Home Assistant draait hierop als een virtuele machine.
Omdat er geen goede HA integratie bij mij bekend is die deze MBUS module ondersteunt heb ik besloten om een alternatief te bedenken.
Nu draait er in een virtuele container (CT) een Linux app die deze MBUS wel correct uitleest en de data doorstuurt naar mijn MQTT broker die weer in een andere container draait. Zo komen iedere minuut mijn flow en delta T binnen die ik weer gebruik om de COP van mijn warmtepomp te berekenen.
Mocht er iemand geïnteresseerd zijn dan kan ik hier meer over vertellen.
[ Voor 3% gewijzigd door apelders op 19-01-2026 22:38 ]
Mooi dat je het zo werkend hebt gekregen! Maar waarom niet via node-red add-on binnen HA?apelders schreef op maandag 19 januari 2026 @ 22:34:
Mijn Kamstrup 302 communiceert tegenwoordig zonder de NODE-Red tussenstap met mijn Home Assistant.
Ik maak gebruik van deze MBUS naar USB-module die ik aangesloten heb op mijn HP GEN8 Microserver.
Op deze kleine server heb ik PROXMOX geïnstalleerd en Home Assistant draait hierop als een virtuele machine.
Omdat er geen goede HA integratie bij mij bekend is die deze MBUS module ondersteunt heb ik besloten om een alternatief te bedenken.
Nu draait er in een virtuele container (CT) een Linux app die deze MBUS wel correct uitleest en de data doorstuurt naar mijn MQTT broker die weer in een andere container draait. Zo komen iedere minuut mijn flow en delta T binnen die ik weer gebruik om de COP van mijn warmtepomp te berekenen.
Mocht er iemand geïnteresseerd zijn dan kan ik hier meer over vertellen.
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+MT GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Ik had m eerst aan mijn RPi hangen met daarop Node-RED voor mijn automations.
Daarna ben ik voor al mijn automations overgegaan van Node-RED naar Home Assistant waardoor ik hier niet aan gedacht heb. Ik zal die optie met die add-on ook maar eens gaan proberen.
Ik heb dus deze:Ronald schreef op donderdag 15 januari 2026 @ 20:58:
Heeft iemand ervaring met alternatieven? Ik heb de indruk dat het niet veel uit zou moeten maken?
https://a.aliexpress.com/_EHwojQU
Daar heb ik nu de Kamstrup aan hangen, en kan hem uitlezen
Ik was wel te lui om handmatig de MQTT sensoren aan te maken om wat te zien te krijgen met de Node Red flow van @AUijtdehaag... dus ik heb er een gemaakt die heel braaf config topics naar MQTT stuurt.
Mijn Kamstrup is een oprechte warmte-koude 303, dus heb er ook wat meer waardes uit gepeuterd....
Dit is mijn flow...
1
| [{"id":"35b24b20.e53a34","type":"tab","label":"Kamstrup Multical 303","disabled":false,"info":""},{"id":"22f0e97d.331106","type":"debug","z":"35b24b20.e53a34","d":true,"name":"Kamstrup M-Bus node","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":360,"y":120,"wires":[]},{"id":"bde8a2d2.64514","type":"inject","z":"35b24b20.e53a34","d":true,"name":"Get Devices","props":[{"p":"topic","vt":"str"},{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":"1","topic":"getDevices","payload":"","payloadType":"str","x":830,"y":260,"wires":[["d3b3374a.93ade8"]]},{"id":"d3b3374a.93ade8","type":"mbus-controller","z":"35b24b20.e53a34","name":"M-Bus Controller","client":"b8af9f24.8bce","x":1090,"y":340,"wires":[["931945d258af672c","0816a7b2cc686b38"]]},{"id":"f68c9d49408e6522","type":"function","z":"35b24b20.e53a34","name":"Extract & Format","func":"var TimeStamp = new Date(msg.payload.DataRecord[0].Timestamp).toISOString();\n\nvar HeatEnergy = msg.payload.DataRecord[0].Value;\nvar CoolEnergy = msg.payload.DataRecord[1].Value;\nvar Volume = msg.payload.DataRecord[2].Value / 100;\n\nvar OnTime = msg.payload.DataRecord[5].Value;\nvar OnTimeDuringErrorState = msg.payload.DataRecord[6].Value;\n\nvar FlowTemperature = msg.payload.DataRecord[7].Value / 100;\nvar ReturnTemperature = msg.payload.DataRecord[8].Value / 100;\nvar TemperatureDifference = msg.payload.DataRecord[9].Value / 100;\n\nvar Power = msg.payload.DataRecord[10].Value / 100;\nvar MaximumPower = msg.payload.DataRecord[11].Value / 100;\n\nvar VolumeFlow = msg.payload.DataRecord[12].Value / 100;\nvar MaximumVolumeFlow = msg.payload.DataRecord[13].Value / 100;\n\nlet payload =\n{\n 'TimeStamp': TimeStamp,\n 'HeatEnergy': HeatEnergy,\n 'CoolEnergy': CoolEnergy,\n 'Volume': Volume,\n 'OnTime': OnTime,\n 'OnTimeDuringErrorState': OnTimeDuringErrorState,\n 'FlowTemperature': FlowTemperature,\n 'ReturnTemperature': ReturnTemperature,\n 'TemperatureDifference': TemperatureDifference,\n 'Power': Power,\n 'MaximumPower': MaximumPower,\n 'VolumeFlow': VolumeFlow,\n 'MaximumVolumeFlow': MaximumVolumeFlow\n}\n\nreturn { 'payload': payload };\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1530,"y":340,"wires":[["8333b952ce743b62"]]},{"id":"931945d258af672c","type":"debug","z":"35b24b20.e53a34","name":"M-Bus telegram","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1340,"y":400,"wires":[]},{"id":"a969ece1.106bd","type":"mbus-out","z":"35b24b20.e53a34","d":true,"name":"Kamstrup","client":"b8af9f24.8bce","x":120,"y":120,"wires":[["22f0e97d.331106"]]},{"id":"e9f56462c39f4df5","type":"mqtt out","z":"35b24b20.e53a34","name":"","topic":"","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"73d4d5f740a87774","x":2010,"y":120,"wires":[]},{"id":"8333b952ce743b62","type":"function","z":"35b24b20.e53a34","name":"Publish state topic","func":"// Te publiceren device\nconst device = {\n identifiers: [flow.get(\"device\").identifier],\n manufacturer: flow.get(\"device\").manufacturer,\n model: flow.get(\"device\").model,\n name: flow.get(\"device\").name\n};\n\n// Basisfunctie om config en state te publiceren\nfunction publishSensor(mqtt, id, name, unit, device_class, state_class, entity_category, value) {\n const unique_id = device.identifiers[0] + \"_\" + id;\n const stateTopic = `homeassistant/sensor/${unique_id}/state`;\n\n // Publiceer actuele waarde\n mqtt.send({ topic: stateTopic, payload: String(value) });\n}\n\n// Haal waarden uit msg.payload\nconst p = msg.payload;\n\nconst sensors = [\n { id: \"timestamp\", value: p.TimeStamp },\n\n { id: \"heat_energy\", value: p.HeatEnergy },\n { id: \"cool_energy\", value: p.CoolEnergy },\n { id: \"volume\", value: p.Volume },\n\n { id: \"on_time\", value: p.OnTime },\n { id: \"on_time_during_error_state\", value: p.OnTimeDuringErrorState },\n\n { id: \"flow_temperature\", value: p.FlowTemperature },\n { id: \"return_temperature\", value: p.ReturnTemperature },\n { id: \"temperature_difference\", value: p.TemperatureDifference },\n\n { id: \"power\", value: p.Power },\n { id: \"maximum_power\", value: p.MaximumPower },\n\n { id: \"volume_flow\", value: p.VolumeFlow },\n { id: \"maximum_volume_flow\", value: p.MaximumVolumeFlow }\n];\n\n\n// Stuur alles via een MQTT out node\nsensors.forEach(sensor => publishSensor(node, sensor.id, sensor.name, sensor.unit, sensor.device_class, sensor.state_class, sensor.entity_category, sensor.value));\n\nreturn null;\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1790,"y":340,"wires":[["e9f56462c39f4df5","18cc0f71d9c17d8c"]]},{"id":"924d2e7706f7bc53","type":"function","z":"35b24b20.e53a34","name":"Publish config topic","func":"// Te publiceren device\nconst device = {\n identifiers: [flow.get(\"device\").identifier],\n manufacturer: flow.get(\"device\").manufacturer,\n model: flow.get(\"device\").model,\n name: flow.get(\"device\").name\n};\n\n// Te publiceren sensoren\nconst sensors = [\n { id: \"timestamp\", name: \"Timestamp\", device_class: \"timestamp\", state_class: \"total_increasing\", entity_category: \"diagnostic\"},\n \n { id: \"heat_energy\", name: \"Heat energy\", unit: \"kWh\", device_class: \"energy\", state_class: \"total_increasing\" },\n { id: \"cool_energy\", name: \"Cool energy\", unit: \"kWh\", device_class: \"energy\", state_class: \"total_increasing\" },\n { id: \"volume\", name: \"Volume\", unit: \"m³\", device_class: \"volume\", state_class: \"total_increasing\" },\n\n { id: \"on_time\", name: \"On time\", unit: \"h\", device_class: \"duration\", state_class: \"total_increasing\", entity_category: \"diagnostic\" },\n { id: \"on_time_during_error_state\", name: \"On time during error state\", unit: \"h\", device_class: \"duration\", state_class: \"total_increasing\", entity_category: \"diagnostic\" },\n\n { id: \"flow_temperature\", name: \"Flow temperature\", unit: \"°C\", device_class: \"temperature\", state_class: \"measurement\" },\n { id: \"return_temperature\", name: \"Return temperature\", unit: \"°C\", device_class: \"temperature\", state_class: \"measurement\" },\n { id: \"temperature_difference\", name: \"Temperature difference\", unit: \"°C\", device_class: \"temperature\", state_class: \"measurement\" },\n\n { id: \"power\", name: \"Power\", unit: \"W\", device_class: \"power\", state_class: \"measurement\" },\n { id: \"maximum_power\", name: \"Maximum power\", unit: \"W\", device_class: \"power\", state_class: \"measurement\" },\n\n { id: \"volume_flow\", name: \"Volume flow\", unit: \"m³/h\", device_class: \"volume_flow_rate\", state_class: \"measurement\" },\n { id: \"maximum_volume_flow\", name: \"Maximum volume flow\", unit: \"m³/h\", device_class: \"volume_flow_rate\", state_class: \"measurement\" },\n];\n\n// Basisfunctie om config en state te publiceren\nfunction publishSensor(mqtt, id, name, unit, device_class, state_class, entity_category) {\n const unique_id = flow.get(\"device\").identifier + \"_\" + id;\n const configTopic = `homeassistant/sensor/${unique_id}/config`;\n const stateTopic = `homeassistant/sensor/${unique_id}/state`;\n\n const configPayload = {\n name: name,\n state_topic: stateTopic,\n unique_id: unique_id,\n device: device\n };\n\n if (unit) configPayload.unit_of_measurement = unit;\n if (device_class) configPayload.device_class = device_class;\n if (state_class) configPayload.state_class = state_class;\n if (entity_category) configPayload.entity_category = entity_category;\n\n // Publiceer config (retain zodat HA het onthoudt)\n mqtt.send({ topic: configTopic, payload: JSON.stringify(configPayload), retain: true });\n // Publiceer actuele waarde\n}\n\n// Stuur alles via een MQTT out node\nsensors.forEach(sensor => publishSensor(node, sensor.id, sensor.name, sensor.unit, sensor.device_class, sensor.state_class, sensor.entity_category));\n\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":850,"y":120,"wires":[["e9f56462c39f4df5","1c279aef4bcdb40c"]]},{"id":"5f2c508b2afa4be7","type":"debug","z":"35b24b20.e53a34","name":"State","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":810,"y":400,"wires":[]},{"id":"f0db341a434c5e4f","type":"switch","z":"35b24b20.e53a34","name":"","property":"action","propertyType":"msg","rules":[{"t":"eq","v":"config","vt":"str"},{"t":"eq","v":"state","vt":"str"}],"checkall":"false","repair":false,"outputs":2,"x":630,"y":240,"wires":[["082be168b1e3f380","924d2e7706f7bc53"],["5f2c508b2afa4be7","d18cd8f2f1bccb25"]],"outputLabels":["config","state"]},{"id":"082be168b1e3f380","type":"debug","z":"35b24b20.e53a34","name":"Config","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":810,"y":180,"wires":[]},{"id":"9867a3017939e5c1","type":"debug","z":"35b24b20.e53a34","name":"Device","active":false,"tosidebar":true,"console":true,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1080,"y":400,"wires":[]},{"id":"09da7b6d3e2ddd06","type":"inject","z":"35b24b20.e53a34","name":"Config","props":[{"p":"action","v":"config","vt":"str"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","x":130,"y":180,"wires":[["c308dda138df5f57"]]},{"id":"198a86d6ef4c9983","type":"inject","z":"35b24b20.e53a34","name":"State","props":[{"p":"action","v":"state","vt":"str"}],"repeat":"60","crontab":"","once":true,"onceDelay":"4","topic":"","x":130,"y":240,"wires":[["c308dda138df5f57"]]},{"id":"c308dda138df5f57","type":"function","z":"35b24b20.e53a34","name":"Store device details in flow","func":"flow.set(\"device\", {\n identifier: \"kamstrup_multical_303\",\n manufacturer: \"Kamstrup\",\n model: \"MULTICAL 303\",\n name: \"Kamstrup MULTICAL 303\",\n address: \"830333922D2C400D\" // This is the secundary device ID\n});\n\nreturn msg;\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":380,"y":240,"wires":[["f0db341a434c5e4f"]]},{"id":"0816a7b2cc686b38","type":"switch","z":"35b24b20.e53a34","name":"","property":"topic","propertyType":"msg","rules":[{"t":"eq","v":"getDevices","vt":"str"},{"t":"eq","v":"getDevice","vt":"str"}],"checkall":"false","repair":false,"outputs":2,"x":1310,"y":340,"wires":[[],["f68c9d49408e6522"]],"outputLabels":["getDevices","getDevice"]},{"id":"1c279aef4bcdb40c","type":"debug","z":"35b24b20.e53a34","name":"Config topic","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1090,"y":180,"wires":[]},{"id":"18cc0f71d9c17d8c","type":"debug","z":"35b24b20.e53a34","name":"State topic","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":2030,"y":340,"wires":[]},{"id":"d18cd8f2f1bccb25","type":"function","z":"35b24b20.e53a34","name":"getDevice","func":"msg.topic = \"getDevice\"\nmsg.payload = { \"address\": flow.get(\"device\").address }\n\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":820,"y":340,"wires":[["9867a3017939e5c1","d3b3374a.93ade8"]]},{"id":"b8af9f24.8bce","type":"mbus-client","name":"Kamstrup","clienttype":"serial","tcpHost":"127.0.0.1","tcpPort":"10001","tcpTimeout":"4000","serialPort":"/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0","serialBaudrate":"2400","reconnectTimeout":"30000","autoScan":false,"storeDevices":false,"disableLogs":false},{"id":"73d4d5f740a87774","type":"mqtt-broker","name":"Home assistant Mosquitto broker","broker":" core-mosquitto","port":1883,"clientid":"","autoConnect":true,"usetls":false,"protocolVersion":4,"keepalive":60,"cleansession":true,"autoUnsubscribe":true,"birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closeRetain":"false","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willRetain":"false","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""},{"id":"024b4e71b067aeb2","type":"global-config","env":[],"modules":{"node-red-contrib-m-bus":"3.2.1"}}] |
/f/image/RdiTu8uyh596rZ3c9QPQYGAQ.png?f=fotoalbum_large)
Hij is nog niet gemonteerd... dus 0 hoort er wel bij....
[ Voor 99% gewijzigd door Ronald op 25-01-2026 23:08 ]
PV Output - Obdam; SolarEdge SE5K 'Voor korte strings'; 12x350Wp Oost-West 13°; 8x415Wp Zuid 10°; Totaal 7520Wp.
Ik zou dit ook heel graag in mijn installatie bouwen, liefst op een aantal punten. Op de 40mm buizen zal ik een 5/4” of 1” aansluiting nodig hebben toch?Ronald schreef op zondag 25 januari 2026 @ 23:03:
[...]
Ik heb dus deze:
https://a.aliexpress.com/_EHwojQU
Daar heb ik nu de Kamstrup aan hangen, en kan hem uitlezen
Ik was wel te lui om handmatig de MQTT sensoren aan te maken om wat te zien te krijgen met de Node Red flow van @AUijtdehaag... dus ik heb er een gemaakt die heel braaf config topics naar MQTT stuurt.
Mijn Kamstrup is een oprechte warmte-koude 303, dus heb er ook wat meer waardes uit gepeuterd....
Dit is mijn flow...code:Resultaat:
1[{"id":"35b24b20.e53a34","type":"tab","label":"Kamstrup Multical 303","disabled":false,"info":""},{"id":"22f0e97d.331106","type":"debug","z":"35b24b20.e53a34","d":true,"name":"Kamstrup M-Bus node","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":360,"y":120,"wires":[]},{"id":"bde8a2d2.64514","type":"inject","z":"35b24b20.e53a34","d":true,"name":"Get Devices","props":[{"p":"topic","vt":"str"},{"p":"payload"}],"repeat":"","crontab":"","once":true,"onceDelay":"1","topic":"getDevices","payload":"","payloadType":"str","x":830,"y":260,"wires":[["d3b3374a.93ade8"]]},{"id":"d3b3374a.93ade8","type":"mbus-controller","z":"35b24b20.e53a34","name":"M-Bus Controller","client":"b8af9f24.8bce","x":1090,"y":340,"wires":[["931945d258af672c","0816a7b2cc686b38"]]},{"id":"f68c9d49408e6522","type":"function","z":"35b24b20.e53a34","name":"Extract & Format","func":"var TimeStamp = new Date(msg.payload.DataRecord[0].Timestamp).toISOString();\n\nvar HeatEnergy = msg.payload.DataRecord[0].Value;\nvar CoolEnergy = msg.payload.DataRecord[1].Value;\nvar Volume = msg.payload.DataRecord[2].Value / 100;\n\nvar OnTime = msg.payload.DataRecord[5].Value;\nvar OnTimeDuringErrorState = msg.payload.DataRecord[6].Value;\n\nvar FlowTemperature = msg.payload.DataRecord[7].Value / 100;\nvar ReturnTemperature = msg.payload.DataRecord[8].Value / 100;\nvar TemperatureDifference = msg.payload.DataRecord[9].Value / 100;\n\nvar Power = msg.payload.DataRecord[10].Value / 100;\nvar MaximumPower = msg.payload.DataRecord[11].Value / 100;\n\nvar VolumeFlow = msg.payload.DataRecord[12].Value / 100;\nvar MaximumVolumeFlow = msg.payload.DataRecord[13].Value / 100;\n\nlet payload =\n{\n 'TimeStamp': TimeStamp,\n 'HeatEnergy': HeatEnergy,\n 'CoolEnergy': CoolEnergy,\n 'Volume': Volume,\n 'OnTime': OnTime,\n 'OnTimeDuringErrorState': OnTimeDuringErrorState,\n 'FlowTemperature': FlowTemperature,\n 'ReturnTemperature': ReturnTemperature,\n 'TemperatureDifference': TemperatureDifference,\n 'Power': Power,\n 'MaximumPower': MaximumPower,\n 'VolumeFlow': VolumeFlow,\n 'MaximumVolumeFlow': MaximumVolumeFlow\n}\n\nreturn { 'payload': payload };\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1530,"y":340,"wires":[["8333b952ce743b62"]]},{"id":"931945d258af672c","type":"debug","z":"35b24b20.e53a34","name":"M-Bus telegram","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1340,"y":400,"wires":[]},{"id":"a969ece1.106bd","type":"mbus-out","z":"35b24b20.e53a34","d":true,"name":"Kamstrup","client":"b8af9f24.8bce","x":120,"y":120,"wires":[["22f0e97d.331106"]]},{"id":"e9f56462c39f4df5","type":"mqtt out","z":"35b24b20.e53a34","name":"","topic":"","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"73d4d5f740a87774","x":2010,"y":120,"wires":[]},{"id":"8333b952ce743b62","type":"function","z":"35b24b20.e53a34","name":"Publish state topic","func":"// Te publiceren device\nconst device = {\n identifiers: [flow.get(\"device\").identifier],\n manufacturer: flow.get(\"device\").manufacturer,\n model: flow.get(\"device\").model,\n name: flow.get(\"device\").name\n};\n\n// Basisfunctie om config en state te publiceren\nfunction publishSensor(mqtt, id, name, unit, device_class, state_class, entity_category, value) {\n const unique_id = device.identifiers[0] + \"_\" + id;\n const stateTopic = `homeassistant/sensor/${unique_id}/state`;\n\n // Publiceer actuele waarde\n mqtt.send({ topic: stateTopic, payload: String(value) });\n}\n\n// Haal waarden uit msg.payload\nconst p = msg.payload;\n\nconst sensors = [\n { id: \"timestamp\", value: p.TimeStamp },\n\n { id: \"heat_energy\", value: p.HeatEnergy },\n { id: \"cool_energy\", value: p.CoolEnergy },\n { id: \"volume\", value: p.Volume },\n\n { id: \"on_time\", value: p.OnTime },\n { id: \"on_time_during_error_state\", value: p.OnTimeDuringErrorState },\n\n { id: \"flow_temperature\", value: p.FlowTemperature },\n { id: \"return_temperature\", value: p.ReturnTemperature },\n { id: \"temperature_difference\", value: p.TemperatureDifference },\n\n { id: \"power\", value: p.Power },\n { id: \"maximum_power\", value: p.MaximumPower },\n\n { id: \"volume_flow\", value: p.VolumeFlow },\n { id: \"maximum_volume_flow\", value: p.MaximumVolumeFlow }\n];\n\n\n// Stuur alles via een MQTT out node\nsensors.forEach(sensor => publishSensor(node, sensor.id, sensor.name, sensor.unit, sensor.device_class, sensor.state_class, sensor.entity_category, sensor.value));\n\nreturn null;\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1790,"y":340,"wires":[["e9f56462c39f4df5","18cc0f71d9c17d8c"]]},{"id":"924d2e7706f7bc53","type":"function","z":"35b24b20.e53a34","name":"Publish config topic","func":"// Te publiceren device\nconst device = {\n identifiers: [flow.get(\"device\").identifier],\n manufacturer: flow.get(\"device\").manufacturer,\n model: flow.get(\"device\").model,\n name: flow.get(\"device\").name\n};\n\n// Te publiceren sensoren\nconst sensors = [\n { id: \"timestamp\", name: \"Timestamp\", device_class: \"timestamp\", state_class: \"total_increasing\", entity_category: \"diagnostic\"},\n \n { id: \"heat_energy\", name: \"Heat energy\", unit: \"kWh\", device_class: \"energy\", state_class: \"total_increasing\" },\n { id: \"cool_energy\", name: \"Cool energy\", unit: \"kWh\", device_class: \"energy\", state_class: \"total_increasing\" },\n { id: \"volume\", name: \"Volume\", unit: \"m³\", device_class: \"volume\", state_class: \"total_increasing\" },\n\n { id: \"on_time\", name: \"On time\", unit: \"h\", device_class: \"duration\", state_class: \"total_increasing\", entity_category: \"diagnostic\" },\n { id: \"on_time_during_error_state\", name: \"On time during error state\", unit: \"h\", device_class: \"duration\", state_class: \"total_increasing\", entity_category: \"diagnostic\" },\n\n { id: \"flow_temperature\", name: \"Flow temperature\", unit: \"°C\", device_class: \"temperature\", state_class: \"measurement\" },\n { id: \"return_temperature\", name: \"Return temperature\", unit: \"°C\", device_class: \"temperature\", state_class: \"measurement\" },\n { id: \"temperature_difference\", name: \"Temperature difference\", unit: \"°C\", device_class: \"temperature\", state_class: \"measurement\" },\n\n { id: \"power\", name: \"Power\", unit: \"W\", device_class: \"power\", state_class: \"measurement\" },\n { id: \"maximum_power\", name: \"Maximum power\", unit: \"W\", device_class: \"power\", state_class: \"measurement\" },\n\n { id: \"volume_flow\", name: \"Volume flow\", unit: \"m³/h\", device_class: \"volume_flow_rate\", state_class: \"measurement\" },\n { id: \"maximum_volume_flow\", name: \"Maximum volume flow\", unit: \"m³/h\", device_class: \"volume_flow_rate\", state_class: \"measurement\" },\n];\n\n// Basisfunctie om config en state te publiceren\nfunction publishSensor(mqtt, id, name, unit, device_class, state_class, entity_category) {\n const unique_id = flow.get(\"device\").identifier + \"_\" + id;\n const configTopic = `homeassistant/sensor/${unique_id}/config`;\n const stateTopic = `homeassistant/sensor/${unique_id}/state`;\n\n const configPayload = {\n name: name,\n state_topic: stateTopic,\n unique_id: unique_id,\n device: device\n };\n\n if (unit) configPayload.unit_of_measurement = unit;\n if (device_class) configPayload.device_class = device_class;\n if (state_class) configPayload.state_class = state_class;\n if (entity_category) configPayload.entity_category = entity_category;\n\n // Publiceer config (retain zodat HA het onthoudt)\n mqtt.send({ topic: configTopic, payload: JSON.stringify(configPayload), retain: true });\n // Publiceer actuele waarde\n}\n\n// Stuur alles via een MQTT out node\nsensors.forEach(sensor => publishSensor(node, sensor.id, sensor.name, sensor.unit, sensor.device_class, sensor.state_class, sensor.entity_category));\n\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":850,"y":120,"wires":[["e9f56462c39f4df5","1c279aef4bcdb40c"]]},{"id":"5f2c508b2afa4be7","type":"debug","z":"35b24b20.e53a34","name":"State","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":810,"y":400,"wires":[]},{"id":"f0db341a434c5e4f","type":"switch","z":"35b24b20.e53a34","name":"","property":"action","propertyType":"msg","rules":[{"t":"eq","v":"config","vt":"str"},{"t":"eq","v":"state","vt":"str"}],"checkall":"false","repair":false,"outputs":2,"x":630,"y":240,"wires":[["082be168b1e3f380","924d2e7706f7bc53"],["5f2c508b2afa4be7","d18cd8f2f1bccb25"]],"outputLabels":["config","state"]},{"id":"082be168b1e3f380","type":"debug","z":"35b24b20.e53a34","name":"Config","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":810,"y":180,"wires":[]},{"id":"9867a3017939e5c1","type":"debug","z":"35b24b20.e53a34","name":"Device","active":false,"tosidebar":true,"console":true,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1080,"y":400,"wires":[]},{"id":"09da7b6d3e2ddd06","type":"inject","z":"35b24b20.e53a34","name":"Config","props":[{"p":"action","v":"config","vt":"str"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","x":130,"y":180,"wires":[["c308dda138df5f57"]]},{"id":"198a86d6ef4c9983","type":"inject","z":"35b24b20.e53a34","name":"State","props":[{"p":"action","v":"state","vt":"str"}],"repeat":"60","crontab":"","once":true,"onceDelay":"4","topic":"","x":130,"y":240,"wires":[["c308dda138df5f57"]]},{"id":"c308dda138df5f57","type":"function","z":"35b24b20.e53a34","name":"Store device details in flow","func":"flow.set(\"device\", {\n identifier: \"kamstrup_multical_303\",\n manufacturer: \"Kamstrup\",\n model: \"MULTICAL 303\",\n name: \"Kamstrup MULTICAL 303\",\n address: \"830333922D2C400D\" // This is the secundary device ID\n});\n\nreturn msg;\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":380,"y":240,"wires":[["f0db341a434c5e4f"]]},{"id":"0816a7b2cc686b38","type":"switch","z":"35b24b20.e53a34","name":"","property":"topic","propertyType":"msg","rules":[{"t":"eq","v":"getDevices","vt":"str"},{"t":"eq","v":"getDevice","vt":"str"}],"checkall":"false","repair":false,"outputs":2,"x":1310,"y":340,"wires":[[],["f68c9d49408e6522"]],"outputLabels":["getDevices","getDevice"]},{"id":"1c279aef4bcdb40c","type":"debug","z":"35b24b20.e53a34","name":"Config topic","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1090,"y":180,"wires":[]},{"id":"18cc0f71d9c17d8c","type":"debug","z":"35b24b20.e53a34","name":"State topic","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":2030,"y":340,"wires":[]},{"id":"d18cd8f2f1bccb25","type":"function","z":"35b24b20.e53a34","name":"getDevice","func":"msg.topic = \"getDevice\"\nmsg.payload = { \"address\": flow.get(\"device\").address }\n\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":820,"y":340,"wires":[["9867a3017939e5c1","d3b3374a.93ade8"]]},{"id":"b8af9f24.8bce","type":"mbus-client","name":"Kamstrup","clienttype":"serial","tcpHost":"127.0.0.1","tcpPort":"10001","tcpTimeout":"4000","serialPort":"/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0","serialBaudrate":"2400","reconnectTimeout":"30000","autoScan":false,"storeDevices":false,"disableLogs":false},{"id":"73d4d5f740a87774","type":"mqtt-broker","name":"Home assistant Mosquitto broker","broker":" core-mosquitto","port":1883,"clientid":"","autoConnect":true,"usetls":false,"protocolVersion":4,"keepalive":60,"cleansession":true,"autoUnsubscribe":true,"birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closeRetain":"false","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willRetain":"false","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""},{"id":"024b4e71b067aeb2","type":"global-config","env":[],"modules":{"node-red-contrib-m-bus":"3.2.1"}}]
[Afbeelding]
Hij is nog niet gemonteerd... dus 0 hoort er wel bij....
Ik dacht aan deze: https://ganz24.com/en/pro....0&variant=45272759894280
Verwacht jij dat die ook het verschil tussen aanvoer en retour kan meten?
Volgens mij is de basis van alle warmte/koude meters een flow sensor en 2 temperatuursensoren. Dat is bij deze Multicals in elk geval zo. Je moet dus de (buis van de) meter zelf in retour plaatsen (daarin zit flowsensor en 1 temperatuursensor) en dan nog een een losse sensor in de aanvoer (aanvoer en retour kan je omdraaien als je dat wil). Voor montage van zo'n warmtemeter kan je 't eenvoudigste een montageset kopen, daar zitten alles bij dat je nodig hebt voor plaatsing.Beer070 schreef op maandag 26 januari 2026 @ 07:45:
[...]
Ik zou dit ook heel graag in mijn installatie bouwen, liefst op een aantal punten. Op de 40mm buizen zal ik een 5/4” of 1” aansluiting nodig hebben toch?
Ik dacht aan deze: https://ganz24.com/en/pro....0&variant=45272759894280
Verwacht jij dat die ook het verschil tussen aanvoer en retour kan meten?
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+MT GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Alle Kamstrup moeten de temperaturen meten, het is uiteindelijk Flow x deltaT.
De koude meters verschillen in software/configuratie door ook een veld voor de koelenergie mee te geven
De meeste hier hebben alleen warmte, en maken in HA een afgeleide voor de koelenergie uit negatief vermogen ofzo...
Ik heb de Kamstrup van Zahleronlineshop. Deze is zelf 3/4" vlakdichtend of voor de grotere doorlaat 1"
Ik heb 'slechts' een DN15, maar die is dus al bedoeld voor nominaal 1.500 l/u en max 3000 l/u... Dus maak je vooral niet teveel zorgen met een DN20...
De medewerker daar heeft met klem aangeraden om https://zaehleronlineshop...ausatz-fuer-Waermezaehler te gebruiken. De dompelkraan heb je sowieso nodig, daar gaat de aanvoer voeler in. De Kamstrup zelf gaat in retour. Dit is wel afhankelijk van de instellingen vanaf de winkel/Kampstrup, maar lijkt de gebruikelijke.
De inbouwset is 2 kranen met wartels (alleen de wartel zijde vlakdichtend) en een dompelkraan voor de aanvoersensor (niet vlakdichtend): De ijking verloopt commercieel gezien, dus de meter zelf is vervangingswaar... Met de kranen gaat dat makkelijk. (Vandaar dat de batterijen niet als probleem gezien worden).
Je zal draadsokken op de 40mm pex moeten zetten, en die vervolgens verkleinen tot 1" of 3/4" om de kogelkranen er op te kunnen zetten. Dan ben je zeker 8 luxe jumbo koppelingen verder... dus dan maakt een paar 10tjes voor een duale meter ook niet zoveel meer uit
PV Output - Obdam; SolarEdge SE5K 'Voor korte strings'; 12x350Wp Oost-West 13°; 8x415Wp Zuid 10°; Totaal 7520Wp.
En als de batterijen het niet meer doen kan je deze ook vervangen (zegel behuizing verbreken)
bij mijn meters is de ijking na 5 jaar sowieso verlopen.
Ik gebruik op dit moment nog de libmbus implementatie en lees de USB busmaster M-bus adapter (Ali)
via een raspi om de 10 minuten uit (af en toe ook "realtime") - Uitlezen duurt zo'n 2 sec
1
2
3
4
5
6
7
8
9
10
11
| pi@hassbian:~ $ date; python3.5 kam58.py|egrep -f kam-select_egrep;date Mon 26 Jan 09:41:18 CET 2026 1 120780 Energy (100 Wh) = 12.078 kWh warmte 2 2426 Energy (100 Wh) <- koelenergie (defrosts) 5 4557889 Volume (m m^3) 8 2674 Flow temperature (1e-2 deg C) 9 2310 Return temperature (1e-2 deg C) 10 364 Temperature Difference (1e-2 deg C) 11 44 Power (100 W) 13 1053 Volume flow (m m^3/h) Mon 26 Jan 09:41:20 CET 2026 |
Nobody is perfeckt - But who wants to be Nobody? - Vrijwillig Energycoach Fiat LUXus! - Some Insights
PV Output - Obdam; SolarEdge SE5K 'Voor korte strings'; 12x350Wp Oost-West 13°; 8x415Wp Zuid 10°; Totaal 7520Wp.
Ik heb bij mijn Kamstrup's (1918) nog een instructie gekregen hoe je de sensoren in bestaande dompelhulzen kan krijgen. Historisch plaatje beschikbaar. - Toen zat er ook een waarschuwing bij dat dit voor commerciële doeleinden eigenlijk niet meer toegestaan was. Op Duits alleen nog "direkttauchende sensoren".Ronald schreef op maandag 26 januari 2026 @ 10:45:
@dunklefaser de kraan die ik heb heeft de sensor direct in het water, heet het anders dan dompelkraan :-)?
Bij mij dus ook.
Nobody is perfeckt - But who wants to be Nobody? - Vrijwillig Energycoach Fiat LUXus! - Some Insights
Ik heb al verloop naar 5/4” voor de kleppen, dus dan hoeft er alleen een verloopnippel tussen en nog een extra kraan voor vervanging, en een dompel-ding voor de tweede thermometer.Ronald schreef op maandag 26 januari 2026 @ 08:17:
@Beer070
Alle Kamstrup moeten de temperaturen meten, het is uiteindelijk Flow x deltaT.
De koude meters verschillen in software/configuratie door ook een veld voor de koelenergie mee te geven
De meeste hier hebben alleen warmte, en maken in HA een afgeleide voor de koelenergie uit negatief vermogen ofzo...
Ik heb de Kamstrup van Zahleronlineshop. Deze is zelf 3/4" vlakdichtend of voor de grotere doorlaat 1"
Ik heb 'slechts' een DN15, maar die is dus al bedoeld voor nominaal 1.500 l/u en max 3000 l/u... Dus maak je vooral niet teveel zorgen met een DN20...
De medewerker daar heeft met klem aangeraden om https://zaehleronlineshop...ausatz-fuer-Waermezaehler te gebruiken. De dompelkraan heb je sowieso nodig, daar gaat de aanvoer voeler in. De Kamstrup zelf gaat in retour. Dit is wel afhankelijk van de instellingen vanaf de winkel/Kampstrup, maar lijkt de gebruikelijke.
De inbouwset is 2 kranen met wartels (alleen de wartel zijde vlakdichtend) en een dompelkraan voor de aanvoersensor (niet vlakdichtend): De ijking verloopt commercieel gezien, dus de meter zelf is vervangingswaar... Met de kranen gaat dat makkelijk. (Vandaar dat de batterijen niet als probleem gezien worden).
Je zal draadsokken op de 40mm pex moeten zetten, en die vervolgens verkleinen tot 1" of 3/4" om de kogelkranen er op te kunnen zetten. Dan ben je zeker 8 luxe jumbo koppelingen verder... dus dan maakt een paar 10tjes voor een duale meter ook niet zoveel meer uit
Ik zag volgens mij een setje met kleppen op de website die jij stuurde voor 99 euro. Dan zou ik voor 239 euro klaar zijn om flow/aanvoer-temp/retour-temp te meten.
Dan nog 2 van dat soort setjes voor afgifte en ik ben klaar
Ik had gehoopt aan de kant van de kamstrup er verloop stukjes tussen te doen. 5/4 -> 1” en terug. Ik zoek nog een dompel stuk voor de andere thermometer met 5/4 of 1”. Enige die ik daar zie is 3/4.Ronald schreef op dinsdag 27 januari 2026 @ 19:57:
@Beer070 de mid inbouwset van 99, 5/4” is te groot aan de zijde Kamstrup (die is ook in de dn20 maar 1”)
Kun je verloop niet beter aan de andere kant van de midinbouwkraan houden?
PV Output - Obdam; SolarEdge SE5K 'Voor korte strings'; 12x350Wp Oost-West 13°; 8x415Wp Zuid 10°; Totaal 7520Wp.
Ik weet het. Afgelopen jaar een bak met geld uitgegeven aan een 16kw WP, meest onverwachte dure stuk was uiteindelijk alle 5/4” kleppen en koppelingen om 32mm binnenmaat aan te kunnen. Pomp draait nu wel met gemak 55L/min en regelmatig 18kw afgifte (ergens een beetje irritant dat het huis dat schijnbaar nog nodig heeft).
Ik ga denk ik beginnen met 2x303 om afgifte en aanvoer op het buffervat te meten.
Dank voor alle hulp! Het wordt zeer gewaardeerd!
PV Output - Obdam; SolarEdge SE5K 'Voor korte strings'; 12x350Wp Oost-West 13°; 8x415Wp Zuid 10°; Totaal 7520Wp.
Besparing is gigantisch. Beste aanschaf in tijden. Vorige eigenaren zaten op 3500m3 en 6mwh/jaar. Wij nu op 0.5m3/dag en WP 40-60kwh Electra die door de draaischijf van de panelen komt. Ik moet binnenkort wat afgifte anders aansluiten en dat is een mooi moment om de kamstrups ertussen te zetten.Ronald schreef op woensdag 28 januari 2026 @ 20:19:
@Beer070 het positieve van zo’n zware machine nodig hebben is dat de besparing op verwarming veel hoger is, en de installatie uiteindelijk relatief beperkt meer kost als een lief klein 5kW’tje… wat ik blijkbaar zelf moet doen van mezelf omdat ik installateurs niet mee krijg met mijn blijkbaar heel bijzondere wensen…
Ik kreeg bij de genoemde Duitse webshop standaard wireless en dat is toch minder makkelijk.
WP: Mitsubishi Electric SUZ-SWM80VA2 + ERSD-VM2D. PV 3330 Wp. Huis 1931, gasloos sinds jan '24.
Prima prijs lijkt me in Duitsland
Ik moet denk ik wel dan voor de bedrade M-Bus versie gaan
[ Voor 18% gewijzigd door Marc_Sway op 21-03-2026 15:44 ]
Ook aangepaste node-red flow die zelf de bus scanned voor devices. Roep maar als je wil testen.
Je wil ook deze er bij: https://zaehleronlineshop...y-measuring-and-adapter_1
Je hebt sowieso de dompelkraan nodig voor de sensor in de aanvoer (de meter gaat in retour volgens de configuratie die de shop levert)
[ Voor 43% gewijzigd door Ronald op 21-03-2026 18:13 ]
PV Output - Obdam; SolarEdge SE5K 'Voor korte strings'; 12x350Wp Oost-West 13°; 8x415Wp Zuid 10°; Totaal 7520Wp.
Wat ook nog zou kunnen (maar minder elegant en waarschijnlijk minder accuraat), is de gasverbruik waarden van de P1 bij de smartmeter in de meterkast gebruiken en de temp sensoren die ik al op de aan- en retourleidingen van de ketel hebt zitten, en zo de warmteflow terug te rekenen.
Ik weet niet of er mensen hier op t forum zijn die daar ervaring mee hebben
[ Voor 4% gewijzigd door Marc_Sway op 21-03-2026 18:39 ]
PV Output - Obdam; SolarEdge SE5K 'Voor korte strings'; 12x350Wp Oost-West 13°; 8x415Wp Zuid 10°; Totaal 7520Wp.
Als dat zo is, en je wilt het Actuele verbruiks-vermogen van je CV (in kWs) bijv per minuut willen weten en in een grafiek plotten, dan zou dat alleen kunnen met een fysieke warmtemeter (zoals een Kamstrup). Is dat juist?
Vermogen is een integraal... maar integraalsensor werkt zo kak dat ik het verbruik afgelopen X tijd met een statistics sensor pak. Dat werkt redelijk, maar niet veel meer dan dat.
Wil je het goed doen dan is een warmtemeter toch echt de oplossing.
PV Output - Obdam; SolarEdge SE5K 'Voor korte strings'; 12x350Wp Oost-West 13°; 8x415Wp Zuid 10°; Totaal 7520Wp.
https://zaehleronlineshop...25-52-wire-M-Bus-16-Y-Bat
https://zaehleronlineshop...Qp-25-52-incl-M-Bus-wired
[ Voor 25% gewijzigd door RichieB op 23-03-2026 07:41 ]
Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp
https://a.aliexpress.com/_EwyNvOy
De master module.
Gewoon ingeprikt op usb van de pi met HAOS
PV Output - Obdam; SolarEdge SE5K 'Voor korte strings'; 12x350Wp Oost-West 13°; 8x415Wp Zuid 10°; Totaal 7520Wp.
Mijn HA server(tje) zit echter niet in de buurt van de CV, dus ik moet via LAN
Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp
Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp
https://m-bus.com/documentation-wired/04-physical-layerCable
A two-wire standard telephone cable (JYStY N20.8 mm) is used as the transmission medium for the M-Bus. The maximum distance between a slave and the repeater is 350 m; this length corresponds to a cable resistance of up to 29 W . This distance applies for the standard configuration having Baud rates between 300 and 9600 Baud, and a maximum of 250 slaves. The maximum distance can be increased by limiting the Baud rate and using fewer slaves, but the bus voltage in the Space state must at no point in a segment fall below 12 V, because of the remote powering of the slaves. In the standard configuration the total cable length should not exceed 1000 m, in order to meet the requirement of a maximum cable capacitance of 180 nF.
PV Output - Obdam; SolarEdge SE5K 'Voor korte strings'; 12x350Wp Oost-West 13°; 8x415Wp Zuid 10°; Totaal 7520Wp.
Vervangen lijkt een Tamper alarm te triggeren. Maar dat is voor ons niet erg.
@AUijtdehaag heeft dat gedaan met zijn 302.
PV Output - Obdam; SolarEdge SE5K 'Voor korte strings'; 12x350Wp Oost-West 13°; 8x415Wp Zuid 10°; Totaal 7520Wp.
Het prijsverschil met een 230V gevoede Kamstrup is aanzienlijk.
Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp
Gebruik je een integratie voor HAOS en zo ja, welke? Ik heb een maandje geleden zitten kijken maar niks gevonden waarmee het mij als relatieve IT leek lukte 'm op mijn Pi met HAOS uit te lezen. Alle integraties die ik kon vonden werden niet meer ondersteund of werkten niet onder HAOS.Ronald schreef op maandag 23 maart 2026 @ 06:34:
@Marc_Sway
https://a.aliexpress.com/_EwyNvOy
De master module.
Gewoon ingeprikt op usb van de pi met HAOS
Of werk je rechtsreeks via Nodered?
Ik draai een iets oudere node-red app (20.2.4) omdat nodered-contrib-mbus niet wil op de recentere release 21.x
Mijn flow:
Scanned de bus voor devices.
Leest elke minuut alle gevonden devices uit.
Parsed het Kamstrup wamte-koude telegram.
Publiceert de waardes naar MQTT incl auto discovery.
Mijn 303 is een wamte-koude model... en ik heb er maar 1, dus meerdere devices is niet getest... en als het telegram anders is bij een gevonden mbus device dan zal het niet (goed) werken tot er een extra parser in zit.
Ik wil hem nog getest hebben door iemand anders ;-)
PV Output - Obdam; SolarEdge SE5K 'Voor korte strings'; 12x350Wp Oost-West 13°; 8x415Wp Zuid 10°; Totaal 7520Wp.
In het service menu van de ketel zou dan een waarde te zien moeten zijn die correspondeert met dat toerental. Met dat actuele toerental is dan het Actuele Vermogen te bepalen.
Die waarde is dan wellicht ook beschikbaar via de OT Bus.
Iemand ervaren hiermee, bijv met het uitlezen van het ventilator-toerental via de OT Bus?
Ik lees net dat de modulatiegraad (%) waarde bij bepaalde ketels op de OT Bus beschikbaar zou zijn en ongeveer linear gerelateerd is aan het actuele vermogen van de ketel, waarbij 0% dan betekent dat de ketel op het Min vermogen draait en bij 100% op het Max vermogen (en alles daar tussen in een lineair verband).
Iemand die dit ook uitleest met de OTGW?
[ Voor 27% gewijzigd door Marc_Sway op 24-03-2026 08:38 ]
Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp
Wellicht dat dat werkt voor opgenomen vermogen (m3/uur).
Maar afgegeven vermogen blijft afhankelijk van condensatie graad, en dat blijft toenemen met steeds lagere retour, dat is het rookgaskoelwater
PV Output - Obdam; SolarEdge SE5K 'Voor korte strings'; 12x350Wp Oost-West 13°; 8x415Wp Zuid 10°; Totaal 7520Wp.
Dus bottom-line is de enige manier om echt redelijke nauwkeurige resultaten (voor afgegeven warmte-vermogen) te krijgen, door een fysieke warmtemeter in het systeem te plaatsen. Al het andere (via de 'software route') is meer bij benadering
Dank je voor de informatie, ik heb Node Red nog niet aan de praat, daar ga ik binnenkort eens mee spelenRonald schreef op maandag 23 maart 2026 @ 19:34:
@koksie Ik heb mij laten inspireren door de Node Red flow ergens uit dit topic... En een nieuwe gemaakt:
Ik draai een iets oudere node-red app (20.2.4) omdat nodered-contrib-mbus niet wil op de recentere release 21.x
Mijn flow:
Scanned de bus voor devices.
Leest elke minuut alle gevonden devices uit.
Parsed het Kamstrup wamte-koude telegram.
Publiceert de waardes naar MQTT incl auto discovery.
Mijn 303 is een wamte-koude model... en ik heb er maar 1, dus meerdere devices is niet getest... en als het telegram anders is bij een gevonden mbus device dan zal het niet (goed) werken tot er een extra parser in zit.
Ik wil hem nog getest hebben door iemand anders ;-)
PV Output - Obdam; SolarEdge SE5K 'Voor korte strings'; 12x350Wp Oost-West 13°; 8x415Wp Zuid 10°; Totaal 7520Wp.
Wat zijn daar de input-parameters als ik mag vragen? Supply en Retour temps van de CV, buiten-temp, warmtemeter waarden, of misschien nog iets anders?
ik heb er 2 besteld. voor het geval dat er 1 kapot gaat in transport.Ronald schreef op maandag 23 maart 2026 @ 06:34:
@Marc_Sway
https://a.aliexpress.com/_EwyNvOy
De master module.
Gewoon ingeprikt op usb van de pi met HAOS
Nu nog even de juiste kamstrup erbij nemen.
Deze winkel configureert de Kamstrup voor montage in retour
De aansluit kranen worden door de winkel geadviseerd. En ik ben het met ze eens… de meter is beperkt houdbaar (mid-keuring, danwel domweg de batterij)
Het laat het toe de meter eenvoudig te demonteren en systeem terug in bedrijf te stellen met de pasbuis
[ Voor 40% gewijzigd door Ronald op 24-03-2026 14:42 ]
PV Output - Obdam; SolarEdge SE5K 'Voor korte strings'; 12x350Wp Oost-West 13°; 8x415Wp Zuid 10°; Totaal 7520Wp.
Warmteverlies coëfficiënten, temperatuur delta’s.Marc_Sway schreef op dinsdag 24 maart 2026 @ 12:15:
Klinkt interessant dat warmteverlies model! Aan zo iets heb ik ook wel eens gedacht.
Wat zijn daar de input-parameters als ik mag vragen? Supply en Retour temps van de CV, buiten-temp, warmtemeter waarden, of misschien nog iets anders?
Dit staat los van de energie productie. Ik heb het om te toetsen of een relatief krappe 5kW warmtepomp voldoet.
PV Output - Obdam; SolarEdge SE5K 'Voor korte strings'; 12x350Wp Oost-West 13°; 8x415Wp Zuid 10°; Totaal 7520Wp.
Mijn plan is om een kamstrup in de retour, en een sensor in de aanvoer te zetten van de WP. Dan kan ik het verschil goed meten.Ronald schreef op dinsdag 24 maart 2026 @ 14:39:
Dompelkraan voor de aanvoersensor en aansluitkranen voor de meter unit zelf zijn niet inclusief. Zie mijn eerdere link.
Deze winkel configureert de Kamstrup voor montage in retour
De aansluit kranen worden door de winkel geadviseerd. En ik ben het met ze eens… de meter is beperkt houdbaar (mid-keuring, danwel domweg de batterij)
Het laat het toe de meter eenvoudig te demonteren en systeem terug in bedrijf te stellen met de pasbuis
Ik heb momenteel 5/4 draad aan een klep waar ik dit op zou kunnen aansluiten, dan hoeft er in principe nog maar 1 klep bij om het wijzigbaar te maken.
Ik zou ook een kamstrup op mijn afgifte willen zetten met aanvoer en retour, zodat ik de performance van de WP en die van de afgifte separaat kan meten. (er zit een 500L vat tussen wat lekker stabiliseert).
Mijn lijstje is nu dus deze set:
2x https://zaehleronlineshop...t-meter-directly-immersed
2x https://zaehleronlineshop...25-52-wire-M-Bus-16-Y-Bat
en dan nog wat verloop van/naar 1" en 5/4
klopt dat een beetje of mis ik dan nog een stel sensoren?
Adapter de kranen dan naar G5/4, Dat adapteren moet je toch doen... en G1 voor dat kleine stukje maakt echt niet uit.
[ Voor 18% gewijzigd door Ronald op 24-03-2026 16:13 ]
PV Output - Obdam; SolarEdge SE5K 'Voor korte strings'; 12x350Wp Oost-West 13°; 8x415Wp Zuid 10°; Totaal 7520Wp.
Goed idee! Dank je wel!Ronald schreef op dinsdag 24 maart 2026 @ 15:07:
@Beer070 die Kamstrup is G1, dus pak veel voordeliger G1 aansluitset. https://zaehleronlineshop...t-meter-directly-immersed
Adapter de kranen dan naar G5/4, Dat adapteren moet je toch doen... en G1 voor dat kleine stukje maakt echt niet uit.
Dat scheelt al 100 euro op de dompelbuizen.
Beer070 schreef op dinsdag 24 maart 2026 @ 18:00:
[...]
Goed idee! Dank je wel!
Dat scheelt al 100 euro op de dompelbuizen.
PV Output - Obdam; SolarEdge SE5K 'Voor korte strings'; 12x350Wp Oost-West 13°; 8x415Wp Zuid 10°; Totaal 7520Wp.
Wat blijkt nu, in de praktijk kan mijn Intergas ketel gewoon veel lager moduleren dan ca 7kW wat de fabrikant aangeeft in hun specs.
Zijn er anderen die dit ook hebben ervaren, wellicht met andere ketels?
[ Voor 11% gewijzigd door Marc_Sway op 27-03-2026 19:40 ]
[ Voor 64% gewijzigd door Andrehj op 27-03-2026 20:07 ]
WP: ME PUHZ-SW75YAA + ERSD-VM2D + EV-WP-TWS-1W 300; AC: ME MXZ-2F42VF + 2x MSZ-LN25VGV; PV: 14.08 kWp O/W + SMA STP 8.0; Vent: Zehnder Q600 ERV + Ubbink AirExcellent.
Net twee keer de kamstrup DN20 met aansluitsets besteld. ( https://zaehleronlineshop...25-52-wire-M-Bus-16-Y-Bat)
ik heb de usb modbus (mbus dus) adapters ook al, dus als alles binnen is kan ik het ergens deze zomer allemaal rustig aansluiten.
mooie controle op de aanvoer en afgifte vanuit het boilervat
ik heb die bij aliexpress gekocht die jij had genoemd eerder. mbus usb adapters. met 2 waren er geen transport kosten, en voor 17 euro was dat de voordelige optie.Ronald schreef op woensdag 1 april 2026 @ 09:40:
@Beer070 Je hebt mbus (meterbus) adapters nodig, modbus is heel iets anders.
mbus mag met lange simpele snoeren werken en tientallen devices op een bus, dus waarom 2?
Als er een kapot gaat heb ik een reserve
:strip_exif()/f/image/AEXdhK5Su3jXcpcDh1as6FiC.jpg?f=fotoalbum_large)
/f/image/xs4bOggiYSjkZNWeF83xqdlQ.avif?f=fotoalbum_large)