Welke wmbus receiver heb je gevonden, als ik vragen mag?Yaldair schreef op vrijdag 28 oktober 2022 @ 13:33:
Even de vraag of ik iets mis. Ik heb van de week mijn multical 303 binnen gekregen met wmbus. Ik heb zo'n nooelec usb gekocht (zelfde als eerder in dit topic vernoemd) om hem mee uit te lezen. Vervolgens in setup RF aangezet (staat default in pauze). Hij is nu nog niet aangesloten, maar met weetmus/wmbusmeters krijg ik geen signaal. Ik weet alleen niet of hij uberhaupt een RF signaal uit stuurt in "transport mode" ookal staat RF wel aan (icoontje wordt ook weergegeven).
Ik probeer dit alles op een raspberry pi:
1) rtl-sdr geinstalleerd m.b.v.: git clone https://gitea.osmocom.org/sdr/rtl-sdr.git
2) rtl-wmbus geinstalleerd m.b.v.: https://github.com/xaelsouth/rtl-wmbus.git
3) wmbusmeters geinstalleerd m.b.v. https://github.com/weetmuts/wmbusmeters.git
4) standaard dvb driver geblacklist
Dus, als ik nu draai: wmbusmeters auto:c1 dan vind hij de USB en gaat hij op zoek naar berichten.
Nu leg ik de multical er naast, maar toch ontvang hij geen signaal. Key heb ik in theorie beschikaar (mailtje gestuurd naar Kamstrup), maar volgens mij moet ik nu toch al een signaal ontvangen.
Dus, 2 opties denk ik: 1) multical stuurt geen signaal uit, of 2) ik ontvang het signaal niet. Iemand een idee wat ik mis?
Update: nu werkend gekregen. Had frequentie 868.85M nodig, i.p.v. 868.65M waar hij standaard mee draait. En t1 i.p.v. c1
@ZwartoogNooelec NESDR Mini 2 USB RTL-SDR-... https://www.amazon.nl/dp/...x_pop_mob_ap_sharewartoog
Is degene die ik gekocht heb.
Is degene die ik gekocht heb.
Thanks!
Ik heb dus een 303 met wireless mbus. Weet iemand of je die alsnog bedraad kunt aansluiten als je hem open maakt?
Ik heb dus een 303 met wireless mbus. Weet iemand of je die alsnog bedraad kunt aansluiten als je hem open maakt?
@Zwartoog volgens mij kan dat niet. Lijkt me ook beetje groot risico om te doen prijstechnisch t.o.v. wireless receiver kopen. Reden om niet wireless te gebruiken?
Prijs en betrouwbaarheid. Wireless receiver kost 33 euro, wireless key nog eens 25 zoals ik begreep (die QR-pagina van Kamstrup lijkt al een week uit de lucht). Wired mbus adapter is ~20 euro, en zit gewoon "vast" aan die meter.Yaldair schreef op dinsdag 3 januari 2023 @ 11:03:
@Zwartoog volgens mij kan dat niet. Lijkt me ook beetje groot risico om te doen prijstechnisch t.o.v. wireless receiver kopen. Reden om niet wireless te gebruiken?
Stroomverbruik misschien nog iets? Wat is de updatefrequentie van de wmbus?
@Zwartoog Ik heb niks hoeven betalen voor de key. Heb factuur gemaild van Amazon en toen werd de key aan mijn account toegevoegd. Enige waar ik voor heb moeten betalen was de noelec zelf. Had al een Raspberry daar staan. Update frequentie varieert een beetje (of ik mis soms een package misschien) maaar ligt rond de 15 seconden. Zou dan levensduur moeten hebben van wat jaar.
Heb toen gemaild richting: mykamstrup@kamstrup.com
En mijn account doorgegeven. Zij vroegen toen naar de factuur van de supplier, die doorgegeven en toen kreeg ik de key in mijn account
Heb toen gemaild richting: mykamstrup@kamstrup.com
En mijn account doorgegeven. Zij vroegen toen naar de factuur van de supplier, die doorgegeven en toen kreeg ik de key in mijn account
[ Voor 21% gewijzigd door Yaldair op 03-01-2023 11:30 ]
Oh, dat is goed te doen! Ga ik die eens opvragen.Yaldair schreef op dinsdag 3 januari 2023 @ 11:28:
@Zwartoog Ik heb niks hoeven betalen voor de key. Heb factuur gemaild van Amazon en toen werd de key aan mijn account toegevoegd. Enige waar ik voor heb moeten betalen was de noelec zelf. Had al een Raspberry daar staan. Update frequentie varieert een beetje (of ik mis soms een package misschien) maaar ligt rond de 15 seconden. Zou dan levensduur moeten hebben van wat jaar.
Heb toen gemaild richting: mykamstrup@kamstrup.com
En mijn account doorgegeven. Zij vroegen toen naar de factuur van de supplier, die doorgegeven en toen kreeg ik de key in mijn account
'k Had voor de zekerheid de installatiekit vooraf laten sturen aangezien m'n Kamstrup pas eind januari beschikbaar zou zijn. Maar -verrassing- hij is voor het weekend al verzonden en inmiddels in huis.dof schreef op donderdag 29 december 2022 @ 15:18:
Ik heb inmiddels ook maar een Kamstrup 303-WA02DB-71120 besteld met toebehoren (1" installatiekit, 2 van die messing buisjes en paar ringen). Wel nadat ik ze even per email gevraagd had wanneer ze beschikbaar zijn en verzonden worden.
Ze wisten niet in welke week van januari ze deze binnenkregen, maar worden uitgeleverd op volgorde van orders.
Ook gevraagd of ze de installatiekit vooruit wilden zenden, maar daar nog geen reactie op gehad en is natuurlijk ook twee keer verzendkosten. Een paar kogelkranen met zo'n buisje ertussen kan ik wel fabriceren, maar zo'n kogelkraan waar zo'n voeler in kan is natuurlijk even teveel geknutsel.![]()
Enfin, maar even afwachten en bij installatie van m'n WP (planning: in niet te koude weken van januari :-) en maar zo goed mogelijk op voorbereiden om deze ertussen te plaatsen.
EDIT1: Nee, ze wilden de installatiekit niet vooruit zenden tenzij ik het in twee bestellingen splits. Enfin, ik kijk het eerst even aan. Qua levertijd geven ze nu een estimate van laatste week januari.
EDIT2: Kreeg vanmorgen toch aanbod om de installatiekit meteen naar mij te verzenden, voor 12€ verzendkosten. Goed aanbod en aangenomen. Installatiekit is inmiddels onderweg.
EDIT3: Inmiddels ontvangen (3 jan '23)
Achteraf dus onnodig geweest die kit vooraf te laten komen...
Anyway, deze Kamstrups zijn blijkbaar weer voorradig.
Gasloos sinds feb23, WP: Pana Mono 9j, WPB: Auer Air 200l, PV: 14x290 Wp
Ik heb inmiddels ook m'n nooelec dongle binnen, en bezig met aan de praat te krijgen. Super dat je dit hebt opgeschreven!Yaldair schreef op vrijdag 28 oktober 2022 @ 13:33:
Even de vraag of ik iets mis. Ik heb van de week mijn multical 303 binnen gekregen met wmbus. Ik heb zo'n nooelec usb gekocht (zelfde als eerder in dit topic vernoemd) om hem mee uit te lezen. Vervolgens in setup RF aangezet (staat default in pauze). Hij is nu nog niet aangesloten, maar met weetmus/wmbusmeters krijg ik geen signaal. Ik weet alleen niet of hij uberhaupt een RF signaal uit stuurt in "transport mode" ookal staat RF wel aan (icoontje wordt ook weergegeven).
Ik probeer dit alles op een raspberry pi:
1) rtl-sdr geinstalleerd m.b.v.: git clone https://gitea.osmocom.org/sdr/rtl-sdr.git
2) rtl-wmbus geinstalleerd m.b.v.: https://github.com/xaelsouth/rtl-wmbus.git
3) wmbusmeters geinstalleerd m.b.v. https://github.com/weetmuts/wmbusmeters.git
4) standaard dvb driver geblacklist
Dus, als ik nu draai: wmbusmeters auto:c1 dan vind hij de USB en gaat hij op zoek naar berichten.
Nu leg ik de multical er naast, maar toch ontvang hij geen signaal. Key heb ik in theorie beschikaar (mailtje gestuurd naar Kamstrup), maar volgens mij moet ik nu toch al een signaal ontvangen.
Dus, 2 opties denk ik: 1) multical stuurt geen signaal uit, of 2) ik ontvang het signaal niet. Iemand een idee wat ik mis?
Update: nu werkend gekregen. Had frequentie 868.85M nodig, i.p.v. 868.65M waar hij standaard mee draait. En t1 i.p.v. c1
Ik heb voor bovenstaande een scriptje gemaakt voor het gemak:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
| #!/bin/bash # Prepare build environment INSTALLDIR=~/wmbus_packages mkdir $INSTALLDIR # Get required packages sudo apt-get install cmake libusb-1.0-0-dev libncurses-dev # Build and install rtl-sdr cd $INSTALLDIR git clone https://gitea.osmocom.org/sdr/rtl-sdr.git mkdir rtl-sdr/build cd rtl-sdr/build cmake ../ make sudo make install sudo ldconfig cmake ../ -DINSTALL_UDEV_RULES=ON sudo cp ../rtl-sdr.rules /etc/udev/rules.d/ # Build and install rtl-wmbus cd $INSTALLDIR git clone https://github.com/xaelsouth/rtl-wmbus.git cd rtl-wmbus make release # Build and install wmbusmeters cd $INSTALLDIR git clone https://github.com/weetmuts/wmbusmeters.git cd wmbusmeters ./configure make sudo make install sudo systemctl enable wmbusmeters sudo systemctl daemon-reload # Blacklist dvb module sudo sh -c 'echo blacklist dvb_usb_rtl28xxu > /etc/modprobe.d/blacklist-dvb_usb_rtl28xxu.conf' # Ready to go! echo "Done! Plug in the dongle and press ENTER" read PATH=$PATH:$INSTALLDIR/rtl-wmbus/build wmbusmeters auto:t1 echo "Congrats! You have now a working wmbus!" |
Ik heb echter nergens de frequentie hoeven aan te passen. Waar deed je dat precies?
Ik heb het script nog niet in een clean install getest, maar ben verder gegaan met node-red volgens deze post:
blb4 in "Kamstrup Multical 302 met Pi uitlezen en domoticz"
Daarnaast heb ik ook de node-red-contrib-wmbus-client geïnstalleerd.
En daar loop ik vast... De output van wmbusmeters was:
code:
1
2
3
4
5
6
7
| Received telegram from: 82848073 manufacturer: (KAM) Kamstrup Energi (0x2c2d) type: Heat volume at inlet meter (0x0c) encrypted ver: 0x40 device: rtlwmbus[00000001] rssi: 136 dBm driver: unknown! |
dus ik heb 82848073 gebruikt als adres in Node Red:
/f/image/fKC73DBJ05eYd5UfTI0xq0Sn.png?f=fotoalbum_large)
Hij lijkt hem niet te herkennen, en ik heb een idee waar ik de key file van de Kamstrup moet laten.
@Zwartoog
Ik heb in mijn wmbusmeters.conf het volgende staan:
Op deze manier published mijn raspberry meteen de readings naar mqtt.
en je moest dan een wmbusmeters.d je key toevoegen. Zie ook github.com/weetmuts/
Ik heb in mijn wmbusmeters.conf het volgende staan:
code:
1
2
3
4
5
6
7
8
9
| loglevel=debug # Remember to change auto here to the device you are going to use in production. device=rtlwmbus:868.85M:t1 logtelegrams=false format=json #meterfiles=/home/pi/.config/wmbusmeters/meter_readings #meterfilesaction=overwrite logfile=/home/pi/.config/wmbusmeters/wmbusmeters.log shell=/usr/bin/mosquitto_pub -u USEr -P PASSWORD -h MQTT_SERVER -p 1883 -t wmbusmeters/$METER_ID -m "$METER_JSON" |
Op deze manier published mijn raspberry meteen de readings naar mqtt.
en je moest dan een wmbusmeters.d je key toevoegen. Zie ook github.com/weetmuts/
code:
1
2
3
4
5
6
| Then add a meter file in /etc/wmbusmeters.d/MyTapWater name=MyTapWater id=12345678 key=00112233445566778899AABBCCDDEEFF driver=multical21 |
Thanks, ga ik dat vanavond proberen. Maar je gebruikt dus geen Node-Red ertussen?Yaldair schreef op woensdag 11 januari 2023 @ 11:56:
@Zwartoog
Ik heb in mijn wmbusmeters.conf het volgende staan:
code:
1 2 3 4 5 6 7 8 9 loglevel=debug # Remember to change auto here to the device you are going to use in production. device=rtlwmbus:868.85M:t1 logtelegrams=false format=json #meterfiles=/home/pi/.config/wmbusmeters/meter_readings #meterfilesaction=overwrite logfile=/home/pi/.config/wmbusmeters/wmbusmeters.log shell=/usr/bin/mosquitto_pub -u USEr -P PASSWORD -h MQTT_SERVER -p 1883 -t wmbusmeters/$METER_ID -m "$METER_JSON"
Op deze manier published mijn raspberry meteen de readings naar mqtt.
en je moest dan een wmbusmeters.d je key toevoegen. Zie ook github.com/weetmuts/
code:
1 2 3 4 5 6 Then add a meter file in /etc/wmbusmeters.d/MyTapWater name=MyTapWater id=12345678 key=00112233445566778899AABBCCDDEEFF driver=multical21
@Zwartoog in principe niet. Behalve dat ik nog niet uitgevogeld heb om in telegraf/influxdb json berichten uit te lezen en die zo naar de database te schrijven. Dus nu heb ik de extra stap dat ik in nodered het mqtt berichtje uit lees, daar de benodigde data uit haal, en weer via mqtt publish richting telegraf zodat het mooi gelogd is. Denk dat dit ook moet kunnen zonder de nodered stap, maar dat heb ik nog niet uitgevogeld
Ok, ik kom ergens!Yaldair schreef op woensdag 11 januari 2023 @ 15:29:
@Zwartoog in principe niet. Behalve dat ik nog niet uitgevogeld heb om in telegraf/influxdb json berichten uit te lezen en die zo naar de database te schrijven. Dus nu heb ik de extra stap dat ik in nodered het mqtt berichtje uit lees, daar de benodigde data uit haal, en weer via mqtt publish richting telegraf zodat het mooi gelogd is. Denk dat dit ook moet kunnen zonder de nodered stap, maar dat heb ik nog niet uitgevogeld
Aantal dingen:
1. rtl-sdr wordt standaard in /usr/local/bin geïnstalleerd, terwijl wmbusmeters alleen in /usr/bin/ zoekt. Dit kun je oplossen door rtl-sdr te configureren met:
code:
1
| cmake ../ -DINSTALL_UDEV_RULES=ON -DCMAKE_INSTALL_PREFIX=/usr |
dan komt hij gelijk in /usr/bin/ te staan.
2. Key van de Kamstrup kun je alleen krijgen via de XML versie, dan staat hij in de <DEK> tag. Geen idee waarom hij via de CSV niet te vinden is.
3. Mijn Multical werd niet herkend. Ik heb aan de wmbusmeters/src/driver_kamheat.cc mijn tagline toegevoegd:
code:
1
| di.addDetection(MANUFACTURER_KAM, 0x0c, 0x40); // 303 |
Blijkbaar een nieuwe 303. Zal deze versie binnenkort committen.
4. Mijn wmbusmeter configs nu:
wmbusmeter.conf
code:
1
2
3
4
5
6
7
8
| loglevel=normal # Remember to change auto here to the device you are going to use in production. device=rtlwmbus:t1 logtelegrams=true format=json meterfiles=/var/lib/wmbusmeters/meter_readings meterfilesaction=overwrite logfile=/var/log/wmbusmeters/wmbusmeters.log |
Ik heb hier geen andere frequentie hoeven te kiezen, ik kreeg op jouw frequentie @Yaldair niets binnen. Welke meter heb je precies?
wmbusmeter.d/kamstrup
code:
1
2
3
4
| name=Kamstrup id=82848073 key=AAABBBCCCDDDEEEFFF00011122233344 driver=kamheat |
Dus id is de ID van je meter (staat in je telegram), key is de DEK uit de XML file. Driver is kamheat.
Goed, in m'n /var/log/wmbusmeters/wmbusmeters.log krijg ik nu netjes de decoded telegrams binnen:
code:
1
2
3
4
5
6
7
8
| (wmbusmeters) logging started 2023-01-12 21:21:33 using 1.11.0-29-ge7d723f with local changes [2023-01-12_21:21:33] Started config rtlwmbus[00000001] listening on t1 (wmbusmeters) waiting for telegrams [2023-01-12_21:21:35] (memory) rss 4247552 peak 4.05 MiB (wmbusmeters) started meter 1 (Kamstrup 82848073 kamheat) telegram=|5E442D2C73808482400C7A910050252F2F_04057B1400000413BBF8030004FF077C47010004FF08A939010002592306025D5406023B000002FF220000026CEC2144052F000000441302AD0000426CE1212F2F2F2F2F2F2F2F2F2F2F2F2F2F2F|+8 telegram=|5E442D2C73808482400C7A920050252F2F_04057B1400000413BBF8030004FF077C47010004FF08A939010002592306025D5406023B000002FF220000026CEC2144052F000000441302AD0000426CE1212F2F2F2F2F2F2F2F2F2F2F2F2F2F2F|+24 ... |
en in /var/lib/wmbusmeters/meter_readings/Kamstrup steeds een nieuwe meterstand:
code:
1
| {"media":"heat volume at inlet","meter":"kamheat","name":"Kamstrup","id":"82848073","status":"OK","total_energy_consumption_kwh":524.3,"total_volume_m3":260.283,"volume_flow_m3h":0,"t1_temperature_c":15.2,"t2_temperature_c":15.7,"forward_energy_m3c":83836,"return_energy_m3c":80297,"meter_date":"2023-01-12","target_energy_kwh":4.7,"target_volume_m3":44.29,"target_date":"2023-01-01","timestamp":"2023-01-12T21:34:37Z","device":"rtlwmbus[00000001]","rssi_dbm":119} |
Goed, blij voor vandaag
Bovenstaande moet toch linksom of rechtsom eenvoudig te parsen zijn naar Domoticz. Meest dirty manier die ik nu kan bedenken is een scriptje die deze data via een http-push registreren, maar kan wellich eleganter
Edit: bovenstaande is niet eens zo gek. Via 'shell' kun je een script uitvoeren, en je krijgt de meterstanden in je environment:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| declare -x METER_DEVICE="rtlwmbus[00000001]" declare -x METER_FORWARD_ENERGY_M3C="83836" declare -x METER_ID="82848073" declare -x METER_JSON="{\"media\":\"heat volume at inlet\",\"meter\":\"kamheat\",\"name\":\"Kamstrup\",\"id\":\"82848073\",\"status\":\"OK\",\"total_energy_consumption_kwh\":524.3,\"total_volume_m3\":260.283,\"volume_flow_m3h\":0,\"t1_temperature_c\":14.11,\"t2_temperature_c\":14.47,\"forward_energy_m3c\":83836,\"return_energy_m3c\":80297,\"meter_date\":\"2023-01-12\",\"target_energy_kwh\":4.7,\"target_volume_m3\":44.29,\"target_date\":\"2023-01-01\",\"timestamp\":\"2023-01-12T22:24:16Z\",\"device\":\"rtlwmbus[00000001]\",\"rssi_dbm\":133}" declare -x METER_MAX_FLOW_M3H="null" declare -x METER_MAX_POWER_KW="null" declare -x METER_MEDIA="heat volume at inlet" declare -x METER_METER_DATE="2023-01-12" declare -x METER_NAME="Kamstrup" declare -x METER_ON_TIME_Hour="null" declare -x METER_POWER_KW="null" declare -x METER_RETURN_ENERGY_M3C="80297" declare -x METER_RSSI_DBM="133" declare -x METER_STATUS="OK" declare -x METER_T1_TEMPERATURE_C="14.11" declare -x METER_T2_TEMPERATURE_C="14.47" declare -x METER_TARGET_DATE="2023-01-01" declare -x METER_TARGET_ENERGY_KWH="4.7" declare -x METER_TARGET_VOLUME_M3="44.29" declare -x METER_TIMESTAMP="2023-01-12T22:24:16Z" declare -x METER_TIMESTAMP_LT="2023-01-12 22:24.16" declare -x METER_TIMESTAMP_UT="1673562256" declare -x METER_TIMESTAMP_UTC="2023-01-12T22:24:16Z" declare -x METER_TOTAL_ENERGY_CONSUMPTION_KWH="524.3" declare -x METER_TOTAL_VOLUME_M3="260.283" declare -x METER_TYPE="kamheat" declare -x METER_VOLUME_FLOW_M3H="0" |
Dan is het natuurlijk heel triviaal om via een http-request de boel te pushen naar Domoticz.
[ Voor 20% gewijzigd door Zwartoog op 12-01-2023 23:26 ]
@Ramon_1984
De juiste serial port ingevuld?
Ik gebruik altijd de hardware id ipv de /dev/ttyusb_huppelepup
/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A105W07X-if00-port0
(het nummer kan anders zijn)
Zit je op docker of een virtual machine eventueel waar de poorten niet doorkomen?
De juiste serial port ingevuld?
Ik gebruik altijd de hardware id ipv de /dev/ttyusb_huppelepup
/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A105W07X-if00-port0
(het nummer kan anders zijn)
Zit je op docker of een virtual machine eventueel waar de poorten niet doorkomen?
[ Voor 49% gewijzigd door AUijtdehaag op 15-01-2023 20:53 ]
AUijtdehaag schreef op zondag 15 januari 2023 @ 20:48:
@Ramon_1984
De juiste serial port ingevuld?
Ik gebruik altijd de hardware id ipv de /dev/ttyusb_huppelepup
/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A105W07X-if00-port0
(het nummer kan anders zijn)
Zit je op docker of een virtual machine eventueel waar de poorten niet doorkomen?
/f/image/GMCRYW5Vlixn5UXFHSnvh1w5.png?f=fotoalbum_large)
@AUijtdehaag Alles draait op een pi4, iets blokkeert de poorten lijkt het wel
Zo moeilijk kan het toch zijn
[ Voor 3% gewijzigd door Ramon_1984 op 15-01-2023 21:06 ]
@Ramon_1984
Je kan diezelfde regel ook vinden in HA onder hardware
:strip_exif()/f/image/yl7JonopnJCe11QuGnxszwDs.jpg?f=fotoalbum_large)
Misschien deploy - restart flows doen en even geduld hebben?
@Ramon_1984 Haal die 0 eens weg voor het kamstrup nummer.
Die is teveel denk ik
dus
Nee toch niet. 8 cijfers en letters voor 2D2C4004 heb ik ook
Je kan diezelfde regel ook vinden in HA onder hardware
:strip_exif()/f/image/yl7JonopnJCe11QuGnxszwDs.jpg?f=fotoalbum_large)
Misschien deploy - restart flows doen en even geduld hebben?
@Ramon_1984 Haal die 0 eens weg voor het kamstrup nummer.
Die is teveel denk ik
dus
code:
1
| {"address": "68453502D2C4004"} |
Nee toch niet. 8 cijfers en letters voor 2D2C4004 heb ik ook
[ Voor 21% gewijzigd door AUijtdehaag op 15-01-2023 21:17 ]
/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A10M3G8K-if00-port0 staat in de hardware lijst, die heb ik gekopieerdAUijtdehaag schreef op zondag 15 januari 2023 @ 21:07:
@Ramon_1984
Je kan diezelfde regel ook vinden in HA onder hardware
[Afbeelding]
Misschien deploy - restart flows doen en even geduld hebben?
@Ramon_1984 Haal die 0 eens weg voor het kamstrup nummer.
Die is teveel denk ik
Zonder 0 wekt de communicatiet nog steeds niet
@AUijtdehaag ik maak trouwens wel gebruik van een kamstrup 601, maakt dat uit?
[ Voor 8% gewijzigd door Ramon_1984 op 15-01-2023 21:25 ]
@Ramon_1984
Bizar.
Indien het nummer verkeerd is krijg je een andere foutmelding dus dat is het niet.
Hij lijkt hem gewoon niet te zien via de usb.....
Ik kan de hele flow nog wel eens posten met alle toeters en bellen eraan?
Kamstrup 601?
Ik weet niet of dat zo 1-2-3 ook werkt.
Maar als MBus sheet wel werkt dan zal het wel.
Komt de baud rate overeen?
Bizar.
Indien het nummer verkeerd is krijg je een andere foutmelding dus dat is het niet.
Hij lijkt hem gewoon niet te zien via de usb.....
Ik kan de hele flow nog wel eens posten met alle toeters en bellen eraan?
Kamstrup 601?
Ik weet niet of dat zo 1-2-3 ook werkt.
Maar als MBus sheet wel werkt dan zal het wel.
Komt de baud rate overeen?
[ Voor 22% gewijzigd door AUijtdehaag op 15-01-2023 21:28 ]
Ik vond de juiste serial port door gewoon op 't vraagteken te drukken. Als je dat doet met/zonder adapter zie je welke er bij komt als de adapter is aangesloten en die vul je dan in. Tenminste, zo werkte 't bij mij. ook een Pi4.AUijtdehaag schreef op zondag 15 januari 2023 @ 21:26:
@Ramon_1984
Bizar.
Indien het nummer verkeerd is krijg je een andere foutmelding dus dat is het niet.
Hij lijkt hem gewoon niet te zien via de usb.....
Ik kan de hele flow nog wel eens posten met alle toeters en bellen eraan?
/f/image/3HU4yuSnaCpohJsWTqZqSKIR.png?f=fotoalbum_large)
En bij mij dus een heel simpel poortnaam, zou zeggen dat 't op een PI4 dan toch ook zoiets moet wezen?
[ Voor 5% gewijzigd door blb4 op 15-01-2023 21:29 ]
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
maar om 't nu werkend te krijgen lijkt dit mij 't simpelste voor @Ramon_1984. Hoe vind ik die vast poortnaam? Mij Pi draait inmiddels al weer 41 dagen zie ik
.
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
Daar lijkt het inderdaad wel opAUijtdehaag schreef op zondag 15 januari 2023 @ 21:26:
@Ramon_1984
Bizar.
Indien het nummer verkeerd is krijg je een andere foutmelding dus dat is het niet.
Hij lijkt hem gewoon niet te zien via de usb.....
Ik kan de hele flow nog wel eens posten met alle toeters en bellen eraan?
Kamstrup 601?
Ik weet niet of dat zo 1-2-3 ook werkt.
Maar als MBus sheet wel werkt dan zal het wel.
Komt de baud rate overeen?

