Vraag


Acties:
  • 0 Henk 'm!

Anoniem: 914365

Topicstarter
Mijn vraag

Beste mensen,

ik probeer al een tijdje de Kamstrup Multical 402 uit te lezen via de IR poort met de IR-leeskop USB versie (http://wiki.volkszaehler....reib-lesekopf-usb-ausgang) die hier al vaker op het forum genoemd is op mijn RPI3.

Ik krijg het alleen maar niet voor elkaar om de Kamstrup meter te laten communiceren. Volgens de technische documenten gebruikt hij alleen het Kamstrup Meter Protocol voor connectie maar geen van de bekende scripts die daarmee zouden kunnen werken reageren erop (te vinden bij http://www.smartmeterdashboard.nl/downloads).

Onderhand heb ik al van alles geprobeerd, andere baudrates, andere IR commando's om de meter wakker te maken. Ik krijg maar geen liefde terug van de Kamstrup Meter. Enkel alleen zie ik mijn verstuurde boodschap naar de seriele poort terugkomen als command, maar verder niet.

Heeft iemand het geheel werkend gekregen op een Kamstrup Multical 402, 602 of 802 met een IR-kop die kan helpen?

Alle reacties


Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online

PVOutput Github - Div ESP TK: MHI - Clack - Ecodan


Acties:
  • 0 Henk 'm!

Anoniem: 914365

Topicstarter
Dank je voor je reactie. Ik heb Nuon al eerder gevraagd of ik de M-Bus module mag/kon installeren of bestellen, maar dat was niet toegestaan. Ik kan het ook niet zelf doen zonder de verzegeling te verbreken. Ik moet het dus helaas met de IR-connectie doen. Ze zijn sowieso niet happig op mensen die überhaupt hun meter willen uitlezen.

Acties:
  • 0 Henk 'm!

  • DJP!
  • Registratie: Mei 2012
  • Nu online
Het zou met de scripts van http://www.smartmeterdashboard.nl/ wel moeten werken. Werkt het van after een Windows computer wel? Dan weer je in iedergeval dat het niet aan de kabel ligt...

Acties:
  • 0 Henk 'm!

Anoniem: 914365

Topicstarter
Die scripts heb ik gebruikt, alleen nog niet vanaf een Windows computer. Ik heb wel de kabel gecontroleerd en krijg een signaal binnen als ik een willekeurig andere afstandsbediening erop richt en ik zie licht op mijn telefooncamera als ik er berichten naartoe stuur. Ik heb de verschillende script van Smartmeterdashboard allemaal geprobeerd, maar ik krijg maar geen reactie van de meter. Van verschillende initialize-signalen krijg ik alleen maar het oorspronkelijk commando terug. Volgens de handleiding staat de ir-poort van de meter uit, maar gaat meteen voor 30 minuten als je aan 1 van de knoppen zit. Maar wat ik ook doe en hoe de ir-kop ook richt, lijkt de meter niet te willen reageren.

Acties:
  • 0 Henk 'm!

  • Speedy-Andre
  • Registratie: Maart 2002
  • Laatst online: 09:18

Speedy-Andre

Sony ZL, XA, Nokia XR20

In de handleiding staat dat IR wordt geactiveerd zodra je een IR commando stuurt, het is mogelijk dat de IR led van de leeskop net een andere frequentie gebruikt dan de Multical kan zien.
Andersom kan ook, dat de leeskop de IR led van de Multical niet ziet.
Kijk eens of je met een remote naar de Multical kan seinen en of je dan met een camera een respons ziet.
Volgens de handleiding is een seriele verbinding traag, 1200 of 2400bd, 8 databits, geen parity en 2 stopbits.
Het zou kunnen dat dit ook voor IR geldt.

PVoutput 2x Toshiba Daiseikai 8 3,5kW, SWW Atlantic Explorer V3 200l. Gasloos aug 2016, 8620Wp, Monoblock Panasonic J 7kW


Acties:
  • +1 Henk 'm!

Anoniem: 914365

Topicstarter
Eureka! Ik heb zitten spelen met een aantal van de settings en van Joost van Smartmeterdashboard nog een ander KMP-script gekregen van een 382 meter. Deze werkte nadat ook de IR-kop weer beetje verplaatst was. Geen idee wat het nu exact is geweest, maar zal een combinatie van zaken zijn geweest. Dank allemaal!

Acties:
  • 0 Henk 'm!

  • Speedy-Andre
  • Registratie: Maart 2002
  • Laatst online: 09:18

Speedy-Andre

Sony ZL, XA, Nokia XR20

Wat zijn nu die instellingen (zelfde als serieel)?
Er zal wellicht nog wel iemand zijn die dit wil proberen :)

PVoutput 2x Toshiba Daiseikai 8 3,5kW, SWW Atlantic Explorer V3 200l. Gasloos aug 2016, 8620Wp, Monoblock Panasonic J 7kW


Acties:
  • 0 Henk 'm!

Anoniem: 914365

Topicstarter
Het is gelukt met 1200 baud, 8databit, geen parity en 2 stopbits gewerkt. Belangrijk is wel dat je dus elke keer binnen de 30 minuten het datalog-scriptje moet runnen want anders staat de meter uit en dan krijg je geen bruikbare respons.

Acties:
  • 0 Henk 'm!

  • Speedy-Andre
  • Registratie: Maart 2002
  • Laatst online: 09:18

Speedy-Andre

Sony ZL, XA, Nokia XR20

Ik neem aan dat je niet continu hoeft te monitoren, want dan zijn de batterijen ook sneller leeg.
Voor mij zou het al prima zijn als ik data krijg zodra ik het script start :)

PVoutput 2x Toshiba Daiseikai 8 3,5kW, SWW Atlantic Explorer V3 200l. Gasloos aug 2016, 8620Wp, Monoblock Panasonic J 7kW


Acties:
  • 0 Henk 'm!

  • Cletuss
  • Registratie: Februari 2013
  • Laatst online: 28-09-2023
Fijn dat het werkt! Ik zit er zelf ook over na te denken om dit te gaan doen. Kun je misschien een foto maken van je plaatsing en evt het scriptje?

Alvast bedankt!

Acties:
  • +1 Henk 'm!

  • Cletuss
  • Registratie: Februari 2013
  • Laatst online: 28-09-2023
Na een hoop uitzoek werk heb ik het samen met iemand anders voor elkaar gekregen. Ik denk ik post even een kleine info hier met een link naar het Domoticz forum waar ik het werkende script heb neergezet. Dit is dus ter info :)

http://www.domoticz.com/forum/viewtopic.php?f=65&t=18116&p=142535#p142535

Acties:
  • 0 Henk 'm!

  • mcel1
  • Registratie: Oktober 2017
  • Laatst online: 20-09-2023
Dankzij deze info heb ik het ook werkend gekregen voor de 402! Dank daarvoor.

Ik vroeg me af of een van jullie een oplossing gevonden heeft voor de 30 minuten timeout van de meter?

Uiteraard is de knop handmatig indrukken een optie of zoals eerder beschreven:
Anoniem: 914365 schreef op vrijdag 26 mei 2017 @ 11:54:
... Belangrijk is wel dat je dus elke keer binnen de 30 minuten het datalog-scriptje moet runnen want anders staat de meter uit en dan krijg je geen bruikbare respons.
In de handleiding van de 402 staat echter het volgende:

In order to limit the current consumption of the circuit around the IR diode, the circuit is not permanently switched on. It is activated by either keystroke or communication via the optical eye.
The circuit remains switched on for 30 min. after end of communication or after latest keystroke.


Vooral die tweede zin is interessant. Heeft iemand dit werkend kunnen krijgen via communicatie alleen?

Acties:
  • 0 Henk 'm!

  • tsjoender
  • Registratie: April 2005
  • Nu online
Dank @Cletuss voor het delen van jouw scripts. Daarmee heb ik het nu ook werkend gekregen!

Nog een kleine aanvulling: Ik liep er alleen tegenaan dat de virtuele devices van het type counter / teller en custom alleen integers als input nemen. Daarmee kon ik geen waarden met decimalen loggen. Verder waren die virtuele device types wel de beste match voor verbruik per dag te loggen (teller) en stond die toe de juiste labels te gebruiken. Door bij Heat Energy en Power nu de gelezen waarde met 1000 te vermenigvuldigen en te loggen met megajoule en Watt heb ik toch de gewenste details en de juiste labels, zonder met decimalen te hoeven werken.

Acties:
  • 0 Henk 'm!

  • I_stealth_I
  • Registratie: Januari 2001
  • Laatst online: 10-06 08:24

I_stealth_I

Tweak It OR leave it!

Maar nu nog een oplossing voor de verminderde batterij duur. Mijn energieleverancier heeft er een D-cell batterij in zitten, die zou geen 10 jaar meer meegaan, maar een aantal maanden als ik binnen iedere 30 minuten de batterij uitlees.

ik heb het probleem voorgelegd aan de energieleverancier. Ze geven aan dat Kamstrup bezig is met een variant van Kamstrup READy systeem voor particuliere uitlezing. Tot dat moment adviseren ze om de pulse uitgang te gebruiken op de kamstrup 402 icm Youless pulse teller.

Volgens mij zitten die contactpunten onder een kapje waar een verzegeling opzit. 8)7 |:(
Ik heb uw vragen intern voorgelegd. De oplossing voor het 'slim' collecteren van de data is momenteel het Kamstrup READy systeem. Dit is kostentechnisch echter nog niet rendabel op individueel niveau. Kamstrup is wel bezig met de verder ontwikkeling om dit op individueel niveau mogelijk te maken.
U heeft een meter met het type Kamstrup Multical 402 met serienummer XXXX en bouwjaar 2012. In de bijlage vindt u de exacte specificatie en een handleiding voor de meter. Op de rf-module van deze meter zit een puls uitgang. Deze zou u kunnen aansluiten aan uw Youless-interface.

[ Voor 33% gewijzigd door I_stealth_I op 12-01-2018 19:53 ]

/dev/null


Acties:
  • 0 Henk 'm!

  • BlakHawk
  • Registratie: Februari 2008
  • Laatst online: 09-01-2021
mcel1 schreef op vrijdag 27 oktober 2017 @ 15:49:
Dankzij deze info heb ik het ook werkend gekregen voor de 402! Dank daarvoor.

Ik vroeg me af of een van jullie een oplossing gevonden heeft voor de 30 minuten timeout van de meter?

Uiteraard is de knop handmatig indrukken een optie of zoals eerder beschreven:

[...]


In de handleiding van de 402 staat echter het volgende:

In order to limit the current consumption of the circuit around the IR diode, the circuit is not permanently switched on. It is activated by either keystroke or communication via the optical eye.
The circuit remains switched on for 30 min. after end of communication or after latest keystroke.


Vooral die tweede zin is interessant. Heeft iemand dit werkend kunnen krijgen via communicatie alleen?
toon volledige bericht
tsjoender schreef op woensdag 27 december 2017 @ 10:24:
Dank @Cletuss voor het delen van jouw scripts. Daarmee heb ik het nu ook werkend gekregen!

Nog een kleine aanvulling: Ik liep er alleen tegenaan dat de virtuele devices van het type counter / teller en custom alleen integers als input nemen. Daarmee kon ik geen waarden met decimalen loggen. Verder waren die virtuele device types wel de beste match voor verbruik per dag te loggen (teller) en stond die toe de juiste labels te gebruiken. Door bij Heat Energy en Power nu de gelezen waarde met 1000 te vermenigvuldigen en te loggen met megajoule en Watt heb ik toch de gewenste details en de juiste labels, zonder met decimalen te hoeven werken.
I_stealth_I schreef op vrijdag 12 januari 2018 @ 19:51:
Maar nu nog een oplossing voor de verminderde batterij duur. Mijn energieleverancier heeft er een D-cell batterij in zitten, die zou geen 10 jaar meer meegaan, maar een aantal maanden als ik binnen iedere 30 minuten de batterij uitlees.

ik heb het probleem voorgelegd aan de energieleverancier. Ze geven aan dat Kamstrup bezig is met een variant van Kamstrup READy systeem voor particuliere uitlezing. Tot dat moment adviseren ze om de pulse uitgang te gebruiken op de kamstrup 402 icm Youless pulse teller.

Volgens mij zitten die contactpunten onder een kapje waar een verzegeling opzit. 8)7 |:(


[...]
Hebben jullie dit nog steeds draaien?
Wij hebben een Kamstrup 403 van Eneco "gekregen". Uiteraard verzegeld en wel.

Kan ik iets met het plaatje boven het display?

Afbeeldingslocatie: https://www.kamstrup.com/scom/images/MULTICAL-403-HC-front-GB-negative-split.png?i=%7B6158F9CC-F516-4278-86B9-5097D163F3D9%7D

Youtube: DashcamNL


Acties:
  • 0 Henk 'm!

  • I_stealth_I
  • Registratie: Januari 2001
  • Laatst online: 10-06 08:24

I_stealth_I

Tweak It OR leave it!

dfrenner schreef op maandag 10 december 2018 @ 16:56:


Hebben jullie dit nog steeds draaien?
Wij hebben een Kamstrup 403 van Eneco "gekregen". Uiteraard verzegeld en wel.
Nee, heb het toen opgegeven, maar ben nog steeds belangstellend voor een goede oplossing.

/dev/null


Acties:
  • 0 Henk 'm!

  • BlakHawk
  • Registratie: Februari 2008
  • Laatst online: 09-01-2021
Cletuss schreef op maandag 24 juli 2017 @ 15:16:
Na een hoop uitzoek werk heb ik het samen met iemand anders voor elkaar gekregen. Ik denk ik post even een kleine info hier met een link naar het Domoticz forum waar ik het werkende script heb neergezet. Dit is dus ter info :)

http://www.domoticz.com/forum/viewtopic.php?f=65&t=18116&p=142535#p142535
Anoniem: 914365 schreef op donderdag 25 mei 2017 @ 23:45:
Eureka! Ik heb zitten spelen met een aantal van de settings en van Joost van Smartmeterdashboard nog een ander KMP-script gekregen van een 382 meter. Deze werkte nadat ook de IR-kop weer beetje verplaatst was. Geen idee wat het nu exact is geweest, maar zal een combinatie van zaken zijn geweest. Dank allemaal!
Ik ga weer een poging wagen.
Ik had deze gevonden voor een Kamstrup 601 model:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
#!/usr/bin/python
#
# ----------------------------------------------------------------------------
# "THE BEER-WARE LICENSE" (Revision 42):
# <phk@FreeBSD.ORG> wrote this file.  As long as you retain this notice you
# can do whatever you want with this stuff. If we meet some day, and you think
# this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp
# ----------------------------------------------------------------------------
#
# Modified for Domotics and single request.
#
# Usage: __file__ <ComPort> <KMP_Command_Decimal> <Domoticz_IDX>
# kamstrup.py /dev/ttyUSB-IR 60 65



from __future__ import print_function

# You need pySerial 
import serial
import math
import sys
import json
import urllib2


