- ik gebruik meestal een met digitale display (0,01 mm res.)
Maar ik heb natuurlijk ook een ca. 70 jaar oude analoge van mijn grootvader
voor het geval dat ik geen passende knoopcel meer heb
Nobody is perfeckt - But who wants to be Nobody? - Vrijwillig Energycoach Fiat LUXus! - Some Insights
"Hallo Herr dunklefaser,
wir möchten Sie darauf hinweisen, das die Eichung/ Beglaubigung Ihrer bei uns im Jahr 2018 gekauften Wärmezähler Ende diesen Jahres abläuft.
Bitte beachten Sie dies bei einem eventuellen Zählerwechsel.
Seit 2015 besteht für alle neu in Verkehr gebrachten Messgeräte eine Anzeigepflicht.
Weitere Informationen dazu finden Sie auf unserer Seite zur Meldepflicht von Messgeräten: Meldepflicht Messgeräte."
Gelukkig voor mij niet relevant.
Nobody is perfeckt - But who wants to be Nobody? - Vrijwillig Energycoach Fiat LUXus! - Some Insights
Vanaf nu zijn de waardes totaal niet betrouwbaar meerdunklefaser schreef op donderdag 6 juni 2024 @ 16:21:
Vandaag een email van zaehleronline betreffende mijn Kamstrup's:
"Hallo Herr dunklefaser,
wir möchten Sie darauf hinweisen, das die Eichung/ Beglaubigung Ihrer bei uns im Jahr 2018 gekauften Wärmezähler Ende diesen Jahres abläuft.
Bitte beachten Sie dies bei einem eventuellen Zählerwechsel.
Seit 2015 besteht für alle neu in Verkehr gebrachten Messgeräte eine Anzeigepflicht.
Weitere Informationen dazu finden Sie auf unserer Seite zur Meldepflicht von Messgeräten: Meldepflicht Messgeräte."
Gelukkig voor mij niet relevant.
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Helemaal mee eens - In Duitsland mag je de warmtemeter iig niet meerblb4 schreef op vrijdag 7 juni 2024 @ 10:20:
[...]
Vanaf nu zijn de waardes totaal niet betrouwbaar meer.
voor berekening van de nevenkosten (verwarming) gebruiken.
Nobody is perfeckt - But who wants to be Nobody? - Vrijwillig Energycoach Fiat LUXus! - Some Insights
In augustus komt onze warmtepomp en ik wil een Kamstrup 303 laten installeren. De wamtepomp komt in het onderhuis (dijkwoning) en mijn NAS met Domoticz etc in de meterkast op de begane grond. Kan ik de Kamstrup draadloos uitlezen en dus de variant met de wireless M-Bus aanschaffen, of kan ik beter de bedrade variant kopen? Ik heb wat gelezen en gezocht in dit topic maar ik kom er niet helemaal uit (ik ben denk ik ook niet technisch genoeg
En houdt de M-Bus ook data vast, dus kan ik 'm eens per dag aan de laptop hangen, of is continue uitlezing benodigd? Dan zou de draadloze variant wellicht de voorkeur genieten, als die niet al te lastig uit te lezen is.
100x bedraad als het even kan!koksie schreef op woensdag 26 juni 2024 @ 17:40:
Beste allen,
In augustus komt onze warmtepomp en ik wil een Kamstrup 303 laten installeren. De wamtepomp komt in het onderhuis (dijkwoning) en mijn NAS met Domoticz etc in de meterkast op de begane grond. Kan ik de Kamstrup draadloos uitlezen en dus de variant met de wireless M-Bus aanschaffen, of kan ik beter de bedrade variant kopen? Ik heb wat gelezen en gezocht in dit topic maar ik kom er niet helemaal uit (ik ben denk ik ook niet technisch genoeg).
En houdt de M-Bus ook data vast, dus kan ik 'm eens per dag aan de laptop hangen, of is continue uitlezing benodigd? Dan zou de draadloze variant wellicht de voorkeur genieten, als die niet al te lastig uit te lezen is.
Draadloos werkt in principe prima, maar het is moeilijk om een goede ontvanger te krijgen die blijft werken bij hogere temperaturen. Die van mij viel op den duur steeds uit omdat de dongle te warm werd.
Sinds ik de koudwaterleiding als koelelement heb gebruikt, werkt het prima
Zwartoog in "Kamstrup Multical 302 met Pi uitlezen en domoticz"
Edit: te warm = >25 graden binnen in de zomer
Zo warm zal het in het stookhok niet worden, in de winter wordt het nooit onder de 15 graden, in de zomer nooit boven de 19. Altijd lekker koelZwartoog schreef op woensdag 26 juni 2024 @ 22:33:
[...]
100x bedraad als het even kan!
Draadloos werkt in principe prima, maar het is moeilijk om een goede ontvanger te krijgen die blijft werken bij hogere temperaturen. Die van mij viel op den duur steeds uit omdat de dongle te warm werd.
Sinds ik de koudwaterleiding als koelelement heb gebruikt, werkt het prima
Zwartoog in "Kamstrup Multical 302 met Pi uitlezen en domoticz"
Edit: te warm = >25 graden binnen in de zomer
Wel zit ik ermee hoe ik de bedrading naar de meterkast ga krijgen, waar m'n NAS staat. Welke bekabeling moet ik daarvoor gebruiken? Een 15m USB kabel lijkt me niet heel goed werken toch?
Het idee van draadloos is natuurlijk dat je die 15 meter draadloos kunt overbruggenkoksie schreef op donderdag 27 juni 2024 @ 09:20:
[...]
Zo warm zal het in het stookhok niet worden, in de winter wordt het nooit onder de 15 graden, in de zomer nooit boven de 19. Altijd lekker koel.
Wel zit ik ermee hoe ik de bedrading naar de meterkast ga krijgen, waar m'n NAS staat. Welke bekabeling moet ik daarvoor gebruiken? Een 15m USB kabel lijkt me niet heel goed werken toch?
Ik heb in mijn woning overal duo Cat7 getrokken. Niet dat Cat7 nodig is voor ethernet, maar heeft wel dikke aders, dus een aantal sockets "misbruik" ik voor andere doeleinden (modbus, OneWire).
Als je toch aan de klus gaat, is het sowieso goed om te kijken of je een loze 19 mm leiding voor datakabels naar de meterkast kan leggen.
Na de update nodered V4.0 geen communicatie meer met de Kamstrup 302. Even de node-red-contrib-m-bus updaten naar versie 3.12 ipv 3.00 en allas loopt weer als een zonnetje
https://github.com/robert.../blob/master/CHANGELOG.md
Opvallend, ik draai NR 4.0 en m-bus 3.00 en dat draait gewoon. Zie zelfs geen naar 3.12Pietjebel10 schreef op vrijdag 28 juni 2024 @ 14:14:
Update node-red-contrib-m-bus
Na de update nodered V4.0 geen communicatie meer met de Kamstrup 302. Even de node-red-contrib-m-bus updaten naar versie 3.12 ipv 3.00 en allas loopt weer als een zonnetje
https://github.com/robert.../blob/master/CHANGELOG.md
Panasonic J 7kW WP, boiler & HeishaMon, 6022 Wp PV, Enphase+ST GW, SOLAX SK-SU3000E 13kWh BESS, ITHO Qualityflow WTW, Elvi Smart Charging+ laadpunt, Kia EV6 84kWh EA MY25, gasloos '23
Onderstaand heb ik uitgevoerd en toen werd mijn oude versie geupdate naar 3.12.blb4 schreef op vrijdag 28 juni 2024 @ 17:29:
[...]
Opvallend, ik draai NR 4.0 en m-bus 3.00 en dat draait gewoon. Zie zelfs geen naar 3.12
Testing
To test last version of this node from master:
Clone this repo git clone https://github.com/robertsLando/node-red-contrib-m-bus
Link the node to node-red modules:
go to the downloaded directory cd node-red-contrib-m-bus and run sudo npm link. in your node-red user directory (cd ~/.node-red) run: npm link node-red-contrib-m-bus.
Ik gebruik zelf zonder enige problemen deze dongle van IMST: https://shop.imst.de/wire...-usb-adapter-868-mhz?c=14Zwartoog schreef op woensdag 26 juni 2024 @ 22:33:
[...]
100x bedraad als het even kan!
Draadloos werkt in principe prima, maar het is moeilijk om een goede ontvanger te krijgen die blijft werken bij hogere temperaturen. Die van mij viel op den duur steeds uit omdat de dongle te warm werd.
Sinds ik de koudwaterleiding als koelelement heb gebruikt, werkt het prima
Zwartoog in "Kamstrup Multical 302 met Pi uitlezen en domoticz"
Edit: te warm = >25 graden binnen in de zomer
[ Voor 4% gewijzigd door fsfikke op 29-06-2024 08:11 ]
Zijn spaties in de aanbieding ofzo? www.spatiegebruik.nl
Doe niet anderskoksie schreef op donderdag 27 juni 2024 @ 15:00:
Kan Modbus over een ethernetkabel? Ik laat Cat6a aanleggen momenteel. Of is er een speciale kabel voor?
Het is geen modbus maar meterbuskoksie schreef op donderdag 27 juni 2024 @ 15:00:
Kan Modbus over een ethernetkabel? Ik laat Cat6a aanleggen momenteel. Of is er een speciale kabel voor?
[ Voor 9% gewijzigd door AUijtdehaag op 29-06-2024 09:02 ]
Je hebt gelijk, excuus. Kan ik het signaal over een ethernetkabel naar bijv mijn NAS brengen? Zoals gezegd komt mijn warmtepomp in het stookhok, ver van de meterkast waar mijn NAS staat. Die heeft twee USB poorten maar 1 is al bezet door mijn Zigbee stick en de andere door de P1 kabel van mijn elektra meter. Dus als ik de data van de Kamstrup via een ethernetkabel zou kunnen aanleveren, zou dat mooi zijn.
[ Voor 33% gewijzigd door koksie op 24-07-2024 00:34 ]
Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp
Je hebt dan geen vrije usb poorten dus neem dan een gevoede usb hub of homewizard p1 wifi om usb vrij te maken voor een mbus usb adapter.
Ethernet kabel gebruiken doe ik ook, maar dan twee draadjes met mbus.signaal erop (is 24v of iets dergelijks dus niet in je nas ethernetpoort steken)
[ Voor 8% gewijzigd door AUijtdehaag op 24-07-2024 07:43 ]
Het is een Cat6a kabel dus hopelijk zijn de aders iets dikker dan een reguliere Cat5e kabel. Ik moet nog wel even kijken hoe ik dit dan precies zou moeten doen, ik heb geen ervaring met dit soort dingen behalve een kabel ergens inklikkenRichieB schreef op woensdag 24 juli 2024 @ 04:13:
@koksie Ja, dat kan. Dit soort bussen is gemaakt om grote afstanden te overbruggen. Ethernetkabel is een beetje dun maar werkt meestal prima. Zo niet, dan gebruik je een paar aders in parallel om het signaalverlies te verminderen.
Of anders toch een draadloze versie en proberen via Wifi uit te lezen?
De Zigbee stick in mijn Nas moet op het juiste adres zitten, die kan niet achter een USB hub helaas. De P1 zou misschien wel kunnen, ik heb DIN rail meters van Youless, wellicht kan ik dat ook gebruiken in plaats van de P1 om zo een USB poort vrij te maken. Of wellicht werkt de P1 wel achter een USB hub, dan zou de Mbus adapter kunnen werken. Binnenkort eens experimenteren met een hubje en de P1 kabel.AUijtdehaag schreef op woensdag 24 juli 2024 @ 07:40:
@koksie
Je hebt dan geen vrije usb poorten dus neem dan een gevoede usb hub of homewizard p1 wifi om usb vrij te maken voor een mbus usb adapter.
Ethernet kabel gebruiken doe ik ook, maar dan twee draadjes met mbus.signaal erop (is 24v of iets dergelijks dus niet in je nas ethernetpoort steken)
Hoe zet jij het Mbus signaal vanaf de aders van je ethernet kabel om in een bruikbaar signaal voor je Pi? Welke adapter gebruik je daarvoor?
Of anders toch een draadloze versie van de Kamstrup nemen en proberen via Wifi uit te lezen?
Ik heb deze mbus adapter
https://www.relay.de/en/products/m-bus-master/mikro-master/
Maar deze werkt ook
https://nl.aliexpress.com/item/32742104471.html
(staat in de startpost)
Draadloos brengt weer andere problemen met zich mee dacht ik.
[ Voor 14% gewijzigd door AUijtdehaag op 24-07-2024 09:02 ]
Ah ja, deze zag ik idd en loopt idd via USB. Lastige is dat mijn Synology beperkt om kan gaan met USB apparaten, daar heb ik met mijn Zigbee stick altijd aardig wat geklooi mee. Maar ik kan het proberen, wie weet.AUijtdehaag schreef op woensdag 24 juli 2024 @ 09:00:
@koksie
Ik heb deze mbus adapter
https://www.relay.de/en/products/m-bus-master/mikro-master/
Maar deze werkt ook
https://nl.aliexpress.com/item/32742104471.html
(staat in de startpost)
Draadloos brengt weer andere problemen met zich mee dacht ik.
Draadloos over Wifi zou nog wel lukken qua bereik. Maar ik begreep dat die draadloze Mbus op de Kamstrup niet over wifi loopt maar aan de kant van de Nas ook een USB receiver nodig heeft. En dan zit ik dus vast aan een draadloos protocol dat ik niet makkelijk kan versterken en het denk ik niet redt door de betonnen vloer van de kelder heen. En heb ik alsnog het USB probleem.
Ik ga nog eens wat experimenteren en verder puzzelen, bedankt voor de informatie tot nu toe.
Ik gebruik deze en aangesloten op een odroid c4 (gebruik geen pi meer, teveel ellende mee gehad met sd kaartjes)
https://thepihut.com/prod...-hub-for-the-raspberry-pi
Of dat voor je nas werkt weet ik niet.
En ik kan je 5 euro korting geven op een HW
[ Voor 11% gewijzigd door AUijtdehaag op 24-07-2024 09:26 ]
-= Very annoying forum person =-
Ik gebruik HA in een virtuele machine (Virtualbox, op Windows) en dan werkt mijn USB m-bus master met Prolofic PL2303GL chip niet lekker. Ik kan wel het serienummer zien in de Nodered-flow (via @AUijtdehaag ), maar niet de verschillende registers uitlezen en posten als MQTT bericht. Heb nu een master met FT232 besteld.
[ Voor 6% gewijzigd door BiLLY_daKid op 30-09-2024 16:39 ]
Via node-red zou je domoticz/out topic kunnen afluisteren en dan doorsturen naar HA mqtt
Een voorbeeld vind je hier (zelf aanpassen)
1
| [{"id":"44e96411.c675ec","type":"tab","label":"Domoticz MQTT","disabled":false,"info":""},{"id":"66a26888.7fcf48","type":"mqtt in","z":"44e96411.c675ec","name":"","topic":"domoticz/out","qos":"2","datatype":"json","broker":"3e5cec35.6061c4","x":160,"y":100,"wires":[["a3f5c76.031a638","1f4ca1de.3fd2de","4b26ebe5.425d24","1ca11c6.650dee4","dab7a3ed.b5248"]]},{"id":"a3f5c76.031a638","type":"switch","z":"44e96411.c675ec","name":"","property":"payload.dtype","propertyType":"msg","rules":[{"t":"eq","v":"P1 Smart Meter","vt":"str"},{"t":"eq","v":"Eigen verbruik","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":350,"y":100,"wires":[["4ad63976.0676e8"],["da8c86c4.109ff8"]]},{"id":"6cb8b751.cf6688","type":"mqtt out","z":"44e96411.c675ec","name":"smartmeter","topic":"smartmeter","qos":"","retain":"","broker":"9cc65095.40492","x":1070,"y":100,"wires":[]},{"id":"4ad63976.0676e8","type":"function","z":"44e96411.c675ec","name":"Filter","func":"var P1 = parseFloat(msg.payload.svalue1/1000); // P1 consumption counter (low tariff)\nvar P2 = parseFloat(msg.payload.svalue2/1000); // P2 consumption counter (high tariff)\nvar N1 = parseFloat(msg.payload.svalue3/1000); // N1 production counter (low tariff)\nvar N2 = parseFloat(msg.payload.svalue4/1000); // N2 production counter (high tariff)\nvar Usage = parseFloat(msg.payload.svalue5); // N2 production counter (high tariff)\nvar Delivery =parseFloat(msg.payload.svalue6); // N2 production counter (high tariff)\n\nlet _msg = {\n payload: []\n};\n\n_msg.payload=\n {\t\ttimestamp: flow.get('timestamp'),\n\t\t\tp1: P1,\n\t\t\tp2: P2,\n\t\t\tn1: N1,\n\t\t\tn2: N2,\n\t\t\tusage: Usage,\n\t\t\tdelivery: Delivery,\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":510,"y":100,"wires":[["42020b9e.3af774"]]},{"id":"534364a.8a79e9c","type":"mqtt in","z":"44e96411.c675ec","name":"","topic":"smartmeter","qos":"2","datatype":"json","broker":"3e5cec35.6061c4","x":1010,"y":500,"wires":[["6c1988c.e1b1778"]]},{"id":"6c1988c.e1b1778","type":"debug","z":"44e96411.c675ec","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1230,"y":500,"wires":[]},{"id":"42020b9e.3af774","type":"join","z":"44e96411.c675ec","name":"","mode":"custom","build":"merged","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"6","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":650,"y":100,"wires":[["e7419aad.096528"]]},{"id":"e7419aad.096528","type":"delay","z":"44e96411.c675ec","name":"","pauseType":"timed","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"30","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"x":860,"y":100,"wires":[["6cb8b751.cf6688"]]},{"id":"1f4ca1de.3fd2de","type":"switch","z":"44e96411.c675ec","name":"","property":"payload.idx","propertyType":"msg","rules":[{"t":"eq","v":"47","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":350,"y":220,"wires":[["a1caa9ee.c4c448"]]},{"id":"49b56426.ac4dfc","type":"mqtt out","z":"44e96411.c675ec","name":"Zonnepanelen Totaal","topic":"zonnepanelen_totaal","qos":"","retain":"","broker":"9cc65095.40492","x":1100,"y":220,"wires":[]},{"id":"a1caa9ee.c4c448","type":"function","z":"44e96411.c675ec","name":"Filter","func":"var Watt = parseFloat(msg.payload.svalue1); // P1 consumption counter (low tariff)\nvar Kwh = parseFloat(msg.payload.svalue2/1000); // P2 consumption counter (high tariff)\n\nlet _msg = {\n payload: []\n};\n\n_msg.payload=\n {\t\twatt: Watt,\n\t\t\tkwh: Kwh,\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":500,"y":220,"wires":[["49b56426.ac4dfc"]]},{"id":"9f193fb8.659f2","type":"mqtt in","z":"44e96411.c675ec","name":"","topic":"zonnepanelen_totaal","qos":"2","datatype":"json","broker":"3e5cec35.6061c4","x":1030,"y":560,"wires":[["b999389d.2710f8"]]},{"id":"b999389d.2710f8","type":"debug","z":"44e96411.c675ec","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1230,"y":560,"wires":[]},{"id":"facb9b5d.9cc058","type":"mqtt in","z":"44e96411.c675ec","name":"","topic":"eigen_verbruik","qos":"2","datatype":"json","broker":"3e5cec35.6061c4","x":1020,"y":620,"wires":[["27b3c066.798f4"]]},{"id":"27b3c066.798f4","type":"debug","z":"44e96411.c675ec","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1230,"y":620,"wires":[]},{"id":"f68749c4.ace368","type":"switch","z":"44e96411.c675ec","name":"","property":"payload.dtype","propertyType":"msg","rules":[{"t":"eq","v":"Eigen verbruik","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":350,"y":160,"wires":[[]]},{"id":"4dfe04ee.71066c","type":"mqtt out","z":"44e96411.c675ec","name":"Eigen_verbruik","topic":"eigen_verbruik","qos":"","retain":"","broker":"9cc65095.40492","x":1070,"y":160,"wires":[]},{"id":"da8c86c4.109ff8","type":"function","z":"44e96411.c675ec","name":"Filter","func":"var Watt = parseFloat(msg.payload.svalue1); // P1 consumption counter (low tariff)\nvar Kwh = parseFloat(msg.payload.svalue2); // P2 consumption counter (high tariff)\n\nlet _msg = {\n payload: []\n};\n\n_msg.payload=\n {\t\ttimestamp: flow.get('timestamp'),\n\t\t\twatt: Watt,\n\t\t\tkwh: Kwh,\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":490,"y":160,"wires":[["25826566.bbd71a"]]},{"id":"25826566.bbd71a","type":"join","z":"44e96411.c675ec","name":"","mode":"custom","build":"merged","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"6","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":630,"y":160,"wires":[["4dfe04ee.71066c"]]},{"id":"fb6c1125.76bdc","type":"debug","z":"44e96411.c675ec","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":840,"y":200,"wires":[]},{"id":"4b26ebe5.425d24","type":"switch","z":"44e96411.c675ec","name":"","property":"payload.idx","propertyType":"msg","rules":[{"t":"eq","v":"138","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":350,"y":280,"wires":[["9301bc30.05627"]]},{"id":"cfeb2782.fbc548","type":"mqtt out","z":"44e96411.c675ec","name":"american_fridge","topic":"american_fridge","qos":"","retain":"","broker":"9cc65095.40492","x":1080,"y":280,"wires":[]},{"id":"9301bc30.05627","type":"function","z":"44e96411.c675ec","name":"Filter","func":"var Watt = parseFloat(msg.payload.svalue1); // P1 consumption counter (low tariff)\nvar Kwh = parseFloat(msg.payload.svalue2/1000); // P2 consumption counter (high tariff)\n\nlet _msg = {\n payload: []\n};\n\n_msg.payload=\n {\t\twatt: Watt,\n\t\t\tkwh: Kwh,\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":500,"y":280,"wires":[["cfeb2782.fbc548"]]},{"id":"1ca11c6.650dee4","type":"switch","z":"44e96411.c675ec","name":"","property":"payload.idx","propertyType":"msg","rules":[{"t":"eq","v":"135","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":350,"y":340,"wires":[["49ad8944.c42a78"]]},{"id":"ea61016f.fb818","type":"mqtt out","z":"44e96411.c675ec","name":"wp_boiler","topic":"wp_boiler","qos":"","retain":"","broker":"9cc65095.40492","x":1060,"y":340,"wires":[]},{"id":"49ad8944.c42a78","type":"function","z":"44e96411.c675ec","name":"Filter","func":"var Watt = parseFloat(msg.payload.svalue1); // P1 consumption counter (low tariff)\nvar Kwh = parseFloat(msg.payload.svalue2/1000); // P2 consumption counter (high tariff)\n\nlet _msg = {\n payload: []\n};\n\n_msg.payload=\n {\t\twatt: Watt,\n\t\t\tkwh: Kwh,\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":500,"y":340,"wires":[["ea61016f.fb818"]]},{"id":"dab7a3ed.b5248","type":"switch","z":"44e96411.c675ec","name":"","property":"payload.idx","propertyType":"msg","rules":[{"t":"eq","v":"141","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":350,"y":400,"wires":[["9bae1dfd.6ab05"]]},{"id":"bf9aa396.3caf9","type":"mqtt out","z":"44e96411.c675ec","name":"ontharder","topic":"ontharder","qos":"","retain":"","broker":"9cc65095.40492","x":1060,"y":400,"wires":[]},{"id":"9bae1dfd.6ab05","type":"function","z":"44e96411.c675ec","name":"Filter","func":"var Watt = parseFloat(msg.payload.svalue1); // P1 consumption counter (low tariff)\nvar Kwh = parseFloat(msg.payload.svalue2/1000); // P2 consumption counter (high tariff)\n\nlet _msg = {\n payload: []\n};\n\n_msg.payload=\n {\t\twatt: Watt,\n\t}\n\nreturn _msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":500,"y":400,"wires":[["bf9aa396.3caf9","fb6c1125.76bdc","893f4ae6.626518"]]},{"id":"893f4ae6.626518","type":"switch","z":"44e96411.c675ec","name":"Regeneratie?","property":"payload.watt","propertyType":"msg","rules":[{"t":"gt","v":"0.3","vt":"num"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":670,"y":460,"wires":[["db95fae4.4bb9c8"],[]]},{"id":"db95fae4.4bb9c8","type":"debug","z":"44e96411.c675ec","name":"> 0.4 watt","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":740,"y":560,"wires":[]},{"id":"a64ff3d8.d3f7b","type":"mqtt in","z":"44e96411.c675ec","name":"","topic":"ontharder","qos":"2","datatype":"json","broker":"3e5cec35.6061c4","x":1000,"y":700,"wires":[["a8c6e684.daacd8"]]},{"id":"a8c6e684.daacd8","type":"debug","z":"44e96411.c675ec","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1210,"y":700,"wires":[]},{"id":"232fefac.6da5e","type":"inject","z":"44e96411.c675ec","name":"Inject 1.8 watt","props":[{"p":"payload.watt","v":"1.8","vt":"num"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":460,"y":480,"wires":[["db95fae4.4bb9c8","bf9aa396.3caf9"]]},{"id":"23006130.1d76ae","type":"inject","z":"44e96411.c675ec","name":"Inject 1.7 watt","props":[{"p":"payload.watt","v":"1.4","vt":"num"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":450,"y":520,"wires":[["bf9aa396.3caf9"]]},{"id":"3e5cec35.6061c4","type":"mqtt-broker","name":"","broker":"localhost","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"9cc65095.40492","type":"mqtt-broker","name":"","broker":"localhost","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closePayload":"","willTopic":"","willQos":"0","willPayload":""}] |
Dat vang je dan weer op in een yaml met mqtt sensoren
1
2
3
4
5
6
7
8
9
10
11
| mqtt: sensor: #read power readings from outlet - name: "Water softener Power" state_topic: "ontharder" value_template: '{{ value_json["watt"]["kwh"] }}' unit_of_measurement: "W" qos: 1 #Read last triggered state of mqtt - name: "1ater softener last triggered" state_topic: "ontharder/lasttrigger" |
[ Voor 3% gewijzigd door AUijtdehaag op 30-09-2024 16:47 ]
is het mogelijk dat ik ook nog via een mbus usb adapter op aansluit ? of zijn meerdere mbus apparaten niet mogelijk ?
Er is maar 1 MBus master mogelijk, dat zal dan de gezamelijke warmtepomp zijn?
De USB adapter is ook een MBus master dus dat gaat niet.
Meerdere MBus slaves uitlezen met 1 MBus master kan wel.
[ Voor 18% gewijzigd door AUijtdehaag op 25-11-2024 19:28 ]
geen idee eerlijk. elk appartement heeft een multical 303 en bij de warmtepomp staat ook een multical maar een grotere versie. dus dan kan ik niets uitlezen via een mbus? de 303 is heel aggressief met stroomverbruik en wordt enkel wakker met de knop. dus ir uitlezen is ook erg moeilijk daarom had ik op de mbus gehoopt.AUijtdehaag schreef op maandag 25 november 2024 @ 19:26:
@tarbax
Er is maar 1 MBus master mogelijk, dat zal dan de gezamelijke warmtepomp zijn?
De USB adapter is ook een MBus master dus dat gaat niet.
Meerdere MBus slaves uitlezen met 1 MBus master kan wel.
Batterijen zijn te vervangen van een kamstrup. Telkens uitlezen verkort ook de levensduur van de batterijen
Bij de 302 krijg je een melding in het display als je ze vervangt. Dit om fraude te voorkomen denk ik.
Ik kan me alleen bedenken dat alles naar een centraal punt is gebracht (MBus netwerk) om op afstand uit te lezen.
Dus als je gaat rommelen met de MBus connectie komen ze van zelf langs denk ik?
Hij zit er hier alweer ruim een jaar in de 303, maar batterijen zijn nog niet leeg en regelmatig nog uitlezen.
hoe lees jij hem dan uit want met mijn ir lezer valt hij voortdurend uit. heb al zoveel geprobeerd maar ik las enkele dagen geleden dat het enkel met de knop te activeren valt. klopt dit ?AUijtdehaag schreef op maandag 25 november 2024 @ 20:27:
@tarbax
Batterijen zijn te vervangen van een kamstrup. Telkens uitlezen verkort ook de levensduur van de batterijen
Bij de 302 krijg je een melding in het display als je ze vervangt. Dit om fraude te voorkomen denk ik.
Ik kan me alleen bedenken dat alles naar een centraal punt is gebracht (MBus netwerk) om op afstand uit te lezen.
Dus als je gaat rommelen met de MBus connectie komen ze van zelf langs denk ik?
Hij zit er hier alweer ruim een jaar in de 303, maar batterijen zijn nog niet leeg en regelmatig nog uitlezen.
Zou je dat adres waar je die batterij hebt gevonden hier willen delen? Ik poll mijn 302 al vier jaar lang elke minuut, dus hiervan zal de batterij ook wel eens overlijden. Dan is het handig om te weten waar ik een goed werkende batterij kan kopen.AUijtdehaag schreef op zaterdag 7 december 2024 @ 21:29:
@dunklefaser batterij was leeg
En wilde wat nieuws proberen.
En vond toen een adresje voor nieuwe batterijen. Na de inbouw
(Volgens de handleiding zitten er een of twee A-cell 3.65V batterijen in, maar die kan ik nergens vinden.)
Sorry.
Voor het geval die link ooit overlijdt:
Die verwijst naar een A-Size 17500 3.6V lithium batterij. Merk is Saft en type is LS17500.
Wat ik me nog wel afvraag: zit die batterij gewoon in een houder? En kun je die er dus gewoon inklikken? Of moet je eerst nog plaatjes of draadjes aan die batterijen solderen?
[ Voor 24% gewijzigd door Andrehj op 08-12-2024 19:50 ]
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.
Dankjewel! Die knipperende indicator lijkt me in mijn technische ruimte niet zo'n probleem.AUijtdehaag schreef op zondag 8 december 2024 @ 19:52:
Je kan hem zo plaatsen maar er volgt dan wel een knipperende INFO in het display (tamper registratie wss)
[Afbeelding]
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 heb het even nagekeken, maar dat betekent dat er nog een foutmelding opgeslagen is. Die kun je uitlezen door de knop ingedrukt te houden "until the measuring unit displays "INFO".".AUijtdehaag schreef op zondag 8 december 2024 @ 19:52:
Je kan hem ze zo plaatsen maar er volgt dan wel een knipperende INFO in het display (tamper alarm registratie wss)
Dan zal er wel info code 1 staan. Die betekent "Supply voltage has been interrupted", wat uiteraard logisch is als je de batterij vervangen hebt.
Om dat te voorkomen moet je de batterij dus vervangen met een aangesloten externe voeding van ca 3.6 V oid.
Dat zal wel een uitdaging worden.
Edit: Of gewoon per stuk vervangen! (Even aannemende dat ze parallel staan). Dan blijft de voedingspanning bij het vervangen intact. @AUijtdehaag , is dat mogelijk? Of is er een reden dat je ze eerst beide eruit moet halen voordat je de nieuwe kunt plaatsen?
[ Voor 15% gewijzigd door Andrehj op 08-12-2024 20:36 ]
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.
PVOutput Youless - 9600Wp OZO+WNW | 38° | Goodwe GW6K-DT | Mitsubishi PUHZ-SW75YAA + ERSD-VM2D | Zonneplan Nexus | Gasloos
Briljant! Waarom heb ik dat zelf niet bedacht...Robindd schreef op zondag 8 december 2024 @ 20:53:
Ik ben hem overigens gaan uitlezen alleen op momenten dat de WP ook aan staat. Scheelt nog veel meer levensduur
Ik ga binnenkort een script aanpassen denk ik.
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 heb elke minuut, en alleen wanneer de WP aan is. Die staat toch meer dan de helft van het jaar “uit” denk ik. Scheelt een berg uitlezingenAUijtdehaag schreef op zondag 8 december 2024 @ 21:30:
Iedere 2 minuten gaat ook best lang goed hoor.
PVOutput Youless - 9600Wp OZO+WNW | 38° | Goodwe GW6K-DT | Mitsubishi PUHZ-SW75YAA + ERSD-VM2D | Zonneplan Nexus | Gasloos
Anders verlies je idd ook je temp. Metingen over lange tijd. Niet dat je daar wat mee doet, maargoed..
Zal eens overwegen het te veranderen zoals ik hier boven zei.
PVOutput Youless - 9600Wp OZO+WNW | 38° | Goodwe GW6K-DT | Mitsubishi PUHZ-SW75YAA + ERSD-VM2D | Zonneplan Nexus | Gasloos
- minder dan 1 minuut: slaap 10 seconden
- minder dan 5 minuten: slaap 1 minuut
- minder dan 10 minuten: slaap 2 minuten
- minder dan 1 uur: slaap 5 minuten
- minder dan 1 dag: slaap 15 minuten
- meer dan 1 dag: slaap 1 uur
Edit: beetje zoals @Robindd hierboven zegt, maar dan met meer states.
[ Voor 8% gewijzigd door RichieB op 10-12-2024 13:14 ]
Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp
@RichieB , wat is jouw reden om zoveel verschillende intervallen te hanteren?
Je wilt toch of: uitlezen, of: niet uitlezen?
Ik zie nog niet direct een reden om bijv. mijn 10 minuten interval bij flow = 0 te veranderen naar tussenstappen.
Wanneer de flow weg is, is je vermogen weg. Dat is niet geleidelijk oid.
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+ST 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+ST 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+ST 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+ST 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+ST 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+ST 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.
:strip_exif()/f/image/TTMmwSxLIXzDVOEbG3AARnUw.jpg?f=fotoalbum_large)
:strip_exif()/f/image/0ZHcvo0POl8jaZHBoUMoJNPX.jpg?f=fotoalbum_large)
:strip_exif()/f/image/Mxufq4ZfOZCAILYQNzHNMpF1.jpg?f=fotoalbum_large)