Post de hele flow nog maar een keertje
Dat werkt niet , hij is alleen vindbaar door naar instellingen ----> hardware ---> alle hardware te gaanblb4 schreef op zondag 15 januari 2023 @ 21:28:
[...]
Ik vond de juiste serial port door gewoon op 't vraagteken te drukken. Als je dat doet met/zonder adapter zie je welke er bij komt als de adapter is aangesloten en die vul je dan in. Tenminste, zo werkte 't bij mij. ook een Pi4.
[Afbeelding]
En bij mij dus een heel simpel poortnaam, zou zeggen dat 't op een PI4 dan toch ook zoiets moet wezen?
Groene ledje op de mbus adapter knippert ook, dus het lijkt te werken , maar toch ook weer niet

[ Voor 6% gewijzigd door Ramon_1984 op 15-01-2023 21:38 ]
Dat lijkt mij dan al wel een veeg teken. Maar ik heb niet zoveel kennis van PI's en externe hardware/poorten op zo'n ding. Ik was blij dat 't bij mij zo werkte.Ramon_1984 schreef op zondag 15 januari 2023 @ 21:36:
[...]
Dat werkt niet , hij is alleen vindbaar door naar instellingen ----> hardware ---> alle hardware te gaan
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
@Ramon_1984
Heb er wel in liggen snijden, omdat de flow bij iemand anders draait, incl MBus kWh meters.
Maar die heb ik eruit gehaald.
Eerst maar eens verbinding krijgen met de kamstrup.
Registers zullen ook anders zijn dan de 302 verwacht ik.
en even in debug window kijken (rechter deel vh scherm - BUG symbooltje klikken)
Heb er wel in liggen snijden, omdat de flow bij iemand anders draait, incl MBus kWh meters.
Maar die heb ik eruit gehaald.
Eerst maar eens verbinding krijgen met de kamstrup.
Registers zullen ook anders zijn dan de 302 verwacht ik.
code:
1
| [{"id":"f865518d9aa4229a","type":"tab","label":"Mbus","disabled":false,"info":""},{"id":"d29d442dc1a2b2c0","type":"mbus-out","z":"f865518d9aa4229a","name":"","client":"ce865fca58584146","x":490,"y":200,"wires":[["64aa4b0caf571a05"]]},{"id":"64aa4b0caf571a05","type":"debug","z":"f865518d9aa4229a","name":"","active":true,"console":false,"complete":"false","x":770,"y":200,"wires":[]},{"id":"25391937be70d8d7","type":"mbus-controller","z":"f865518d9aa4229a","name":"","client":"ce865fca58584146","x":530,"y":300,"wires":[["cf63801613c34166","2e8ae61859d45968","886617b12e8c939c"]]},{"id":"ed8cf31caea1dcfb","type":"inject","z":"f865518d9aa4229a","name":"scan","repeat":"","crontab":"","once":false,"topic":"scan","payload":"","payloadType":"str","x":150,"y":100,"wires":[["25391937be70d8d7"]]},{"id":"2e8ae61859d45968","type":"debug","z":"f865518d9aa4229a","name":"","active":true,"console":false,"complete":"false","x":870,"y":360,"wires":[]},{"id":"e27a8a64b7f4a4ad","type":"inject","z":"f865518d9aa4229a","name":"Read ID 1","repeat":"","crontab":"","once":false,"topic":"getDevice","payload":"{\"address\": 1}","payloadType":"json","x":160,"y":180,"wires":[["25391937be70d8d7"]]},{"id":"380b14852e120384","type":"inject","z":"f865518d9aa4229a","name":"Get Devices","repeat":"60","crontab":"","once":true,"onceDelay":"","topic":"getDevices","payload":"","payloadType":"str","x":180,"y":260,"wires":[["25391937be70d8d7"]]},{"id":"cf63801613c34166","type":"ui_template","z":"f865518d9aa4229a","group":"d27938f9935499c1","name":"mbus-table","order":0,"width":"14","height":"10","format":"<table>\n <tr>\n <th>ID</th>\n <th>Primary ID</th>\n <th>Info</th>\n <th>Data</th>\n <th>Last Update</th>\n <th>Status</th>\n </tr>\n <tr style=\"cursor:pointer;\" ng-click=\"showData(device)\" ng-repeat=\"(id, device) in devices\">\n <td>{{ device.secondaryID }}</td>\n <td>{{ device.primaryID }}</td>\n <td ng-bind-html=\"getInfo(device)\"></td>\n <td>{{ device.DataRecord.length }}</td>\n <td>{{ device.lastUpdate }}</td>\n <td>\n <div class=\"online\" ng-style=\"{background: !device.error ? '#4CAF50' : '#f44336'}\">\n <md-tooltip md-direction=\"bottom\">{{ device.error ? device.error : 'OK' }}</md-tooltip>\n </div>\n </td>\n </tr>\n</table>\n\n<style>\ntable {\n border-collapse: collapse;\n width: 100%;\n}\n\nth, td{\n text-align: left;\n padding: 8px;\n background-color: #f2f2f2;\n color: black;\n}\n\nth {\n background-color: #4CAF50;\n color: white;\n}\n\n.online {\n\tbackground:#ff3333;\n\twidth:20px;\n\theight:20px;\n\tmargin:0 auto;\n\t-webkit-border-radius:50%;\n\t-moz-border-radius:50%;\n\tborder-radius:50%;\n}\n</style>\n\n<script>\n\n\n(function(scope) {\n \n scope.send({topic: 'getDevices'});\n scope.devices = [];\n \n scope.showData = function(device){\n scope.send({topic: 'deviceData', payload: device});\n }\n \n scope.getInfo = function(device){\n var text = '';\n var info = device.SlaveInformation;\n \n for(key in info){\n text += `<p><b>${key}</b>: ${info[key]}</p>`;\n }\n \n return text;\n }\n\n scope.$watch('msg', function(data) {\n if(data && data.topic){\n switch(data.topic){\n case \"getDevices\":\n if(data.payload && data.payload.devices)\n scope.devices = data.payload.devices;\n break;\n }\n }\n });\n \n})(scope);\n\n</script>\n","storeOutMessages":false,"fwdInMessages":false,"templateScope":"local","x":730,"y":300,"wires":[["5d439686be0ac4c3"]]},{"id":"54532b5aabe03d97","type":"inject","z":"f865518d9aa4229a","name":"restart","repeat":"","crontab":"","once":false,"topic":"restart","payload":"","payloadType":"num","x":150,"y":140,"wires":[["25391937be70d8d7"]]},{"id":"5d439686be0ac4c3","type":"ui_template","z":"f865518d9aa4229a","group":"076f982652a53bad","name":"data-table","order":0,"width":"14","height":"10","format":"<p><b>Device ID:</b> {{ID}} </p>\n\n<br>\n<br>\n\n<table>\n <tr>\n <th>ID</th>\n <th>Function</th>\n <th>Unit</th>\n <th>Value</th>\n <th>Timestamp</th>\n </tr>\n <tr ng-repeat=\"(key, data) in deviceData\">\n <td>{{ data.id }}</td>\n <td>{{ data.Function }}</td>\n <td>{{ data.Unit }}</td>\n <td>{{ data.Value }}</td>\n <td>{{ data.Timestamp }}</td>\n </tr>\n</table>\n\n<style>\ntable {\n border-collapse: collapse;\n width: 100%;\n}\n\nth, td{\n text-align: left;\n padding: 8px;\n background-color: #f2f2f2;\n color: black;\n}\n\nth {\n background-color: #4CAF50;\n color: white;\n}\n\n.online {\n\tbackground:#ff3333;\n\twidth:20px;\n\theight:20px;\n\tmargin:0 auto;\n\t-webkit-border-radius:50%;\n\t-moz-border-radius:50%;\n\tborder-radius:50%;\n}\n</style>\n\n<script>\n\n\n(function(scope) {\n \n scope.deviceData = [];\n scope.ID = '';\n\n scope.$watch('msg', function(data) {\n if(data && data.topic){\n switch(data.topic){\n case \"deviceData\":\n if(data.payload){\n scope.deviceData = data.payload.DataRecord;\n scope.ID = data.payload.SlaveInformation.Id;\n }\n break;\n }\n }\n });\n \n})(scope);\n\n</script>\n","storeOutMessages":false,"fwdInMessages":false,"templateScope":"local","x":900,"y":300,"wires":[[]]},{"id":"ddd5e60920a23ad5","type":"inject","z":"f865518d9aa4229a","name":"Read ID 2","repeat":"","crontab":"","once":false,"topic":"getDevice","payload":"{\"address\": 2}","payloadType":"json","x":160,"y":220,"wires":[["25391937be70d8d7"]]},{"id":"97fe3cea3dd78893","type":"ui_button","z":"f865518d9aa4229a","name":"Scan","group":"f9c67b3519fdb234","order":3,"width":"2","height":"1","passthru":false,"label":"Scan","color":"","bgcolor":"","icon":"location_searching","payload":"","payloadType":"str","topic":"scan","x":130,"y":340,"wires":[["25391937be70d8d7"]]},{"id":"f4591fad97effe88","type":"ui_button","z":"f865518d9aa4229a","name":"Restart","group":"f9c67b3519fdb234","order":4,"width":"3","height":"1","passthru":false,"label":"Restart","color":"","bgcolor":"","icon":"refresh","payload":"","payloadType":"str","topic":"restart","x":140,"y":380,"wires":[["25391937be70d8d7"]]},{"id":"bf6e8184b1036eae","type":"ui_button","z":"f865518d9aa4229a","name":"GetDevices","group":"f9c67b3519fdb234","order":5,"width":"3","height":"1","passthru":false,"label":"Update Devices","color":"","bgcolor":"","icon":"refresh","payload":"","payloadType":"str","topic":"getDevices","x":150,"y":420,"wires":[["25391937be70d8d7"]]},{"id":"56835618461e0449","type":"ui_button","z":"f865518d9aa4229a","name":"readAddress","group":"f9c67b3519fdb234","order":2,"width":"3","height":"1","passthru":false,"label":"Read Device","color":"","bgcolor":"","icon":"","payload":"deviceID","payloadType":"flow","topic":"getDevice","x":151,"y":457,"wires":[["55994e356bc01d41"]]},{"id":"509e91d18c57d3a9","type":"ui_text_input","z":"f865518d9aa4229a","name":"Device_ID","label":"ID: ","group":"f9c67b3519fdb234","order":1,"width":"3","height":"1","passthru":true,"mode":"text","delay":300,"topic":"","x":149,"y":618,"wires":[["4ff922eb25f7b57b"]]},{"id":"4ff922eb25f7b57b","type":"function","z":"f865518d9aa4229a","name":"storeID","func":"\nflow.set('deviceID', msg.payload);\n\nreturn msg;","outputs":0,"noerr":0,"x":325,"y":618,"wires":[]},{"id":"55994e356bc01d41","type":"function","z":"f865518d9aa4229a","name":"readAddr","func":"var data = {address: msg.payload}\n\nmsg.payload = data;\n\nreturn msg;","outputs":1,"noerr":0,"x":309,"y":457,"wires":[["25391937be70d8d7"]]},{"id":"d8f8f4e78e68774f","type":"status","z":"f865518d9aa4229a","name":"controller_status","scope":["25391937be70d8d7"],"x":420,"y":60,"wires":[["2db5223e4cf95d6c"]]},{"id":"645047f2aaeb7378","type":"status","z":"f865518d9aa4229a","name":"mbus_status","scope":["d29d442dc1a2b2c0"],"x":413,"y":105,"wires":[["dcd216406a52d663"]]},{"id":"2db5223e4cf95d6c","type":"ui_text","z":"f865518d9aa4229a","group":"6c2bd694a5b1c9b1","order":0,"width":0,"height":0,"name":"controller_status","label":"Controller","format":"{{msg.status.text}}","layout":"row-spread","x":632,"y":60,"wires":[]},{"id":"dcd216406a52d663","type":"ui_text","z":"f865518d9aa4229a","group":"6c2bd694a5b1c9b1","order":0,"width":0,"height":0,"name":"mbus_status","label":"M-Bus","format":"{{msg.status.text}}","layout":"row-spread","x":622,"y":105,"wires":[]},{"id":"08b78e2be720569d","type":"inject","z":"f865518d9aa4229a","name":"setPrimary","repeat":"","crontab":"","once":false,"topic":"setPrimary","payload":"{\"newAddr\":3,\"oldAddr\":2}","payloadType":"json","x":160,"y":60,"wires":[["25391937be70d8d7"]]},{"id":"39645a72e0ff3142","type":"ui_text_input","z":"f865518d9aa4229a","name":"Old_ID","label":"Old ID","group":"f9c67b3519fdb234","order":6,"width":"3","height":"1","passthru":true,"mode":"text","delay":300,"topic":"","x":140,"y":660,"wires":[["0f77be8baa6345ce"]]},{"id":"0f77be8baa6345ce","type":"function","z":"f865518d9aa4229a","name":"storeID","func":"\nflow.set('oldID', msg.payload);\n\nreturn msg;","outputs":0,"noerr":0,"x":323,"y":658,"wires":[]},{"id":"d6746a0df0d11197","type":"ui_text_input","z":"f865518d9aa4229a","name":"New_ID","label":"New ID","group":"f9c67b3519fdb234","order":7,"width":"3","height":"1","passthru":true,"mode":"text","delay":300,"topic":"","x":140,"y":700,"wires":[["6f8ec5a64c4a1eda"]]},{"id":"6f8ec5a64c4a1eda","type":"function","z":"f865518d9aa4229a","name":"storeID","func":"\nflow.set('newID', msg.payload);\n\nreturn msg;","outputs":0,"noerr":0,"x":321,"y":698,"wires":[]},{"id":"4aea57191255b73a","type":"ui_button","z":"f865518d9aa4229a","name":"SetPrimary","group":"f9c67b3519fdb234","order":8,"width":"3","height":"1","passthru":false,"label":"Set Primary ID","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"setPrimary","x":150,"y":498,"wires":[["4e0a2109506b7dda"]]},{"id":"4e0a2109506b7dda","type":"function","z":"f865518d9aa4229a","name":"setPrimary","func":"var data = {\n oldAddr: flow.get('oldID'), \n newAddr:flow.get('newID')\n }\n\nmsg.payload = data;\n\nreturn msg;","outputs":1,"noerr":0,"x":319,"y":498,"wires":[["25391937be70d8d7"]]},{"id":"47a2bd0559046e6a","type":"inject","z":"f865518d9aa4229a","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"30","crontab":"","once":false,"onceDelay":"","topic":"getDevice","payload":"counter","payloadType":"flow","x":169,"y":558,"wires":[["adb705ccff8afe0e"]]},{"id":"adb705ccff8afe0e","type":"function","z":"f865518d9aa4229a","name":"scanPrimary","func":"\nif(msg.payload == null) msg.payload = 1;\n\nif(msg.payload >= 76) msg.payload = 1;\n\nmsg.payload++;\n\nflow.set(\"counter\",msg.payload);\n\nmsg.payload = {address: msg.payload};\n\nreturn msg;","outputs":1,"noerr":0,"x":349,"y":558,"wires":[[]]},{"id":"d2a6dc6098cf3c6f","type":"inject","z":"f865518d9aa4229a","name":"setDevices","repeat":"","crontab":"","once":false,"topic":"setDevices","payload":"","payloadType":"date","x":159,"y":298,"wires":[["f9ae155449fbc95f"]]},{"id":"f9ae155449fbc95f","type":"function","z":"f865518d9aa4229a","name":"devices","func":"var devices = [\"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\"];\n\nmsg.payload = devices;\n\nreturn msg;","outputs":1,"noerr":0,"x":297,"y":298,"wires":[["25391937be70d8d7"]]},{"id":"886617b12e8c939c","type":"function","z":"f865518d9aa4229a","name":"Extract + Format Kamstrup 302","func":"let TotalHeatEnergy = msg.payload.devices[\"67525649\"].DataRecord[1].Value; \nlet TotalCoolEnergy = msg.payload.devices[\"67525649\"].DataRecord[2].Value;\nlet FlowTemperature = msg.payload.devices[\"67525649\"].DataRecord[8].Value /100;\nlet ReturnTemperature = msg.payload.devices[\"67525649\"].DataRecord[9].Value /100;\nlet DiffTemperature = msg.payload.devices[\"67525649\"].DataRecord[10].Value /100;\nvar PowerInstValue = Math.round((msg.payload.devices[\"67525649\"].DataRecord[11].Value *100)*1)/1;\nlet FlowInstValue = msg.payload.devices[\"67525649\"].DataRecord[13].Value;\nvar FlowValuelm = Number((FlowInstValue/60).toFixed(2));\n\nlet _msg = {\n payload: []\n};\n\n_msg.payload=\n {\n measurement: \"HeatEnergy\",\n\t\tfields: {\n\t\t\ttotalheatenergy: TotalHeatEnergy,\t\t\t\n\t\t\ttotalcoolenergy: TotalCoolEnergy,\t\n\t\t\tflowtemperature: FlowTemperature,\t\n\t\t returntemperature: ReturnTemperature,\t\n\t\t difftemperature: DiffTemperature,\n\t\t power: PowerInstValue,\n\t\t\tflow: FlowInstValue,\n flowlm: FlowValuelm, \n\n\t\t},\n\t\ttags:{\n\t\t device: \"Kamstrup\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":610,"y":420,"wires":[["6a76d82250d0560f","f860708d6c26e154","2e8ae61859d45968"]]},{"id":"ea41b023b25e56d5","type":"comment","z":"f865518d9aa4229a","name":"Change the device ID number!","info":"","x":600,"y":380,"wires":[]},{"id":"06d7575b69f88670","type":"comment","z":"f865518d9aa4229a","name":"Change the adapter's serial port","info":"","x":570,"y":160,"wires":[]},{"id":"71dc81853bf538b6","type":"comment","z":"f865518d9aa4229a","name":"Change the adapter's serial port","info":"","x":570,"y":260,"wires":[]},{"id":"1e31e39475d98a78","type":"mqtt out","z":"f865518d9aa4229a","name":"","topic":"","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"f935c11c.41462","x":1170,"y":500,"wires":[]},{"id":"a3a5ba333963288f","type":"mqtt in","z":"f865518d9aa4229a","name":"kamstrup","topic":"kamstrup","qos":"2","datatype":"json","broker":"f935c11c.41462","inputs":0,"x":960,"y":560,"wires":[["908d10050f4b04d2"]]},{"id":"908d10050f4b04d2","type":"debug","z":"f865518d9aa4229a","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1130,"y":560,"wires":[]},{"id":"0c53ba8d7284969a","type":"join","z":"f865518d9aa4229a","name":"","mode":"custom","build":"merged","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"2","count":"8","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":1030,"y":500,"wires":[[]]},{"id":"6a76d82250d0560f","type":"change","z":"f865518d9aa4229a","name":"move to msg","rules":[{"t":"move","p":"payload.fields","pt":"msg","to":"payload","tot":"msg"},{"t":"set","p":"topic","pt":"msg","to":"kamstrup","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":890,"y":500,"wires":[["0c53ba8d7284969a"]]},{"id":"e58fc1effc685d53","type":"influxdb batch","z":"f865518d9aa4229a","influxdb":"a934c8eecb729d7d","precision":"","retentionPolicy":"","name":"","database":"","retentionPolicyV18Flux":"","org":"","bucket":"","x":1100,"y":420,"wires":[]},{"id":"f860708d6c26e154","type":"join","z":"f865518d9aa4229a","name":"","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"8","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":851,"y":422,"wires":[[]]},{"id":"ce865fca58584146","type":"mbus-client","name":"","clienttype":"serial","tcpHost":"127.0.0.1","tcpPort":"10001","tcpTimeout":"4000","serialPort":"/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A105W07X-if00-port0","serialBaudrate":"2400","reconnectTimeout":"10000","autoScan":true,"storeDevices":true,"disableLogs":true},{"id":"d27938f9935499c1","type":"ui_group","name":"M-Bus Devices","tab":"910d4d4b27dd7881","order":3,"disp":true,"width":"14"},{"id":"076f982652a53bad","type":"ui_group","name":"Data","tab":"910d4d4b27dd7881","order":4,"disp":true,"width":"14"},{"id":"f9c67b3519fdb234","type":"ui_group","name":"Commands","tab":"910d4d4b27dd7881","order":2,"disp":true,"width":"14"},{"id":"6c2bd694a5b1c9b1","type":"ui_group","name":"Status","tab":"910d4d4b27dd7881","order":1,"disp":true,"width":"14"},{"id":"f935c11c.41462","type":"mqtt-broker","name":"MQTT","broker":"core-mosquitto","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""},{"id":"a934c8eecb729d7d","type":"influxdb","hostname":"127.0.0.1","port":"8086","protocol":"http","database":"energy","name":"","usetls":false,"tls":"","influxdbVersion":"1.x","url":"","rejectUnauthorized":false},{"id":"910d4d4b27dd7881","type":"ui_tab","name":"M-Bus","icon":"plug","order":1}] |
en even in debug window kijken (rechter deel vh scherm - BUG symbooltje klikken)
AUijtdehaag schreef op zondag 15 januari 2023 @ 21:42:
@Ramon_1984
Heb er wel in liggen snijden, omdat de flow bij iemand anders draait, incl MBus kWh meters.
Maar die heb ik eruit gehaald.
Eerst maar eens verbinding krijgen met de kamstrup.
Registers zullen ook anders zijn dan de 302 verwacht ik.
code:
1 [{"id":"f865518d9aa4229a","type":"tab","label":"Mbus","disabled":false,"info":""},{"id":"d29d442dc1a2b2c0","type":"mbus-out","z":"f865518d9aa4229a","name":"","client":"ce865fca58584146","x":490,"y":200,"wires":[["64aa4b0caf571a05"]]},{"id":"64aa4b0caf571a05","type":"debug","z":"f865518d9aa4229a","name":"","active":true,"console":false,"complete":"false","x":770,"y":200,"wires":[]},{"id":"25391937be70d8d7","type":"mbus-controller","z":"f865518d9aa4229a","name":"","client":"ce865fca58584146","x":530,"y":300,"wires":[["cf63801613c34166","2e8ae61859d45968","886617b12e8c939c"]]},{"id":"ed8cf31caea1dcfb","type":"inject","z":"f865518d9aa4229a","name":"scan","repeat":"","crontab":"","once":false,"topic":"scan","payload":"","payloadType":"str","x":150,"y":100,"wires":[["25391937be70d8d7"]]},{"id":"2e8ae61859d45968","type":"debug","z":"f865518d9aa4229a","name":"","active":true,"console":false,"complete":"false","x":870,"y":360,"wires":[]},{"id":"e27a8a64b7f4a4ad","type":"inject","z":"f865518d9aa4229a","name":"Read ID 1","repeat":"","crontab":"","once":false,"topic":"getDevice","payload":"{\"address\": 1}","payloadType":"json","x":160,"y":180,"wires":[["25391937be70d8d7"]]},{"id":"380b14852e120384","type":"inject","z":"f865518d9aa4229a","name":"Get Devices","repeat":"60","crontab":"","once":true,"onceDelay":"","topic":"getDevices","payload":"","payloadType":"str","x":180,"y":260,"wires":[["25391937be70d8d7"]]},{"id":"cf63801613c34166","type":"ui_template","z":"f865518d9aa4229a","group":"d27938f9935499c1","name":"mbus-table","order":0,"width":"14","height":"10","format":"<table>\n <tr>\n <th>ID</th>\n <th>Primary ID</th>\n <th>Info</th>\n <th>Data</th>\n <th>Last Update</th>\n <th>Status</th>\n </tr>\n <tr style=\"cursor:pointer;\" ng-click=\"showData(device)\" ng-repeat=\"(id, device) in devices\">\n <td>{{ device.secondaryID }}</td>\n <td>{{ device.primaryID }}</td>\n <td ng-bind-html=\"getInfo(device)\"></td>\n <td>{{ device.DataRecord.length }}</td>\n <td>{{ device.lastUpdate }}</td>\n <td>\n <div class=\"online\" ng-style=\"{background: !device.error ? '#4CAF50' : '#f44336'}\">\n <md-tooltip md-direction=\"bottom\">{{ device.error ? device.error : 'OK' }}</md-tooltip>\n </div>\n </td>\n </tr>\n</table>\n\n<style>\ntable {\n border-collapse: collapse;\n width: 100%;\n}\n\nth, td{\n text-align: left;\n padding: 8px;\n background-color: #f2f2f2;\n color: black;\n}\n\nth {\n background-color: #4CAF50;\n color: white;\n}\n\n.online {\n\tbackground:#ff3333;\n\twidth:20px;\n\theight:20px;\n\tmargin:0 auto;\n\t-webkit-border-radius:50%;\n\t-moz-border-radius:50%;\n\tborder-radius:50%;\n}\n</style>\n\n<script>\n\n\n(function(scope) {\n \n scope.send({topic: 'getDevices'});\n scope.devices = [];\n \n scope.showData = function(device){\n scope.send({topic: 'deviceData', payload: device});\n }\n \n scope.getInfo = function(device){\n var text = '';\n var info = device.SlaveInformation;\n \n for(key in info){\n text += `<p><b>${key}</b>: ${info[key]}</p>`;\n }\n \n return text;\n }\n\n scope.$watch('msg', function(data) {\n if(data && data.topic){\n switch(data.topic){\n case \"getDevices\":\n if(data.payload && data.payload.devices)\n scope.devices = data.payload.devices;\n break;\n }\n }\n });\n \n})(scope);\n\n</script>\n","storeOutMessages":false,"fwdInMessages":false,"templateScope":"local","x":730,"y":300,"wires":[["5d439686be0ac4c3"]]},{"id":"54532b5aabe03d97","type":"inject","z":"f865518d9aa4229a","name":"restart","repeat":"","crontab":"","once":false,"topic":"restart","payload":"","payloadType":"num","x":150,"y":140,"wires":[["25391937be70d8d7"]]},{"id":"5d439686be0ac4c3","type":"ui_template","z":"f865518d9aa4229a","group":"076f982652a53bad","name":"data-table","order":0,"width":"14","height":"10","format":"<p><b>Device ID:</b> {{ID}} </p>\n\n<br>\n<br>\n\n<table>\n <tr>\n <th>ID</th>\n <th>Function</th>\n <th>Unit</th>\n <th>Value</th>\n <th>Timestamp</th>\n </tr>\n <tr ng-repeat=\"(key, data) in deviceData\">\n <td>{{ data.id }}</td>\n <td>{{ data.Function }}</td>\n <td>{{ data.Unit }}</td>\n <td>{{ data.Value }}</td>\n <td>{{ data.Timestamp }}</td>\n </tr>\n</table>\n\n<style>\ntable {\n border-collapse: collapse;\n width: 100%;\n}\n\nth, td{\n text-align: left;\n padding: 8px;\n background-color: #f2f2f2;\n color: black;\n}\n\nth {\n background-color: #4CAF50;\n color: white;\n}\n\n.online {\n\tbackground:#ff3333;\n\twidth:20px;\n\theight:20px;\n\tmargin:0 auto;\n\t-webkit-border-radius:50%;\n\t-moz-border-radius:50%;\n\tborder-radius:50%;\n}\n</style>\n\n<script>\n\n\n(function(scope) {\n \n scope.deviceData = [];\n scope.ID = '';\n\n scope.$watch('msg', function(data) {\n if(data && data.topic){\n switch(data.topic){\n case \"deviceData\":\n if(data.payload){\n scope.deviceData = data.payload.DataRecord;\n scope.ID = data.payload.SlaveInformation.Id;\n }\n break;\n }\n }\n });\n \n})(scope);\n\n</script>\n","storeOutMessages":false,"fwdInMessages":false,"templateScope":"local","x":900,"y":300,"wires":[[]]},{"id":"ddd5e60920a23ad5","type":"inject","z":"f865518d9aa4229a","name":"Read ID 2","repeat":"","crontab":"","once":false,"topic":"getDevice","payload":"{\"address\": 2}","payloadType":"json","x":160,"y":220,"wires":[["25391937be70d8d7"]]},{"id":"97fe3cea3dd78893","type":"ui_button","z":"f865518d9aa4229a","name":"Scan","group":"f9c67b3519fdb234","order":3,"width":"2","height":"1","passthru":false,"label":"Scan","color":"","bgcolor":"","icon":"location_searching","payload":"","payloadType":"str","topic":"scan","x":130,"y":340,"wires":[["25391937be70d8d7"]]},{"id":"f4591fad97effe88","type":"ui_button","z":"f865518d9aa4229a","name":"Restart","group":"f9c67b3519fdb234","order":4,"width":"3","height":"1","passthru":false,"label":"Restart","color":"","bgcolor":"","icon":"refresh","payload":"","payloadType":"str","topic":"restart","x":140,"y":380,"wires":[["25391937be70d8d7"]]},{"id":"bf6e8184b1036eae","type":"ui_button","z":"f865518d9aa4229a","name":"GetDevices","group":"f9c67b3519fdb234","order":5,"width":"3","height":"1","passthru":false,"label":"Update Devices","color":"","bgcolor":"","icon":"refresh","payload":"","payloadType":"str","topic":"getDevices","x":150,"y":420,"wires":[["25391937be70d8d7"]]},{"id":"56835618461e0449","type":"ui_button","z":"f865518d9aa4229a","name":"readAddress","group":"f9c67b3519fdb234","order":2,"width":"3","height":"1","passthru":false,"label":"Read Device","color":"","bgcolor":"","icon":"","payload":"deviceID","payloadType":"flow","topic":"getDevice","x":151,"y":457,"wires":[["55994e356bc01d41"]]},{"id":"509e91d18c57d3a9","type":"ui_text_input","z":"f865518d9aa4229a","name":"Device_ID","label":"ID: ","group":"f9c67b3519fdb234","order":1,"width":"3","height":"1","passthru":true,"mode":"text","delay":300,"topic":"","x":149,"y":618,"wires":[["4ff922eb25f7b57b"]]},{"id":"4ff922eb25f7b57b","type":"function","z":"f865518d9aa4229a","name":"storeID","func":"\nflow.set('deviceID', msg.payload);\n\nreturn msg;","outputs":0,"noerr":0,"x":325,"y":618,"wires":[]},{"id":"55994e356bc01d41","type":"function","z":"f865518d9aa4229a","name":"readAddr","func":"var data = {address: msg.payload}\n\nmsg.payload = data;\n\nreturn msg;","outputs":1,"noerr":0,"x":309,"y":457,"wires":[["25391937be70d8d7"]]},{"id":"d8f8f4e78e68774f","type":"status","z":"f865518d9aa4229a","name":"controller_status","scope":["25391937be70d8d7"],"x":420,"y":60,"wires":[["2db5223e4cf95d6c"]]},{"id":"645047f2aaeb7378","type":"status","z":"f865518d9aa4229a","name":"mbus_status","scope":["d29d442dc1a2b2c0"],"x":413,"y":105,"wires":[["dcd216406a52d663"]]},{"id":"2db5223e4cf95d6c","type":"ui_text","z":"f865518d9aa4229a","group":"6c2bd694a5b1c9b1","order":0,"width":0,"height":0,"name":"controller_status","label":"Controller","format":"{{msg.status.text}}","layout":"row-spread","x":632,"y":60,"wires":[]},{"id":"dcd216406a52d663","type":"ui_text","z":"f865518d9aa4229a","group":"6c2bd694a5b1c9b1","order":0,"width":0,"height":0,"name":"mbus_status","label":"M-Bus","format":"{{msg.status.text}}","layout":"row-spread","x":622,"y":105,"wires":[]},{"id":"08b78e2be720569d","type":"inject","z":"f865518d9aa4229a","name":"setPrimary","repeat":"","crontab":"","once":false,"topic":"setPrimary","payload":"{\"newAddr\":3,\"oldAddr\":2}","payloadType":"json","x":160,"y":60,"wires":[["25391937be70d8d7"]]},{"id":"39645a72e0ff3142","type":"ui_text_input","z":"f865518d9aa4229a","name":"Old_ID","label":"Old ID","group":"f9c67b3519fdb234","order":6,"width":"3","height":"1","passthru":true,"mode":"text","delay":300,"topic":"","x":140,"y":660,"wires":[["0f77be8baa6345ce"]]},{"id":"0f77be8baa6345ce","type":"function","z":"f865518d9aa4229a","name":"storeID","func":"\nflow.set('oldID', msg.payload);\n\nreturn msg;","outputs":0,"noerr":0,"x":323,"y":658,"wires":[]},{"id":"d6746a0df0d11197","type":"ui_text_input","z":"f865518d9aa4229a","name":"New_ID","label":"New ID","group":"f9c67b3519fdb234","order":7,"width":"3","height":"1","passthru":true,"mode":"text","delay":300,"topic":"","x":140,"y":700,"wires":[["6f8ec5a64c4a1eda"]]},{"id":"6f8ec5a64c4a1eda","type":"function","z":"f865518d9aa4229a","name":"storeID","func":"\nflow.set('newID', msg.payload);\n\nreturn msg;","outputs":0,"noerr":0,"x":321,"y":698,"wires":[]},{"id":"4aea57191255b73a","type":"ui_button","z":"f865518d9aa4229a","name":"SetPrimary","group":"f9c67b3519fdb234","order":8,"width":"3","height":"1","passthru":false,"label":"Set Primary ID","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"setPrimary","x":150,"y":498,"wires":[["4e0a2109506b7dda"]]},{"id":"4e0a2109506b7dda","type":"function","z":"f865518d9aa4229a","name":"setPrimary","func":"var data = {\n oldAddr: flow.get('oldID'), \n newAddr:flow.get('newID')\n }\n\nmsg.payload = data;\n\nreturn msg;","outputs":1,"noerr":0,"x":319,"y":498,"wires":[["25391937be70d8d7"]]},{"id":"47a2bd0559046e6a","type":"inject","z":"f865518d9aa4229a","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"30","crontab":"","once":false,"onceDelay":"","topic":"getDevice","payload":"counter","payloadType":"flow","x":169,"y":558,"wires":[["adb705ccff8afe0e"]]},{"id":"adb705ccff8afe0e","type":"function","z":"f865518d9aa4229a","name":"scanPrimary","func":"\nif(msg.payload == null) msg.payload = 1;\n\nif(msg.payload >= 76) msg.payload = 1;\n\nmsg.payload++;\n\nflow.set(\"counter\",msg.payload);\n\nmsg.payload = {address: msg.payload};\n\nreturn msg;","outputs":1,"noerr":0,"x":349,"y":558,"wires":[[]]},{"id":"d2a6dc6098cf3c6f","type":"inject","z":"f865518d9aa4229a","name":"setDevices","repeat":"","crontab":"","once":false,"topic":"setDevices","payload":"","payloadType":"date","x":159,"y":298,"wires":[["f9ae155449fbc95f"]]},{"id":"f9ae155449fbc95f","type":"function","z":"f865518d9aa4229a","name":"devices","func":"var devices = [\"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\"];\n\nmsg.payload = devices;\n\nreturn msg;","outputs":1,"noerr":0,"x":297,"y":298,"wires":[["25391937be70d8d7"]]},{"id":"886617b12e8c939c","type":"function","z":"f865518d9aa4229a","name":"Extract + Format Kamstrup 302","func":"let TotalHeatEnergy = msg.payload.devices[\"67525649\"].DataRecord[1].Value; \nlet TotalCoolEnergy = msg.payload.devices[\"67525649\"].DataRecord[2].Value;\nlet FlowTemperature = msg.payload.devices[\"67525649\"].DataRecord[8].Value /100;\nlet ReturnTemperature = msg.payload.devices[\"67525649\"].DataRecord[9].Value /100;\nlet DiffTemperature = msg.payload.devices[\"67525649\"].DataRecord[10].Value /100;\nvar PowerInstValue = Math.round((msg.payload.devices[\"67525649\"].DataRecord[11].Value *100)*1)/1;\nlet FlowInstValue = msg.payload.devices[\"67525649\"].DataRecord[13].Value;\nvar FlowValuelm = Number((FlowInstValue/60).toFixed(2));\n\nlet _msg = {\n payload: []\n};\n\n_msg.payload=\n {\n measurement: \"HeatEnergy\",\n\t\tfields: {\n\t\t\ttotalheatenergy: TotalHeatEnergy,\t\t\t\n\t\t\ttotalcoolenergy: TotalCoolEnergy,\t\n\t\t\tflowtemperature: FlowTemperature,\t\n\t\t returntemperature: ReturnTemperature,\t\n\t\t difftemperature: DiffTemperature,\n\t\t power: PowerInstValue,\n\t\t\tflow: FlowInstValue,\n flowlm: FlowValuelm, \n\n\t\t},\n\t\ttags:{\n\t\t device: \"Kamstrup\",\n\t\t},\n\t\ttimestamp: flow.get('timestamp')\n\t}\n\n\nreturn _msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":610,"y":420,"wires":[["6a76d82250d0560f","f860708d6c26e154","2e8ae61859d45968"]]},{"id":"ea41b023b25e56d5","type":"comment","z":"f865518d9aa4229a","name":"Change the device ID number!","info":"","x":600,"y":380,"wires":[]},{"id":"06d7575b69f88670","type":"comment","z":"f865518d9aa4229a","name":"Change the adapter's serial port","info":"","x":570,"y":160,"wires":[]},{"id":"71dc81853bf538b6","type":"comment","z":"f865518d9aa4229a","name":"Change the adapter's serial port","info":"","x":570,"y":260,"wires":[]},{"id":"1e31e39475d98a78","type":"mqtt out","z":"f865518d9aa4229a","name":"","topic":"","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"f935c11c.41462","x":1170,"y":500,"wires":[]},{"id":"a3a5ba333963288f","type":"mqtt in","z":"f865518d9aa4229a","name":"kamstrup","topic":"kamstrup","qos":"2","datatype":"json","broker":"f935c11c.41462","inputs":0,"x":960,"y":560,"wires":[["908d10050f4b04d2"]]},{"id":"908d10050f4b04d2","type":"debug","z":"f865518d9aa4229a","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1130,"y":560,"wires":[]},{"id":"0c53ba8d7284969a","type":"join","z":"f865518d9aa4229a","name":"","mode":"custom","build":"merged","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"2","count":"8","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":1030,"y":500,"wires":[[]]},{"id":"6a76d82250d0560f","type":"change","z":"f865518d9aa4229a","name":"move to msg","rules":[{"t":"move","p":"payload.fields","pt":"msg","to":"payload","tot":"msg"},{"t":"set","p":"topic","pt":"msg","to":"kamstrup","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":890,"y":500,"wires":[["0c53ba8d7284969a"]]},{"id":"e58fc1effc685d53","type":"influxdb batch","z":"f865518d9aa4229a","influxdb":"a934c8eecb729d7d","precision":"","retentionPolicy":"","name":"","database":"","retentionPolicyV18Flux":"","org":"","bucket":"","x":1100,"y":420,"wires":[]},{"id":"f860708d6c26e154","type":"join","z":"f865518d9aa4229a","name":"","mode":"custom","build":"array","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"8","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":851,"y":422,"wires":[[]]},{"id":"ce865fca58584146","type":"mbus-client","name":"","clienttype":"serial","tcpHost":"127.0.0.1","tcpPort":"10001","tcpTimeout":"4000","serialPort":"/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A105W07X-if00-port0","serialBaudrate":"2400","reconnectTimeout":"10000","autoScan":true,"storeDevices":true,"disableLogs":true},{"id":"d27938f9935499c1","type":"ui_group","name":"M-Bus Devices","tab":"910d4d4b27dd7881","order":3,"disp":true,"width":"14"},{"id":"076f982652a53bad","type":"ui_group","name":"Data","tab":"910d4d4b27dd7881","order":4,"disp":true,"width":"14"},{"id":"f9c67b3519fdb234","type":"ui_group","name":"Commands","tab":"910d4d4b27dd7881","order":2,"disp":true,"width":"14"},{"id":"6c2bd694a5b1c9b1","type":"ui_group","name":"Status","tab":"910d4d4b27dd7881","order":1,"disp":true,"width":"14"},{"id":"f935c11c.41462","type":"mqtt-broker","name":"MQTT","broker":"core-mosquitto","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""},{"id":"a934c8eecb729d7d","type":"influxdb","hostname":"127.0.0.1","port":"8086","protocol":"http","database":"energy","name":"","usetls":false,"tls":"","influxdbVersion":"1.x","url":"","rejectUnauthorized":false},{"id":"910d4d4b27dd7881","type":"ui_tab","name":"M-Bus","icon":"plug","order":1}]
en even in debug window kijken (rechter deel vh scherm - BUG symbooltje klikken)
/f/image/YxarpiSHeOQlq93lffRGpvX8.png?f=fotoalbum_large)
@AUijtdehaag
Adapter in een andere usb poort, pi opnieuw opstarten en er is een verbinding
Hier een mini-howto hoe je een Wireless Mbus-Kamstrup in Domoticz krijgt. Ik heb ervoor gekozen om een wat gedetailleerdere howto op te schrijven, anders blijft het toch grasduinen in een groeiend topic. En niet alle informatie is voor handen, wat de drempel nog verder verhoogt.
Met dank aan @Yaldair voor het mij op weg helpen met de Wireless settings.
2. De KEY van je Kamstrup. Makkelijkst is om deze via de XML te downloaden
3. Nooelec draadloze ontvanger, bv: https://www.amazon.de/-/nl/dp/B00P2UOU72
4. Raspberry Pi met Bullseye
Let op: plug op dit moment je dongle nog niet in!
Vervolgens krijg je pakketjes als deze binnen:
wat helemaal goed is! Krijg je een driver “unknown!”, dan moet je kijken of je meterconfiguratie in wmbusmeters/src/device_kamheat.cc staat, en anders daar toevoegen en configureren.
Als je geen pakketjes krijgt, dan moet je mogelijk je frequentie aanpassen, bv:
Configureer eerst wmbusmeters verder, zodat je de jusite driver pakt en kunt loggen
Vervolgens gaan we de meter configueren. Maak een bestand aan als:
met de ID van jouw meter, en de KEY die je uit je XML file hebt gehaald die bij je meter hoort.
Forceer het herladen van de configfiles door:
Als alles goed is gegaan, krijg je nu in /var/lib/wmbusmeters/meter_readings/Kamstrup een rits gedecodeerde informatie van je meter
Kijk ook in de /var/log/wmbusmeters/wmbusmeters.log voor meer informatie als je niet de verwachte uitkomst krijgt.
Ga in je browser naar http://raspberrypi.local:8080/ en verifiëer dat Domoticz draait.
Sensors kun je aanmaken door je weg via Domoticz in de rondte te klikken, of via de command line. Ik ben redelijk lui, dus ik doe onderstaande:
Maak eerst een Virtual hardware aan:
Kijk vervolgens goed welke hardware idx er wordt teruggegeven. Bij mij is dat 2, gebruik deze in de idx= hieronder.
Creëer de virtuele sensors:
Let op! op de laatste regel staat idx=6, dit is de idx die aan de WP Opbrengst sensor wordt gegeven.
Als je nu op de pagina van je Domoticz kijkt, dan moeten deze sensors aangemaakt zijn
Hier kun je ook kijken wat de idx is van elke sensor, die hebben we in het volgende deel nodig.
Wat gebeurt hier? T1, T2, FLOW en ENERGY worden als environment variabelen meegegeven (en meer, maar die vond ik niet zo nuttig). Die lees je in, en stuurt T1, T2 en T1-T2 direct door naar Domoticz via een HTTP-get-push. Voor het debiet en totale opbrengst moet je een beetje schalen omdat Domotiz andere eenheden verwacht. Het huidig vermogen moet je zelf uitrekenen. Nou ja, met bovenstaande formule gaat het goed, je krijgt hetzelfde als er op de meter af te lezen is. Formule is hier van afgeleid: https://warmtepomp-tips.nl/relevant/formules/, de afleiding laat ik als oefening voor de lezer
Vergeet niet om de juiste idx van de sensors ook in dit script over te nemen!
Maak het script executable:
Pas vervolgens de /etc/wmbusmeters.d/kamstrup aan naar:
zodat het script via shell= wordt aangeroepen.
Pas vervolgens /etc/wmbusmeters.conf aan om onnodig schrijven te voorkomen:
en herstart de boel:
/f/image/NwzMNTsgGFNyQuxoOmfmhCXk.png?f=fotoalbum_large)
/f/image/ccy5wAE8M1qcquHXTeqqqbCe.png?f=fotoalbum_large)
Happy logging
Zwartoog in "Domoticz - open source domotica systeem - deel 5"
https://github.com/weetmuts/wmbusmeters
zonder de -a. CPU usage is gehalveerd naar een ~20-25% voor rtl_wmbus. Met de -a krijg ik alleen maar corrupte telegrams. Misschien als je een perfect signaal hebt, dan zou de -a de CPU-load nog kunnen halveren.
Met dank aan @Yaldair voor het mij op weg helpen met de Wireless settings.
Setting
1. Kamstrup Multical 303 met Wireless Mbus (wmbus)2. De KEY van je Kamstrup. Makkelijkst is om deze via de XML te downloaden
3. Nooelec draadloze ontvanger, bv: https://www.amazon.de/-/nl/dp/B00P2UOU72
4. Raspberry Pi met Bullseye
Installeren wmbusmeter
Deze packages heb je nodig voor het kunnen ontvangen van de pakketjes van je Kamstrup. Eenvoudigst is om volgend script te draaien, dat de verschillende packages binnenhaalt, compileert en installeert.Let op: plug op dit moment je dongle nog niet in!
code: wmbus_installer.sh
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
| #!/bin/bash # Prepare build environment INSTALLDIR=~/wmbus_packages mkdir $INSTALLDIR # Get required packages sudo apt-get install cmake libusb-1.0-0-dev libncurses-dev git # Blacklist dvb module sudo sh -c 'echo blacklist dvb_usb_rtl28xxu > /etc/modprobe.d/blacklist-dvb_usb_rtl28xxu.conf' # Build and install rtl-sdr # Note: we add the install prefix to /usr as wmbusmeters looks for rtl-sdr in /usr/bin/ instead of the default /usr/local/bin/ cd $INSTALLDIR git clone https://gitea.osmocom.org/sdr/rtl-sdr.git mkdir rtl-sdr/build cd rtl-sdr/build cmake ../ -DINSTALL_UDEV_RULES=ON -DCMAKE_INSTALL_PREFIX=/usr make sudo make install sudo ldconfig sudo cp ../rtl-sdr.rules /etc/udev/rules.d/ # Build and install rtl-wmbus cd $INSTALLDIR git clone https://github.com/xaelsouth/rtl-wmbus.git cd rtl-wmbus make release sudo make install # Build and install wmbusmeters cd $INSTALLDIR git clone https://github.com/weetmuts/wmbusmeters.git cd wmbusmeters ./configure make sudo make install sudo systemctl enable wmbusmeters sudo systemctl daemon-reload # Ready to go! echo "Done! Plug in the dongle and press ENTER" read wmbusmeters auto:t1 echo "Congrats! You have now a working wmbus!" |
Vervolgens krijg je pakketjes als deze binnen:
code:
1
| tail -f /var/log/wmbusmeters/wmbusmeters.log |
code: /var/log/wmbusmeters/wmbusmeters.log
1
2
3
4
5
6
7
| Received telegram from: 82848073 manufacturer: (KAM) Kamstrup Energi (0x2c2d) type: Heat volume at inlet meter (0x0c) encrypted ver: 0x40 device: rtlwmbus[00000001] rssi: 133 dBm driver: kamheat |
wat helemaal goed is! Krijg je een driver “unknown!”, dan moet je kijken of je meterconfiguratie in wmbusmeters/src/device_kamheat.cc staat, en anders daar toevoegen en configureren.
Als je geen pakketjes krijgt, dan moet je mogelijk je frequentie aanpassen, bv:
code:
1
| rtlwmbus:868.85M:t1 |
Configureer eerst wmbusmeters verder, zodat je de jusite driver pakt en kunt loggen
code: /etc/wmbusmeters.conf
1
2
3
4
5
6
7
8
| loglevel=debug # Remember to change auto here to the device you are going to use in production. device=rtlwmbus:t1 logtelegrams=true format=json meterfiles=/var/lib/wmbusmeters/meter_readings meterfilesaction=overwrite logfile=/var/log/wmbusmeters/wmbusmeters.log |
Vervolgens gaan we de meter configueren. Maak een bestand aan als:
code: /etc/wmbusmeters.d/kamstrup
1
2
3
4
| name=Kamstrup id=82848073 key=AAABBBCCCDDDEEEFFF00011122233344 driver=kamheat |
met de ID van jouw meter, en de KEY die je uit je XML file hebt gehaald die bij je meter hoort.
Forceer het herladen van de configfiles door:
code:
1
| sudo systemctl restart wmbusmeters |
Als alles goed is gegaan, krijg je nu in /var/lib/wmbusmeters/meter_readings/Kamstrup een rits gedecodeerde informatie van je meter
code:
1
| {"media":"heat volume at inlet","meter":"kamheat","name":"Kamstrup","id":"82848073","status":"OK","total_energy_consumption_kwh":565.3,"total_volume_m3":277.363,"volume_flow_m3h":0,"t1_temperature_c":11.51,"t2_temperature_c":11.65,"forward_energy_m3c":89441,"return_energy_m3c":85547,"meter_date":"2023-01-13","target_energy_kwh":4.7,"target_volume_m3":44.29,"target_date":"2023-01-01","timestamp":"2023-01-13T22:35:39Z","device":"rtlwmbus[00000001]","rssi_dbm":134} |
Kijk ook in de /var/log/wmbusmeters/wmbusmeters.log voor meer informatie als je niet de verwachte uitkomst krijgt.
Configuratie Domoticz
Tijd om de boel in Domoticz te zetten! Heb je Domoticz nog niet draaien, installeer deze van met:code:
1
| sudo bash -c "$(curl -sSfL https://install.domoticz.com)" |
Ga in je browser naar http://raspberrypi.local:8080/ en verifiëer dat Domoticz draait.
Sensors kun je aanmaken door je weg via Domoticz in de rondte te klikken, of via de command line. Ik ben redelijk lui, dus ik doe onderstaande:
Maak eerst een Virtual hardware aan:
code:
1
| curl "http://localhost:8080/json.htm?type=command¶m=addhardware&htype=15&port=1&name=Virtual&enabled=true" |
Kijk vervolgens goed welke hardware idx er wordt teruggegeven. Bij mij is dat 2, gebruik deze in de idx= hieronder.
Creëer de virtuele sensors:
code:
1
2
3
4
5
6
7
| curl "http://localhost:8080/json.htm?type=createvirtualsensor&idx=2&sensorname=WP%20Aanvoer&sensortype=80" curl "http://localhost:8080/json.htm?type=createvirtualsensor&idx=2&sensorname=WP%20Retour&sensortype=80" curl "http://localhost:8080/json.htm?type=createvirtualsensor&idx=2&sensorname=WP%20Diff&sensortype=80" curl "http://localhost:8080/json.htm?type=createdevice&idx=2&sensorname=WP%20Flow&devicetype=243&devicesubtype=30" curl "http://localhost:8080/json.htm?type=createdevice&idx=2&sensorname=WP%20Vermogen&devicetype=243&devicesubtype=31&sensoroptions=1;kW" curl "http://localhost:8080/json.htm?type=createvirtualsensor&idx=2&sensorname=WP%20Opbrengst&sensortype=113&switchtype=4" curl "http://localhost:8080/json.htm?type=setused&idx=6&name=WP%20Opbrengst&switchtype=4&used=true" |
Let op! op de laatste regel staat idx=6, dit is de idx die aan de WP Opbrengst sensor wordt gegeven.
Als je nu op de pagina van je Domoticz kijkt, dan moeten deze sensors aangemaakt zijn
Sensordata doorsturen naar Domoticz
wmbusmeters heeft de mogelijkheid om bij elke sensor-reading een script aan te roepen, dus dat gaan we doen. Maak in je home-directory een script aan, i.e. /home/pi/scripts/kamstrup_updates.pyPython: /home/pi/scripts/kamstrup_updates.py
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
| #!/usr/bin/python import os import requests # Environment variabelen T1 = float(os.getenv('METER_T1_TEMPERATURE_C')) T2 = float(os.getenv('METER_T2_TEMPERATURE_C')) FLOW = float(os.getenv('METER_VOLUME_FLOW_M3H')) ENERGY = float(os.getenv('METER_TOTAL_ENERGY_CONSUMPTION_KWH')) r = requests.get("http://localhost:8080/json.htm?type=command¶m=udevice&idx=1&nvalue=0&svalue=" + str(T1)) r = requests.get("http://localhost:8080/json.htm?type=command¶m=udevice&idx=2&nvalue=0&svalue=" + str(T2)) r = requests.get("http://localhost:8080/json.htm?type=command¶m=udevice&idx=3&nvalue=0&svalue=" + str(T1-T2)) # Debiet in l/m instead of m3/h print(FLOW) FLOW=float(FLOW)*1000/60 r = requests.get("http://localhost:8080/json.htm?type=command¶m=udevice&idx=4&nvalue=0&svalue=%.1f" % (FLOW)) # Huidig vermogen POWER= (float(T1)-float(T2))*FLOW * 0.07 r = requests.get("http://localhost:8080/json.htm?type=command¶m=udevice&idx=5&nvalue=0&svalue=%.1f" % (POWER)) # Totale opbrengst ENERGY=float(ENERGY)*1000 r = requests.get("http://localhost:8080/json.htm?type=command¶m=udevice&idx=6&nvalue=0&svalue=%.1f" % (ENERGY)) |
Wat gebeurt hier? T1, T2, FLOW en ENERGY worden als environment variabelen meegegeven (en meer, maar die vond ik niet zo nuttig). Die lees je in, en stuurt T1, T2 en T1-T2 direct door naar Domoticz via een HTTP-get-push. Voor het debiet en totale opbrengst moet je een beetje schalen omdat Domotiz andere eenheden verwacht. Het huidig vermogen moet je zelf uitrekenen. Nou ja, met bovenstaande formule gaat het goed, je krijgt hetzelfde als er op de meter af te lezen is. Formule is hier van afgeleid: https://warmtepomp-tips.nl/relevant/formules/, de afleiding laat ik als oefening voor de lezer
Vergeet niet om de juiste idx van de sensors ook in dit script over te nemen!
Maak het script executable:
code:
1
| chmod a+x /home/pi/scripts/kamstrup_updates.py |
Pas vervolgens de /etc/wmbusmeters.d/kamstrup aan naar:
code: /etc/wmbusmeters.d/kamstrup
1
2
3
4
5
| name=Kamstrup id=82848073 key=AAABBBCCCDDDEEEFFF00011122233344 driver=kamheat shell=/home/pi/scripts/kamstrup_updates.py |
zodat het script via shell= wordt aangeroepen.
Pas vervolgens /etc/wmbusmeters.conf aan om onnodig schrijven te voorkomen:
code: /etc/wmbusmeters.conf
1
2
3
4
5
6
7
8
| loglevel=normal # Remember to change auto here to the device you are going to use in production. device=rtlwmbus:t1 logtelegrams=false format=json #meterfiles=/var/lib/wmbusmeters/meter_readings #meterfilesaction=overwrite logfile=/var/log/wmbusmeters/wmbusmeters.log |
en herstart de boel:
code:
1
| sudo systemctl restart wmbusmeters |
Resultaat
Als alles goed is gegaan, dan zie je in Domoticz de volgende meters:/f/image/NwzMNTsgGFNyQuxoOmfmhCXk.png?f=fotoalbum_large)
/f/image/ccy5wAE8M1qcquHXTeqqqbCe.png?f=fotoalbum_large)
Happy logging
Live COP
Live COP script kun je hier in het Domoticz forum vinden:Zwartoog in "Domoticz - open source domotica systeem - deel 5"
rtl_wmbus zuiniger
Bij mij gebruikt de rtl_wmbus constant zo'n 50% CPU-core op m'n Pi. Dat vond ik nogal wat. Op de weetmuts website staan wat hints:https://github.com/weetmuts/wmbusmeters
De config die ik nu draai wordt dus:Here is an example command line that reduces the rtl_wmbus CPU usage if you only need T1/C1 telegrams. It disable S1 decoding (-p s) and trades lower cpu usage for reception performance (-a):
rtlwmbus:CMD(rtl_sdr -f 868.95M -s 1600000 - 2>/dev/null | rtl_wmbus -p s -a)
code: /etc/wmbusmeters.conf
1
2
3
| ... device=rtlwmbus:CMD(rtl_sdr -f 868.95M -s 1600000 - 2>/dev/null | rtl_wmbus -p s) ... |
zonder de -a. CPU usage is gehalveerd naar een ~20-25% voor rtl_wmbus. Met de -a krijg ik alleen maar corrupte telegrams. Misschien als je een perfect signaal hebt, dan zou de -a de CPU-load nog kunnen halveren.
To do
Heb nog maar 1 ding op het lijstje staan:- kWh meter toevoegen (S0 pulse teller)
- Op basis van opgenomen vermogen en geleverd vermogen, de live-COP weergeven
- Een relais mee laten schakelen met m'n driewegklep, om CV en SWW vermogen gescheiden te kunnen loggen
- Kijken hoe de rtl_wmbus zuiniger kan, verbruikt nu constant 50% CPU
[ Voor 8% gewijzigd door Zwartoog op 08-02-2023 16:08 ]
Ik ga mij ook eens aansluiten bij dit topic.
Sinds okt 2022 een huis met een warmtenet in Zoetermeer.
En gisteren is eneco langsgekomen om ons van een "slimme" meter te voorzien, die eigenlijk gewoon dom is.
Want uitlezen kan niet
Nu loopt er wel mooi een Mbus van de Kamstrup 402 naar deze slimme module van Eneco.
Kortom die M-bus wil ik zelf ook gaan aftappen.
De vraag: is deze Mbus usb adapter daarvoor geschikt?
https://www.amazon.nl/-/e...+module%2Caps%2C58&sr=8-2
Dan ga ik erna eerst maar eens de verbinding opzetten naar de RPI, en erna naar Domoticz toe.
Sinds okt 2022 een huis met een warmtenet in Zoetermeer.
En gisteren is eneco langsgekomen om ons van een "slimme" meter te voorzien, die eigenlijk gewoon dom is.
Want uitlezen kan niet
Nu loopt er wel mooi een Mbus van de Kamstrup 402 naar deze slimme module van Eneco.
Kortom die M-bus wil ik zelf ook gaan aftappen.
De vraag: is deze Mbus usb adapter daarvoor geschikt?
https://www.amazon.nl/-/e...+module%2Caps%2C58&sr=8-2
Dan ga ik erna eerst maar eens de verbinding opzetten naar de RPI, en erna naar Domoticz toe.
[ Voor 6% gewijzigd door luigi87 op 25-01-2023 09:49 ]
- leeg -
Ik ben meer een gebruiker dan een kenner van mbus maar wat ik weet is dat 't een master / slave bussysteem is. Ik denk dat dit Eneco module de master is en dat je dus, zoals je al schrijft wil meeluisteren op de bus. Of dat met zo'n module kan: geen idee.luigi87 schreef op woensdag 25 januari 2023 @ 09:47:
Ik ga mij ook eens aansluiten bij dit topic.
Sinds okt 2022 een huis met een warmtenet in Zoetermeer.
En gisteren is eneco langsgekomen om ons van een "slimme" meter te voorzien, die eigenlijk gewoon dom is.
Want uitlezen kan niet
Nu loopt er wel mooi een Mbus van de Kamstrup 402 naar deze slimme module van Eneco.
Kortom die M-bus wil ik zelf ook gaan aftappen.
De vraag: is deze Mbus usb adapter daarvoor geschikt?
https://www.amazon.nl/-/e...+module%2Caps%2C58&sr=8-2
Voor de meeste hier gaat 't om 1 Kamstrup en een eigen master module, da's denk ik net wat anders.
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
Klikt inderdaad logisch, maar als ik de draden onder de eneco module weg schroef en op deze module plaats ben ik er toch ook?blb4 schreef op woensdag 25 januari 2023 @ 09:52:
[...]
Ik ben meer een gebruiker dan een kenner van mbus maar wat ik weet is dat 't een master / slave bussysteem is. Ik denk dat dit Eneco module de master is en dat je dus, zoals je al schrijft wil meeluisteren op de bus. Of dat met zo'n module kan: geen idee.
Voor de meeste hier gaat 't om 1 Kamstrup en een eigen master module, da's denk ik net wat anders.
Dan is mijn module de master. En vul ik netjes jaarlijks de meterwaardes bij eneco in.
Die slimme module is mometeel namelijk optioneel. En geeft mij weinig gebruiksgemak.
- leeg -
Aha, in dat geval kom je op dezelfde setup uit. Er zijn een hoop verschillende, je moet in elk geval een master module hebben.luigi87 schreef op woensdag 25 januari 2023 @ 09:59:
[...]
Klikt inderdaad logisch, maar als ik de draden onder de eneco module weg schroef en op deze module plaats ben ik er toch ook?
Dan is mijn module de master. En vul ik netjes jaarlijks de meterwaardes bij eneco in.
Die slimme module is mometeel namelijk optioneel. En geeft mij weinig gebruiksgemak.
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
Zou je hem niet als slave kunnen zetten dan?blb4 schreef op woensdag 25 januari 2023 @ 10:03:
[...]
Aha, in dat geval kom je op dezelfde setup uit. Er zijn een hoop verschillende, je moet in elk geval een master module hebben.
Hij leest immers toch alleen uit? of stuurt die ook Control signalen?
- leeg -
zoals ik 't begrijp moet iemand de lead nemen op een mbus. Om dus informatie op te vragen van de slave(s). Dat doet de master.luigi87 schreef op woensdag 25 januari 2023 @ 10:09:
[...]
Zou je hem niet als slave kunnen zetten dan?
Hij leest immers toch alleen uit? of stuurt die ook Control signalen?
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
Hmm, tja als die Eneco ,module dat doet is dat waars 1 keer per dag.blb4 schreef op woensdag 25 januari 2023 @ 10:11:
[...]
zoals ik 't begrijp moet iemand de lead nemen op een mbus. Om dus informatie op te vragen van de slave(s). Dat doet de master.
Zet ik de Eneco module wel als Slave
- leeg -
Volgens mij levert "de master" ook de voedingspanning voor het MBus circuit.
Als je er een tussen wilt plaatsen om te monitoren zal dat een slave moeten zijn denk ik.
Verder geen ervaring met slaves er tussen dus laat het ons weten of het gelukt is
Als je er een tussen wilt plaatsen om te monitoren zal dat een slave moeten zijn denk ik.
Verder geen ervaring met slaves er tussen dus laat het ons weten of het gelukt is
[ Voor 21% gewijzigd door AUijtdehaag op 25-01-2023 10:23 ]
Zou de slave dan ook data kunnen opvragen?AUijtdehaag schreef op woensdag 25 januari 2023 @ 10:20:
Volgens mij levert "de master" ook de voedingspanning voor het MBus circuit.
Als je er een tussen wilt plaatsen om te monitoren zal dat een slave moeten zijn denk ik.
Nieuwe master ertussen werkt dus ook:
nielsteekens in "“Slimme” warmtemodule stadswarmte Eneco"
En lees er ook in het topic dat een data aanvraag per uur gaat.
dus een slave zou nog kunnen.
Uiteraard als ik nieuwe info heb komt dat hier erbij.AUijtdehaag schreef op woensdag 25 januari 2023 @ 10:20:
Verder geen ervaring met slaves er tussen dus laat het ons weten of het gelukt is
Echter ben ik meer een Hardware guy, dan een software guy. dus weet nog niet hoever ik kom
[ Voor 33% gewijzigd door luigi87 op 25-01-2023 10:36 ]
- leeg -
Ik heb inmiddels ook mijn Kamstrup 303-WA02DB-71920 met toebehoren (1" installatiekit, messing buisje en paar ringen) binnen. De 1" komt precies overeen met de 28mm buizen van mijn CV dus puntstuk erop en klaar. Maar ik weet niet zeker hoe ik de 1" aansluiting van de Kamstrup op de kogelkranen waterdicht moet maken.
Het lijkt me dat daar die 1" kunststof ringen voor zijn? Werkt dat goed? Ik gebruik overal knelkoppelingen of teflon tape dus heb geen ervaring met dit soort afdichtingen.
Het lijkt me dat daar die 1" kunststof ringen voor zijn? Werkt dat goed? Ik gebruik overal knelkoppelingen of teflon tape dus heb geen ervaring met dit soort afdichtingen.
Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp
Dat werkt uitstekend. Met zo'n koppeling kan je de meter er makkelijk tussenuit halen (kranen dicht, 2 wartels losdraaien) mocht dat nodig zijn.RichieB schreef op woensdag 1 februari 2023 @ 13:05:
Ik heb inmiddels ook mijn Kamstrup 303-WA02DB-71920 met toebehoren (1" installatiekit, messing buisje en paar ringen) binnen. De 1" komt precies overeen met de 28mm buizen van mijn CV dus puntstuk erop en klaar. Maar ik weet niet zeker hoe ik de 1" aansluiting van de Kamstrup op de kogelkranen waterdicht moet maken.
Het lijkt me dat daar die 1" kunststof ringen voor zijn? Werkt dat goed? Ik gebruik overal knelkoppelingen of teflon tape dus heb geen ervaring met dit soort afdichtingen.
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 denk dat je die fiberringen bedoelt? Ja, die doe je tussen de Kamstrup en in de wartel van de kogelkraan. Met beleid aandraaien, en als het drupt, nog een tikke verder aandraaien. Die fiberringen zwellen een beetje op, waardoor je een goede afdichting krijgt. Rubber ringen kan ook, hoef je iets minder hard aan te draaien.RichieB schreef op woensdag 1 februari 2023 @ 13:05:
Ik heb inmiddels ook mijn Kamstrup 303-WA02DB-71920 met toebehoren (1" installatiekit, messing buisje en paar ringen) binnen. De 1" komt precies overeen met de 28mm buizen van mijn CV dus puntstuk erop en klaar. Maar ik weet niet zeker hoe ik de 1" aansluiting van de Kamstrup op de kogelkranen waterdicht moet maken.
Het lijkt me dat daar die 1" kunststof ringen voor zijn? Werkt dat goed? Ik gebruik overal knelkoppelingen of teflon tape dus heb geen ervaring met dit soort afdichtingen.
@Zwartoog Die bedoelde ik inderdaad. Ik heb bij de Hornbach gevraagd hoe ik een G1B aansluiting waterdicht moet maken en ze zeiden "teflon tape". Die ringen lijken me handiger.
Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp
Het is niet of-of, hangt compleet af van de fitting die je hebt. In deze zou een fiberring voldoende moeten zijn.RichieB schreef op donderdag 2 februari 2023 @ 12:48:
@Zwartoog Die bedoelde ik inderdaad. Ik heb bij de Hornbach gevraagd hoe ik een G1B aansluiting waterdicht moet maken en ze zeiden "teflon tape". Die ringen lijken me handiger.
Wat ik niet begrijp is waarom je deze vraag bij de Hornbach legt? Je hebt een aansluitset van Kamstrup gehad, daar zit alles in wat je nodig hebt om de Kamstrup goed aan te sluiten. Hoe je de andere kant van de kranen op je leidingwerk aansluit, is weer een andere vraag. Een foto van de leiding, kraan en puntstuk dat je nu hebt zou helpen.
@Zwartoog Er zitten bij de Kamstrup 2 fiberringen maar bij de 1" installatieset zit een kogelkraan voor de temperatuursensor met aan beiden kanten G1B draad, maar geen ringen. Daar heb ik 28mm puntstukken voor gekocht bij de Hornbach.
Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp
@RichieB
Als je die 28 mm puntstukken in een 1" kogelkraan draait, gebruik dan loctite55 in plaats van teflon tape.
Dicht stukken beter af. (gebruik het voor al je schroefdraad verbindingen, behalve natuurlijk niet bij een vlakke pakking)
Als je die 28 mm puntstukken in een 1" kogelkraan draait, gebruik dan loctite55 in plaats van teflon tape.
Dicht stukken beter af. (gebruik het voor al je schroefdraad verbindingen, behalve natuurlijk niet bij een vlakke pakking)
[ Voor 34% gewijzigd door AUijtdehaag op 02-02-2023 21:14 ]
Wat @AUijtdehaag zegt. Op dat stuk loctitie'55 gebruiken, en geen fiberringen.
"Vlakke pakking" is inderdaad wat ik had gemist: daar kan je een ring tussen doen en zit op de kogelkraan en de Kamstrup. De G1B kant van de kogelkraan is schuin en daar kan je dus geen ring gebruiken maar moet je tape of loctite toepassen.AUijtdehaag schreef op donderdag 2 februari 2023 @ 21:10:
@RichieB
Als je die 28 mm puntstukken in een 1" kogelkraan draait, gebruik dan loctite55 in plaats van teflon tape.
Dicht stukken beter af. (gebruik het voor al je schroefdraad verbindingen, behalve natuurlijk niet bij een vlakke pakking)
Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp
Het is gelukt hoor, ik heb de Kampstrup geheel waterdicht geïnstalleerd. Alleen de sensor in de kogelkraan lekte met alleen het rubbertje. Ik heb daarna ook het metalen ringetje erbij gedaan en opnieuw vastgezet. Daarna druppelde het niet meer.
Ik heb de Kamstrup aangesloten op mijn CV oa om te bepalen welk vermogen warmtepomp ik nodig heb. De eerste resultaten zijn al binnen: op de laagste stand pruttelt mijn CV met 8,4 kW. Als ik die een uur laat lopen verbruik ik 0,98 m3 gas. Mijn Intergas HRE CV ketel haalt dus 8,5 kWh uit een m3 gas.
Ik heb de Kamstrup aangesloten op mijn CV oa om te bepalen welk vermogen warmtepomp ik nodig heb. De eerste resultaten zijn al binnen: op de laagste stand pruttelt mijn CV met 8,4 kW. Als ik die een uur laat lopen verbruik ik 0,98 m3 gas. Mijn Intergas HRE CV ketel haalt dus 8,5 kWh uit een m3 gas.
Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp
Inmiddels ook de CPU-load van de rtl_wmbus omlaag gekregen:
Bij mij gebruikt de rtl_wmbus constant zo'n 50% CPU-core op m'n Pi. Dat vond ik nogal wat. Op de weetmuts website staan wat hints:
https://github.com/weetmuts/wmbusmeters
zonder de -a. CPU usage is gehalveerd naar een ~20-25% voor rtl_wmbus. Met de -a krijg ik alleen maar corrupte telegrams. Misschien als je een perfect signaal hebt, dan zou de -a de CPU-load nog kunnen halveren.
Toegevoegd aan: Zwartoog in "Kamstrup Multical 302 met Pi uitlezen en domoticz"
Bij mij gebruikt de rtl_wmbus constant zo'n 50% CPU-core op m'n Pi. Dat vond ik nogal wat. Op de weetmuts website staan wat hints:
https://github.com/weetmuts/wmbusmeters
De config die ik nu draai wordt dus:Here is an example command line that reduces the rtl_wmbus CPU usage if you only need T1/C1 telegrams. It disable S1 decoding (-p s) and trades lower cpu usage for reception performance (-a):
rtlwmbus:CMD(rtl_sdr -f 868.95M -s 1600000 - 2>/dev/null | rtl_wmbus -p s -a)
code: /etc/wmbusmeters.conf
1
2
3
| ... device=rtlwmbus:CMD(rtl_sdr -f 868.95M -s 1600000 - 2>/dev/null | rtl_wmbus -p s) ... |
zonder de -a. CPU usage is gehalveerd naar een ~20-25% voor rtl_wmbus. Met de -a krijg ik alleen maar corrupte telegrams. Misschien als je een perfect signaal hebt, dan zou de -a de CPU-load nog kunnen halveren.
Toegevoegd aan: Zwartoog in "Kamstrup Multical 302 met Pi uitlezen en domoticz"
Mijn Kamstrup 403 op USB ID 160 spuugt inmiddels data uit naar mijn RPI.AUijtdehaag schreef op woensdag 8 november 2017 @ 19:59:
@Anoniem: 925609
Je moet dummy's maken (1 dummy device aanmaken en daar vanaf meer dummys maken) en het Idx nummer in het php script verwerken, Idx nummer van de dummy staat onder hardware apparaten
[...]
[...]
de data file die ik binnen krijg is deze:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| <?xml version="1.0" encoding="ISO-8859-1"?> <MBusData> <SlaveInformation> <Id>62063160</Id> <Manufacturer>KAM</Manufacturer> <Version>11</Version> <ProductName></ProductName> <Medium>Heat: Outlet</Medium> <AccessNumber>1</AccessNumber> <Status>00</Status> <Signature>0000</Signature> </SlaveInformation> en nog veel meer.... |
en nu heb ik dankbaar gebruik gemaakt voor de voorzet eerder in het topic:
@Anoniem: 925609
Anoniem: 925609 in "Kamstrup Multical 302 met Pi uitlezen en domoticz"
en ben tot het volgende script gekomen:
Zitten wat aanpassingen in omdat deze niet correct waren.
Onderstaan script draai bij mij inmiddels om 5 minuten om de data binnen te halen
Enkel moet ik nog de Persistent USB fixen (zie mijn volgende post, Helaas krijg ik dit nog niet werkende)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
| #!/usr/bin/php <?php //*********************************** //Kamstrup Multical 402 with ID:160 readout //*********************************** $output = shell_exec("sudo /usr/local/bin/mbus-serial-request-data -d -b 2400 /dev/ttyUSB1 160"); //persistant usb drv RPi- "m-busadress160" $xmloutput=substr($output,strpos($output,'<MBusData>')); $xmloutput = new SimpleXMLElement($xmloutput); $CounterID=$xmloutput->SlaveInformation->Id; $EnergyValue=$xmloutput->DataRecord[1]->Value; // <<-- Overnemen in Domoticz $TotalVolume=$xmloutput->DataRecord[2]->Value; // <<-- Overnemen in Domoticz $OnTime=$xmloutput->DataRecord[3]->Value; $TempFlowValue=$xmloutput->DataRecord[4]->Value; // <<-- Overnemen in Domoticz $TempReturnValue=$xmloutput->DataRecord[5]->Value; // <<-- Overnemen in Domoticz $TempDiffValue=$xmloutput->DataRecord[6]->Value; // <<-- Overnemen in Domoticz $PowerInstValue=$xmloutput->DataRecord[7]->Value; $PowerMaxValue=$xmloutput->DataRecord[8]->Value; $FlowInstValue=$xmloutput->DataRecord[9]->Value; $FlowMaxValue=$xmloutput->DataRecord[10]->Value; $EnergyTarif1InstValue=$xmloutput->DataRecord[11]->Value; $EnergyTarif2InstValue=$xmloutput->DataRecord[12]->Value; $Volume1Value=$xmloutput->DataRecord[13]->Value; $Volume2Value=$xmloutput->DataRecord[14]->Value; $EnergyInstValue=$xmloutput->DataRecord[15]->Value; $TimePoint=$xmloutput->DataRecord[16]->Value; $DomoticzIP="http://192.168.1.210:4187/"; $IDXTenergytotal=855; //in Domoticz: type Teller (count) en delen door 10 $IDXTotalVolume=856; //in Domoticz: type Teller (water) en delen door 10 $IDXTaanvoer=857; //in Domoticz: type temperature $IDXTretour=858; //in Domoticz: type temperature $IDXTdiff=859; //in Domoticz: type temperature //Function to send to Domoticz function ud($idx,$nvalue,$svalue,$name=""){ print " --- UPDATE ".$idx." ".$name." ".$nvalue." ".$svalue." "; file_get_contents("http://192.168.1.210:4187/".'json.htm?type=command¶m=udevice&idx='.$idx.'&nvalue='.$nvalue.'&svalue='.$svalue); usleep(250000); } //Function counter to send to Domoticz function uc($idx,$svalue,$name=""){ print " --- UPDATE ".$idx." ".$name." ".$svalue." "; file_get_contents("http://192.168.1.210:4187/".'json.htm?type=command¶m=udevice&idx='.$idx.'&svalue='.$svalue); usleep(250000); } // Totaalenergy (C) to Domoticz (kamstrup Reg 1) ud($IDXTenergytotal,0,$EnergyValue/100,0); // Totalvol (C) to Domoticz (kamstrup Reg 2) ud($IDXTotalVolume,0,$TotalVolume/100,0); // Taanvoer (C) to Domoticz (kamstrup Reg 8) ud($IDXTaanvoer,0,$TempFlowValue/100,0); // Tretour (C) to Domoticz (kamstrup Reg 5) ud($IDXTretour,0,$TempReturnValue/100,0); // Tdiff (C) to Domoticz (kamstrup Reg 6) ud($IDXTdiff,0,$TempDiffValue/100,0); ?> |
[ Voor 69% gewijzigd door luigi87 op 09-02-2023 16:29 ]
- leeg -
extra Probleem helaas krijg ik het persistent usb niet voor elkaar.
Ik heb ook een P1 meter hangen aan het systeem op nu dan USB 1 ipv USB0
dus ik heb dit gevolgd:
https://www.domoticz.com/wiki/PersistentUSBDevices
regeltje aan gemaakt:
op basis van deze info:
maar helaas geen resultaat
wel met deze regel
Ik heb ook een P1 meter hangen aan het systeem op nu dan USB 1 ipv USB0
dus ik heb dit gevolgd:
https://www.domoticz.com/wiki/PersistentUSBDevices
regeltje aan gemaakt:
code:
1
| SUBSYSTEM=="tty", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3", ATTRS{serial}=="BABWn114J20", SYMLINK+="m-busadress160" |
op basis van deze info:
code:
1
2
3
4
| idVendor 0x067b Prolific Technology, Inc. idProduct 0x23a3 iProduct 2 USB-Serial Controller iSerial 3 BABWn114J20 |
maar helaas geen resultaat
code:
1
2
3
4
5
6
7
8
| pi@raspberrypi:~ $ mbus-serial-scan /dev/ttym-busadress160 mbus_serial_connect: failed to open tty.Scan failed: Could not setup connection to M-bus gateway: pi@raspberrypi:~ $ mbus-serial-scan /dev/tty m-busadress160 usage: mbus-serial-scan [-d] [-b BAUDRATE] [-r RETRIES] device pi@raspberrypi:~ $ mbus-serial-scan /dev/tty m-busadress160 160 usage: mbus-serial-scan [-d] [-b BAUDRATE] [-r RETRIES] device pi@raspberrypi:~ $ mbus-serial-request-data /dev/ttyUSB0 160 |
wel met deze regel
code:
1
| pi@raspberrypi:~ $ mbus-serial-request-data /dev/ttyUSB0 160 |
[ Voor 6% gewijzigd door luigi87 op 09-02-2023 13:26 ]
- leeg -
@luigi87
Dit is 5 jaar geleden.
Ik gebruik nu node-red in home assistant, dan heb je dat allemaal niet nodig.
Edit:
Ik had dit staan:
Bij mij dus 61 (bij jou 160)
Dit is 5 jaar geleden.
Ik gebruik nu node-red in home assistant, dan heb je dat allemaal niet nodig.
Edit:
Ik had dit staan:
code:
1
2
| SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{serial}=="9040", SYMLINK+="ttyUSB-KAMSTRUP" SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="AR4XHS5G", SYMLINK+="ttyUSB-P1" |
Bij mij dus 61 (bij jou 160)
code:
1
2
| /usr/local/bin/mbus-serial-request-data -d -b 2400 /dev/ttyUSB-KAMSTRUP 61 /usr/local/bin/mbus-serial-request-data -d -b 2400 /dev/ttyUSB0 61 |
[ Voor 63% gewijzigd door AUijtdehaag op 09-02-2023 17:12 ]
Hoe is dit geregeld in HA?AUijtdehaag schreef op donderdag 9 februari 2023 @ 17:00:
@luigi87
Dit is 5 jaar geleden.
Ik gebruik nu node-red in home assistant, dan heb je dat allemaal niet nodig.
Edit:
Ik had dit staan:
code:
1 2 SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{serial}=="9040", SYMLINK+="ttyUSB-KAMSTRUP" SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="AR4XHS5G", SYMLINK+="ttyUSB-P1"
Bij mij dus 61 (bij jou 160)
code:
1 2 /usr/local/bin/mbus-serial-request-data -d -b 2400 /dev/ttyUSB-KAMSTRUP 61 /usr/local/bin/mbus-serial-request-data -d -b 2400 /dev/ttyUSB0 61
Ik ben nu denk ik zo een 10 jaar Domoticz gebruiker, en de laatste maanden alles in het nieuwe huis weer even snel opgebouwd in Domoticz.
Maar binnenkort wil ook eens gaan spelen met HA. en dan mogelijk een migratie opzetten naar HA
- leeg -
Die persistent USB regel van jou zou een symlink aan moeten maken: /dev/m-busadress160. Je probeert met jouw command line te verbinden met /dev/ttym-busadress160 die bestaat dan idd niet. Check anders maar de output van:luigi87 schreef op donderdag 9 februari 2023 @ 13:25:
extra Probleem helaas krijg ik het persistent usb niet voor elkaar.
Ik heb ook een P1 meter hangen aan het systeem op nu dan USB 1 ipv USB0
dus ik heb dit gevolgd:
https://www.domoticz.com/wiki/PersistentUSBDevices
regeltje aan gemaakt:
code:
1 SUBSYSTEM=="tty", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3", ATTRS{serial}=="BABWn114J20", SYMLINK+="m-busadress160"
op basis van deze info:
code:
1 2 3 4 idVendor 0x067b Prolific Technology, Inc. idProduct 0x23a3 iProduct 2 USB-Serial Controller iSerial 3 BABWn114J20
maar helaas geen resultaat![]()
code:
1 2 3 4 5 6 7 8 pi@raspberrypi:~ $ mbus-serial-scan /dev/ttym-busadress160 mbus_serial_connect: failed to open tty.Scan failed: Could not setup connection to M-bus gateway: pi@raspberrypi:~ $ mbus-serial-scan /dev/tty m-busadress160 usage: mbus-serial-scan [-d] [-b BAUDRATE] [-r RETRIES] device pi@raspberrypi:~ $ mbus-serial-scan /dev/tty m-busadress160 160 usage: mbus-serial-scan [-d] [-b BAUDRATE] [-r RETRIES] device pi@raspberrypi:~ $ mbus-serial-request-data /dev/ttyUSB0 160
wel met deze regel
code:
1 pi@raspberrypi:~ $ mbus-serial-request-data /dev/ttyUSB0 160
code:
1
| ls -l /dev/ttyUSB* |
Dan kun je eenvoudig zien of de symlink gemaakt is en wat de naam is.
@luigi87
In home assistant (hassio of supervised versie draait nodered als add-on.
Influxdb en grafana kan je ook als addon installeren in HA
Heb je meteen de meetwaarden ook in grafana via nodered en influxdb.
Flow (nodered) heb ik wel ergens staan.
(Zie TS)
En maak meteen automatische backups naar google drive of nas via samba backup (addon)
Misschien is het tijd om van de pi met sd kaart afscheid te nemen en te gaan voor een odroid C4 of N2+ met emmc kaartje. (Emmc writers zijn weer lastiger beschikbaar)
Google ff op home assistant odroid.
In home assistant (hassio of supervised versie draait nodered als add-on.
Influxdb en grafana kan je ook als addon installeren in HA
Heb je meteen de meetwaarden ook in grafana via nodered en influxdb.
Flow (nodered) heb ik wel ergens staan.
(Zie TS)
En maak meteen automatische backups naar google drive of nas via samba backup (addon)
Misschien is het tijd om van de pi met sd kaart afscheid te nemen en te gaan voor een odroid C4 of N2+ met emmc kaartje. (Emmc writers zijn weer lastiger beschikbaar)
Google ff op home assistant odroid.
[ Voor 10% gewijzigd door AUijtdehaag op 10-02-2023 12:50 ]
De symlink even beetje aangepasttsjoender schreef op vrijdag 10 februari 2023 @ 12:09:
[...]
Die persistent USB regel van jou zou een symlink aan moeten maken: /dev/m-busadress160. Je probeert met jouw command line te verbinden met /dev/ttym-busadress160 die bestaat dan idd niet. Check anders maar de output van:
code:
1 ls -l /dev/ttyUSB*
Dan kun je eenvoudig zien of de symlink gemaakt is en wat de naam is.
code:
1
| SUBSYSTEM=="tty", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3", ATTRS{serial}=="BABWn114J20", SYMLINK+="ttyUSB-Mbusadress" |
Bevestigd inderdaad dat de symlink niet wordt/ is gemaakt
Had eerst er al /dev/Symlink van gemaakt, maar deed ook niets.
Zou het kunnen komen doordat de USB device achter een USB hub zit??
De output is:
code:
1
2
3
| pi@raspberrypi:~ $ ls -l /dev/ttyUSB* crw-rw---- 1 root dialout 188, 0 Feb 10 13:50 /dev/ttyUSB0 crw-rw---- 1 root dialout 188, 1 Feb 9 13:19 /dev/ttyUSB1 |
Hier heb ik de data vandaan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
| pi@raspberrypi:~ $ sudo lsusb -v | grep 'idVendor\|idProduct\|iProduct\|iSerial' idVendor 0x174c ASMedia Technology Inc. idProduct 0x1053 iProduct 3 USB3.0 Device iSerial 1 AC0000000001 can't get debug descriptor: Resource temporarily unavailable can't get debug descriptor: Resource temporarily unavailable idVendor 0x1d6b Linux Foundation idProduct 0x0003 3.0 root hub iProduct 2 xHCI Host Controller iSerial 1 0000:01:00.0 idVendor 0x0451 Texas Instruments, Inc. idProduct 0xbef3 CC1352R1 Launchpad iProduct 2 XDS110 (03.00.00.16) Embed with CMSIS-DAP iSerial 3 L1100MJX can't get debug descriptor: Resource temporarily unavailable can't get device qualifier: Resource temporarily unavailable can't get debug descriptor: Resource temporarily unavailable idVendor 0x0403 Future Technology Devices International, Ltd idProduct 0x6001 FT232 Serial (UART) IC iProduct 2 FT232R USB UART iSerial 3 AL00WBIJ idVendor 0x1a40 Terminus Technology Inc. can't get debug descriptor: Resource temporarily unavailable idProduct 0x0101 Hub iProduct 1 USB 2.0 Hub iSerial 0 idVendor 0x067b Prolific Technology, Inc. idProduct 0x23a3 iProduct 2 USB-Serial Controller iSerial 3 BABWn114J20 can't get device qualifier: Resource temporarily unavailable can't get debug descriptor: Resource temporarily unavailable can't get device qualifier: Resource temporarily unavailable can't get debug descriptor: Resource temporarily unavailable idVendor 0x0658 Sigma Designs, Inc. idProduct 0x0200 Aeotec Z-Stick Gen5 (ZW090) - UZB iProduct 0 iSerial 0 idVendor 0x1a40 Terminus Technology Inc. idProduct 0x0101 Hub iProduct 1 USB 2.0 Hub iSerial 0 can't get debug descriptor: Resource temporarily unavailable idVendor 0x2109 VIA Labs, Inc. idProduct 0x3431 Hub iProduct 1 USB2.0 Hub iSerial 0 can't get debug descriptor: Resource temporarily unavailable can't get device qualifier: Resource temporarily unavailable can't get debug descriptor: Resource temporarily unavailable idVendor 0x1d6b Linux Foundation idProduct 0x0002 2.0 root hub iProduct 2 xHCI Host Controller iSerial 1 0000:01:00.0 |
[ Voor 65% gewijzigd door luigi87 op 10-02-2023 14:07 ]
- leeg -
Een USB hub is geen bezwaar (ik heb ze allemaal op een USB hub). Twee dingen om te proberen:luigi87 schreef op vrijdag 10 februari 2023 @ 13:54:
[...]
De symlink even beetje aangepast
code:
1 SUBSYSTEM=="tty", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3", ATTRS{serial}=="BABWn114J20", SYMLINK+="ttyUSB-Mbusadress"
Bevestigd inderdaad dat de symlink niet wordt/ is gemaakt
Had eerst er al /dev/Symlink van gemaakt, maar deed ook niets.
Zou het kunnen komen doordat de USB device achter een USB hub zit??
De output is:
code:
1 2 3 pi@raspberrypi:~ $ ls -l /dev/ttyUSB* crw-rw---- 1 root dialout 188, 0 Feb 10 13:50 /dev/ttyUSB0 crw-rw---- 1 root dialout 188, 1 Feb 9 13:19 /dev/ttyUSB1
Hier heb ik de data vandaan:
code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 pi@raspberrypi:~ $ sudo lsusb -v | grep 'idVendor\|idProduct\|iProduct\|iSerial' idVendor 0x174c ASMedia Technology Inc. idProduct 0x1053 iProduct 3 USB3.0 Device iSerial 1 AC0000000001 can't get debug descriptor: Resource temporarily unavailable can't get debug descriptor: Resource temporarily unavailable idVendor 0x1d6b Linux Foundation idProduct 0x0003 3.0 root hub iProduct 2 xHCI Host Controller iSerial 1 0000:01:00.0 idVendor 0x0451 Texas Instruments, Inc. idProduct 0xbef3 CC1352R1 Launchpad iProduct 2 XDS110 (03.00.00.16) Embed with CMSIS-DAP iSerial 3 L1100MJX can't get debug descriptor: Resource temporarily unavailable can't get device qualifier: Resource temporarily unavailable can't get debug descriptor: Resource temporarily unavailable idVendor 0x0403 Future Technology Devices International, Ltd idProduct 0x6001 FT232 Serial (UART) IC iProduct 2 FT232R USB UART iSerial 3 AL00WBIJ idVendor 0x1a40 Terminus Technology Inc. can't get debug descriptor: Resource temporarily unavailable idProduct 0x0101 Hub iProduct 1 USB 2.0 Hub iSerial 0 idVendor 0x067b Prolific Technology, Inc. idProduct 0x23a3 iProduct 2 USB-Serial Controller iSerial 3 BABWn114J20 can't get device qualifier: Resource temporarily unavailable can't get debug descriptor: Resource temporarily unavailable can't get device qualifier: Resource temporarily unavailable can't get debug descriptor: Resource temporarily unavailable idVendor 0x0658 Sigma Designs, Inc. idProduct 0x0200 Aeotec Z-Stick Gen5 (ZW090) - UZB iProduct 0 iSerial 0 idVendor 0x1a40 Terminus Technology Inc. idProduct 0x0101 Hub iProduct 1 USB 2.0 Hub iSerial 0 can't get debug descriptor: Resource temporarily unavailable idVendor 0x2109 VIA Labs, Inc. idProduct 0x3431 Hub iProduct 1 USB2.0 Hub iSerial 0 can't get debug descriptor: Resource temporarily unavailable can't get device qualifier: Resource temporarily unavailable can't get debug descriptor: Resource temporarily unavailable idVendor 0x1d6b Linux Foundation idProduct 0x0002 2.0 root hub iProduct 2 xHCI Host Controller iSerial 1 0000:01:00.0
1) Misschien is dat koppelteken in de symlink naam een spelbreker. Probeer eens iets simpels als "mbus".
2) Zo te zien heb je maar een Prolific device. In dat geval kan je de serial matching ook weglaten en kijken of dat misschien een verschil maakt.
Dankesjeuntsjoender schreef op vrijdag 10 februari 2023 @ 15:00:
[...]
Een USB hub is geen bezwaar (ik heb ze allemaal op een USB hub). Twee dingen om te proberen:
1) Misschien is dat koppelteken in de symlink naam een spelbreker. Probeer eens iets simpels als "mbus".
2) Zo te zien heb je maar een Prolific device. In dat geval kan je de serial matching ook weglaten en kijken of dat misschien een verschil maakt.
serial eruit en nu is het gefixed
code:
1
2
3
4
| pi@raspberrypi:~ $ ls -l /dev/ttyUSB* crw-rw---- 1 root dialout 188, 0 Feb 10 15:45 /dev/ttyUSB0 crw-rw---- 1 root dialout 188, 1 Feb 9 13:19 /dev/ttyUSB1 lrwxrwxrwx 1 root root 7 Feb 10 15:42 /dev/ttyUSB-Mbusadress -> ttyUSB0 |
Nu enkel de code aanpassen in het PHP script.
code:
1
| $output = shell_exec("sudo /usr/local/bin/mbus-serial-request-data -d -b 2400 /dev/ttyUSB1 160"); //persistant usb drv RPi- "m-busadress160" |
Kan dat zo?
Edit:
Jap dat kan zo
code:
1
| $output = shell_exec("sudo /usr/local/bin/mbus-serial-request-data -d -b 2400 /dev/ttyUSB-Mbusadress 160"); |
[ Voor 19% gewijzigd door luigi87 op 10-02-2023 16:16 ]
- leeg -
Heb mij even ingelezen op Home Assistant OS e.d.AUijtdehaag schreef op vrijdag 10 februari 2023 @ 12:27:
@luigi87
In home assistant (hassio of supervised versie draait nodered als add-on.
Influxdb en grafana kan je ook als addon installeren in HA
Heb je meteen de meetwaarden ook in grafana via nodered en influxdb.
Flow (nodered) heb ik wel ergens staan.
(Zie TS)
En maak meteen automatische backups naar google drive of nas via samba backup (addon)
Misschien is het tijd om van de pi met sd kaart afscheid te nemen en te gaan voor een odroid C4 of N2+ met emmc kaartje. (Emmc writers zijn weer lastiger beschikbaar)
Google ff op home assistant odroid.
En de odroid N2+, met Emmc
Maar die laatst genoemde maakt het wel een kostbaar stukje hardware.
Al is een RPI tegenwoordig ook niet meer voor een normale prijs te krijgen.
Met welke hardware draai jij nu dan?
- leeg -
@luigi87
Ik draai zelf op een odroid C4 met 64 gb emmc.
Maar prijzen zijn inderdaad gestegen de laatste tijd.
Een N2+ is wellicht iets sneller (heb ook een N2 gehad), maar dat merk je amper omdat C4 ook snel genoeg is.
Tot nog toe (4 jaar ervaring met stuk of 10 bij anderen) bij nog geen enkele C4 een probleem gehad.
Heb ook een intel celerion met ssd (minisforum passief gekoeld) gekocht via amazon, maar die ssd crashte de installatie bij een stroomstoring.
Ik draai zelf op een odroid C4 met 64 gb emmc.
Maar prijzen zijn inderdaad gestegen de laatste tijd.
Een N2+ is wellicht iets sneller (heb ook een N2 gehad), maar dat merk je amper omdat C4 ook snel genoeg is.
Tot nog toe (4 jaar ervaring met stuk of 10 bij anderen) bij nog geen enkele C4 een probleem gehad.
Heb ook een intel celerion met ssd (minisforum passief gekoeld) gekocht via amazon, maar die ssd crashte de installatie bij een stroomstoring.
Nou ben er nu zeker van dat ik over ga naar HA.AUijtdehaag schreef op vrijdag 10 februari 2023 @ 12:27:
@luigi87
In home assistant (hassio of supervised versie draait nodered als add-on.
Influxdb en grafana kan je ook als addon installeren in HA
Heb je meteen de meetwaarden ook in grafana via nodered en influxdb.
Flow (nodered) heb ik wel ergens staan.
(Zie TS)
En maak meteen automatische backups naar google drive of nas via samba backup (addon)
Misschien is het tijd om van de pi met sd kaart afscheid te nemen en te gaan voor een odroid C4 of N2+ met emmc kaartje. (Emmc writers zijn weer lastiger beschikbaar)
Google ff op home assistant odroid.
Bied me zo veel mogelijkheden.
Dus ik zit me even lekker in te lezen. Maar wat is nu specifiek
Influxdb? Een losse database met alle data tot in detail? Waarvandan je de data weer kan gebruiken in Grafana?
Vraagt wel wat van je data opslag mogelijkheiden denk ik, niet?
En als ik dat de kamstrup wil uitlezen met de HA OS.
Neem aan dat ik dan weer de stappen moet doorlopen om de m-bus master weer de kamstrup te laten uitlezen.
En dan jou node red flow om de data in HA te krijgen?
- leeg -
@luigi87
@SmartHomeJunkie heeft interessante videos over influxdb en grafana
In node-red configuratie (bij de nodered add-on), plaats je deze code
AUijtdehaag in "Kamstrup Multical 302 met Pi uitlezen en domoticz"
(drie puntjes - bewerken in yaml)
(Ook naam en wachtwoorden die vul ik in voor http en https en credential secret-verzin wat code)
Dan wordt er automatisch node-red-contrib-m-bus geinstalleerd als je node-red add-on start (zie log).
En dan een flow importeren en je eigen kamstrup serienummer /ID invoeren.
Kan je die nu uitlezen?
Die data stuur je dan naar mqtt voor HA en influxdb voor grafana (als je zover bent dat je kamstrup data hebt in node-red in de debug window, geef maar een gil)
@SmartHomeJunkie heeft interessante videos over influxdb en grafana
In node-red configuratie (bij de nodered add-on), plaats je deze code
AUijtdehaag in "Kamstrup Multical 302 met Pi uitlezen en domoticz"
(drie puntjes - bewerken in yaml)
(Ook naam en wachtwoorden die vul ik in voor http en https en credential secret-verzin wat code)
Dan wordt er automatisch node-red-contrib-m-bus geinstalleerd als je node-red add-on start (zie log).
En dan een flow importeren en je eigen kamstrup serienummer /ID invoeren.
Kan je die nu uitlezen?
code:
1
2
| 680524912D2C3004 (wolly met een 302) 827235452D2C4004 (ikke met een 303) |
Die data stuur je dan naar mqtt voor HA en influxdb voor grafana (als je zover bent dat je kamstrup data hebt in node-red in de debug window, geef maar een gil)
[ Voor 32% gewijzigd door AUijtdehaag op 11-02-2023 17:14 ]
Ik ga dat filmpje eens bekijkenAUijtdehaag schreef op zaterdag 11 februari 2023 @ 16:51:
@luigi87
@SmartHomeJunkie heeft interessante videos over influxdb en grafana
In node-red configuratie (bij de nodered add-on), plaats je deze code
AUijtdehaag in "Kamstrup Multical 302 met Pi uitlezen en domoticz"
(drie puntjes - bewerken in yaml)
(Ook naam en wachtwoorden die vul ik in voor http en https en credential secret-verzin wat code)
Dan wordt er automatisch node-red-contrib-m-bus geinstalleerd als je node-red add-on start (zie log).
En dan een flow importeren en je eigen kamstrup serienummer /ID invoeren.
Kan je die nu uitlezen?
code:
1 2 680524912D2C3004 (wolly met een 302) 827235452D2C4004 (ikke met een 303)
Die data stuur je dan naar mqtt voor HA en influxdb voor grafana (als je zover bent dat je kamstrup data hebt in node-red in de debug window, geef maar een gil)
Qua kamstrup uitlezen neem aan dat ik eerst nog deze stappen moet doorlopen zodat de rpi de m bus adapter herkend.
https://web.archive.org/w...jects/domotiga/wiki/M-Bus
En als ik dan de data kan opvragen, bovenstaande ga doen.
Gaat nog wel duren voordat ik zover ben hoor
Heb net de laatste dingetjes aan hardware besteld.
Ga voor de Rpi 4b 8gb met 2,5 inch ssd
- leeg -
@luigi87
HA draait (ongemerkt) in docker en zo ook de rest van de addons
https://www.home-assistant.io/installation/raspberrypi/ (image erop zetten met balena etcher, al ken ik de methode niet met pi, wel met odroid)
Je hoeft dus geen linux perikelingen meer te doen.
https://flows.nodered.org/node/node-red-contrib-m-bus
Mijn verhaaltje volgen, dan zou het goed moeten komen
HA draait (ongemerkt) in docker en zo ook de rest van de addons
https://www.home-assistant.io/installation/raspberrypi/ (image erop zetten met balena etcher, al ken ik de methode niet met pi, wel met odroid)
Je hoeft dus geen linux perikelingen meer te doen.
https://flows.nodered.org/node/node-red-contrib-m-bus
Mijn verhaaltje volgen, dan zou het goed moeten komen
[ Voor 37% gewijzigd door AUijtdehaag op 11-02-2023 17:37 ]
Aaah dat maakt een hoop duidelijk.AUijtdehaag schreef op zaterdag 11 februari 2023 @ 17:34:
@luigi87
HA draait (ongemerkt) in docker en zo ook de rest van de addons
https://www.home-assistant.io/installation/raspberrypi/ (image erop zetten met balena etcher, al ken ik de methode niet met pi, wel met odroid)
Je hoeft dus geen linux perikelingen meer te doen.
https://flows.nodered.org/node/node-red-contrib-m-bus
Mijn verhaaltje volgen, dan zou het goed moeten komen
Zal ff wennen worden dan zonder de Rasbian eigenaardigheden.
Maar wel een stuk stabieler, leuk nieuw avontuur
En mijn id heb ik ook nog:
code:
1
2
3
4
5
6
7
8
9
10
| <SlaveInformation> <Id>62063160</Id> <Manufacturer>KAM</Manufacturer> <Version>11</Version> <ProductName></ProductName> <Medium>Heat: Outlet</Medium> <AccessNumber>1</AccessNumber> <Status>00</Status> <Signature>0000</Signature> </SlaveInformation> |
[ Voor 22% gewijzigd door luigi87 op 11-02-2023 18:53 ]
- leeg -
Ik heb dit weekend een Prometheus exporter gemaakt voor mijn Kamstrup 303. Het script leest op dit moment elke 5 seconde de waardes uit de Kamstrup en Prometheus pollt de exporter elke 15 seconden maar de Kamstrup update de waardes maar elke 30 seconden.
Dit is goed te zien in vergelijking met de DS18B20 sensoren die er ook nog aanhangen:
/f/image/zAJ5WgQZPsrjEr2rX78O7pyS.png?f=fotoalbum_large)
Ik weet dat het vaak uitlezen de levensduur van de batterij beïnvloed, dus ik ga dat wel weer langer maken.
Ik heb een aantal DataRecords waarvan ik niet weet wat ze zijn:
Ik heb de SlaveInformation erbij gezet ter info. Heeft iemand hier een idee? Id 2 en 3 zouden temperaturen kunnen zijn, maar die lagen in deze sample op 5013 (Flow) en 4007 (Return). Verder heb ik ook nog een set records met StorageNumber 1. Die staan allemaal op 0. Is dat een soort alternatief register? Zoals hoog/laag tarief bij kWh meters wellicht.
Dit is goed te zien in vergelijking met de DS18B20 sensoren die er ook nog aanhangen:
/f/image/zAJ5WgQZPsrjEr2rX78O7pyS.png?f=fotoalbum_large)
Ik weet dat het vaak uitlezen de levensduur van de batterij beïnvloed, dus ik ga dat wel weer langer maken.
Ik heb een aantal DataRecords waarvan ik niet weet wat ze zijn:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| <SlaveInformation> <Id>82857138</Id> <Manufacturer>KAM</Manufacturer> <Version>64</Version> <ProductName></ProductName> <Medium>Heat: Outlet</Medium> <AccessNumber>3</AccessNumber> <Status>00</Status> <Signature>0000</Signature> </SlaveInformation> <DataRecord id="2"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit>Manufacturer specific</Unit> <Value>4185</Value> <Timestamp>2023-02-12T08:45:37Z</Timestamp> </DataRecord> <DataRecord id="3"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit>Manufacturer specific</Unit> <Value>3299</Value> <Timestamp>2023-02-12T08:45:37Z</Timestamp> </DataRecord> <DataRecord id="13"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit>Manufacturer specific</Unit> <Value>0</Value> <Timestamp>2023-02-12T08:45:37Z</Timestamp> </DataRecord> |
Ik heb de SlaveInformation erbij gezet ter info. Heeft iemand hier een idee? Id 2 en 3 zouden temperaturen kunnen zijn, maar die lagen in deze sample op 5013 (Flow) en 4007 (Return). Verder heb ik ook nog een set records met StorageNumber 1. Die staan allemaal op 0. Is dat een soort alternatief register? Zoals hoog/laag tarief bij kWh meters wellicht.
Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp
@RichieB mogelijk heb je hier wat aan:
00 "Total Energy (kWh)","Value":0 \n
01 "Volume (1e-2 m^3)","Value":0 \n
02 "Manufacturer specific","Value":0 \n
03 "Manufacturer specific","Value":0 \n
04 "On time (hours)","Value":3115 \n
05 "On time (hours)","Value":0 \n (Error state)
06 "Flow temperature (1e-2 deg C)","Value":2099 \n
07 "Return temperature (1e-2 deg C)","Value":1310 \n
08 "Temperature Difference (1e-2 deg C)","Value":789 \n
09 "Power (100 W)","Value":0 \n
10 "Power Max per Month(100 W)","Value":0 \n (Maximum value)
11 "Volume flow (m m^3/h)","Value":0 \n
12 "Volume flow Max per Month (m m^3/h)","Value":0 \n (Maximum value)
13 "Manufacturer specific","Value":256 \n
14 "Energy last year (kWh)","Value":0 \n
15 "Volume last year (1e-2 m^3)","Value":0 \n
16 "Manufacturer specific","Value":0 \n
17 "Manufacturer specific","Value":0 \n
18 "Max Power last Year (100 W)","Value":0 \n (Maximum value)
19 "Max Volume flow last year (m m^3/h)","Value":0 \n (Maximum value)
20 "Time Point (date)","Value":"2000-00-00"
00 "Total Energy (kWh)","Value":0 \n
01 "Volume (1e-2 m^3)","Value":0 \n
02 "Manufacturer specific","Value":0 \n
03 "Manufacturer specific","Value":0 \n
04 "On time (hours)","Value":3115 \n
05 "On time (hours)","Value":0 \n (Error state)
06 "Flow temperature (1e-2 deg C)","Value":2099 \n
07 "Return temperature (1e-2 deg C)","Value":1310 \n
08 "Temperature Difference (1e-2 deg C)","Value":789 \n
09 "Power (100 W)","Value":0 \n
10 "Power Max per Month(100 W)","Value":0 \n (Maximum value)
11 "Volume flow (m m^3/h)","Value":0 \n
12 "Volume flow Max per Month (m m^3/h)","Value":0 \n (Maximum value)
13 "Manufacturer specific","Value":256 \n
14 "Energy last year (kWh)","Value":0 \n
15 "Volume last year (1e-2 m^3)","Value":0 \n
16 "Manufacturer specific","Value":0 \n
17 "Manufacturer specific","Value":0 \n
18 "Max Power last Year (100 W)","Value":0 \n (Maximum value)
19 "Max Volume flow last year (m m^3/h)","Value":0 \n (Maximum value)
20 "Time Point (date)","Value":"2000-00-00"
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
@blb4 Dank! Id's 2, 3 en 13 zijn bij jou ook onbekend dus. 14 t/m 20 zijn StorageNumber 1 (ipv 0). Staan bij jou ook allemaal op value 0. Jij hebt daar "last Year" bij staan (is bij mij niet zo). Dat verklaart die records.
[ Voor 23% gewijzigd door RichieB op 13-02-2023 11:25 ]
Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp
10, 12, 14, 15, 18 & 19 zijn dus idd records die gegevens over 't verleden (maand of jaar) vasthouden. Als de de andere records uitleest en in een DB schrijft heb je daar m.i. niet zo veel aan.RichieB schreef op maandag 13 februari 2023 @ 11:22:
@blb4 Dank! Id's 2, 3 en 13 zijn bij jou ook onbekend dus. 14 t/m 20 zijn StorageNumber 1 (ipv 0). Staan bij jou ook allemaal op value 0. Jij hebt daar "last Year" bij staan (is bij mij niet zo). Dat verklaart die records.
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
@blb4 Record id's 10, 12, 18 en 19 hebben bij mij als Function "Maximum value". Op basis daarvan heb ik ze al uitgesloten voor collectie:
In de handleiding heb ik gezien dat je een "contract datum" kan instellen. Wat er denk ik gebeurt is dat op die datum de tellers van StorageNumber 0 gekopieerd worden naar StorageNumber 1 zodat op basis van StorageNumber 1 de rekening kan worden opgemaakt.
code:
1
2
3
4
5
6
7
| <DataRecord id="12"> <Function>Maximum value</Function> <StorageNumber>0</StorageNumber> <Unit>Volume flow (m m^3/h)</Unit> <Value>1644</Value> <Timestamp>2023-02-12T08:45:37Z</Timestamp> </DataRecord> |
In de handleiding heb ik gezien dat je een "contract datum" kan instellen. Wat er denk ik gebeurt is dat op die datum de tellers van StorageNumber 0 gekopieerd worden naar StorageNumber 1 zodat op basis van StorageNumber 1 de rekening kan worden opgemaakt.
[ Voor 23% gewijzigd door RichieB op 13-02-2023 11:59 ]
Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp
Dat denk ik ook, deze meters zijn bedoeld om mee af te rekenen en dat zijn dit soort periode tellers nuttig.RichieB schreef op maandag 13 februari 2023 @ 11:57:
In de handleiding heb ik gezien dat je een "contract datum" kan instellen. Wat er denk ik gebeurt is dat op die datum de tellers van StorageNumber 0 gekopieerd worden naar StorageNumber 1 zodat op basis van StorageNumber 1 de rekening kan worden opgemaakt.
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
De Kamstrup Multical 303 wordt toch gekalibreerd verkocht? Ik heb hem aan mijn Intergas HRE CV hangen en de Kamstrup geeft voor de retour tot 6 graden lager aan. De Intergas HRE heeft geen sensor op de aanvoer, maar die waarde wordt geschat. Ook daar klopt weinig van, de Kamstrup geeft tot 9 graden hoger aan.
Dat is wel relevant voor de overstap naar een warmtepomp: ik heb mijn HRE ingesteld op een Ta van 40, maar het water wordt tot 54 graden verwarmd voordat de CV afslaat (zou 45 moeten zijn). Dat is een groot verschil voor een warmtepomp.
Dat is wel relevant voor de overstap naar een warmtepomp: ik heb mijn HRE ingesteld op een Ta van 40, maar het water wordt tot 54 graden verwarmd voordat de CV afslaat (zou 45 moeten zijn). Dat is een groot verschil voor een warmtepomp.
Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp
Er is hier groot vertrouwen in de betrouwbaarheid van de Kamstrup warmtemeters. Ze worden ook gebruikt voor afrekening dus 't moet wel enigszins kloppen. Ik zou de Kamstrup waarden als waarheid nemen.RichieB schreef op maandag 13 februari 2023 @ 21:09:
De Kamstrup Multical 303 wordt toch gekalibreerd verkocht? Ik heb hem aan mijn Intergas HRE CV hangen en de Kamstrup geeft voor de retour tot 6 graden lager aan. De Intergas HRE heeft geen sensor op de aanvoer, maar die waarde wordt geschat. Ook daar klopt weinig van, de Kamstrup geeft tot 9 graden hoger aan.
Dat is wel relevant voor de overstap naar een warmtepomp: ik heb mijn HRE ingesteld op een Ta van 40, maar het water wordt tot 54 graden verwarmd voordat de CV afslaat (zou 45 moeten zijn). Dat is een groot verschil voor een warmtepomp.
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
Helaas krijg ik geen verbinding met de kamstrup.AUijtdehaag schreef op zaterdag 11 februari 2023 @ 16:51:
@luigi87
@SmartHomeJunkie heeft interessante videos over influxdb en grafana
In node-red configuratie (bij de nodered add-on), plaats je deze code
AUijtdehaag in "Kamstrup Multical 302 met Pi uitlezen en domoticz"
(drie puntjes - bewerken in yaml)
(Ook naam en wachtwoorden die vul ik in voor http en https en credential secret-verzin wat code)
Dan wordt er automatisch node-red-contrib-m-bus geinstalleerd als je node-red add-on start (zie log).
En dan een flow importeren en je eigen kamstrup serienummer /ID invoeren.
Kan je die nu uitlezen?
code:
1 2 680524912D2C3004 (wolly met een 302) 827235452D2C4004 (ikke met een 303)
Die data stuur je dan naar mqtt voor HA en influxdb voor grafana (als je zover bent dat je kamstrup data hebt in node-red in de debug window, geef maar een gil)
Ben er zeker van dat de usb goed is ingesteld.
maar krijg iedere keer de melding:
code:
1
2
| "Error: Error: The selected secondary address does not match any device [620631602D2C4004]." "Error: Error: The selected secondary address does not match any device [620631602D2C3004] |
heb ook beide varianten van de code achter het id toegepast.
code:
1
2
| 620631602D2C3004 620631602D2C4004 |
Ook heb ik de usb poort gewisseld en de RPI opnieuw opgestart.
EDIT:
Posten op tweakers lost altijd alles op
ik heb verbinding.
/f/image/59OTHvcsrfpPP7VK5M0mM5HS.png?f=fotoalbum_large)
Ik heb auto scan aangezet en ben in de debugging gaan kijken.
kwam deze message tegen:
DataRecord: array[28]
secondaryID: "620631602D2C0B04"
lastUpdate: "2023-02-17T14:09:59.872Z"
error: null
waarin dus een compleet ander ID+andere code staat.
Ingevuld bij "read ID 1" en ik krijg updates
Nu heb ik wel even de format omgezet naar de 402 die ik heb hangen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| var TotalHeatEnergy = msg.payload.DataRecord[1].Value; var FlowTemperature = msg.payload.DataRecord[4].Value /100; var ReturnTemperature = msg.payload.DataRecord[5].Value /100; var DiffTemperature = Math.abs(msg.payload.DataRecord[6].Value /100); var FlowValue = msg.payload.DataRecord[2].Value; let _msg = { payload: [] }; _msg.payload= { measurement: "kamstrup", fields: { totalheatenergy : TotalHeatEnergy, flowtemperature : FlowTemperature, returntemperature : ReturnTemperature, difftemperature : DiffTemperature, flowvalue : FlowValue, }, tags:{ device: "heatmeter", }, timestamp: flow.get('timestamp') } return _msg; |
op basis van:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
| pi@raspberrypi:~/libmbus-master $ mbus-serial-request-data /dev/ttyUSB1 160 <?xml version="1.0" encoding="ISO-8859-1"?> <MBusData> <DataRecord id="1"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit>Energy (MJ)</Unit> <Value>194596</Value> <Timestamp>2023-02-08T20:48:16Z</Timestamp> </DataRecord> <DataRecord id="2"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit>Volume (m m^3)</Unit> <Value>1594956</Value> <Timestamp>2023-02-08T20:48:16Z</Timestamp> </DataRecord> <DataRecord id="4"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit>Flow temperature (1e-2 deg C)</Unit> <Value>4505</Value> <Timestamp>2023-02-08T20:48:16Z</Timestamp> </DataRecord> <DataRecord id="5"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit>Return temperature (1e-2 deg C)</Unit> <Value>3949</Value> <Timestamp>2023-02-08T20:48:16Z</Timestamp> </DataRecord> <DataRecord id="6"> <Function>Instantaneous value</Function> <StorageNumber>0</StorageNumber> <Unit>Temperature Difference (1e-2 deg C)</Unit> <Value>556</Value> <Timestamp>2023-02-08T20:48:16Z</Timestamp> </DataRecord> </MBusData> |
Klopt dit zo?
@AUijtdehaag volgende stap data in HA en InfuxDB
influxdb draait al en heb ook al een DB aangemaakt waarin nu ook data van HA komt.
Heb bij node red nog niks met de http/https in config gedaan.
maar laat maar even wat er nu aangepast moet worden. om het HA te krijgen
[ Voor 68% gewijzigd door luigi87 op 17-02-2023 15:33 ]
- leeg -
@luigi87
Volgens mij kan je er zo een influxdb node achter (extract en format) plakken want het staat al in het formaat van influxdb met de fields en dergelijke
En je stuurt mqtt uit nu?
Dan plaats je dit in configuration.yaml
en in /config/packages (aanmaken) plaats je kamstrup.yaml
zelf ff kijken naar de flowvalue
Volgens mij kan je er zo een influxdb node achter (extract en format) plakken want het staat al in het formaat van influxdb met de fields en dergelijke
En je stuurt mqtt uit nu?
Dan plaats je dit in configuration.yaml
YAML:
1
2
| homeassistant: packages: !include_dir_named packages |
en in /config/packages (aanmaken) plaats je kamstrup.yaml
YAML:
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
| # sensor # ########## mqtt: sensor: # Pumpflow L/min - name: Kamstrup Flow L/min state_topic: "kamstrup" unit_of_measurement: 'L/min' value_template: "{{ value_json.flowlm }}" # Pumpflow m3/h - name: Kamstrup Flow L/h state_topic: "kamstrup" unit_of_measurement: 'L/h' value_template: "{{ value_json.flow }}" # Water flow temp - name: Kamstrup Flow Temperature state_topic: "kamstrup" unit_of_measurement: '°C' value_template: "{{ value_json.flowtemperature }}" # Water return temp - name: Kamstrup Return Temperature state_topic: "kamstrup" unit_of_measurement: '°C' value_template: "{{ value_json.returntemperature }}" # Water differential temp - name: Kamstrup Differential Temperature state_topic: "kamstrup" unit_of_measurement: '°C' value_template: "{{ value_json.difftemperature }}" # Heating power produced - name: Kamstrup Power Produced state_topic: "kamstrup" unit_of_measurement: 'W' value_template: "{{ value_json.power }}" # Heating Counter - name: Kamstrup Heating Counter state_topic: "kamstrup" unit_of_measurement: 'kWh' value_template: "{{ value_json.totalheatenergy }}" # Cooling Counter - name: Kamstrup Cooling Counter state_topic: "kamstrup" unit_of_measurement: 'kWh' value_template: "{{ value_json.totalcoolenergy }}" |
zelf ff kijken naar de flowvalue
[ Voor 85% gewijzigd door AUijtdehaag op 17-02-2023 17:01 ]
Ik zie in mijn grafiek voor gisteren een bizar hoge waardes voor de dagelijkse kWh aan warmte. Daarvoor gebruik ik in Grafana deze query:
Ik heb deze meetwaarde gedefinieerd als "counter" omdat hij altijd oploopt. Echter, gisteren is de Kamstrup gecrasht. De logging zegt:
Dat is op zicht niet zo'n ramp, maar ik hij is op dit moment ook de totalen van een heel uur kwijtgeraakt. Hij kwam na 3 minuten weer op met de waardes van exact een uur voor de crash. Dat heeft tot gevolg dat Prometheus denkt dat de counters een rollover hebben gehad en dus een heel hoge getallen rapporteert voor increase(). Eerlijk gezegd valt me dit een beetje tegen van deze meter die hoog staat aangeschreven.
De tijden in de grafieken zijn GMT.
/f/image/2AiKv7btGO02KJsSGTVYsUVW.png?f=fotoalbum_large)
code:
1
| increase(kamstrup_energy_kwh_total[$__interval]) |
Ik heb deze meetwaarde gedefinieerd als "counter" omdat hij altijd oploopt. Echter, gisteren is de Kamstrup gecrasht. De logging zegt:
code:
1
2
3
4
5
6
| Feb 16 21:57:12 ullakko prometheus-mbus-exporter.py[15950]: mbus_serial_recv_frame: Timeout Feb 16 21:57:12 ullakko prometheus-mbus-exporter.py[15950]: Failed to receive M-Bus response frame. Feb 16 21:57:43 ullakko prometheus-mbus-exporter.py[15958]: Failed to receive M-Bus response frame. Feb 16 21:58:14 ullakko prometheus-mbus-exporter.py[15967]: Failed to receive M-Bus response frame. Feb 16 21:58:45 ullakko prometheus-mbus-exporter.py[15977]: Failed to receive M-Bus response frame. Feb 16 21:59:16 ullakko prometheus-mbus-exporter.py[15985]: Failed to receive M-Bus response frame. |
Dat is op zicht niet zo'n ramp, maar ik hij is op dit moment ook de totalen van een heel uur kwijtgeraakt. Hij kwam na 3 minuten weer op met de waardes van exact een uur voor de crash. Dat heeft tot gevolg dat Prometheus denkt dat de counters een rollover hebben gehad en dus een heel hoge getallen rapporteert voor increase(). Eerlijk gezegd valt me dit een beetje tegen van deze meter die hoog staat aangeschreven.
De tijden in de grafieken zijn GMT.
/f/image/2AiKv7btGO02KJsSGTVYsUVW.png?f=fotoalbum_large)
/f/image/sfUK9qWDZ86V6qDeFW4zZT7i.png?f=fotoalbum_large)
Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp
ja nu ook data in MQTTAUijtdehaag schreef op vrijdag 17 februari 2023 @ 16:50:
@luigi87
Volgens mij kan je er zo een influxdb node achter (extract en format) plakken want het staat al in het formaat van influxdb met de fields en dergelijke
En je stuurt mqtt uit nu?
Dan plaats je dit in configuration.yaml
YAML:
1 2 homeassistant: packages: !include_dir_named packages
en in /config/packages (aanmaken) plaats je kamstrup.yaml
YAML:
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 # sensor # ########## mqtt: sensor: # Pumpflow L/min - name: Kamstrup Flow L/min state_topic: "kamstrup" unit_of_measurement: 'L/min' value_template: "{{ value_json.flowlm }}" # Pumpflow m3/h - name: Kamstrup Flow L/h state_topic: "kamstrup" unit_of_measurement: 'L/h' value_template: "{{ value_json.flow }}" # Water flow temp - name: Kamstrup Flow Temperature state_topic: "kamstrup" unit_of_measurement: '°C' value_template: "{{ value_json.flowtemperature }}" # Water return temp - name: Kamstrup Return Temperature state_topic: "kamstrup" unit_of_measurement: '°C' value_template: "{{ value_json.returntemperature }}" # Water differential temp - name: Kamstrup Differential Temperature state_topic: "kamstrup" unit_of_measurement: '°C' value_template: "{{ value_json.difftemperature }}" # Heating power produced - name: Kamstrup Power Produced state_topic: "kamstrup" unit_of_measurement: 'W' value_template: "{{ value_json.power }}" # Heating Counter - name: Kamstrup Heating Counter state_topic: "kamstrup" unit_of_measurement: 'kWh' value_template: "{{ value_json.totalheatenergy }}" # Cooling Counter - name: Kamstrup Cooling Counter state_topic: "kamstrup" unit_of_measurement: 'kWh' value_template: "{{ value_json.totalcoolenergy }}"
zelf ff kijken naar de flowvalue
en in het juiste format gelijk nu
:fill(white):strip_exif()/f/image/MJPIgzhFliErUXpo5aKEjL08.png?f=user_large)
Dan plaats je dit in configuration.yaml
YAML:
1
2
| homeassistant: packages: !include_dir_named packages |
en in /config/packages (aanmaken) plaats je kamstrup.yaml
neem aan dan zo toch??
YAML:
1
2
| homeassistant: packages: /config/packages |
en in bovenstaande lokatie dan deze yaml?
Zijn onderstaande aanpassingen dan correct?
YAML:
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
| # sensor # ########## mqtt: sensor: # Pumpflow m3/h - name: Kamstrup Flow m3 state_topic: "kamstrup" unit_of_measurement: 'm3/h' value_template: "{{ value_json.flow }}" # Water flow temp - name: Kamstrup Flow Temperature state_topic: "kamstrup" unit_of_measurement: '°C' value_template: "{{ value_json.flowtemperature }}" # Water return temp - name: Kamstrup Return Temperature state_topic: "kamstrup" unit_of_measurement: '°C' value_template: "{{ value_json.returntemperature }}" # Water differential temp - name: Kamstrup Differential Temperature state_topic: "kamstrup" unit_of_measurement: '°C' value_template: "{{ value_json.difftemperature }}" # Heating Counter - name: Kamstrup Heating Counter state_topic: "kamstrup" unit_of_measurement: 'GJ' value_template: "{{ value_json.totalheatenergy }}" |
[ Voor 22% gewijzigd door luigi87 op 17-02-2023 20:09 ]
- leeg -
@luigi87
Maar ik kopieer het al uit een werkende situatie
Ik zou geen "flow" gebruiken in je mqtt yaml maar "flowvalue". Dat is de json code die je uitstuurt via nodered
Die kan je dan nog opsplitsen in L/m en L/h (zie nodered code eronder)
In node-red
Heb je geen powerinstvalue in de kamstrup 402 zitten?
Die kan eventueel gebruikt worden om de cop te berekenen (powerinstvalue / opgenomen vermogen) indien het een warmtepomp betreft
Edit, zoiets
:
Als dat ook werkt:.....code:
1 2 homeassistant: packages: /config/packages
Maar ik kopieer het al uit een werkende situatie
Ik zou geen "flow" gebruiken in je mqtt yaml maar "flowvalue". Dat is de json code die je uitstuurt via nodered
Die kan je dan nog opsplitsen in L/m en L/h (zie nodered code eronder)
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
| mqtt: sensor: # Pumpflow L/min - name: Kamstrup Flow L/min state_topic: "kamstrup" unit_of_measurement: 'L/min' value_template: "{{ value_json.fields.flowvaluelm }}" # Pumpflow m3/h - name: Kamstrup Flow L/h state_topic: "kamstrup" unit_of_measurement: 'L/h' value_template: "{{ value_json.fields.flowvalue }}" |
In node-red
YAML:
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
| var TotalHeatEnergy = msg.payload.DataRecord[1].Value; var FlowTemperature = msg.payload.DataRecord[4].Value /100; var ReturnTemperature = msg.payload.DataRecord[5].Value /100; var DiffTemperature = Math.abs(msg.payload.DataRecord[6].Value /100); var FlowValue = msg.payload.DataRecord[2].Value; var FlowValuelm = Number((FlowValue/60).toFixed(2)); let _msg = { payload: [] }; _msg.payload= { measurement: "kamstrup", fields: { totalheatenergy : TotalHeatEnergy, flowtemperature : FlowTemperature, returntemperature : ReturnTemperature, difftemperature : DiffTemperature, flowvalue : FlowValue, flowvaluelm : FlowValuelm, }, tags:{ device: "heatmeter", }, } return _msg; |
Heb je geen powerinstvalue in de kamstrup 402 zitten?
Die kan eventueel gebruikt worden om de cop te berekenen (powerinstvalue / opgenomen vermogen) indien het een warmtepomp betreft
Edit, zoiets
YAML:
1
2
| var WPpower = Math.abs(Number(parseFloat((FlowValuelm / 60) * 4.2 * DiffTemperature * 1000).toFixed(0))) // var Cop = Math.abs(Number(parseFloat(WPpower / msg.payload.powers0).toFixed(2))) |
[ Voor 5% gewijzigd door AUijtdehaag op 18-02-2023 11:01 ]
@AUijtdehaag
heb het stappen plan doorlopen, echter krijg ik nog geen waardes in de sensor??
data komt netjes binnen via MQTT
/f/image/oJNkDQ6354np5FOLTvhJFchg.png?f=fotoalbum_large)
Maar de sensor blijft leeg??
:fill(white):strip_exif()/f/image/RyerlIdaKzelNPi1GZJBwbT7.png?f=user_large)
dit is mijn kamstrup yaml file
netjes opgeslagen in /config/packages
want daardoor is die zichtbaar.
en ook toevoegd aan de config:
heb het stappen plan doorlopen, echter krijg ik nog geen waardes in de sensor??
data komt netjes binnen via MQTT
/f/image/oJNkDQ6354np5FOLTvhJFchg.png?f=fotoalbum_large)
code:
1
| {"measurement":"kamstrup","fields":{"totalheatenergy":195.455,"flowtemperature":54.79,"returntemperature":51.77,"difftemperature":3.02,"flowvalue":1601.516},"tags":{"device":"heatmeter"}} |
Maar de sensor blijft leeg??
:fill(white):strip_exif()/f/image/RyerlIdaKzelNPi1GZJBwbT7.png?f=user_large)
dit is mijn kamstrup yaml file
YAML:
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
| # sensor # ########## mqtt: sensor: # Pumpflow m3/h - name: Kamstrup Flow m3 state_topic: "kamstrup" unit_of_measurement: 'm3/h' value_template: "{{ value_json.flowvalue }}" # Water flow temp - name: Kamstrup Flow Temperature state_topic: "kamstrup" unit_of_measurement: '°C' value_template: "{{ value_json.flowtemperature }}" # Water return temp - name: Kamstrup Return Temperature state_topic: "kamstrup" unit_of_measurement: '°C' value_template: "{{ value_json.returntemperature }}" # Water differential temp - name: Kamstrup Differential Temperature state_topic: "kamstrup" unit_of_measurement: '°C' value_template: "{{ value_json.difftemperature }}" # Heating Counter - name: Kamstrup Heating Counter state_topic: "kamstrup" unit_of_measurement: 'GJ' value_template: "{{ value_json.totalheatenergy }}" |
netjes opgeslagen in /config/packages
want daardoor is die zichtbaar.
en ook toevoegd aan de config:
YAML:
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
| # Loads default set of integrations. Do not remove. default_config: # Load frontend themes from the themes folder frontend: themes: !include_dir_merge_named themes # Text to speech tts: - platform: google_translate automation: !include automations.yaml script: !include scripts.yaml scene: !include scenes.yaml homeassistant: packages: !include_dir_named packages #influxdb influxdb: host: a0d7b954-influxdb port: 8086 database: homeassistant username: xxxx password: xxxxx max_retries: 3 default_measurement: state #SAj sensor: - platform: saj host: 192.168.1.171 type: wifi username: xxxx password: xxxx # RPI sensors - platform: systemmonitor resources: - type: disk_use_percent arg: /config - type: memory_use_percent - type: swap_use_percent - type: load_1m - type: load_5m - type: load_15m - type: network_in arg: eth0 - type: network_out arg: eth0 - type: throughput_network_in arg: eth0 - type: throughput_network_out arg: eth0 - type: packets_in arg: eth0 - type: packets_out arg: eth0 - type: ipv4_address arg: eth0 - type: processor_use - type: processor_temperature - type: last_boot |
[ Voor 75% gewijzigd door luigi87 op 18-02-2023 13:55 ]
- leeg -
DankAUijtdehaag schreef op zaterdag 18 februari 2023 @ 13:53:
@luigi87
zet er overal nog fields tussen in de kamstrup.yaml?
code:
1 "{{ value_json.fields.flowvaluelm }}"
dat natuurlijk weer net over het hoofd gezien.
:fill(white):strip_exif()/f/image/syJUNfczFRAttUnPkBKJ0dBF.png?f=user_large)
@AUijtdehaag
Ik heb dus geen warmtepomp, dus COP berekenen heeft geen nut.
Dit is mijn warmteset van Eneco wat ik uitlees.
Maar ik koop dit dus ook in.
Dus ik zou het graag ook nog zien in mijn energie dashboard.
heb jij een idee hoe ik dit voor elkaar kan krijgen?
wat ik kan doen is de GJ waarde delen door 31,6, en heb ik de energie waarde van Gas.
maar hoe maak je dus een sensor die je kan toevoegen aan het Energie dashboard?
Want deze sensoren komen daar dus ook niet terug.
vraagje 2, waar kan ik de refresh snelheid van de data opvraag instellen? deze staat nu op 1 keer per minuut geloof ik.
[ Voor 43% gewijzigd door luigi87 op 18-02-2023 14:12 ]
- leeg -
@luigi87
Interval staat in het eerste blokje van nodered flow, read ID
Vaker opvragen gaat wel iets ten koste van de batterij van de kamstrup (als hij niet gevoed wordt door 230V)
YAML:
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
| template: - sensor: - name: Stadsverwarming state: "{{ (states('sensor.kamstrup_heating_counter') |float / 31.6) | round(3) }}" unit_of_measurement: m3 icon: mdi:heat-wave device_class: gas state_class: total_increasing utility_meter: stadsverwarming_dit_kwartier: source: sensor.stadsverwarming cycle: quarter-hourly stadsverwarming_dit_uur: source: sensor.stadsverwarming cycle: hourly stadsverwarming_vandaag: source: sensor.stadsverwarming cycle: daily stadsverwarming_deze_week: source: sensor.stadsverwarming cycle: weekly stadsverwarming_deze_maand: source: sensor.stadsverwarming cycle: monthly stadsverwarming_dit_kwartaal: source: sensor.stadsverwarming cycle: quarterly stadsverwarming_dit_jaar: source: sensor.stadsverwarming cycle: yearly |
Interval staat in het eerste blokje van nodered flow, read ID
Vaker opvragen gaat wel iets ten koste van de batterij van de kamstrup (als hij niet gevoed wordt door 230V)
[ Voor 5% gewijzigd door AUijtdehaag op 18-02-2023 14:36 ]
Hoe voeg ik deze toe?AUijtdehaag schreef op zaterdag 18 februari 2023 @ 14:35:
@luigi87
YAML:
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 template: - sensor: - name: Stadsverwarming state: "{{ (states('sensor.kamstrup_heating_counter') |float / 31.6) | round(3) }}" unit_of_measurement: m3 icon: mdi:heat-wave device_class: gas state_class: total_increasing utility_meter: stadsverwarming_dit_kwartier: source: sensor.stadsverwarming cycle: quarter-hourly stadsverwarming_dit_uur: source: sensor.stadsverwarming cycle: hourly stadsverwarming_vandaag: source: sensor.stadsverwarming cycle: daily stadsverwarming_deze_week: source: sensor.stadsverwarming cycle: weekly stadsverwarming_deze_maand: source: sensor.stadsverwarming cycle: monthly stadsverwarming_dit_kwartaal: source: sensor.stadsverwarming cycle: quarterly stadsverwarming_dit_jaar: source: sensor.stadsverwarming cycle: yearly
Zelfde lokatie bij packages?
en de leest dan de al bestaande sensor van de kamstrup af?
mogelijk dat ik hem minder vaak wil zetten.Interval staat in het eerste blokje van nodered flow, read ID
Vaker opvragen gaat wel iets ten koste van de batterij van de kamstrup (als hij niet gevoed wordt door 230V)
per 5 minuten is ook al heel erg oke.
- leeg -
Top.AUijtdehaag schreef op zaterdag 18 februari 2023 @ 14:45:
@luigi87
Je kan hem in kamstrup.yaml erachter plakken of een nieuwe yaml aanmaken in packages.
Zo houd je de configuration.yaml schoon
Klopt leest kamstrup sensor uit en maakt er een nieuwe (template) sensor van.
Maak ik er ff een nieuwe voor.
Geeft inderdaad meer overzicht zo dan alles in de configuration.yaml.
Ah dus dit is zo template sensor.
Die maak je dus ook gewoon in yaml aan.
Weer een stukje wijzer.
HA is wel een stuk beter en groter dan Domoticz. Gebruik je nog wel eens Domoticz of helemaal niet meer?
- leeg -
@luigi87
Nee gebruik geen domoticz meer.
Wat mij betreft mag de topictitel gewijzigd worden.
Nu nog in een mooie apexcharts-card zetten (via hacs installeren)
De utility meters kan je ook een nieuwe waarde geven door nutsmeter calibrate onder services
Nee gebruik geen domoticz meer.
Wat mij betreft mag de topictitel gewijzigd worden.
Nu nog in een mooie apexcharts-card zetten (via hacs installeren)
De utility meters kan je ook een nieuwe waarde geven door nutsmeter calibrate onder services
[ Voor 23% gewijzigd door AUijtdehaag op 18-02-2023 15:33 ]
@AUijtdehaag
gelijk weer ff zitten pielen en heb nu inderdaad ook het overzicht in m3 gas.
:fill(white):strip_exif()/f/image/B6eKmrjyXXYh2T04i8K86umo.png?f=user_large)
maar kan hem niet toevoegen aan het ernergy dashboard.
/f/image/Cpn51T0RHwwnmnhY0px71tPz.png?f=fotoalbum_large)
(zie trouwen ook Gj eenheden worden ondersteunt).
hoe krijg ik deze sensor hierin beschikbaar?
gelijk weer ff zitten pielen en heb nu inderdaad ook het overzicht in m3 gas.
:fill(white):strip_exif()/f/image/B6eKmrjyXXYh2T04i8K86umo.png?f=user_large)
maar kan hem niet toevoegen aan het ernergy dashboard.
/f/image/Cpn51T0RHwwnmnhY0px71tPz.png?f=fotoalbum_large)
(zie trouwen ook Gj eenheden worden ondersteunt).
hoe krijg ik deze sensor hierin beschikbaar?
:fill(white):strip_exif()/f/image/aHMCgt9FeM8ZXcqMDg1K4zn1.png?f=user_large)
- leeg -
@luigi87
Weet het even niet waar het probleem zit. Google helpt mij ook niet.
https://developers.home-a.../docs/core/entity/sensor/
Voor GJ zou je dit kunnen toevoegen aan de mqtt sensor
Weet het even niet waar het probleem zit. Google helpt mij ook niet.
https://developers.home-a.../docs/core/entity/sensor/
Voor GJ zou je dit kunnen toevoegen aan de mqtt sensor
YAML:
1
2
3
4
5
| unit_of_measurement: 'GJ' icon: mdi:fire device_class: gas // als dat niet werkt: device_class: energy state_class: total_increasing |
Top, hij staat er nu zo in.AUijtdehaag schreef op zaterdag 18 februari 2023 @ 16:45:
@luigi87
Weet het even niet waar het probleem zit. Google helpt mij ook niet.
https://developers.home-a.../docs/core/entity/sensor/
Voor GJ zou je dit kunnen toevoegen aan de mqtt sensor
YAML:
1 2 3 4 5 unit_of_measurement: 'GJ' icon: mdi:fire device_class: gas // als dat niet werkt: device_class: energy state_class: total_increasing
wel device_class: aangepast naar energy, anders snapt hij de GJ niet
en zichtbaar in het energy dashboard
YAML:
1
2
3
4
5
6
7
8
| # Heating Counter - name: Kamstrup Heating Counter state_topic: "kamstrup" unit_of_measurement: 'GJ' icon: mdi:fire device_class: energy state_class: total_increasing value_template: "{{ value_json.fields.totalheatenergy }}" |
[ Voor 4% gewijzigd door luigi87 op 18-02-2023 19:25 ]
- leeg -
@AUijtdehaag
Nou ben een stuk verder met de data juist in het systeem krijgen.
Maar kan ik deze counters ook resetten?
Nou ben een stuk verder met de data juist in het systeem krijgen.
Maar kan ik deze counters ook resetten?
:strip_exif()/f/image/yQGqkEFWqcQuWkYu06mNpO8N.jpg?f=fotoalbum_large)
- leeg -
Dank.AUijtdehaag schreef op zondag 19 februari 2023 @ 10:58:
@luigi87
ontwikkelhulpmiddelen - services - service: nutsmeter calibrate - entiteit kiezen - value waarde invullen en service aanroepen
service: nutsmeter reset zet hem direkt op 0
Dit werkt ook weer beter dan Domoticz
- leeg -
Foutje