kamstrup_601_var = {
    0x003C: "Verwarming verbruik",
    0x0054: "Warm waterverbruik",
}

#######################################################################
# Units, provided by Erik Jensen

units = {
    0: '', 1: 'Wh', 2: 'kWh', 3: 'MWh', 4: 'GWh', 5: 'j', 6: 'kj', 7: 'Mj',
    8: 'Gj', 9: 'Cal', 10: 'kCal', 11: 'Mcal', 12: 'Gcal', 13: 'varh',
    14: 'kvarh', 15: 'Mvarh', 16: 'Gvarh', 17: 'VAh', 18: 'kVAh',
    19: 'MVAh', 20: 'GVAh', 21: 'kW', 22: 'kW', 23: 'MW', 24: 'GW',
    25: 'kvar', 26: 'kvar', 27: 'Mvar', 28: 'Gvar', 29: 'VA', 30: 'kVA',
    31: 'MVA', 32: 'GVA', 33: 'V', 34: 'A', 35: 'kV',36: 'kA', 37: 'C',
    38: 'K', 39: 'l', 40: 'm3', 41: 'l/h', 42: 'm3/h', 43: 'm3xC',
    44: 'ton', 45: 'ton/h', 46: 'h', 47: 'hh:mm:ss', 48: 'yy:mm:dd',
    49: 'yyyy:mm:dd', 50: 'mm:dd', 51: '', 52: 'bar', 53: 'RTC',
    54: 'ASCII', 55: 'm3 x 10', 56: 'ton x 10', 57: 'GJ x 10',
    58: 'minutes', 59: 'Bitfield', 60: 's', 61: 'ms', 62: 'days',
    63: 'RTC-Q', 64: 'Datetime'
}

#######################################################################
# Kamstrup uses the "true" CCITT CRC-16
#

def crc_1021(message):
        poly = 0x1021
        reg = 0x0000
        for byte in message:
                mask = 0x80
                while(mask > 0):
                        reg<<=1
                        if byte & mask:
                                reg |= 1
                        mask>>=1
                        if reg & 0x10000:
                                reg &= 0xffff
                                reg ^= poly
        return reg

#######################################################################
# Byte values which must be escaped before transmission
#

escapes = {
    0x06: True,
    0x0d: True,
    0x1b: True,
    0x40: True,
    0x80: True,
}

#######################################################################
# And here we go....
#
class kamstrup(object):

    def __init__(self, serial_port):
        self.debug_fd = open("/tmp/_kamstrup", "a")
        self.debug_fd.write("\n\nStart\n")
        self.debug_id = None

        self.ser = serial.Serial(
            port = serial_port,
            baudrate = 1200,
            timeout = 2.0)

    def debug(self, dir, b):
        for i in b:
            if dir != self.debug_id:
                if self.debug_id != None:
                    self.debug_fd.write("\n")
                self.debug_fd.write(dir + "\t")
                self.debug_id = dir
            self.debug_fd.write(" %02x " % i)
        self.debug_fd.flush()

    def debug_msg(self, msg):
        if self.debug_id != None:
            self.debug_fd.write("\n")
        self.debug_id = "Msg"
        self.debug_fd.write("Msg\t" + msg)
        self.debug_fd.flush()

    def wr(self, b):
        b = bytearray(b)
        self.debug("Wr", b);
        self.ser.write(b)

    def rd(self):
        a = self.ser.read(1)
        if len(a) == 0:
            self.debug_msg("Rx Timeout")
            return None
        b = bytearray(a)[0]
        self.debug("Rd", bytearray((b,)));
        return b

    def send(self, pfx, msg):
        b = bytearray(msg)

        b.append(0)
        b.append(0)
        c = crc_1021(b)
        b[-2] = c >> 8
        b[-1] = c & 0xff

        c = bytearray()
        c.append(pfx)
        for i in b:
            if i in escapes:
                c.append(0x1b)
                c.append(i ^ 0xff)
            else:
                c.append(i)
        c.append(0x0d)
        self.wr(c)

    def recv(self):
        b = bytearray()
        while True:
            d = self.rd()
            if d == None:
                return None
            if d == 0x40:
                b = bytearray()
            b.append(d)
            if d == 0x0d:
                break
        c = bytearray()
        i = 1;
        while i < len(b) - 1:
            if b[i] == 0x1b:
                v = b[i + 1] ^ 0xff
                if v not in escapes:
                    self.debug_msg(
                        "Missing Escape %02x" % v)
                c.append(v)
                i += 2
            else:
                c.append(b[i])
                i += 1
        if crc_1021(c):
            self.debug_msg("CRC error")
        return c[:-2]

    def readvar(self, nbr):
        # I wouldn't be surprised if you can ask for more than
        # one variable at the time, given that the length is
        # encoded in the response.  Havn't tried.

        self.send(0x80, (0x3f, 0x10, 0x01, nbr >> 8, nbr & 0xff))

        b = self.recv()
        if b == None:
            return (None, None)

        if b[0] != 0x3f or b[1] != 0x10:
            return (None, None)

        if b[2] != nbr >> 8 or b[3] != nbr & 0xff:
            return (None, None)

        if b[4] in units:
            u = units[b[4]]
        else:
            u = None

        # Decode the mantissa
        x = 0
        for i in range(0,b[5]):
            x <<= 8
            x |= b[i + 7]

        # Decode the exponent
        i = b[6] & 0x3f
        if b[6] & 0x40:
            i = -i
        i = math.pow(10,i)
        if b[6] & 0x80:
            i = -i
        x *= i

        if False:
            # Debug print
            s = ""
            for i in b[:4]:
                s += " %02x" % i
            s += " |"
            for i in b[4:7]:
                s += " %02x" % i
            s += " |"
            for i in b[7:]:
                s += " %02x" % i

            print(s, "=", x, units[b[4]])

        return (x, u)
            

if __name__ == "__main__":

    import time

    comport = sys.argv[1]
    command = int( sys.argv[2], 0)
    index = int( sys.argv[3], 0)

    foo = kamstrup( comport )

    value,unit = foo.readvar( command )

    # We're sending an integer value to Domoticz, so with two digits, muliply by 100
    # Use Domiticz setting to devide by 100 again.
    value = int(value * 1000)

    requestPost = urllib2.Request( "http://192.168.178.100:8080/json.htm?type=command&param=udevice&idx=" + str(index) + "&svalue=" + str(value) )
    resultPost = json.load(urllib2.urlopen(requestPost))


Hierbij moet ik dus in crontab zoiets runnen:
python /home/pi/domoticz/scripts/kamstrup/kamstrup_single.py /dev/ttyUSB0 60 <IDX uit Domoticz>

Maar nu lees ik bij dit topic het scrip voor de 402 (ik heb dacht ik de 403)...
Dan is het dus dit script:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
#!/usr/bin/python
#
# ----------------------------------------------------------------------------
# "THE BEER-WARE LICENSE" (Revision 42):
# <phk@FreeBSD.ORG> wrote this file.  As long as you retain this notice you
# can do whatever you want with this stuff. If we meet some day, and you think
# this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp
# ----------------------------------------------------------------------------
#
# Modified for Domotics and single request.
#
# Modified by Frank Reijn and Paul Bonnemaijers for Kamstrup Multical 402
#
# Usage: __file__ <ComPort> <KMP_Command_Decimal> <Domoticz_IDX>
#

from __future__ import print_function

# You need pySerial 
import serial
import math
import sys
import datetime
import json
import urllib
import urllib.request

# Variables

# domoip = "192.168.2.253"
# domoport = "8080"

kamstrup_402_var = {                # Decimal Number in Command
 0x003C: "Heat Energy (E1)",        #60
 0x0050: "Power",                   #80
 0x0056: "Temp1",                   #86
 0x0057: "Temp2",                   #87
 0x0059: "Tempdiff",                #89
 0x004A: "Flow",                    #74
 0x0044: "Volume",                  #68
 0x008D: "MinFlow_M",               #141
 0x008B: "MaxFlow_M",               #139
 0x008C: "MinFlowDate_M",           #140
 0x008A: "MaxFlowDate_M",           #138
 0x0091: "MinPower_M",              #145
 0x008F: "MaxPower_M",              #143
 0x0095: "AvgTemp1_M",              #149
 0x0096: "AvgTemp2_M",              #150
 0x0090: "MinPowerDate_M",          #144
 0x008E: "MaxPowerDate_M",          #142
 0x007E: "MinFlow_Y",               #126
 0x007C: "MaxFlow_Y",               #124
 0x007D: "MinFlowDate_Y",           #125
 0x007B: "MaxFlowDate_Y",           #123
 0x0082: "MinPower_Y",              #130
 0x0080: "MaxPower_Y",              #128
 0x0092: "AvgTemp1_Y",              #146
 0x0093: "AvgTemp2_Y",              #147
 0x0081: "MinPowerDate_Y",          #129
 0x007F: "MaxPowerDate_Y",          #127
 0x0061: "Temp1xm3",                #97
 0x006E: "Temp2xm3",                #110
 0x0071: "Infoevent",               #113
 0x03EC: "HourCounter",             #1004
}

#######################################################################
# Units, provided by Erik Jensen

units = {
    0: '', 1: 'Wh', 2: 'kWh', 3: 'MWh', 4: 'GWh', 5: 'j', 6: 'kj', 7: 'Mj',
    8: 'Gj', 9: 'Cal', 10: 'kCal', 11: 'Mcal', 12: 'Gcal', 13: 'varh',
    14: 'kvarh', 15: 'Mvarh', 16: 'Gvarh', 17: 'VAh', 18: 'kVAh',
    19: 'MVAh', 20: 'GVAh', 21: 'kW', 22: 'kW', 23: 'MW', 24: 'GW',
    25: 'kvar', 26: 'kvar', 27: 'Mvar', 28: 'Gvar', 29: 'VA', 30: 'kVA',
    31: 'MVA', 32: 'GVA', 33: 'V', 34: 'A', 35: 'kV',36: 'kA', 37: 'C',
    38: 'K', 39: 'l', 40: 'm3', 41: 'l/h', 42: 'm3/h', 43: 'm3xC',
    44: 'ton', 45: 'ton/h', 46: 'h', 47: 'hh:mm:ss', 48: 'yy:mm:dd',
    49: 'yyyy:mm:dd', 50: 'mm:dd', 51: '', 52: 'bar', 53: 'RTC',
    54: 'ASCII', 55: 'm3 x 10', 56: 'ton x 10', 57: 'GJ x 10',
    58: 'minutes', 59: 'Bitfield', 60: 's', 61: 'ms', 62: 'days',
    63: 'RTC-Q', 64: 'Datetime'
}

#######################################################################
# Kamstrup uses the "true" CCITT CRC-16
#

def crc_1021(message):
        poly = 0x1021
        reg = 0x0000
        for byte in message:
                mask = 0x80
                while(mask > 0):
                        reg<<=1
                        if byte & mask:
                                reg |= 1
                        mask>>=1
                        if reg & 0x10000:
                                reg &= 0xffff
                                reg ^= poly
        return reg

#######################################################################
# Byte values which must be escaped before transmission
#

escapes = {
    0x06: True,
    0x0d: True,
    0x1b: True,
    0x40: True,
    0x80: True,
}

#######################################################################
# And here we go....
#

class kamstrup(object):

    def __init__(self, serial_port):
        self.debug_fd = open("/tmp/_kamstrup", "a")
        self.debug_fd.write("\n\nStart\n")
        self.debug_id = None

        self.ser = serial.Serial(
            port = serial_port,
            baudrate = 1200,
            timeout = 2.0)

    def debug(self, dir, b):
        for i in b:
            if dir != self.debug_id:
                if self.debug_id != None:
                    self.debug_fd.write("\n")
                self.debug_fd.write(dir + "\t")
                self.debug_id = dir
            self.debug_fd.write(" %02x " % i)
        self.debug_fd.flush()

    def debug_msg(self, msg):
        if self.debug_id != None:
            self.debug_fd.write("\n")
        self.debug_id = "Msg"
        self.debug_fd.write("Msg\t" + msg)
        self.debug_fd.flush()

    def wr(self, b):
        b = bytearray(b)
        self.debug("Wr", b);
        self.ser.write(b)

    def rd(self):
        a = self.ser.read(1)
        if len(a) == 0:
            self.debug_msg("Rx Timeout")
            return None
        b = bytearray(a)[0]
        self.debug("Rd", bytearray((b,)));
        return b

    def send(self, pfx, msg):
        b = bytearray(msg)

        b.append(0)
        b.append(0)
        c = crc_1021(b)
        b[-2] = c >> 8
        b[-1] = c & 0xff

        c = bytearray()
        c.append(pfx)
        for i in b:
            if i in escapes:
                c.append(0x1b)
                c.append(i ^ 0xff)
            else:
                c.append(i)
        c.append(0x0d)
        self.wr(c)

    def recv(self):
        b = bytearray()
        while True:
            d = self.rd()
            if d == None:
                return None
            if d == 0x40:
                b = bytearray()
            b.append(d)
            if d == 0x0d:
                break
        c = bytearray()
        i = 1;
        while i < len(b) - 1:
            if b[i] == 0x1b:
                v = b[i + 1] ^ 0xff
                if v not in escapes:
                    self.debug_msg(
                        "Missing Escape %02x" % v)
                c.append(v)
                i += 2
            else:
                c.append(b[i])
                i += 1
        if crc_1021(c):
            self.debug_msg("CRC error")
        return c[:-2]

    def readvar(self, nbr):
        # I wouldn't be surprised if you can ask for more than
        # one variable at the time, given that the length is
        # encoded in the response.  Havn't tried.

        self.send(0x80, (0x3f, 0x10, 0x01, nbr >> 8, nbr & 0xff))

        b = self.recv()
        if b == None:
            return (None, None)

        if b[0] != 0x3f or b[1] != 0x10:
            return (None, None)

        if b[2] != nbr >> 8 or b[3] != nbr & 0xff:
            return (None, None)

        if b[4] in units:
            u = units[b[4]]
        else:
            u = None

        # Decode the mantissa
        x = 0
        for i in range(0,b[5]):
            x <<= 8
            x |= b[i + 7]

        # Decode the exponent
        i = b[6] & 0x3f
        if b[6] & 0x40:
            i = -i
        i = math.pow(10,i)
        if b[6] & 0x80:
            i = -i
        x *= i

        if False:
            # Debug print
            s = ""
            for i in b[:4]:
                s += " %02x" % i
            s += " |"
            for i in b[4:7]:
                s += " %02x" % i
            s += " |"
            for i in b[7:]:
                s += " %02x" % i

            print(s, "=", x, units[b[4]])

        return (x, u)
            

if __name__ == "__main__":

    import time

    comport = sys.argv[1]
    command = int( sys.argv[2], 0)
    index = int( sys.argv[3], 0)

    foo = kamstrup( comport )
    heat_timestamp=datetime.datetime.strftime(datetime.datetime.today(), "%Y-%m-%d %H:%M:%S" )
    
    value,unit = foo.readvar( command )

    requestPost = urllib.request.urlopen( "http://192.168.2.253:8080/json.htm?type=command&param=udevice&idx=" + str(index) + "&svalue=" + str(value) )