[ Voor 99% gewijzigd door Copitano op 23-02-2023 23:38 ]
Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp
Kan natuurlijk nooit kwaad om even na te kijken. Temperatuurmeter op de leiding plakken, en kijken welke het meest overeen komt. Heb je die niet, pak je de good-old koortsthermometer uit de EHBO-trommel. Binnen het meetbereik (35-42 graden) zijn die dingen behoorlijk nauwkeurig.RichieB schreef op maandag 13 februari 2023 @ 21:09:
De Kamstrup Multical 303 wordt toch gekalibreerd verkocht? Ik heb hem aan mijn Intergas HRE CV hangen en de Kamstrup geeft voor de retour tot 6 graden lager aan. De Intergas HRE heeft geen sensor op de aanvoer, maar die waarde wordt geschat. Ook daar klopt weinig van, de Kamstrup geeft tot 9 graden hoger aan.
Dat is wel relevant voor de overstap naar een warmtepomp: ik heb mijn HRE ingesteld op een Ta van 40, maar het water wordt tot 54 graden verwarmd voordat de CV afslaat (zou 45 moeten zijn). Dat is een groot verschil voor een warmtepomp.
Maar het zou me werkelijk verbazen als de Kamstrup fout de fabriek verlaat.
@Zwartoog Ik had al DS18B20 sensoren geplakt op de leidingen.. maar die vertrouw ik het minst van allemaal. Die geven ook lagere waardes aan, maar die zitten ook aan de buitenkant en niet in de buis. Ik heb mijn CV nu op 40 graden Ta staan en nu wijken de Tr waardes maar 1 a 2 graden af tov van de Kamstrup. Voorlopig neem ik de Kamstrup als waarheid aan.
Panasonic WH-MDC09J3E5, Atlantic Explorer V4 270C, 57x PV 23115 Wp
Verschil temperatuur klopt , zie hetzelfde met de metingen.RichieB schreef op maandag 6 maart 2023 @ 22:16:
@Zwartoog Ik had al DS18B20 sensoren geplakt op de leidingen.. maar die vertrouw ik het minst van allemaal. Die geven ook lagere waardes aan, maar die zitten ook aan de buitenkant en niet in de buis. Ik heb mijn CV nu op 40 graden Ta staan en nu wijken de Tr waardes maar 1 a 2 graden af tov van de Kamstrup. Voorlopig neem ik de Kamstrup als waarheid aan.
DS18B20 op de buis en zoals de metingen Kamstrup meer betrouwbaarder. Verschil ca 1,2 graden.
Je kunt dat natuurlijk corrigeren, maar wanneer je het weet is toch prima.
Zit bij mij op alle 3 verdelers DS18B20 getaped op de buizen TA en TR en onder de isolatie. Deze sensoren eerst allemaal gekalibreerd zodat ze ongeveer hetzelfde aangaven. Geeft veel informatie en kun je beter tunen
Iemand enig idee waarom ik deze error krijg?
"Error while reading device 828122132D2C4004: Error: The selected secondary address does not match any device [828122132D2C4004]."
Ik krijg deze error nadat ik in de setup van de Kamstrup de flow richting van 'Outlet' naar 'Inlet' heb gezet. De setup had ik nog niet eerder doorlopen omdat afgelopen vrijdag de warmtepomp in bedrijf genomen is.
In de setup dubbel gecheckt of het apparaat ID nog steeds hetzelfde is, dat is het geval.
Edit: zodra ik hem terug zet naar "Outlet" dan zie Nodered hem direct weer. Iemand enig idee hoe dit te wijzigen is zodat deze wel zichtbaar blijft in Nodered? Ik las in de post van blb4 in "Kamstrup Multical 302 met Pi uitlezen en domoticz" dat de Mutical 303 standaard geleverd wordt voor plaatsing in de retour. Ik wist dat niet, dus ik heb hem in de aanvoer geplaatst (note to self: de temp sensoren dus ook nog omwisselen).
"Error while reading device 828122132D2C4004: Error: The selected secondary address does not match any device [828122132D2C4004]."
Ik krijg deze error nadat ik in de setup van de Kamstrup de flow richting van 'Outlet' naar 'Inlet' heb gezet. De setup had ik nog niet eerder doorlopen omdat afgelopen vrijdag de warmtepomp in bedrijf genomen is.
In de setup dubbel gecheckt of het apparaat ID nog steeds hetzelfde is, dat is het geval.
Edit: zodra ik hem terug zet naar "Outlet" dan zie Nodered hem direct weer. Iemand enig idee hoe dit te wijzigen is zodat deze wel zichtbaar blijft in Nodered? Ik las in de post van blb4 in "Kamstrup Multical 302 met Pi uitlezen en domoticz" dat de Mutical 303 standaard geleverd wordt voor plaatsing in de retour. Ik wist dat niet, dus ik heb hem in de aanvoer geplaatst (note to self: de temp sensoren dus ook nog omwisselen).