Vervolgens kun je op dezelfde wijze zaken uitlezen toch:

# Heat Energy (verbruik) [60] [148]
python3 /home/pi/domoticz/scripts/kamstrup/kamstrup_single.py /dev/ttyUSB0 60 148

# Volume (m3) [68] [149]
python3 /home/pi/domoticz/scripts/kamstrup/kamstrup_single.py /dev/ttyUSB0 68 149

# Current Temp1 (forward) [86] [152]
python3 /home/pi/domoticz/scripts/kamstrup/kamstrup_single.py /dev/ttyUSB0 86 152

# Current Temp2 (return) [87] [153]
python3 /home/pi/domoticz/scripts/kamstrup/kamstrup_single.py /dev/ttyUSB0 87 153

# Current Flow [74] [150]
python3 /home/pi/domoticz/scripts/kamstrup/kamstrup_single.py /dev/ttyUSB0 74 150

# Current Power [80] [151]
python3 /home/pi/domoticz/scripts/kamstrup/kamstrup_single.py /dev/ttyUSB0 80 151

Vraag, moet dit per se met python3? Of kan het ook gewoon met Python?
Moet ik even wat dummy sensors aanmaken...

Hoe hebben jullie de IR sensor vastgemaakt aan de Kamstrup meter?

Nu krijg ik dit:
root@Domoticz:/home/pi/domoticz/scripts/python# python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB0-IR 60 65
File "/home/pi/domoticz/scripts/python/kamstrup403.py", line 15
import serial import math import sys import datetime import json import urllib import urllib.request
^
SyntaxError: invalid syntax

[ Voor 56% gewijzigd door BlakHawk op 12-03-2019 15:08 ]

Youtube: DashcamNL


Acties:
  • 0 Henk 'm!

  • BlakHawk
  • Registratie: Februari 2008
  • Laatst online: 09-01-2021
Okee het uitlezen lukt!!!! *O*

Alleen gaat hij ondanks het uitlezen toch in slaapstand -O-

Iemand enig idee?

Youtube: DashcamNL


Acties:
  • 0 Henk 'm!

  • BlakHawk
  • Registratie: Februari 2008
  • Laatst online: 09-01-2021
Hmmm vreemd... Het lijkt helemaal niet nodig dat de meter "wakker" is.
Als ik met de hand nu het script aftrap, gaat het iedere keer goed, ondanks dat de meter uit staat!

Maar in de crontab gaat het niet goed.
Kunnen ze elkaar in de weg zitten?

Crontab:
# Current Temp2 (return) [87] [68]
*/5 * * * * python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 87 68

# Heat Energy (verbruik) [60] [65]
*/5 * * * * python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 60 65

# Volume (m3) [68] [66]
*/5 * * * * python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 68 66

# Current Temp1 (forward) [86] [67]
*/5 * * * * python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 86 67

# Current Temp2 (return) [87] [68]
*/5 * * * * python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 87 68

edit:
Dit werkt wel:

# Current Temp2 (return) [87] [68]
4/5 * * * * python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 87 68

# Heat Energy (verbruik) [60] [65]
3/5 * * * * python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 60 65

# Volume (m3) [68] [66]
2/5 * * * * python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 68 66

# Current Temp1 (forward) [86] [67]
1/5 * * * * python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 86 67

# Current Temp2 (return) [87] [68]
# */5 * * * * python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 87 68

Jobs zitten elkaar dus in de weg...

edit:
Te vroeg gejuichd, hij lijkt het hiermee helemaal niet te doen

[ Voor 30% gewijzigd door BlakHawk op 13-03-2019 08:26 ]

Youtube: DashcamNL


Acties:
  • +1 Henk 'm!

  • tsjoender
  • Registratie: April 2005
  • Nu online
dfrenner schreef op woensdag 13 maart 2019 @ 07:49:
Hmmm vreemd... Het lijkt helemaal niet nodig dat de meter "wakker" is.
Als ik met de hand nu het script aftrap, gaat het iedere keer goed, ondanks dat de meter uit staat!

Maar in de crontab gaat het niet goed.
Kunnen ze elkaar in de weg zitten?

Crontab:
# Current Temp2 (return) [87] [68]
*/5 * * * * python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 87 68

# Heat Energy (verbruik) [60] [65]
*/5 * * * * python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 60 65

# Volume (m3) [68] [66]
*/5 * * * * python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 68 66

# Current Temp1 (forward) [86] [67]
*/5 * * * * python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 86 67

# Current Temp2 (return) [87] [68]
*/5 * * * * python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 87 68

edit:
Dit werkt wel:

# Current Temp2 (return) [87] [68]
4/5 * * * * python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 87 68

# Heat Energy (verbruik) [60] [65]
3/5 * * * * python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 60 65

# Volume (m3) [68] [66]
2/5 * * * * python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 68 66

# Current Temp1 (forward) [86] [67]
1/5 * * * * python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 86 67

# Current Temp2 (return) [87] [68]
# */5 * * * * python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 87 68

Jobs zitten elkaar dus in de weg...

edit:
Te vroeg gejuichd, hij lijkt het hiermee helemaal niet te doen
toon volledige bericht
Als ze tegelijk gestart worden dan kan ik me voorstellen dat de eerste een lock op de seriele poort zet en de andere processen falen. Zelf heb ik een klein scriptje gemaakt die het python script x-keer achterelkaar aanroept. Dat scriptje wordt door cron gestart. Voor jou zou dat scriptje er zo uit kunnen zien:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 87 68

# Heat Energy (verbruik) [60] [65]
python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 60 65

# Volume (m3) [68] [66]
python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 68 66

# Current Temp1 (forward) [86] [67]
python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 86 67

# Current Temp2 (return) [87] [68]
python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 87 68


Niets fancy, maar voor mij werkt het prima.

Acties:
  • 0 Henk 'm!

  • BlakHawk
  • Registratie: Februari 2008
  • Laatst online: 09-01-2021
tsjoender schreef op woensdag 13 maart 2019 @ 09:09:
[...]


Als ze tegelijk gestart worden dan kan ik me voorstellen dat de eerste een lock op de seriele poort zet en de andere processen falen. Zelf heb ik een klein scriptje gemaakt die het python script x-keer achterelkaar aanroept. Dat scriptje wordt door cron gestart. Voor jou zou dat scriptje er zo uit kunnen zien:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 87 68

# Heat Energy (verbruik) [60] [65]
python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 60 65

# Volume (m3) [68] [66]
python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 68 66

# Current Temp1 (forward) [86] [67]
python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 86 67

# Current Temp2 (return) [87] [68]
python3 /home/pi/domoticz/scripts/python/kamstrup403.py /dev/ttyUSB-IR 87 68


Niets fancy, maar voor mij werkt het prima.
toon volledige bericht
Mijn linuxkennis is bijna 0, dus hoe doe ik dit dan?
Is dat dan een python script, of iets anders?

Ik begrijp je idee, dus zet die tekst in een file en die noem ik dan "verzameling_scripts.py" en dan gooi ik die in contab?

Of is het iets anders dan een pi script?

[ Voor 6% gewijzigd door BlakHawk op 13-03-2019 09:24 ]

Youtube: DashcamNL


Acties:
  • 0 Henk 'm!

  • BlakHawk
  • Registratie: Februari 2008
  • Laatst online: 09-01-2021
dfrenner schreef op woensdag 13 maart 2019 @ 09:15:
[...]


Mijn linuxkennis is bijna 0, dus hoe doe ik dit dan?
Is dat dan een python script, of iets anders?

Ik begrijp je idee, dus zet die tekst in een file en die noem ik dan "verzameling_scripts.py" en dan gooi ik die in contab?

Of is het iets anders dan een pi script?
Okee, het is nu zo geworden:

code:
1
2
3
4
5
#!/usr/bin/env bash
python3 /home/pi/domoticz/scripts/python/kamstrup403_1.py /dev/ttyUSB-IR 87 68 && \
python3 /home/pi/domoticz/scripts/python/kamstrup403_2.py /dev/ttyUSB-IR 60 65 && \
python3 /home/pi/domoticz/scripts/python/kamstrup403_3.py /dev/ttyUSB-IR 68 66 && \
python3 /home/pi/domoticz/scripts/python/kamstrup403_4.py /dev/ttyUSB-IR 86 67


Daarvoor heb ik dit uitgevoerd:
code:
1
2
3
root@Domoticz:/home/pi/domoticz/scripts/python# vi warmtemeter.sh
root@Domoticz:/home/pi/domoticz/scripts/python# chmod +x warmtemeter.sh
root@Domoticz:/home/pi/domoticz/scripts/python# ./warmtemeter.sh


En dan in de crontab toevoegen:
code:
1
* * * * * /home/pi/domoticz/scripts/python/warmtemeter.sh


En het werkt!!!

Iedere minuut nu geupdate!!!
Ik ben erg blij!

Zo staat het nu in Domoticz:
Afbeeldingslocatie: https://farm8.staticflickr.com/7925/47314248372_69c9395753_b.jpg

Ik heb ervoor gekozen om alleen GJ, m3 en in en uitgaande temperatuur te loggen. Denk dat dat het enige relevante is, toch?

GJ:
Afbeeldingslocatie: https://farm8.staticflickr.com/7835/33490798648_f7859c98de_b.jpg

m3:
Afbeeldingslocatie: https://farm8.staticflickr.com/7844/47314248342_8d4a6d6062_b.jpg

Temp aanlever:
Afbeeldingslocatie: https://farm8.staticflickr.com/7831/46452049225_f48f713bc5_b.jpg

Temp teruglever:
Afbeeldingslocatie: https://farm8.staticflickr.com/7840/46452049185_57da27ffb8_b.jpg

Youtube: DashcamNL


Acties:
  • 0 Henk 'm!

  • MAZZA
  • Registratie: Januari 2000
  • Laatst online: 09-06 20:00

MAZZA

Barbie is er weer!

Dit is precies waar ik naar op zoek ben :) Ik heb ook een huis met stadsverwarming en ook ik heb een Kamstrup Multical meter. Echter de 403 ipv de 402 zoals de topic starter.

Helaas, als mijn middelbareschoolduits nog een beetje klopt, leveren ze geen complete IR-kop meer via die site uit de topic start.

Weet iemand of zo'n IR-kop ook elders te bestellen is? Ik heb gezocht maar er wordt meestal verwezen naar bovenstaande site (of naar Smartmeterdashboard, die op haar beurt weer naar Volkszaehler.org verwijst).

Het meeste wat ik vind zijn repeaters voor IR afstandbedieningen. Heeft zo'n ding een naam zodat ik m'n zoekresultaten kan verfijnen?

Acties:
  • 0 Henk 'm!

  • dunklefaser
  • Registratie: Oktober 2012
  • Laatst online: 09:50

dunklefaser

Point Of KnowReturn

MAZZA schreef op maandag 25 november 2019 @ 13:19:
Dit is precies waar ik naar op zoek ben :) Ik heb ook een huis met stadsverwarming en ook ik heb een Kamstrup Multical meter. Echter de 403 ipv de 402 zoals de topic starter.

Helaas, als mijn middelbareschoolduits nog een beetje klopt, leveren ze geen complete IR-kop meer via die site uit de topic start.

Weet iemand of zo'n IR-kop ook elders te bestellen is? Ik heb gezocht maar er wordt meestal verwezen naar bovenstaande site (of naar Smartmeterdashboard, die op haar beurt weer naar Volkszaehler.org verwijst).

Het meeste wat ik vind zijn repeaters voor IR afstandbedieningen. Heeft zo'n ding een naam zodat ik m'n zoekresultaten kan verfijnen?
"IR Schreib/Lesekopf USB" (Optokopf) is dat wat je zoekt. Ik heb deze en hij werkt prima met de programmatuur van Kamstrup samen (LogView HCW en METERTOOL HCW)

Nobody is perfeckt - But who wants to be Nobody? - Vrijwillig Energycoach Fiat LUXus! - Some Insights


Acties:
  • 0 Henk 'm!

  • MAZZA
  • Registratie: Januari 2000
  • Laatst online: 09-06 20:00

MAZZA

Barbie is er weer!

dunklefaser schreef op dinsdag 26 november 2019 @ 20:10:
[...]

"IR Schreib/Lesekopf USB" (Optokopf) is dat wat je zoekt. Ik heb deze en hij werkt prima met de programmatuur van Kamstrup samen (LogView HCW en METERTOOL HCW)
Dank je! Gelijk besteld. Mooi projectje voor de vakantie.

Acties:
  • 0 Henk 'm!

Anoniem: 135360

Is het nog gelukt met deze USB kabel? Wil zelf ook mijn 403 uitlezen , maar ben nog opzoek naar een juiste...

Acties:
  • 0 Henk 'm!

  • martini7
  • Registratie: Maart 2011
  • Laatst online: 11-06 12:58
Hier nog iemand die aan het stoeien is om de Kamstrum 403 aan de praat te krijgen.
Via de Kamstrup applicaties (LogView HCW en METERTOOL HCW) krijg ik wel correcte data dus aan de hardware ligt het niet, maar het 402 script werkt niet goed. Deze leest wel data lijkt het, maar kan deze niet omzetten in bruikbare waarden.

Wie heeft er (inmiddels) een werkend script voor de 403?

Update: het is inmiddels gelukt; vreemd genoeg lijkt het uitlezen via het welbekende script wat gevoeliger te zijn vergeleken met de Kamstrup software. Alsof hij bij het script z'n eigen verzonden data weer terugleest via reflectie o.i.d.. In plaats van de IR kop direct op de meter te plaatsen moet ik 'm iets gekanteld erop richten (kan zelfs met 1 cm. afstand van de IR poort; beetje vreemd wel aangezien het geen eigen geknutsel IR kop is.

[ Voor 36% gewijzigd door martini7 op 12-06-2020 08:52 ]


  • MMatthijsV
  • Registratie: Oktober 2012
  • Laatst online: 10-06 14:14
Heeft iemand dit al voor langere tijd in gebruik en/of al eens de batterij van de meter moeten laten vervangen?

Acties:
  • +6 Henk 'm!

  • MMatthijsV
  • Registratie: Oktober 2012
  • Laatst online: 10-06 14:14
Ik heb een project gepubliceerd op GitHub voor de Kamstrup Multical 402. Heb een deel van de eerder genoemde code herschreven en wat functionaliteit toegevoegd.
  • Meter waardes worden via MQTT gepubliceerd
  • Instellingen zijn met een configuratie file naar wens te configureren
  • Kan worden ingesteld als achtergrond service
Zie https://github.com/matthijsvisser/kamstrup-402-mqtt

Acties:
  • 0 Henk 'm!

  • Aurora
  • Registratie: Augustus 2005
  • Laatst online: 09-06 22:11
Wat wordt precies gevoed met een batterij? De communicatiemodule? Kunnen deze batterijen eventueel zelf vervangen worden?

Don't forget the Cloud is just someone else's computer


Acties:
  • +1 Henk 'm!

  • Aurora
  • Registratie: Augustus 2005
  • Laatst online: 09-06 22:11
MMatthijsV schreef op zaterdag 5 september 2020 @ 20:29:
Ik heb een project gepubliceerd op GitHub voor de Kamstrup Multical 402. Heb een deel van de eerder genoemde code herschreven en wat functionaliteit toegevoegd.
  • Meter waardes worden via MQTT gepubliceerd
  • Instellingen zijn met een configuratie file naar wens te configureren
  • Kan worden ingesteld als achtergrond service
Zie https://github.com/matthijsvisser/kamstrup-402-mqtt
Erg waardevol! Ik ben een tijdje geleden afgehaakt, maar ik zie nu allemaal updates in dit topic. Ik ga binnenkort aan de slag met de hulp van jouw project.

Don't forget the Cloud is just someone else's computer


Acties:
  • 0 Henk 'm!

  • MMatthijsV
  • Registratie: Oktober 2012
  • Laatst online: 10-06 14:14
Aurora schreef op woensdag 7 oktober 2020 @ 20:37:
Wat wordt precies gevoed met een batterij? De communicatiemodule? Kunnen deze batterijen eventueel zelf vervangen worden?
De meter zelf werkt op een D cel batterij. Helaas is die verzegeld dus die mag je niet zelf vervangen.

Acties:
  • 0 Henk 'm!

  • Aurora
  • Registratie: Augustus 2005
  • Laatst online: 09-06 22:11
MMatthijsV schreef op woensdag 7 oktober 2020 @ 21:05:
[...]


De meter zelf werkt op een D cel batterij. Helaas is die verzegeld dus die mag je niet zelf vervangen.
Thanks! Had altijd gedacht dat deze gewoon via 230v gevoed werd.

Don't forget the Cloud is just someone else's computer


Acties:
  • 0 Henk 'm!

  • spaya
  • Registratie: November 2013
  • Laatst online: 05-06 11:58
MMatthijsV schreef op zaterdag 5 september 2020 @ 20:29:
Ik heb een project gepubliceerd op GitHub voor de Kamstrup Multical 402. Heb een deel van de eerder genoemde code herschreven en wat functionaliteit toegevoegd.
  • Meter waardes worden via MQTT gepubliceerd
  • Instellingen zijn met een configuratie file naar wens te configureren
  • Kan worden ingesteld als achtergrond service
Zie https://github.com/matthijsvisser/kamstrup-402-mqtt
Hello, would it be possible to port it to Home Assistant? I have installed it but I cannot read any mqtt messages in HA. Is there a possibility to add a sample script that checks if the head is reading values? ( I have checked with the Kamstrup software and this does work).

thx!

Acties:
  • +1 Henk 'm!

  • Aurora
  • Registratie: Augustus 2005
  • Laatst online: 09-06 22:11
spaya schreef op vrijdag 9 oktober 2020 @ 11:57:
[...]


Hello, would it be possible to port it to Home Assistant? I have installed it but I cannot read any mqtt messages in HA. Is there a possibility to add a sample script that checks if the head is reading values? ( I have checked with the Kamstrup software and this does work).

thx!
Home Assistant supports MQTT. Just add your broker to Home Assistant and that's it. It is even configurable through 'Integrations' in the web UI.

Don't forget the Cloud is just someone else's computer


Acties:
  • 0 Henk 'm!

  • spaya
  • Registratie: November 2013
  • Laatst online: 05-06 11:58
Aurora schreef op vrijdag 9 oktober 2020 @ 12:12:
[...]


Home Assistant supports MQTT. Just add your broker to Home Assistant and that's it. It is even configurable through 'Integrations' in the web UI.
Hi Thx for the`quick reply. I have MQTT configured and read 25 devices, but for some reason this one is not posting messages (same configuration, using serial by id as the identifier for the IR head, putting the poll interval to 1 minute, etc) . I wanted to check that the head is actually reading content as I saw that for some users getting the head facing the meter shows values in windows, but then in the rbpi you need to tilt, separate, etc, so it would be great if there would be a script that you just execute in the terminal and right away you get None or a value if the value is read.

not sure if its possible.

thx!


EDIT: at least progress, now the MQTT plugin receives this:

Message 1 received on kamstrup/values at 12:52:
{}
QoS: 0 - Retain: false
Message 0 received on kamstrup/values at 12:51:
{}
QoS: 0 - Retain: false

In the log it says:

[2020-10-09 12:52:42 kamstrup_meter.py readparameter: 204 - WARNING - Message is invalid]
[2020-10-09 12:52:42 kamstrup_meter.py readparameter: 204 - WARNING - Message is invalid]
[2020-10-09 12:52:42 kamstrup_meter.py readparameter: 204 - WARNING - Message is invalid]
[2020-10-09 12:52:42 kamstrup_meter.py readparameter: 204 - WARNING - Message is invalid]
[2020-10-09 12:52:43 mqtt_handler.py publish: 55 - INFO - Publishing 'kamstrup/values' '{}' to 192.168.1.200:1883]
[2020-10-09 12:52:43 daemon.py run: 84 - INFO - Waiting 1 minute(s) for the next meter readout]

BTW its the kamstrup multical 403, not sure if the scripts need to change, hope not...

[ Voor 33% gewijzigd door spaya op 09-10-2020 12:57 ]


Acties:
  • 0 Henk 'm!

  • Aurora
  • Registratie: Augustus 2005
  • Laatst online: 09-06 22:11
spaya schreef op vrijdag 9 oktober 2020 @ 12:36:
[...]

BTW its the kamstrup multical 403, not sure if the scripts need to change, hope not...
Because of this I kind tell you anything. Maybe the owner of the project can tell you something about that.

Don't forget the Cloud is just someone else's computer


Acties:
  • +1 Henk 'm!

  • spaya
  • Registratie: November 2013
  • Laatst online: 05-06 11:58
Aurora schreef op vrijdag 9 oktober 2020 @ 14:10:
[...]


Because of this I kind tell you anything. Maybe the owner of the project can tell you something about that.
Alrigth thx, will follow up via Github :)

EDIT: So it seems to be working, the problem was that it was not active, but strangely enough it stops sending data after 1-2 minutes and you need to press the button in the device to get new values... I thought the pooling of data before the 30 minutes would keep it alive, seems it is not.


Message 107 received on kamstrup/values at 15:07:
{}
QoS: 0 - Retain: false
Message 106 received on kamstrup/values at 15:06:
{
"energy": 47.119,
"volume": 339.923,
"temp1": 67.99,
"temp2": 31.740000000000002
}
QoS: 0 - Retain: false

[ Voor 50% gewijzigd door spaya op 09-10-2020 15:10 ]


Acties:
  • +1 Henk 'm!

  • spaya
  • Registratie: November 2013
  • Laatst online: 05-06 11:58
martini7 schreef op donderdag 11 juni 2020 @ 08:37:
Hier nog iemand die aan het stoeien is om de Kamstrum 403 aan de praat te krijgen.
Via de Kamstrup applicaties (LogView HCW en METERTOOL HCW) krijg ik wel correcte data dus aan de hardware ligt het niet, maar het 402 script werkt niet goed. Deze leest wel data lijkt het, maar kan deze niet omzetten in bruikbare waarden.

Wie heeft er (inmiddels) een werkend script voor de 403?

Update: het is inmiddels gelukt; vreemd genoeg lijkt het uitlezen via het welbekende script wat gevoeliger te zijn vergeleken met de Kamstrup software. Alsof hij bij het script z'n eigen verzonden data weer terugleest via reflectie o.i.d.. In plaats van de IR kop direct op de meter te plaatsen moet ik 'm iets gekanteld erop richten (kan zelfs met 1 cm. afstand van de IR poort; beetje vreemd wel aangezien het geen eigen geknutsel IR kop is.
Does your 403 continuously report, or after 3 minutes stops reporting? I have sent an email to the customer service of Kamstrup to see if there is a way to overwrite.

Acties:
  • 0 Henk 'm!

  • Chrisiesmit93
  • Registratie: Februari 2009
  • Laatst online: 11-06 19:27
Werkt deze methode ook met bijv. een zelfbouw schakeling oid of heb je die IR oog nodig ?

Acties:
  • +1 Henk 'm!

  • kabeltjekabel
  • Registratie: April 2018
  • Laatst online: 13-02-2021
MMatthijsV schreef op woensdag 7 oktober 2020 @ 21:05:
[...]


De meter zelf werkt op een D cel batterij. Helaas is die verzegeld dus die mag je niet zelf vervangen.
Ja, een Lithium primary.
Aurora schreef op woensdag 7 oktober 2020 @ 21:44:
[...]


Thanks! Had altijd gedacht dat deze gewoon via 230v gevoed werd.
Dat bestaat ook. De uitvoering met batterij schijnt goedkoper te zijn in aanschaf als je er als beheerder vanuit gaat dat je die batterijen niet hoeft te vervangen :+

Acties:
  • 0 Henk 'm!

  • MMatthijsV
  • Registratie: Oktober 2012
  • Laatst online: 10-06 14:14
Chrisiesmit93 schreef op zaterdag 10 oktober 2020 @ 20:12:
Werkt deze methode ook met bijv. een zelfbouw schakeling oid of heb je die IR oog nodig ?
Je zou het zelf kunnen maken. In principe is het geen ingewikkelde schakeling. Het programma heeft alleen een seriële poort nodig om informatie te kunnen ontvangen en versturen.

Acties:
  • 0 Henk 'm!

  • Chrisiesmit93
  • Registratie: Februari 2009
  • Laatst online: 11-06 19:27
Ikzelf zit niet echt in de electronica wereld, maar zou iets als dit (in combinatie met een Raspbbery bijv.) werken voor het uitlezen van de Multical 403 ?
https://www.banggood.com/...l-Port-38K-p-1329234.html

Acties:
  • 0 Henk 'm!

  • MMatthijsV
  • Registratie: Oktober 2012
  • Laatst online: 10-06 14:14
Chrisiesmit93 schreef op zondag 11 oktober 2020 @ 09:14:
Ikzelf zit niet echt in de electronica wereld, maar zou iets als dit (in combinatie met een Raspbbery bijv.) werken voor het uitlezen van de Multical 403 ?
https://www.banggood.com/...l-Port-38K-p-1329234.html
Ja dat zou kunnen werken. Uit ervaring weet ik alleen dat het zelfs met een ingekochte infrarood kop wel even zoeken is voor de juiste positie van de oogjes. |:( Die jij nu linkt gaat vermoed ik wel last krijgen van reflectie van zijn eigen uitgestraalde infrarood licht.

Acties:
  • 0 Henk 'm!

  • spaya
  • Registratie: November 2013
  • Laatst online: 05-06 11:58
MMatthijsV schreef op zondag 11 oktober 2020 @ 19:27:
[...]


Ja dat zou kunnen werken. Uit ervaring weet ik alleen dat het zelfs met een ingekochte infrarood kop wel even zoeken is voor de juiste positie van de oogjes. |:( Die jij nu linkt gaat vermoed ik wel last krijgen van reflectie van zijn eigen uitgestraalde infrarood licht.
I have been playing with the meter the whole weekend (Kamstrup 403), modified the timing of your script and concluded that after 240 seconds the IR goes to sleep (I can get 240 successful readings before it stops working).

I see two options, keep the button pressed indefinitely, which I havent figured out a way yet how to do, and keep pressed :), or somehow send a keepalive/timer reset value via IR, do you know if there is anywhere an option to send this?

thx!

Acties:
  • 0 Henk 'm!

  • MMatthijsV
  • Registratie: Oktober 2012
  • Laatst online: 10-06 14:14
spaya schreef op maandag 12 oktober 2020 @ 17:57:
[...]


I have been playing with the meter the whole weekend (Kamstrup 403), modified the timing of your script and concluded that after 240 seconds the IR goes to sleep (I can get 240 successful readings before it stops working).

I see two options, keep the button pressed indefinitely, which I havent figured out a way yet how to do, and keep pressed :), or somehow send a keepalive/timer reset value via IR, do you know if there is anywhere an option to send this?

thx!
I don't have the Kamstrup 403 meter, so I can't reproduce your problem.
Have you tried polling the meter values with the official Kamstrup software for longer than 4 minutes? I'm not aware of a method to wake the meter without having physical access to the meter. I do know that when using the 402, the kamstrup software gives a popup when it isn't able to communicate with the meter when it is in stand-by mode and suggests to press a button to wake it.

[ Voor 0% gewijzigd door MMatthijsV op 12-10-2020 19:35 . Reden: typo ]


Acties:
  • 0 Henk 'm!

  • spaya
  • Registratie: November 2013
  • Laatst online: 05-06 11:58
MMatthijsV schreef op maandag 12 oktober 2020 @ 18:45:
[...]

I don't have the Kamstrup 403 meter, so I cant reproduce you problem.
Have you tried polling the meter values with the official Kamstrup software for longer than 4 minutes? I'm not aware of a method to wake the meter without having physical access to the meter. I do know that when using the 402, the kamstrup software gives a popup when it isn't able to communicate with the meter when it is in stand-by mode and suggests to press a button to wake it.
Which software do you mean? I installed the metertool and the logtool, I can load the meter there, but I can’t read consumption values (or I don’t know where to look) :)

Found it, but same as what I experience on the rpbi.

Afbeeldingslocatie: https://tweakers.net/i/RYzLjQvjcWllqu_W3vUqurVD3es=/800x/filters:strip_exif()/f/image/XGAnPvOmZRisTirmg9oZBmQM.png?f=fotoalbum_large

[ Voor 20% gewijzigd door spaya op 12-10-2020 19:19 ]


Acties:
  • 0 Henk 'm!

  • MMatthijsV
  • Registratie: Oktober 2012
  • Laatst online: 10-06 14:14
spaya schreef op maandag 12 oktober 2020 @ 18:52:
[...]

Found it, but same as what I experience on the rpbi.
Found this on the Domoticz forum; someone claims that the 403 doesn't have to be awake.
https://www.domoticz.com/...dad2648c738e1b31&start=20
... The advantage of the 403 meter is that it doesn't need to be 'awake' to read. You can do it anytime.

Acties:
  • 0 Henk 'm!

  • spaya
  • Registratie: November 2013
  • Laatst online: 05-06 11:58
MMatthijsV schreef op maandag 12 oktober 2020 @ 19:59:
[...]


Found this on the Domoticz forum; someone claims that the 403 doesn't have to be awake.
https://www.domoticz.com/...dad2648c738e1b31&start=20

[...]
I also saw that, but in my case its not working all the time. Also upon entering the advanced mode in the Meter tool I see this, which confirms my findings...

Not sure if there is much more to do since anything I tried to change gets me back to the fact that I am in userland and to get to "setup Loop" I need to break the security seals.

Afbeeldingslocatie: https://tweakers.net/i/9GQTdThemIWbK03zgtIvei8qZWo=/800x/filters:strip_exif()/f/image/x7P8Y64XC5JaBypI9ITgGzAW.png?f=fotoalbum_large

Acties:
  • +1 Henk 'm!

  • martini7
  • Registratie: Maart 2011
  • Laatst online: 11-06 12:58
No need for me to keep the 403 ‘alive’.
I read it every 5 minutes with just 2 values (heat temp in/out) and every 15 minutes in full (meter reading).

Acties:
  • 0 Henk 'm!

  • spaya
  • Registratie: November 2013
  • Laatst online: 05-06 11:58
martini7 schreef op donderdag 15 oktober 2020 @ 22:18:
No need for me to keep the 403 ‘alive’.
I read it every 5 minutes with just 2 values (heat temp in/out) and every 15 minutes in full (meter reading).
Strange, not sure why for me after 4 minutes it shuts down :(, must be a setting of Vattenfal.

Acties:
  • 0 Henk 'm!

  • Atomstar
  • Registratie: Juli 2002
  • Laatst online: 07-05 12:00
Small bump, but I also managed to get the Kamstrup Multical 403 working. No need to wake it up, as long as there's a (strongish) magnet near the optical port. I documented my findings here, hope it helps others :)

TL;DR: using the hal9k.dk reader head, connect to FTDI USB TTL dongle, read out using my PyMultical script.

Acties:
  • 0 Henk 'm!

  • NijsKei
  • Registratie: Juni 2013
  • Laatst online: 22-05-2023
Ik ben ook aan dit project begonnen maar vraag me 1 ding af. Kan je bij de kamstrup meter net als bij een IR afstandbediening met een camera zien of er IR signaal wordt verzonden. Ik heb er mijn twijfels over bij mijn meter.

Acties:
  • 0 Henk 'm!

  • MMatthijsV
  • Registratie: Oktober 2012
  • Laatst online: 10-06 14:14
NijsKei schreef op zondag 14 februari 2021 @ 00:57:
Ik ben ook aan dit project begonnen maar vraag me 1 ding af. Kan je bij de kamstrup meter net als bij een IR afstandbediening met een camera zien of er IR signaal wordt verzonden. Ik heb er mijn twijfels over bij mijn meter.
Pas wanneer je een commando hebt gestuurd zal de meter antwoorden, die methode zal dus helaas niet werken.

Acties:
  • +1 Henk 'm!

  • NijsKei
  • Registratie: Juni 2013
  • Laatst online: 22-05-2023
Ik dacht dat de meter ook signaal gaf als je een knop indrukt. Ik heb de 602 en die zal wel weer anders werken.

  • Chrisiesmit93
  • Registratie: Februari 2009
  • Laatst online: 11-06 19:27
spaya schreef op vrijdag 16 oktober 2020 @ 08:33:
[...]
Strange, not sure why for me after 4 minutes it shuts down :(, must be a setting of Vattenfal.
@spaya Same "problem" over here with the Kamstrup Multical 403 (from "Warmtebedrijf Ennatuurlijk"), it "dies" after ~4 minutes.

@MMatthijsV ik besef mij net pas ik je script hiervandaan had en ook hier had kunnen reageren ipv via Github :P
Maar goed, de meter hier houdt er helaas mee op na 4 min geen activiteiten van de knoppen :(
Ook via LogView HCW en METERTOOL HCW is er geen leven in te krijgen, ook niet als je op de "ON knop" van deze afbeelding klikt:
Weet iemand of hier een oplossing voor is ? :)
Behalve een switchbot gebruiken om op de schakelaar te zetten :9

[ Voor 3% gewijzigd door Chrisiesmit93 op 18-02-2021 21:53 ]


Acties:
  • +1 Henk 'm!

  • MMatthijsV
  • Registratie: Oktober 2012
  • Laatst online: 10-06 14:14
Chrisiesmit93 schreef op donderdag 18 februari 2021 @ 21:45:
@MMatthijsV ik besef mij net pas ik je script hiervandaan had en ook hier had kunnen reageren ipv via Github
Weet iemand of hier een oplossing voor is ? :)
Behalve een switchbot gebruiken om op de schakelaar te zetten :9
Haha, dit is ook prima!
Chrisiesmit93 schreef op donderdag 18 februari 2021 @ 21:45:
Weet iemand of hier een oplossing voor is ? :)
Behalve een switchbot gebruiken om op de schakelaar te zetten :9
Heb je het onderstaande al geprobeerd/ doorgelezen? Zelf heb ik de 402, dus ik kan het niet voor je testen.
Atomstar schreef op zondag 22 november 2020 @ 19:38:
No need to wake it up, as long as there's a (strongish) magnet near the optical port. I documented my findings here, hope it helps others :)

Acties:
  • +1 Henk 'm!

  • Chrisiesmit93
  • Registratie: Februari 2009
  • Laatst online: 11-06 19:27
MMatthijsV schreef op donderdag 18 februari 2021 @ 22:12:
[...]
Heb je het onderstaande al geprobeerd/ doorgelezen? Zelf heb ik de 402, dus ik kan het niet voor je testen.
[...]
De oplossing, een magneet er bij plaatsen inderdaad! >:)
Ik heb er een magneet bijgehouden en voelde hem gelijk aangetrokken worden, in de logging gekeken en zag dat er gelijk data verstuurd werd zonder dat ik een knop ingedrukt heb (laatste keer is gisteravond ergens data verstuurt).

Bedankt voor de hulp! 8)

Acties:
  • 0 Henk 'm!

  • Ollifant2021
  • Registratie: December 2021
  • Laatst online: 22-12-2021
I hope you don't mind that I reply on this topic even when last comment has been posted several month ago.

I came across this topic because I have the same issue with my Kamstrup Multical 403 meter as mentioned some posts above.

I think my script is working, because when I hit the button on the device several times until all values have been displayed and than run my script, values will be displayed.

But after 3~4 minutes it stops and than I have to run this procedure again. I translated this page with Google translate and figured out, that you solved it by using strong magnets.

My optical head (Weidmann IR Head USB ) has magnets build in, but I placed some additional neodym magnets around the optical head. I tried multiple positions but still face the issue that values will not be displayed after 3~4 minutes.

Is there a special place where this magnet needs to be placed?

In my current setup, I run my script every 5 minutes via crontab. Or do I need to run it permanently and every now an then the device will drop some data?

Hope you can assist on my case as well.
Appreciate your help.

Acties:
  • +1 Henk 'm!

  • martini7
  • Registratie: Maart 2011
  • Laatst online: 11-06 12:58
Thats weird.. I don’t need to ‘wake up’ my Multical 403 and also use the Weidmann IR kopf..

I run the script every 5 minutes with a subset of values and every 15 minutes with all values I’m interested in.

Have you tried putting a piece of paper between the IR head and Multical?

[ Voor 25% gewijzigd door martini7 op 22-12-2021 07:32 ]


Acties:
  • +1 Henk 'm!

  • delodic
  • Registratie: Juli 2005
  • Laatst online: 24-05 13:52
Sinds afgelopen weekend lees ik ook mijn Kamstrup 403 uit met homeassistant dankzij glannies custom commponent (dank!)

Dit werkt allemaal prima (ik hoef ook niet mijn meter te activeren, dit lijken de magneten op mijn IR kop te doen)

Low battery vaststellen
Het enige wat me nog niet lekker zit is het batterijverbruik. Mijn meter heeft een d-cel 3.6v batterij. Ik weet dat het uitlezen impact heeft op de levensduur van de batterij en heb daarom de uitleesfrequentie al wat teruggeschroeft. Maar ik wil ook kunnen vaststellen dat de batterij bijna leeg is zodat ik met onze vrienden van Stedin kan bellen.

In de technical description van de meter vond ik het volgende:
10.10 Data-backup in case of interruption of supply
MULTICAL® 403 is fitted with a small lithium battery (BR1632) as backup of the meter’s internal clock in case of interruption of the supply. Independent of the mounted supply module the meter is equipped with functionality which saves all current register counts in case the voltage of the internal 3,6 VDC supply is below 3,1 VDC. When the supply is re-established, the meter continues counting from the value, which was saved when the supply was interrupted.
Nou weet ik niet zeker of dit de grote of de backup batterij is, maar het idee is om het voltage van de batterij te monitoren en een alert te sturen als deze onder een bepaald voltage komt (bijv 3.2v). Ik dacht dit te kunnen meten met de power metric, maar volgens mij is dat niet het voltage maar het stroomverbruik van de meter. Ik zie deze overdag hoger uitvallen dan 's nachts.

Weet iemand hier een manier om de levensduur van de batterij in de gaten te houden?

Acties:
  • 0 Henk 'm!

  • martini7
  • Registratie: Maart 2011
  • Laatst online: 11-06 12:58
I've been pulling information from the Kamstrup for 1,5 yrs now with a frequency of 5 minutes... I shouldn't be too worried about the internal battery,,.

Acties:
  • 0 Henk 'm!

  • delodic
  • Registratie: Juli 2005
  • Laatst online: 24-05 13:52
Yes it will probably take years especially since mine has been replaced recently. However, I read stories where the battery was flat and the company could not immediately replace them and it was quite costly.

Acties:
  • 0 Henk 'm!

  • martini7
  • Registratie: Maart 2011
  • Laatst online: 11-06 12:58
Costly..?! Mine is owned by the district heat provider so I don’t see why it should cost me money.. I wonder though if the heat supply is interrupted when the battery is dead..

Acties:
  • 0 Henk 'm!

  • delodic
  • Registratie: Juli 2005
  • Laatst online: 24-05 13:52
Yes mine too. I was talking about the cost they charge you when your meter is not registering gj because the battery is empty.

I tried to find a link to the stories I was talking about but couldn't find it. I did see a case related to this, but there the meter was not registering correctly for a long time and the customer was charged based on an estimation of it's consumption based on earlier years... Which seems fair

Acties:
  • 0 Henk 'm!

  • Atlantis1995
  • Registratie: Januari 2011
  • Laatst online: 04-06 17:28
Iedere minuut nu geupdate!!!
Ik ben erg blij!
Vraagje, geeft dit geen problemen op de langere termijn op moment je elke minuut een request uitvoerd??

Acties:
  • 0 Henk 'm!

  • golfdiesel
  • Registratie: Juli 2001
  • Laatst online: 28-04 18:22
Ouder draadje maar voor mij wel actueel. Wij gaan verhuizen naar een huis met stadsverwarming waarbij er een Kamstrup 401 is toegepast.
Zijn er al mensen die langere tijd de meter uitgelezen hebben en eventueel al gemerkt hebben dat de batterij sneller leeg raakt bij frequent uitlezen?

"I love the smell of burning diesel in the morning. It smells like ... victory!"


Acties:
  • 0 Henk 'm!

  • MMatthijsV
  • Registratie: Oktober 2012
  • Laatst online: 10-06 14:14
golfdiesel schreef op dinsdag 8 februari 2022 @ 09:23:
Ouder draadje maar voor mij wel actueel. Wij gaan verhuizen naar een huis met stadsverwarming waarbij er een Kamstrup 401 is toegepast.
Zijn er al mensen die langere tijd de meter uitgelezen hebben en eventueel al gemerkt hebben dat de batterij sneller leeg raakt bij frequent uitlezen?
Ik lees de kamstrup 402 om de 28 minuten uit voor bijna 2 jaar. Nog geen problemen gehad verder.

Acties:
  • 0 Henk 'm!

  • golfdiesel
  • Registratie: Juli 2001
  • Laatst online: 28-04 18:22
Top, dankjewel voor de info.

"I love the smell of burning diesel in the morning. It smells like ... victory!"


Acties:
  • +1 Henk 'm!

  • flyboarder
  • Registratie: Maart 2009
  • Laatst online: 12-06 18:58
MMatthijsV schreef op zaterdag 5 september 2020 @ 20:29:
Ik heb een project gepubliceerd op GitHub voor de Kamstrup Multical 402. Heb een deel van de eerder genoemde code herschreven en wat functionaliteit toegevoegd.
  • Meter waardes worden via MQTT gepubliceerd
  • Instellingen zijn met een configuratie file naar wens te configureren
  • Kan worden ingesteld als achtergrond service
Zie https://github.com/matthijsvisser/kamstrup-402-mqtt
Vandaag mij IR leeskop binnen gekregen en het is gelukt om mijn 402 uit te lezen via bovenstaand script (bedankt daar voor). Ik loop alleen tegen een probleem aan, als de deamon los start werkt het perfect, maar als ik hem als service wil draaien werk het niet. Wat ik gevonden heb is dat als ik hem als service start hij de module paho niet kan vinden. Deze moet er wel zijn wat als de deamon zelf start krijg ik geen foutmelding. Heeft er iemand een idee wat hier fout gaat?

De foutmelding
code:
1
2
3
4
5
6
Feb 19 14:39:54 raspberrypimk systemd[1]: Started Kamstrup2mqtt Service.
Feb 19 14:39:54 raspberrypimk python3[780]: Traceback (most recent call last):
Feb 19 14:39:54 raspberrypimk python3[780]:   File "/home/pi/kamstrup-402-mqtt/daemon.py", line 18, in <module>
Feb 19 14:39:54 raspberrypimk python3[780]:     import paho.mqtt.client as paho
Feb 19 14:39:54 raspberrypimk python3[780]: ModuleNotFoundError: No module named 'paho'
Feb 19 14:39:54 raspberrypimk systemd[1]: kamstrup_meter.service: Main process exited, code=exited, status=1/FAILURE


Mijn service file
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
pi@raspberrypimk:~/kamstrup-402-mqtt $ cat /etc/systemd/system/kamstrup_meter.service
[Unit]
Description=Kamstrup2mqtt Service
After=multi-user.target

[Service]
Type=simple
WorkingDirectory=/home/pi/kamstrup-402-mqtt
ExecStart=/usr/bin/python3 /home/pi/kamstrup-402-mqtt/daemon.py
StandardOutput=null
StandardError=journal
Restart=always

[Install]
WantedBy=multi-user.targ

Acties:
  • 0 Henk 'm!

  • MMatthijsV
  • Registratie: Oktober 2012
  • Laatst online: 10-06 14:14
flyboarder schreef op zaterdag 19 februari 2022 @ 17:14:
[...]


Vandaag mij IR leeskop binnen gekregen en het is gelukt om mijn 402 uit te lezen via bovenstaand script (bedankt daar voor). Ik loop alleen tegen een probleem aan, als de deamon los start werkt het perfect, maar als ik hem als service wil draaien werk het niet. Wat ik gevonden heb is dat als ik hem als service start hij de module paho niet kan vinden. Deze moet er wel zijn wat als de deamon zelf start krijg ik geen foutmelding. Heeft er iemand een idee wat hier fout gaat?

De foutmelding
code:
1
2
3
4
5
6
Feb 19 14:39:54 raspberrypimk systemd[1]: Started Kamstrup2mqtt Service.
Feb 19 14:39:54 raspberrypimk python3[780]: Traceback (most recent call last):
Feb 19 14:39:54 raspberrypimk python3[780]:   File "/home/pi/kamstrup-402-mqtt/daemon.py", line 18, in <module>
Feb 19 14:39:54 raspberrypimk python3[780]:     import paho.mqtt.client as paho
Feb 19 14:39:54 raspberrypimk python3[780]: ModuleNotFoundError: No module named 'paho'
Feb 19 14:39:54 raspberrypimk systemd[1]: kamstrup_meter.service: Main process exited, code=exited, status=1/FAILURE


Mijn service file
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
pi@raspberrypimk:~/kamstrup-402-mqtt $ cat /etc/systemd/system/kamstrup_meter.service
[Unit]
Description=Kamstrup2mqtt Service
After=multi-user.target

[Service]
Type=simple
WorkingDirectory=/home/pi/kamstrup-402-mqtt
ExecStart=/usr/bin/python3 /home/pi/kamstrup-402-mqtt/daemon.py
StandardOutput=null
StandardError=journal
Restart=always

[Install]
WantedBy=multi-user.targ
toon volledige bericht
Waarschijnlijk moet je paho installeren bij dezelfde gebruiker die systemd draait. (sudo waarschijnlijk)

Acties:
  • 0 Henk 'm!

  • flyboarder
  • Registratie: Maart 2009
  • Laatst online: 12-06 18:58
MMatthijsV schreef op zaterdag 19 februari 2022 @ 19:35:
[...]


Waarschijnlijk moet je paho installeren bij dezelfde gebruiker die systemd draait. (sudo waarschijnlijk)
Bedankt voor het snelle antwoord. Het lijkt er op dat het werkt. Nadat ik alle 3 de requirements met sudo geinstalleerd had kreeg ik nog foutmelding over "no module yaml". Dit heb ik uiteindelijk opgelost door ook pyyaml te installeren.

code:
1
sudo pip3 install pyyaml

Acties:
  • 0 Henk 'm!

  • MMatthijsV
  • Registratie: Oktober 2012
  • Laatst online: 10-06 14:14
flyboarder schreef op zaterdag 19 februari 2022 @ 20:41:
[...]

Dit heb ik uiteindelijk opgelost door ook pyyaml te installeren.

code:
1
sudo pip3 install pyyaml
Fijn dat het nu werkt! :) Ik zal het even aanpassen!

[ Voor 18% gewijzigd door MMatthijsV op 20-02-2022 10:44 ]


Acties:
  • 0 Henk 'm!

  • markweb4871
  • Registratie: November 2003
  • Laatst online: 23:23
Ik heb Domoticz draaien op een RaspberryPI met daarop op USB0 een P1 meter voor de elektriciteitsmeter. Als ik de infrarood leeskop (van Weidmann-Elektronik) aansluit op USB1 krijg ik een conflict en werkt de P1 meter niet meer.

Is het noodzakelijk om onderstaande stappen uit te voeren op een Raspberry?

https://shop.weidmann-ele...497d/HowToRaspberryPi.pdf

Iemand die een suggestie heeft?

//edit:

pi@PiServer:~/Kamstrup/kamstrup-402-mqtt $ Traceback (most recent call last):
File "daemon.py", line 92, in <module>
main()
File "daemon.py", line 88, in main
daemon = KamstrupDaemon()
File "daemon.py", line 66, in __init__
self.mqtt_handler.connect()
File "/home/pi/Kamstrup/kamstrup-402-mqtt/mqtt_handler.py", line 41, in connect
self.mqtt_client.connect(self.broker, self.port, 60)
File "/home/pi/.local/lib/python3.7/site-packages/paho/mqtt/client.py", line 914, in connect
return self.reconnect()
File "/home/pi/.local/lib/python3.7/site-packages/paho/mqtt/client.py", line 1044, in reconnect
sock = self._create_socket_connection()
File "/home/pi/.local/lib/python3.7/site-packages/paho/mqtt/client.py", line 3685, in _create_socket_connection
return socket.create_connection(addr, timeout=self._connect_timeout, source_address=source)
File "/usr/lib/python3.7/socket.py", line 727, in create_connection
raise err
File "/usr/lib/python3.7/socket.py", line 716, in create_connection
sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

//edit: bovenstaande opgelost door local ip aan te passen naar 127.0.0.1 in de config. Nu loop ik tegen onderstaande aan:

pi@PiServer:~/Kamstrup/kamstrup-402-mqtt $ tail -f debug.log
[2022-08-26 16:55:55 kamstrup_meter.py readparameter: 198 - WARNING - No respons e from meter]
[2022-08-26 16:55:57 kamstrup_meter.py rd: 131 - DEBUG - Rx timeout]
[2022-08-26 16:55:57 kamstrup_meter.py readparameter: 198 - WARNING - No respons e from meter]
[2022-08-26 16:55:59 kamstrup_meter.py rd: 131 - DEBUG - Rx timeout]
[2022-08-26 16:55:59 kamstrup_meter.py readparameter: 198 - WARNING - No respons e from meter]
[2022-08-26 16:56:01 kamstrup_meter.py rd: 131 - DEBUG - Rx timeout]
[2022-08-26 16:56:01 kamstrup_meter.py readparameter: 198 - WARNING - No respons e from meter]
[2022-08-26 16:56:01 kamstrup_meter.py close: 126 - DEBUG - Closed serial port]
[2022-08-26 16:56:01 mqtt_handler.py publish: 55 - INFO - Publishing 'kamstrup/ values' '{}' to 127.0.0.1:1883]
[2022-08-26 16:56:01 daemon.py run: 84 - INFO - Waiting 28 minute(s) for the ne xt meter readout]


//edit:

pi@PiServer:~/Kamstrup/kamstrup-402-mqtt $ tail -f debug.log
[2022-08-26 17:24:02 kamstrup_meter.py readparameter: 204 - WARNING - Message is invalid]
[2022-08-26 17:24:02 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-08-26 17:24:02 kamstrup_meter.py readparameter: 198 - WARNING - No respons e from meter]
[2022-08-26 17:24:02 kamstrup_meter.py close: 126 - DEBUG - Closed serial port]
[2022-08-26 17:24:02 mqtt_handler.py publish: 55 - INFO - Publishing 'kamstrup/ values' '{}' to 127.0.0.1:1883]
[2022-08-26 17:24:02 daemon.py run: 84 - INFO - Waiting 28 minute(s) for the ne xt meter readout]
[2022-08-26 17:52:02 kamstrup_meter.py open: 118 - DEBUG - Opened serial port]
[2022-08-26 17:52:02 kamstrup_meter.py readparameter: 204 - WARNING - Message is invalid]
[2022-08-26 17:52:02 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-08-26 17:52:02 kamstrup_meter.py readparameter: 198 - WARNING - No respons e from meter]

[ Voor 98% gewijzigd door markweb4871 op 26-08-2022 18:26 ]


Acties:
  • +1 Henk 'm!

  • MMatthijsV
  • Registratie: Oktober 2012
  • Laatst online: 10-06 14:14
markweb4871 schreef op vrijdag 26 augustus 2022 @ 13:47:
Ik heb Domoticz draaien op een RaspberryPI met daarop op USB0 een P1 meter voor de elektriciteitsmeter. Als ik de infrarood leeskop (van Weidmann-Elektronik) aansluit op USB1 krijg ik een conflict en werkt de P1 meter niet meer.
Kan je eens kijken in dmesg wat er gebeurd als je bovenstaande doet? En wat zegt de log van beide scripts?
markweb4871 schreef op vrijdag 26 augustus 2022 @ 13:47:
Is het noodzakelijk om onderstaande stappen uit te voeren op een Raspberry?
https://shop.weidmann-ele...497d/HowToRaspberryPi.pdf
Nee
markweb4871 schreef op vrijdag 26 augustus 2022 @ 13:47:

pi@PiServer:~/Kamstrup/kamstrup-402-mqtt $ tail -f debug.log
[2022-08-26 17:24:02 kamstrup_meter.py readparameter: 204 - WARNING - Message is invalid]
[2022-08-26 17:24:02 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-08-26 17:24:02 kamstrup_meter.py readparameter: 198 - WARNING - No respons e from meter]
[2022-08-26 17:24:02 kamstrup_meter.py close: 126 - DEBUG - Closed serial port]
[2022-08-26 17:24:02 mqtt_handler.py publish: 55 - INFO - Publishing 'kamstrup/ values' '{}' to 127.0.0.1:1883]
[2022-08-26 17:24:02 daemon.py run: 84 - INFO - Waiting 28 minute(s) for the ne xt meter readout]
[2022-08-26 17:52:02 kamstrup_meter.py open: 118 - DEBUG - Opened serial port]
[2022-08-26 17:52:02 kamstrup_meter.py readparameter: 204 - WARNING - Message is invalid]
[2022-08-26 17:52:02 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-08-26 17:52:02 kamstrup_meter.py readparameter: 198 - WARNING - No respons e from meter]
Het lijkt er op dat je de kop nog niet goed gepositioneerd heb aangezien je dus wel iets van data binnen krijgt. Bij mij heeft het ook even geduurd voordat ik de 'sweetspot' vond.

[ Voor 3% gewijzigd door MMatthijsV op 26-08-2022 20:23 ]


Acties:
  • +1 Henk 'm!

  • markweb4871
  • Registratie: November 2003
  • Laatst online: 23:23
Ik ga een aantal positities van de kop proberen. Hopelijk krijg ik dan de gevraagde data. Ik heb ooit instructies gezien hoe ik in Domoticz de data kan toevoegen als virtuale sensoren. Ik kan deze handleiding niet meer vinden. @MMatthijsV heb jij nog tips?

Link: Virtuele senoren: https://www.domoticz.com/wiki/Virtual_meter

//edit: dus toch de positie van de sensor!

[2022-08-26 20:50:24 mqtt_handler.py connect: 43 - INFO - Connected to MQTT at: 127.0.0.1:1883]
[2022-08-26 20:50:24 mqtt_handler.py connect: 45 - INFO - QoS level = 0 and retain = False]
[2022-08-26 20:50:24 kamstrup_meter.py close: 126 - DEBUG - Closed serial port]
[2022-08-26 20:50:24 kamstrup_meter.py open: 118 - DEBUG - Opened serial port]
[2022-08-26 20:50:26 kamstrup_meter.py close: 126 - DEBUG - Closed serial port]
[2022-08-26 20:50:26 mqtt_handler.py publish: 55 - INFO - Publishing 'kamstrup/values' '{"energy": 236.4, "volume": 3065.1, "temp1": 59.39, "temp2": 51.300000000000004, "tempdiff": 8.09, "flow": 0.0}' to 127.0.0.1:1883]
^C[1]+ Exit 1 python3 daemon.py

[ Voor 62% gewijzigd door markweb4871 op 26-08-2022 20:56 ]


Acties:
  • +1 Henk 'm!

  • MMatthijsV
  • Registratie: Oktober 2012
  • Laatst online: 10-06 14:14
markweb4871 schreef op vrijdag 26 augustus 2022 @ 20:46:
Ik ga een aantal positities van de kop proberen. Hopelijk krijg ik dan de gevraagde data. Ik heb ooit instructies gezien hoe ik in Domoticz de data kan toevoegen als virtuale sensoren. Ik kan deze handleiding niet meer vinden. @MMatthijsV heb jij nog tips?
Ik heb zelf geen Domotics, maar je kan even kijken op https://github.com/matthijsvisser/kamstrup-402-mqtt voor wat algemene tips. Daar staan ook wat closed issues bij van eerder opgeloste problemen.

Acties:
  • 0 Henk 'm!

  • markweb4871
  • Registratie: November 2003
  • Laatst online: 23:23
Heeft iemand een aanwijzing hoe ik de data juist weergeef in Domoticz?

MQTT geconfigureerd volgens: https://www.domoticz.com/....22MQTT_Client_Gateway.22

Virtuele sensors geconfigureerd:
https://www.domoticz.com/wiki/Dummy_for_virtual_Switches

Test:
mosquitto_pub -h localhost -m '{ "idx" : 8, "nvalue" : 0, "svalue" : "25.0" }' -t 'domoticz/in'

De test met de dummy data voor de virtuele sensor werkt ok. Als ik handmatig de svalue aanpas zie ook de dummy temperatuur veranderen.

Nu de vraag hoe ik de MQTT berichten naar de juiste virtuele sensor laat verwijzen in domoticz.

[ Voor 43% gewijzigd door markweb4871 op 27-08-2022 14:31 ]


  • rob1985
  • Registratie: Juni 2003
  • Laatst online: 06-06 07:04
Ik loop tegen het volgende probleem aan:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
pi@raspberrypi:/opt/kamstrup/kamstrup-402-mqtt $ python3 daemon.py &
[1] 28259
pi@raspberrypi:/opt/kamstrup/kamstrup-402-mqtt $ Traceback (most recent call last):
  File "/opt/kamstrup/kamstrup-402-mqtt/daemon.py", line 29, in <module>
    handler = TimedRotatingFileHandler('debug.log', when="d", interval=1, backupCount=5)
  File "/usr/lib/python3.9/logging/handlers.py", line 208, in __init__
    BaseRotatingHandler.__init__(self, filename, 'a', encoding=encoding,
  File "/usr/lib/python3.9/logging/handlers.py", line 58, in __init__
    logging.FileHandler.__init__(self, filename, mode=mode,
  File "/usr/lib/python3.9/logging/__init__.py", line 1142, in __init__
    StreamHandler.__init__(self, self._open())
  File "/usr/lib/python3.9/logging/__init__.py", line 1171, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding,
PermissionError: [Errno 13] Permission denied: '/opt/kamstrup/kamstrup-402-mqtt/debug.log'


Ik kan hier geen wijs uit; geen idee waar ik moet beginnen om dit op te lossen.

Mijn config is als volgt.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    host: 192.168.2.200
    port: 1883
    client: warmtemeter
    topic: warmtemeter
    qos: 0
    retain: False
    authentication: true
    username: ###
    password: ###
serial_device:
    com_port: /dev/ttyUSB0
kamstrup:
    parameters:
    - energy
    - volume
    - temp1
    - temp2
    - tempdiff
    - flow
    - volume
    - minflow_m
    - maxflow_m
    poll_interval: 1


Dit is het enige waar ik m'n Raspberry voor gebruik.
MIjn MQTT server draait op een ander apparaat, met het bovengenoemde IP adres.

Acties:
  • 0 Henk 'm!

  • MMatthijsV
  • Registratie: Oktober 2012
  • Laatst online: 10-06 14:14
rob1985 schreef op donderdag 15 september 2022 @ 22:02:
Ik loop tegen het volgende probleem aan:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
pi@raspberrypi:/opt/kamstrup/kamstrup-402-mqtt $ python3 daemon.py &
[1] 28259
pi@raspberrypi:/opt/kamstrup/kamstrup-402-mqtt $ Traceback (most recent call last):
  File "/opt/kamstrup/kamstrup-402-mqtt/daemon.py", line 29, in <module>
    handler = TimedRotatingFileHandler('debug.log', when="d", interval=1, backupCount=5)
  File "/usr/lib/python3.9/logging/handlers.py", line 208, in __init__
    BaseRotatingHandler.__init__(self, filename, 'a', encoding=encoding,
  File "/usr/lib/python3.9/logging/handlers.py", line 58, in __init__
    logging.FileHandler.__init__(self, filename, mode=mode,
  File "/usr/lib/python3.9/logging/__init__.py", line 1142, in __init__
    StreamHandler.__init__(self, self._open())
  File "/usr/lib/python3.9/logging/__init__.py", line 1171, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding,
PermissionError: [Errno 13] Permission denied: '/opt/kamstrup/kamstrup-402-mqtt/debug.log'


Ik kan hier geen wijs uit; geen idee waar ik moet beginnen om dit op te lossen.

Mijn config is als volgt.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    host: 192.168.2.200
    port: 1883
    client: warmtemeter
    topic: warmtemeter
    qos: 0
    retain: False
    authentication: true
    username: ###
    password: ###
serial_device:
    com_port: /dev/ttyUSB0
kamstrup:
    parameters:
    - energy
    - volume
    - temp1
    - temp2
    - tempdiff
    - flow
    - volume
    - minflow_m
    - maxflow_m
    poll_interval: 1


Dit is het enige waar ik m'n Raspberry voor gebruik.
MIjn MQTT server draait op een ander apparaat, met het bovengenoemde IP adres.
toon volledige bericht
Het ziet er naar uit dat je (de python file) geen rechten hebt om naar de log file te schrijven.

  • rob1985
  • Registratie: Juni 2003
  • Laatst online: 06-06 07:04
MMatthijsV schreef op vrijdag 16 september 2022 @ 08:54:
[...]


Het ziet er naar uit dat je (de python file) geen rechten hebt om naar de log file te schrijven.
Ik zie de log file ook niet op m'n apparaat in de folder. Moet ik die eerst zelf aanmaken?
De hele map heeft 0755 rechten.

  • MMatthijsV
  • Registratie: Oktober 2012
  • Laatst online: 10-06 14:14
rob1985 schreef op zaterdag 17 september 2022 @ 09:31:
[...]

Ik zie de log file ook niet op m'n apparaat in de folder. Moet ik die eerst zelf aanmaken?
De hele map heeft 0755 rechten.
Probeer het eens als sudo, dan kan je het een en ander uitsluiten. Dan kan je daarna kijken wat de verschillen zijn tussen jouw gebruiker en sudo.

  • rob1985
  • Registratie: Juni 2003
  • Laatst online: 06-06 07:04
MMatthijsV schreef op zaterdag 17 september 2022 @ 10:27:
[...]


Probeer het eens als sudo, dan kan je het een en ander uitsluiten. Dan kan je daarna kijken wat de verschillen zijn tussen jouw gebruiker en sudo.
code:
1
2
3
4
5
6
pi@raspberrypi:/opt/kamstrup/kamstrup-402-mqtt $ sudo python3 daemon.py &
[1] 4699
pi@raspberrypi:/opt/kamstrup/kamstrup-402-mqtt $ Traceback (most recent call last):
  File "/opt/kamstrup/kamstrup-402-mqtt/daemon.py", line 18, in <module>
    import paho.mqtt.client as paho
ModuleNotFoundError: No module named 'paho'


Dan krijg ik een andere melding....

  • MMatthijsV
  • Registratie: Oktober 2012
  • Laatst online: 10-06 14:14
rob1985 schreef op zaterdag 17 september 2022 @ 16:39:
[...]
Dan krijg ik een andere melding....
Neem even een kijkje op mijn github pagina: https://github.com/matthi...rup-402-mqtt#requirements. Je mist een Python library.

  • rob1985
  • Registratie: Juni 2003
  • Laatst online: 06-06 07:04
MMatthijsV schreef op zaterdag 17 september 2022 @ 18:25:
[...]


Neem even een kijkje op mijn github pagina: https://github.com/matthi...rup-402-mqtt#requirements. Je mist een Python library.
Hmm...ik dacht dat ik ze allemaal had geinstalleerd, maar kennelijk niet.

Als ik hem als non-sudo run dan blijf ik tegen de eerder genoemde foutmelding lopen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
pi@raspberrypi:/opt/kamstrup/kamstrup-402-mqtt $ python3 daemon.py &
[2] 6070
pi@raspberrypi:/opt/kamstrup/kamstrup-402-mqtt $ Traceback (most recent call last):
  File "/opt/kamstrup/kamstrup-402-mqtt/daemon.py", line 29, in <module>
    handler = TimedRotatingFileHandler('debug.log', when="d", interval=1, backupCount=5)
  File "/usr/lib/python3.9/logging/handlers.py", line 208, in __init__
    BaseRotatingHandler.__init__(self, filename, 'a', encoding=encoding,
  File "/usr/lib/python3.9/logging/handlers.py", line 58, in __init__
    logging.FileHandler.__init__(self, filename, mode=mode,
  File "/usr/lib/python3.9/logging/__init__.py", line 1142, in __init__
    StreamHandler.__init__(self, self._open())
  File "/usr/lib/python3.9/logging/__init__.py", line 1171, in _open
    return open(self.baseFilename, self.mode, encoding=self.encoding,
PermissionError: [Errno 13] Permission denied: '/opt/kamstrup/kamstrup-402-mqtt/debug.log'

Dus ik moet nog even gaan pielen met de permissions.

Als ik hem als sudo draai dan krijg ik slechts een nummer te zien:
code:
1
2
pi@raspberrypi:/opt/kamstrup/kamstrup-402-mqtt $ sudo python3 daemon.py &
[1] 6067


De waardes die worden doorgestuurd verschillen per keer.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
[2022-09-18 09:39:52 kamstrup_meter.py open: 118 - DEBUG - Opened serial port]
[2022-09-18 09:39:52 kamstrup_meter.py readparameter: 204 - WARNING - Message is invalid]
[2022-09-18 09:39:53 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:39:53 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:39:53 kamstrup_meter.py readparameter: 204 - WARNING - Message is invalid]
[2022-09-18 09:39:53 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:39:53 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:39:53 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:39:53 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:39:53 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:39:53 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:39:53 kamstrup_meter.py readparameter: 204 - WARNING - Message is invalid]
[2022-09-18 09:39:53 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:39:53 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:39:53 kamstrup_meter.py close: 126 - DEBUG - Closed serial port]
[2022-09-18 09:39:53 mqtt_handler.py publish:  53 - INFO - Publishing 'warmtemeter/values'  '{"energy": 248.442}'   to 192.168.2.200:1883]
[2022-09-18 09:39:53 daemon.py run:  84 - INFO - Waiting 1 minute(s) for the next meter readout]
[2022-09-18 09:40:53 kamstrup_meter.py open: 118 - DEBUG - Opened serial port]
[2022-09-18 09:40:54 kamstrup_meter.py readparameter: 204 - WARNING - Message is invalid]
[2022-09-18 09:40:56 kamstrup_meter.py rd: 131 - DEBUG - Rx timeout]
[2022-09-18 09:40:56 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:40:56 kamstrup_meter.py readparameter: 204 - WARNING - Message is invalid]
[2022-09-18 09:40:56 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:40:56 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:40:56 kamstrup_meter.py readparameter: 204 - WARNING - Message is invalid]
[2022-09-18 09:40:57 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:40:57 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:40:57 kamstrup_meter.py readparameter: 204 - WARNING - Message is invalid]
[2022-09-18 09:40:57 kamstrup_meter.py close: 126 - DEBUG - Closed serial port]
[2022-09-18 09:40:57 mqtt_handler.py publish:  53 - INFO - Publishing 'warmtemeter/values'  '{"energy": 248.442, "temp2": 48.370000000000005}'  to 192.168.2.200:1883]
[2022-09-18 09:40:57 daemon.py run:  84 - INFO - Waiting 1 minute(s) for the next meter readout]
[2022-09-18 09:41:57 kamstrup_meter.py open: 118 - DEBUG - Opened serial port]
[2022-09-18 09:41:57 kamstrup_meter.py readparameter: 204 - WARNING - Message is invalid]
[2022-09-18 09:41:57 kamstrup_meter.py recv: 180 - WARNING - Missing Escape f6]
[2022-09-18 09:41:57 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:41:57 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:41:57 kamstrup_meter.py readparameter: 204 - WARNING - Message is invalid]
[2022-09-18 09:41:57 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:41:57 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:41:58 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:41:58 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:42:00 kamstrup_meter.py rd: 131 - DEBUG - Rx timeout]
[2022-09-18 09:42:00 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:42:00 kamstrup_meter.py readparameter: 204 - WARNING - Message is invalid]
[2022-09-18 09:42:00 kamstrup_meter.py close: 126 - DEBUG - Closed serial port]
[2022-09-18 09:42:00 mqtt_handler.py publish:  53 - INFO - Publishing 'warmtemeter/values'  '{"energy": 248.442, "minflow_m": 0.0}' to 192.168.2.200:1883]
[2022-09-18 09:42:00 daemon.py run:  84 - INFO - Waiting 1 minute(s) for the next meter readout]
[2022-09-18 09:43:00 kamstrup_meter.py open: 118 - DEBUG - Opened serial port]
[2022-09-18 09:43:00 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:43:00 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:43:01 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:43:01 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:43:01 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:43:01 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:43:03 kamstrup_meter.py rd: 131 - DEBUG - Rx timeout]
[2022-09-18 09:43:03 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:43:03 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:43:03 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:43:03 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:43:03 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:43:03 kamstrup_meter.py readparameter: 204 - WARNING - Message is invalid]
[2022-09-18 09:43:03 kamstrup_meter.py close: 126 - DEBUG - Closed serial port]
[2022-09-18 09:43:03 mqtt_handler.py publish:  53 - INFO - Publishing 'warmtemeter/values'  '{"energy": 248.442, "flow": 6.0}'  to 192.168.2.200:1883]
[2022-09-18 09:43:03 daemon.py run:  84 - INFO - Waiting 1 minute(s) for the next meter readout]
[2022-09-18 09:44:03 kamstrup_meter.py open: 118 - DEBUG - Opened serial port]
[2022-09-18 09:44:04 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:44:04 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:44:04 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:44:04 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:44:04 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:44:04 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:44:04 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:44:04 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:44:05 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:44:05 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:44:05 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:44:05 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:44:05 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:44:05 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:44:05 kamstrup_meter.py close: 126 - DEBUG - Closed serial port]
[2022-09-18 09:44:05 mqtt_handler.py publish:  53 - INFO - Publishing 'warmtemeter/values'  '{"energy": 248.442, "flow": 5.0}'  to 192.168.2.200:1883]
[2022-09-18 09:44:05 daemon.py run:  84 - INFO - Waiting 1 minute(s) for the next meter readout]
[2022-09-18 09:45:05 kamstrup_meter.py open: 118 - DEBUG - Opened serial port]
[2022-09-18 09:45:05 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:45:05 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:45:06 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:45:06 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:45:06 kamstrup_meter.py readparameter: 204 - WARNING - Message is invalid]
[2022-09-18 09:45:06 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:45:06 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:45:06 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:45:06 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:45:06 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:45:06 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:45:06 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:45:06 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:45:06 kamstrup_meter.py close: 126 - DEBUG - Closed serial port]
[2022-09-18 09:45:06 mqtt_handler.py publish:  53 - INFO - Publishing 'warmtemeter/values'  '{"energy": 248.442, "volume": 2495.718}'   to 192.168.2.200:1883]
[2022-09-18 09:45:06 daemon.py run:  84 - INFO - Waiting 1 minute(s) for the next meter readout]
[2022-09-18 09:46:06 kamstrup_meter.py open: 118 - DEBUG - Opened serial port]
[2022-09-18 09:46:06 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:46:06 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:46:07 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:46:07 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:46:07 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:46:07 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:46:07 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:46:07 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:46:07 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:46:07 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:46:07 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:46:07 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:46:08 kamstrup_meter.py close: 126 - DEBUG - Closed serial port]
[2022-09-18 09:46:08 mqtt_handler.py publish:  53 - INFO - Publishing 'warmtemeter/values'  '{"energy": 248.442, "temp2": 47.93, "maxflow_m": 224.0}'   to 192.168.2.200:1883]
[2022-09-18 09:46:08 daemon.py run:  84 - INFO - Waiting 1 minute(s) for the next meter readout]
[2022-09-18 09:47:08 kamstrup_meter.py open: 118 - DEBUG - Opened serial port]
[2022-09-18 09:47:08 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:47:08 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:47:10 kamstrup_meter.py rd: 131 - DEBUG - Rx timeout]
[2022-09-18 09:47:10 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:47:11 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:47:11 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:47:11 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:47:11 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:47:11 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:47:11 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:47:11 kamstrup_meter.py close: 126 - DEBUG - Closed serial port]
[2022-09-18 09:47:11 mqtt_handler.py publish:  53 - INFO - Publishing 'warmtemeter/values'  '{"energy": 248.442, "volume": 2495.718, "tempdiff": 3.77, "flow": 5.0}'    to 192.168.2.200:1883]
[2022-09-18 09:47:11 daemon.py run:  84 - INFO - Waiting 1 minute(s) for the next meter readout]
[2022-09-18 09:48:11 kamstrup_meter.py open: 118 - DEBUG - Opened serial port]
[2022-09-18 09:48:12 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:48:12 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:48:13 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:48:13 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:48:13 kamstrup_meter.py close: 126 - DEBUG - Closed serial port]
[2022-09-18 09:48:13 mqtt_handler.py publish:  53 - INFO - Publishing 'warmtemeter/values'  '{"energy": 248.442, "volume": 2495.719, "temp1": 51.61, "temp2": 47.77, "tempdiff": 3.84, "minflow_m": 0.0, "maxflow_m": 224.0}'   to 192.168.2.200:1883]
[2022-09-18 09:48:13 daemon.py run:  84 - INFO - Waiting 1 minute(s) for the next meter readout]
[2022-09-18 09:49:13 kamstrup_meter.py open: 118 - DEBUG - Opened serial port]
[2022-09-18 09:49:14 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:49:14 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:49:14 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:49:14 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:49:14 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:49:14 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:49:14 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:49:14 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:49:14 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:49:14 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:49:15 kamstrup_meter.py recv: 188 - ERROR - CRC error]
[2022-09-18 09:49:15 kamstrup_meter.py readparameter: 198 - WARNING - No response from meter]
[2022-09-18 09:49:15 kamstrup_meter.py close: 126 - DEBUG - Closed serial port]
[2022-09-18 09:49:15 mqtt_handler.py publish:  53 - INFO - Publishing 'warmtemeter/values'  '{"energy": 248.442, "volume": 2495.719, "temp1": 51.2}'    to 192.168.2.200:1883]
[2022-09-18 09:49:15 daemon.py run:  84 - INFO - Waiting 1 minute(s) for the next meter readout]


Update: Ik heb het polling interval aangepast naar 5 minuten en nu lijk ik betere waarden doorgestuurd te krijgen. Ik ga even uitvogelen wat een prettig interval is. Het liefst wil ik zo dicht mogelijk bij realtime komen, voor zo'n precies mogelijke weergave. Zeker in het begin, om te kijken waar je het beste mee kan besparen, zeker met de huidige prijzen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[2022-09-18 10:04:27 daemon.py __init__:  41 - INFO - initializing daemon]
[2022-09-18 10:04:27 mqtt_handler.py connect:  43 - INFO - Connected to MQTT at: 192.168.2.200:1883]
[2022-09-18 10:04:27 mqtt_handler.py connect:  45 - INFO - with username rob, QoS level = 0 and retain = False]
[2022-09-18 10:04:27 kamstrup_meter.py close: 126 - DEBUG - Closed serial port]
[2022-09-18 10:04:27 kamstrup_meter.py open: 118 - DEBUG - Opened serial port]
[2022-09-18 10:04:29 kamstrup_meter.py close: 126 - DEBUG - Closed serial port]
[2022-09-18 10:04:29 mqtt_handler.py publish:  53 - INFO - Publishing 'warmtemeter/values'  '{"energy": 248.442, "volume": 2495.7200000000003, "temp1": 51.96, "temp2": 47.13, "tempdiff": 4.83, "flow": 10.0, "minflow_m": 0.0, "maxflow_m": 224.0}'   to 192.168.2.200:1883]
[2022-09-18 10:04:29 daemon.py run:  84 - INFO - Waiting 5 minute(s) for the next meter readout]
[2022-09-18 10:09:29 kamstrup_meter.py open: 118 - DEBUG - Opened serial port]
[2022-09-18 10:09:31 kamstrup_meter.py close: 126 - DEBUG - Closed serial port]
[2022-09-18 10:09:31 mqtt_handler.py publish:  53 - INFO - Publishing 'warmtemeter/values'  '{"energy": 248.442, "volume": 2495.721, "temp1": 52.17, "temp2": 47.45, "tempdiff": 4.72, "flow": 8.0, "minflow_m": 0.0, "maxflow_m": 224.0}'  to 192.168.2.200:1883]
[2022-09-18 10:09:31 daemon.py run:  84 - INFO - Waiting 5 minute(s) for the next meter readout]
[2022-09-18 10:14:31 kamstrup_meter.py open: 118 - DEBUG - Opened serial port]
[2022-09-18 10:14:33 kamstrup_meter.py close: 126 - DEBUG - Closed serial port]
[2022-09-18 10:14:33 mqtt_handler.py publish:  53 - INFO - Publishing 'warmtemeter/values'  '{"energy": 248.442, "volume": 2495.722, "temp1": 52.02, "temp2": 47.92, "tempdiff": 4.1, "flow": 8.0, "minflow_m": 0.0, "maxflow_m": 224.0}'   to 192.168.2.200:1883]
[2022-09-18 10:14:33 daemon.py run:  84 - INFO - Waiting 5 minute(s) for the next meter readout]

[ Voor 176% gewijzigd door rob1985 op 18-09-2022 10:18 ]


Acties:
  • 0 Henk 'm!

  • MMatthijsV
  • Registratie: Oktober 2012
  • Laatst online: 10-06 14:14
rob1985 schreef op zaterdag 17 september 2022 @ 22:57:
Als ik hem als non-sudo run dan blijf ik tegen de eerder genoemde foutmelding lopen:
Als je het proces niet als sudo wilt draaien, dan moet je even kijken wat de verschillen in rechten zijn tussen jouw gebruiker en sudo.
rob1985 schreef op zaterdag 17 september 2022 @ 22:57:

De waardes die worden doorgestuurd verschillen per keer.
Het lijkt er hierop dat je niet alle berichten gedecodeerd kunnen worden waardoor je niet alle waardes terug krijgt. Dit zal inderdaad met de positie van de leeskop te maken hebben, maar je zit wel in de buurt.

Met & aan het eind van het commando geef je aan dat het een achtergrond proces wordt, het nummer wat je terug krijgt is het procesnummer. Zolang het programma niet crashed of jij dit niet sluit zal deze actief blijven totdat jij het stopt. Let hier even op dat je meerdere processen actief hebt staan op de achtergrond. Het mooiste is om het als service te configureren, dan kan je die starten en stoppen. https://github.com/matthi...ning-as-a-systemd-service
rob1985 schreef op zaterdag 17 september 2022 @ 22:57:
Update: Ik heb het polling interval aangepast naar 5 minuten en nu lijk ik betere waarden doorgestuurd te krijgen. Ik ga even uitvogelen wat een prettig interval is. Het liefst wil ik zo dicht mogelijk bij realtime komen, voor zo'n precies mogelijke weergave. Zeker in het begin, om te kijken waar je het beste mee kan besparen, zeker met de huidige prijzen.
Je kan even kijken naar de flow parameter, die geeft daar een goede indicatie in. Succes :)

Acties:
  • +1 Henk 'm!

  • rob1985
  • Registratie: Juni 2003
  • Laatst online: 06-06 07:04
Thanks voor je hulp @MMatthijsV! Ik heb hem vanochtend als service laten draaien, dus ik zou er geen omkijken meer naar moeten hebben.

Nu alleen nog de data in Home Assistant krijgen. Nieuwe leerzame uitdaging.

  • rob1985
  • Registratie: Juni 2003
  • Laatst online: 06-06 07:04
Ik ben inmiddels wat stappen verder. Maar ik krijg het nog niet goed zichtbaar in Home Assistant. Ik heb het volgende toegevoegd in m'n configuration.yaml file:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
mqtt:
  sensor:
    - name: "Warmtemeter Energie"
      state_topic: "warmtemeter/values"
      unit_of_measurement: "GJ"
      value_template: "{{ value_json.energy }}"

mqtt:
  sensor:
    - name: "Warmtemeter Volume"
      state_topic: "warmtemeter/values"
      unit_of_measurement: "m3"
      value_template: "{{ value_json.volume }}"


Als ik nu een dashboardje wil maken met deze twee waarden, dan kan hij de Energie sensor niet vinden, maar de Volume sensor wel.

In de MQTT berichten zie ik wel gewoon beide (en meer) waardes doorgestuurd worden. Home Assistant ziet die ook, als ik via de MQTT integratie luister naar het topic van de warmtemeter.
code:
1
{"energy": 248.50900000000001, "volume": 2498.791, "temp1": 41.85, "temp2": 46.25, "tempdiff": 4.4, "flow": 0.0, "minflow_m": 0.0, "maxflow_m": 224.0}

Dit ziet Home Assistant (een paar minuten later):
code:
1
2
3
4
5
6
7
8
9
10
11
12
 Bericht 53 ontvangen op warmtemeter/values om 9:30:
{
    "energy": 248.50900000000001,
    "volume": 2498.791,
    "temp1": 36.9,
    "temp2": 40.65,
    "tempdiff": 3.75,
    "flow": 0,
    "minflow_m": 0,
    "maxflow_m": 224
}
QoS: 0 - Retain: false


Edit: oplossing: ik moest de configuration even aanpassen in Home Assistant yaml:
code:
1
2
3
4
5
6
7
8
9
10
mqtt:
  sensor:
    - name: "Warmtemeter Energie"
      state_topic: "warmtemeter/values"
      unit_of_measurement: "GJ"
      value_template: "{{ value_json.energy }}"
    - name: "Warmtemeter Volume"
      state_topic: "warmtemeter/values"
      unit_of_measurement: "m3"
      value_template: "{{ value_json.volume }}"


Overigens zie ik dat QoS op 0 staat, maar in de configuratie van de IR sensor heb ik hem toch echt op 2 gezet...maar goed, dat vind ik iets minder belangrijk.

[ Voor 37% gewijzigd door rob1985 op 24-09-2022 14:09 ]


Acties:
  • +2 Henk 'm!

  • martini7
  • Registratie: Maart 2011
  • Laatst online: 11-06 12:58
Ik lees een hoop reacties over het juist plaatsen van de IR kop, maar geloof niet (meer) in ‘the sweet spot’.. heb een hoop zitten klooien om de juiste positie/hoek te krijgen, maar wat bleek, het IR licht uit de kop (of Kamstrup) is te fel waardoor de dataoverdracht niet goed ging. Door simpel een papiertje er tussenin te houden werkt hij door de kop er normaal recht voor te zetten..

Acties:
  • 0 Henk 'm!

  • nuveo
  • Registratie: Juni 2011
  • Laatst online: 26-11-2024
Ik had op goed geluk de volgende IR leeskop van Aliexpress besteld: https://www.aliexpress.com/item/1005003509520122.html en deze werkt als een zonnetje icm mijn Multical 402 :-)

Hij kan gewoon strak bovenop de meter worden geplaatst (niet onder een hoek), zonder een papiertje er tussen of andere trucs. Wel "ondersteboven" plaatsen, dus met de kabel naar boven en dan vastzetten met een beetje ducttape. Er zit geen magneet in deze leeskop ingebakken, maar de Multical hier blijft gewoon reageren als ik 'm periodiek (elke 5 minuten) uitlees.

Bezorging via Aliexpress ging overigens ook beter dan verwacht, hij werd hier na een dag of 10 bezorgd zonder gedoe met BTW/invoerrechten.

Acties:
  • 0 Henk 'm!

  • nDevox
  • Registratie: Juli 2017
  • Laatst online: 05-08-2024
Ben zelf van plan om dezelfde sensor aan te schaffen voor de multical 601. Ik maak me echter vooral “zorgen” over de batterij, ik lees hierover verschillende dingen.

Weet iemand misschien waar deze batterij exact voor is? Het uitlezen van daadwerkelijk je warmte gebruik, slechts het lcd of is het een backup batterij voor bijvoorbeeld stroomuitval? En wat gebeurt er wanneer de batterij leeg is? Voelt voor mij nog als een risico.

Acties:
  • +1 Henk 'm!

  • Technofreakz
  • Registratie: November 2015
  • Laatst online: 09:55
nDevox schreef op dinsdag 15 november 2022 @ 23:04:
Ben zelf van plan om dezelfde sensor aan te schaffen voor de multical 601. Ik maak me echter vooral “zorgen” over de batterij, ik lees hierover verschillende dingen.

Weet iemand misschien waar deze batterij exact voor is? Het uitlezen van daadwerkelijk je warmte gebruik, slechts het lcd of is het een backup batterij voor bijvoorbeeld stroomuitval? En wat gebeurt er wanneer de batterij leeg is? Voelt voor mij nog als een risico.
batterij zou het aan moeten kunnen, mocht hij het wel begeven dat zal er een berekening van voorgaande jaren op los gelaten worden rekening houdend met het weer. Als het bijv extreem koud is zal het hoger uitvallen.

Acties:
  • +2 Henk 'm!

  • martini7
  • Registratie: Maart 2011
  • Laatst online: 11-06 12:58
Ik lees hier al 2,5 jaar iedere 5 min. 5 waarden (Energieverbuik in GJ + M3, aanvoer + retour temperatuur en waterdoorstroming) uit en de batterij blijft het prima doen...

Acties:
  • 0 Henk 'm!

  • DonJunior
  • Registratie: Februari 2008
  • Nu online
Ik heb een Kamstrup 603 (https://www.kamstrup.com/...eters/meters/multical-603) en wilde deze graag weergeven in mijn Home Assistant ingeving.
Kan ik dat ook op deze manier met een IR reader doen.. en zo ja.. waar plaats ik die dan precies? Iemand plaatjes van waar ik dat ding moet plakken?
en welke stappen ik moet doen om dit dan richting HA te krijgen.

*sowieso


Acties:
  • 0 Henk 'm!

  • twimj
  • Registratie: December 2014
  • Laatst online: 10:40
DonJunior schreef op vrijdag 16 december 2022 @ 08:39:
Ik heb een Kamstrup 603 (https://www.kamstrup.com/...eters/meters/multical-603) en wilde deze graag weergeven in mijn Home Assistant ingeving.
Kan ik dat ook op deze manier met een IR reader doen.. en zo ja.. waar plaats ik die dan precies? Iemand plaatjes van waar ik dat ding moet plakken?
en welke stappen ik moet doen om dit dan richting HA te krijgen.
Ik heb zelf een 602 en die werkt perfect met de HACS integratie "Kamstrup 403", in de readme staat dat die ook werkt met de 603, de repo kan je eventueel ook nog hier vinden. Zelf heb ik een IR kop van Aliexpress gekocht, is ondertussen even geleden, en kan em niet meer vinden. Misschien dat iemand anders je daar mee kan helpen.

Acties:
  • 0 Henk 'm!

  • DonJunior
  • Registratie: Februari 2008
  • Nu online
@twimj Thanks voor de vlotte respons
Ik vond ook nog deze blog van @Atomstar
https://atomstar.tweakblo...h-home-built-optical-head
Daarin word toevallig ook gelinkt naar AliExpress.

https://nl.aliexpress.com...b201602_,searchweb201603_

Maar dat komt pas over een maand binnen.. da's wel heel lang. En dan weet ik nog niet eens zeker of het werkt.

Meerdere blogs en voorbeelden gevonden:
https://community.home-as...d-template-sensors/336302

En vroeg me af of ik het ook zelf kon freubelen
met zoiets; https://circuitdigest.com...ensor-module-with-arduino

[ Voor 22% gewijzigd door DonJunior op 16-12-2022 09:28 ]

*sowieso


Acties:
  • +1 Henk 'm!

  • Dum_Dummy
  • Registratie: Mei 2020
  • Laatst online: 10:45
DonJunior schreef op vrijdag 16 december 2022 @ 08:39:
Ik heb een Kamstrup 603 (https://www.kamstrup.com/...eters/meters/multical-603) en wilde deze graag weergeven in mijn Home Assistant ingeving.
Kan ik dat ook op deze manier met een IR reader doen.. en zo ja.. waar plaats ik die dan precies? Iemand plaatjes van waar ik dat ding moet plakken?
en welke stappen ik moet doen om dit dan richting HA te krijgen.
Ik zelf de 402, maar het viel mij op dat er 2 kleine pinnetjes uitsteken waar ik mijn IR-kop in kon zetten. Hiermee was hij precies uitgelijnd en de magneet in mijn kop deed de rest.

Op de Kamstrup 603 zit het venstertje bovenin, en volgens mij heb je dezelfde pinnetjes voor het uitlijnen van de sensor.

Afbeeldingslocatie: https://tweakers.net/i/wFEZ8kV1rvO23PtYcMlwJMuSKq8=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/DWkgr08gJIXFP8wz5K2YCA2v.png?f=user_large

Acties:
  • 0 Henk 'm!

  • DonJunior
  • Registratie: Februari 2008
  • Nu online
@Dum_Dummy Welke reader gebruik jij hiervoor dan?

*sowieso


Acties:
  • +1 Henk 'm!

  • Dum_Dummy
  • Registratie: Mei 2020
  • Laatst online: 10:45
@DonJunior

Deze om precies te zijn. Heb er ongeveer 2 weken op moeten wachten. Na importeren van de module werkte deze binnen een paar minuten.

https://nl.aliexpress.com...3DVo&gatewayAdapt=glo2nld
Pagina: 1 2 Laatste