[ Voor 35% gewijzigd door leandres op 13-03-2023 16:34 ]
1: PVoutput Hoogezand, GN | 2: PVoutput Sappemeer, GN
Je zou zeggen dat het verandert is inderdaad.leandres schreef op maandag 13 maart 2023 @ 15:59:
Iemand enig idee waarom ik deze error krijg?
"Error while reading device 828122132D2C4004: Error: The selected secondary address does not match any device [828122132D2C4004]."
Ik krijg deze error nadat ik in de setup van de Kamstrup de flow richting van 'Outlet' naar 'Inlet' heb gezet. De setup had ik nog niet eerder doorlopen omdat afgelopen vrijdag de warmtepomp in bedrijf genomen is.
In de setup dubbel gecheckt of het apparaat ID nog steeds hetzelfde is, dat is het geval.
Ik had dit laatst ook via NodeRed nadat ik de batterij van de Kamstrup had vervangen.
Toen in nodered "gewoon" het deviceID opgevraagd en dit als waarde gebruikt.
Schijnbaar gebruik je sowieso het secondaryID i.p.v. het primary ID, wat ook kan. Bij mij is dat zo simpel als "1". Kun je ook zelf inschieten overigens via modbus wat het adres moet zijn.
:no_upscale():strip_icc():fill(white):strip_exif()/f/image/ieHRE1R2xPgYEX9fzFdhkRqa.jpg?f=user_large)
PVOutput Youless - 9600Wp OZO+WNW | 38° | Goodwe GW6K-DT | Mitsubishi PUHZ-SW75YAA + ERSD-VM2D | Zonneplan Nexus | Gasloos
@Robindd Jouw post kwam tegelijk met mijn 'edit'. Als ik hem dus terug zet van 'Inlet' naar 'Outlet', zoals het origineel was dan werkt het weer.
Ik weet niet of dat iets veranderd aan jouw antwoord?
Ik weet niet of dat iets veranderd aan jouw antwoord?
1: PVoutput Hoogezand, GN | 2: PVoutput Sappemeer, GN
Dat klinkt vreemd. Maar je zou kunnen proberen om het primary ID te gebruiken, en die op te roepen zodat je hem zeker goed hebt.leandres schreef op maandag 13 maart 2023 @ 16:36:
@Robindd Jouw post kwam tegelijk met mijn 'edit'. Als ik hem dus terug zet van 'Inlet' naar 'Outlet', zoals het origineel was dan werkt het weer.
Ik weet niet of dat iets veranderd aan jouw antwoord?
Hoe benader je de kamstrup? Via NodeRed dan kan ik je wel helpen, maar andere vormen heb ik geen kaas van gegeten.
Je zal in ieder geval het juiste adres zullen moeten vinden en die moeten benaderen. Dat wellicht het adres verandert met een andere setting veranderen is wel vreemd, maar zou je dus zo kunnen overkomen.
PVOutput Youless - 9600Wp OZO+WNW | 38° | Goodwe GW6K-DT | Mitsubishi PUHZ-SW75YAA + ERSD-VM2D | Zonneplan Nexus | Gasloos