Kamstrup Multical 302 met Pi uitlezen en domoticz

Pagina: 1 2 ... 9 Laatste
Acties:

Acties:
  • +3 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
Hoi,

Mijn kennis van scripts en dergelijke en werkend op de Pi 3 krijgen is erg laag.
Misschien kan iemand mij een goede richting uitwijzen, hoe verder met een script?
Ik zou ook graag de gegevens in Domoticz krijgen.

Wat al gelukt is, is de kamstrup multical 302 (met m-bus) uit lezen in de pi via Putty.
Ik gebruik hiervoor een usb master mbus cable.

De uitleg voor installatie onder Linux op de Pi wordt hier gegeven:
https://web.archive.org/w...jects/domotiga/wiki/M-Bus
en is al werkend.

Geef ik het commando sudo mbus-serial-request-data -d -b 2400 /dev/ttyUSB0 61
krijg ik deze gegevens:
---

De uitlezing onder windows geeft --- gegevens.


Ik krijg dus als ik de pi met putty uitlees niet zo een mooie structuur als in de volgende link, maar enkel getallen?
https://domotiga.nl/boards/1/topics/4355?r=4690#message-4690

Mijn vraag is:
Hoe kan ik nu het beste nu de gegevens met een script uitlezen en zichtbaar krijgen in domoticz?
Is dat met een .py script of .xml?

Is het mogelijk een soort mysql database te maken zoals met SBFspot?

Excuses voor mijn gebrekkige kennis, maar ik leer graag bij. ;)

Edit: 13-09-2020
Even wat linkjes erbij plaatsen:

Kamstrup 302 met bedraad mbus:
https://zaehleronlineshop...ler-Kamstrup-MultiCal-302
https://zaehleronlineshop...ll-Waermezaehler-Kamstrup
303: https://zaehleronlineshop...-mm-Funk-vorbereitet-2021

MBus master usb adapter: (=meterbus)
https://nl.aliexpress.com...75406a43&rmStoreLevelAB=0

kogelkraantjes:
https://zaehleronlineshop...ausatz-fuer-Waermezaehler

Edit: 06-11-2021
Node red en home assistant voorbeeld
AUijtdehaag in "Kamstrup Multical 302 met Pi uitlezen en domoticz"
en eronder.

Edit: 01-03-2022 batterijen (bijna) leeg
Na 6 jaar trouwe dienst is de batterij leeg van mijn kamstrup 302. Dit merkte ik dat MBus niet meer communiceerde.
Heb nu een 303 gekocht (en ik ga nog kijken wat de verschillen zijn)
Er zit wat verschil in de mbus registers maar verder identiek.

In mijn 302 zitten 2 van deze batterijen:
https://www.batterijservi...uiting-geen_standaard_cel
Snel geleverd en inmiddels uitgewisseld.

Edit: 23-10-2022
Uitleg van blb4 over installatie van kamstrup 303
blb4 in "Kamstrup Multical 302 met Pi uitlezen en domoticz"

Edit: 11-11-2022
Oplossing voor vastloper hassio versie V13 van node-red addon gevonden. Zie
AUijtdehaag in "Kamstrup Multical 302 met Pi uitlezen en domoticz"

[ Voor 47% gewijzigd door AUijtdehaag op 26-04-2023 16:52 ]

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


Acties:
  • 0 Henk 'm!

  • Stoofie
  • Registratie: Juni 2010
  • Laatst online: 22-04 20:20
Het kabeltje is niet meer leverbaar zie ik.
Misschien eens een andere zoeken, want dit is wel interessant, al moet alles eerst nog wel aangesloten worden...

@Liander:Ja, ik snap dat jullie een probleem hebben, en nee, dat geeft jullie niet het recht ons op een ongeoorloofde manier geld af proberen te troggelen... Dank voor het crediteren van de onterechte factuur, nu de rest van Nederland nog...


Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
Stoofie schreef op maandag 23 mei 2016 @ 07:35:
Het kabeltje is niet meer leverbaar zie ik.
Misschien eens een andere zoeken, want dit is wel interessant, al moet alles eerst nog wel aangesloten worden...
De usb versie is prima leverbaar hoor en net zo duur als de meter zelf. :o
https://shop.marcomweb.it..._virtuemart&view=category
MR003USB M-Bus USB Converter

Heb je wel een kamstrup MET m-bus draadjes?
(er zijn verschillende varianten in omloop)


Gisteren nog aan het prutsen geweest.
Ik krijg geen xml output voor elkaar... Enkel die getallen.
Misschien ligt het aan de installatie van libmbus op de pi...
Dat dat niet helemaal lekker gelopen is.

Erg onduidelijk allemaal. We prutsen maar weer verder. ;)

[ Voor 9% gewijzigd door AUijtdehaag op 24-05-2016 23:16 ]

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


Acties:
  • 0 Henk 'm!

  • noo
  • Registratie: Januari 2012
  • Niet online

noo

Met de meest recente master.zip https://github.com/rscada/libmbus/archive/master.zip kan ik er wel chocola van maken, dus ik denk dat je een nieuwere libmbus moet hebben. Als ik de hex waardes uit je plaatje in een file zet en dan test/mbus_parse_hex draai (na een 'make' in de 'test' directory) krijg ik deze output:
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
pi@mk ~/libmbus-master/test $ ./mbus_parse_hex effe.hex 
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>

    <SlaveInformation>
        <Id>67362961</Id>
        <Manufacturer>KAM</Manufacturer>
        <Version>48</Version>
        <ProductName></ProductName>
        <Medium>Heat: Outlet</Medium>
        <AccessNumber>106</AccessNumber>
        <Status>10</Status>
        <Signature>0000</Signature>
    </SlaveInformation>

    <DataRecord id="0">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Fabrication number</Unit>
        <Value>67362961</Value>
    </DataRecord>

    <DataRecord id="1">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Energy (kWh)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="2">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Energy (kWh)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="3">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="4">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="5">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Volume (1e-2  m^3)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="6">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>On time (hours)</Unit>
        <Value>1630</Value>
    </DataRecord>

    <DataRecord id="7">
        <Function>Value during error state</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>On time (hours)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="8">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Flow temperature (1e-2 deg C)</Unit>
        <Value>2099</Value>
    </DataRecord>

    <DataRecord id="9">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Return temperature (1e-2 deg C)</Unit>
        <Value>2050</Value>
    </DataRecord>

    <DataRecord id="10">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Temperature Difference (1e-2  deg C)</Unit>
        <Value>49</Value>
    </DataRecord>

    <DataRecord id="11">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Power (100 W)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="12">
        <Function>Maximum value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Power (100 W)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="13">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Volume flow (m m^3/h)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="14">
        <Function>Maximum value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Volume flow (m m^3/h)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="15">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Error flags</Unit>
        <Value>16</Value>
    </DataRecord>

    <DataRecord id="16">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Time Point (time &amp; date)</Unit>
        <Value>2016-05-22T09:35:00</Value>
    </DataRecord>

    <DataRecord id="17">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Energy (kWh)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="18">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Energy (kWh)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="19">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="20">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="21">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Volume (1e-2  m^3)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="22">
        <Function>Maximum value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Power (100 W)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="23">
        <Function>Maximum value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Volume flow (m m^3/h)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="24">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Time Point (date)</Unit>
        <Value>2016-04-30</Value>
    </DataRecord>

    <DataRecord id="25">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>67362961</Value>
    </DataRecord>

    <DataRecord id="26">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>44239</Value>
    </DataRecord>

    <DataRecord id="27">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>13303000</Value>
    </DataRecord>

    <DataRecord id="28">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>6145</Value>
    </DataRecord>

    <DataRecord id="29">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Firmware version</Unit>
        <Value>1793</Value>
    </DataRecord>

</MBusData>

(ik heb geen Kamstrup maar wil er in de toekomst misschien wel eentje dus dit is een beetje vooruit hobbyen voor de leut)

Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
noo schreef op maandag 23 mei 2016 @ 17:27:
Met de meest recente master.zip https://github.com/rscada/libmbus/archive/master.zip kan ik er wel chocola van maken, dus ik denk dat je een nieuwere libmbus moet hebben. Als ik de hex waardes uit je plaatje in een file zet en dan test/mbus_parse_hex draai (na een 'make' in de 'test' directory) krijg ik deze output:
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
pi@mk ~/libmbus-master/test $ ./mbus_parse_hex effe.hex 
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>

    <SlaveInformation>
        <Id>67362961</Id>
        <Manufacturer>KAM</Manufacturer>
        <Version>48</Version>
        <ProductName></ProductName>
        <Medium>Heat: Outlet</Medium>
        <AccessNumber>106</AccessNumber>
        <Status>10</Status>
        <Signature>0000</Signature>
    </SlaveInformation>

    <DataRecord id="0">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Fabrication number</Unit>
        <Value>67362961</Value>
    </DataRecord>

    <DataRecord id="1">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Energy (kWh)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="2">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Energy (kWh)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="3">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="4">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="5">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Volume (1e-2  m^3)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="6">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>On time (hours)</Unit>
        <Value>1630</Value>
    </DataRecord>

    <DataRecord id="7">
        <Function>Value during error state</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>On time (hours)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="8">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Flow temperature (1e-2 deg C)</Unit>
        <Value>2099</Value>
    </DataRecord>

    <DataRecord id="9">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Return temperature (1e-2 deg C)</Unit>
        <Value>2050</Value>
    </DataRecord>

    <DataRecord id="10">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Temperature Difference (1e-2  deg C)</Unit>
        <Value>49</Value>
    </DataRecord>

    <DataRecord id="11">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Power (100 W)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="12">
        <Function>Maximum value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Power (100 W)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="13">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Volume flow (m m^3/h)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="14">
        <Function>Maximum value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Volume flow (m m^3/h)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="15">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Error flags</Unit>
        <Value>16</Value>
    </DataRecord>

    <DataRecord id="16">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Time Point (time &amp; date)</Unit>
        <Value>2016-05-22T09:35:00</Value>
    </DataRecord>

    <DataRecord id="17">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Energy (kWh)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="18">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Energy (kWh)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="19">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="20">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="21">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Volume (1e-2  m^3)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="22">
        <Function>Maximum value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Power (100 W)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="23">
        <Function>Maximum value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Volume flow (m m^3/h)</Unit>
        <Value>0</Value>
    </DataRecord>

    <DataRecord id="24">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Time Point (date)</Unit>
        <Value>2016-04-30</Value>
    </DataRecord>

    <DataRecord id="25">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>67362961</Value>
    </DataRecord>

    <DataRecord id="26">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>44239</Value>
    </DataRecord>

    <DataRecord id="27">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>13303000</Value>
    </DataRecord>

    <DataRecord id="28">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>6145</Value>
    </DataRecord>

    <DataRecord id="29">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Firmware version</Unit>
        <Value>1793</Value>
    </DataRecord>

</MBusData>

(ik heb geen Kamstrup maar wil er in de toekomst misschien wel eentje dus dit is een beetje vooruit hobbyen voor de leut)
Bedankt!
Ik ga er eens naar kijken....of dat zo lukt.
Ik moet je post nog 3x lezen (want noob), maar hopelijk kom ik hiermee verder.

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


Acties:
  • 0 Henk 'm!

  • Stoofie
  • Registratie: Juni 2010
  • Laatst online: 22-04 20:20
AUijtdehaag schreef op maandag 23 mei 2016 @ 11:10:
[...]

Heb je wel een kamstrup MET m-bus draadjes?
(er zijn verschillende varianten in omloop)
Yep, tenminste, ik heb de m-bus versie besteld.
Ik ben er maar vanuit gegaan dat de drie draadjes rechts voor het meten zijn en dat het 2-aderige draadje links de m-bus is :)

@Liander:Ja, ik snap dat jullie een probleem hebben, en nee, dat geeft jullie niet het recht ons op een ongeoorloofde manier geld af proberen te troggelen... Dank voor het crediteren van de onterechte factuur, nu de rest van Nederland nog...


Acties:
  • +1 Henk 'm!

  • noo
  • Registratie: Januari 2012
  • Niet online

noo

AUijtdehaag schreef op maandag 23 mei 2016 @ 19:03:
[...]


Bedankt!
Ik ga er eens naar kijken....of dat zo lukt.
Ik moet je post nog 3x lezen (want noob), maar hopelijk kom ik hiermee verder.
Gewoon de libmbus installatiestappen uit de domotiga wiki die je linkte nogmaals uitvoeren waarbij je '0.8.0' overal vervangt door 'master'. Dan zou mbus-serial-request-data ook XML moeten printen. mbus_parse_hex doet hetzelfde als mbus-serial-request-data alleen leest mbus_parse_hex de data uit een bestand ipv uit de meter.

Update: uitgaande van een python script dat ik op de domotiga wiki vond hier een quick-n-dirty python script om alle data uit je telegram te printen.
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
pi@mk ~ cat kam.py
#!/usr/bin/python
#
# Adapted from http://domotiga.nl/boards/1/topics/4355?r=4722#message-4722
#

from xml.dom import minidom
import subprocess

# Retrieve the XML data
if False:
    # Real
    cmd = ['mbus-serial-request-data', '/dev/ttyUSB0', '61']
    reqdata = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    mbus_xml, err = reqdata.communicate()
    mbusdata = minidom.parseString(mbus_xml)
else:
    # Test
    mbusdata = minidom.parse('mbus.xml')

# Parse the XML data
record2val = dict()

# Print all records
print "ID %20s %s" % ('Value', 'Description (Unit)')
recordlist = mbusdata.getElementsByTagName('DataRecord')
for record in recordlist:
    id_num = int(record.attributes['id'].value)
    value_elm = record.getElementsByTagName('Value')[0]
    value = value_elm.firstChild.nodeValue
    unit_elm = record.getElementsByTagName('Unit')[0]
    unit = unit_elm.firstChild.nodeValue
    print "%2d %20s %s" % (id_num, value, unit)

(Ik heb geen meter dus ik heb de xml die mbus_parse_hex uitspuugt in mbus.xml gezet, jij kan de 'if False:' op regel 10 veranderen in 'if True:' om de meter echt uit te lezen).

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
pi@mk ~ $ ./kam.py 
ID                Value Description (Unit)
 0             67362961 Fabrication number
 1                    0 Energy (kWh)
 2                    0 Energy (kWh)
 3                    0 Manufacturer specific
 4                    0 Manufacturer specific
 5                    0 Volume (1e-2  m^3)
 6                 1630 On time (hours)
 7                    0 On time (hours)
 8                 2099 Flow temperature (1e-2 deg C)
 9                 2050 Return temperature (1e-2 deg C)
10                   49 Temperature Difference (1e-2  deg C)
11                    0 Power (100 W)
12                    0 Power (100 W)
13                    0 Volume flow (m m^3/h)
14                    0 Volume flow (m m^3/h)
15                   16 Error flags
16  2016-05-22T09:35:00 Time Point (time & date)
17                    0 Energy (kWh)
18                    0 Energy (kWh)
19                    0 Manufacturer specific
20                    0 Manufacturer specific
21                    0 Volume (1e-2  m^3)
22                    0 Power (100 W)
23                    0 Volume flow (m m^3/h)
24           2016-04-30 Time Point (date)
25             67362961 Manufacturer specific
26                44239 Manufacturer specific
27             13303000 Manufacturer specific
28                 6145 Manufacturer specific
29                 1793 Firmware version

[ Voor 70% gewijzigd door noo op 24-05-2016 13:09 ]


Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
noo schreef op dinsdag 24 mei 2016 @ 08:14:
[...]

Gewoon de libmbus installatiestappen uit de domotiga wiki die je linkte nogmaals uitvoeren waarbij je '0.8.0' overal vervangt door 'master'. Dan zou mbus-serial-request-data ook XML moeten printen. mbus_parse_hex doet hetzelfde als mbus-serial-request-data alleen leest mbus_parse_hex de data uit een bestand ipv uit de meter.

Update: uitgaande van een python script dat ik op de domotiga wiki vond hier een quick-n-dirty python script om alle data uit je telegram te printen.
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
pi@mk ~ cat kam.py
#!/usr/bin/python
#
# Adapted from http://domotiga.nl/boards/1/topics/4355?r=4722#message-4722
#

from xml.dom import minidom
import subprocess

# Retrieve the XML data
if False:
    # Real
    cmd = ['mbus-serial-request-data', '/dev/ttyUSB0', '61']
    reqdata = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    mbus_xml, err = reqdata.communicate()
    mbusdata = minidom.parseString(mbus_xml)
else:
    # Test
    mbusdata = minidom.parse('mbus.xml')

# Parse the XML data
record2val = dict()

# Print all records
print "ID %20s %s" % ('Value', 'Description (Unit)')
recordlist = mbusdata.getElementsByTagName('DataRecord')
for record in recordlist:
    id_num = int(record.attributes['id'].value)
    value_elm = record.getElementsByTagName('Value')[0]
    value = value_elm.firstChild.nodeValue
    unit_elm = record.getElementsByTagName('Unit')[0]
    unit = unit_elm.firstChild.nodeValue
    print "%2d %20s %s" % (id_num, value, unit)

(Ik heb geen meter dus ik heb de xml die mbus_parse_hex uitspuugt in mbus.xml gezet, jij kan de 'if False:' op regel 10 veranderen in 'if True:' om de meter echt uit te lezen).

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
pi@mk ~ $ ./kam.py 
ID                Value Description (Unit)
 0             67362961 Fabrication number
 1                    0 Energy (kWh)
 2                    0 Energy (kWh)
 3                    0 Manufacturer specific
 4                    0 Manufacturer specific
 5                    0 Volume (1e-2  m^3)
 6                 1630 On time (hours)
 7                    0 On time (hours)
 8                 2099 Flow temperature (1e-2 deg C)
 9                 2050 Return temperature (1e-2 deg C)
10                   49 Temperature Difference (1e-2  deg C)
11                    0 Power (100 W)
12                    0 Power (100 W)
13                    0 Volume flow (m m^3/h)
14                    0 Volume flow (m m^3/h)
15                   16 Error flags
16  2016-05-22T09:35:00 Time Point (time & date)
17                    0 Energy (kWh)
18                    0 Energy (kWh)
19                    0 Manufacturer specific
20                    0 Manufacturer specific
21                    0 Volume (1e-2  m^3)
22                    0 Power (100 W)
23                    0 Volume flow (m m^3/h)
24           2016-04-30 Time Point (date)
25             67362961 Manufacturer specific
26                44239 Manufacturer specific
27             13303000 Manufacturer specific
28                 6145 Manufacturer specific
29                 1793 Firmware version
_/-\o_
Met de master.zip is het wel een goede output.

Hartelijk dank!.
Ik kan weer verder er in duiken... _/-\o_

Nog wat foutmeldinkjes met de python kam.py
Maar dat is voor morgen.... ;)
code:
1
2
3
4
5
6
7
8
9
  File "kam.py", line 16, in <module>
    mbusdata = minidom.parseString(mbus_xml)
  File "/usr/lib/python2.7/xml/dom/minidom.py", line 1928, in parseString
    return expatbuilder.parseString(string)
  File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 940, in parseString
    return builder.parseString(string)
  File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 223, in parseString
    parser.Parse(string, True)
xml.parsers.expat.ExpatError: no element found: line 1, column 0

[ Voor 8% gewijzigd door AUijtdehaag op 24-05-2016 23:06 ]

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


Acties:
  • 0 Henk 'm!

  • noo
  • Registratie: Januari 2012
  • Niet online

noo

Je krijgt blijkbaar niet altijd XML output terug. Zie http://domotiga.nl/boards/1/topics/4355?r=4745#message-4745 en verder voor een oplossing.

Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
Even over een andere boeg gegooid....

Apache, php, mysql geinstalleerd op de Pi
Een (voorlopig) php-script gemaakt genaamd kamstrup.php in de directory /home/pi/domoticz/scripts

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
<?php
//***********************************
//Kamstrup Multical 302 with ID:61 readout and send to mysql database kamstrup.db
//***********************************
$output = shell_exec("sudo /home/pi/libmbus/libmbus-master/bin/mbus-serial-request-data -d -b 2400 /dev/ttyUSB0 61");
$xmloutput=substr($output,strpos($output,'<MBusData>'));
$xmloutput = new SimpleXMLElement($xmloutput);
// $timeValue=$xmloutput->DataRecord[16]->Value;
$counterID=$xmloutput->SlaveInformation->Id;
$heatValue=$xmloutput->DataRecord[1]->Value;
$coolValue=$xmloutput->DataRecord[2]->Value;
$ontimeheatValue=$xmloutput->DataRecord[6]->Value;
$ontimecoolValue=$xmloutput->DataRecord[7]->Value;
$tempoutValue=$xmloutput->DataRecord[8]->Value;
$tempreturnValue=$xmloutput->DataRecord[9]->Value;
$tempdiffValue=$xmloutput->DataRecord[10]->Value;
$powerinstValue=$xmloutput->DataRecord[11]->Value;
$powermaxValue=$xmloutput->DataRecord[12]->Value;
$flowinstValue=$xmloutput->DataRecord[13]->Value;
$flowmaxValue=$xmloutput->DataRecord[14]->Value;

$mysqlhost="localhost";
$mysqluser="root";
$mysqlpwd="raspberry";
$connection=mysql_connect($mysqlhost,$mysqluser,$mysqlpwd) or die ("verbindings fout");
$mysqldb="kamstrup";
mysql_select_db($mysqldb,$connection) or die("Kan de databank niet vullen.");

$sql = "INSERT INTO kamstrup (timevalue,fab_nr,energy_heat_inst,energy_cool_inst,onetimeheat,onetimecool,tempout,tempreturn,tempdiff,powerinst,powermax,flowinst,flowmax) VALUES (CURRENT_TIMESTAMP,$counterID,$heatValue,$coolValue,$ontimeheatValue,$ontimecoolValue,$tempoutValue,$tempreturnValue,$tempdiffValue,$powerinstValue,$powermaxValue,$flowinstValue,$flowmaxValue)";

$result = mysql_query($sql); 
if(!$result) 
{ 
   error_log("Query error ($sql): " . mysql_error()); 
   echo "<p class='error'>Sorry, er was een database error.</p>"; 
   echo "</body></html>"; 
   exit; 
} 

?>


Soms volgt er toch nog wel een time-out met de mbus na het geven van: sudo php kamstrup.php . (blijkt ook uit diverse forums)
Maar de waardes worden netjes gevuld in de zelf aangemaakte mysql database.

Next step -> zichtbaar maken in domoticz :9
Iemand nog handige tips? :)

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


Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
Even een kleine update...

Afbeeldingslocatie: https://www.mupload.nl/img/c04fgy0nzvxyu.jpg

Ook dank aan Albert Hakvoort voor zijn melcloud to domoticz!
Kamstrup m-bus wordt ook uitgelezen nu in domoticz

Nu die WP nog aan de praat, zodat we wat waardes kunnen zien... ;)

Doet het. :)

Afbeeldingslocatie: https://www.mupload.nl/img/rak8htednfpdr.jpg

[ Voor 16% gewijzigd door AUijtdehaag op 07-01-2017 12:03 ]

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


Acties:
  • 0 Henk 'm!

  • wervisser
  • Registratie: Oktober 2006
  • Laatst online: 22-04 08:18
Worden alle WP gerelateerde zaken uit je Domoticz screenshot gevoed met informatie van die Kamstrup of heb je er nog iets anders tussen hangen ?

Acties:
  • 0 Henk 'm!

  • Stoofie
  • Registratie: Juni 2010
  • Laatst online: 22-04 20:20
Zo te zien haalt hij ook nog wat uit MelCloud en ik vermoed ook nog ergens een paar kWh-meters...

@Liander:Ja, ik snap dat jullie een probleem hebben, en nee, dat geeft jullie niet het recht ons op een ongeoorloofde manier geld af proberen te troggelen... Dank voor het crediteren van de onterechte factuur, nu de rest van Nederland nog...


Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
Kamstrup laat zien: WP-Flow, WP-Taanvoer, WP-Tretour, WP-Tdiff, WP-Power, WP-Heat, WP-cool
2x Youless laat zien: WP-kWh, WP-Heater kWh. Cop wordt berekend door WP-power/WP-kWh
Melcloud laat zien (en schakelen): WP-Power, WP-Buffervat temp, WP-Buitentemp.
Verder nog wat losse temperatuurmetingen (fibaro smokesensor en Cresta's) en een fibaro tussenstekker om de vloerverwarming in te schakelen (met gegevens kWh)

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


Acties:
  • 0 Henk 'm!

  • wervisser
  • Registratie: Oktober 2006
  • Laatst online: 22-04 08:18
AUijtdehaag schreef op zondag 12 februari 2017 @ 17:33:
Kamstrup laat zien: WP-Flow, WP-Taanvoer, WP-Tretour, WP-Tdiff, WP-Power, WP-Heat, WP-cool
2x Youless laat zien: WP-kWh, WP-Heater kWh. Cop wordt berekend door WP-power/WP-kWh
Melcloud laat zien (en schakelen): WP-Power, WP-Buffervat temp, WP-Buitentemp.
Verder nog wat losse temperatuurmetingen (fibaro smokesensor en Cresta's) en een fibaro tussenstekker om de vloerverwarming in te schakelen (met gegevens kWh)
Hoe heb je die Youless aangesloten ? Voor wat ik zie plak je deze voor een meter ? Melcoud zal voor mij geen optie zijn, aangezien ik een Loria koop ;-)

Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
wervisser schreef op maandag 13 februari 2017 @ 09:26:
[...]


Hoe heb je die Youless aangesloten ? Voor wat ik zie plak je deze voor een meter ? Melcoud zal voor mij geen optie zijn, aangezien ik een Loria koop ;-)
Zoek even in het youless forum op mijn naam. Daar staan foto's.
Solderen van twee draadjes en op s0 aansluiten van de kWh meter.

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


Acties:
  • +1 Henk 'm!

  • Stoofie
  • Registratie: Juni 2010
  • Laatst online: 22-04 20:20
Afbeeldingslocatie: https://www.mupload.nl/img/vmfuwyuhfrpci.jpg
Zo, ik kan mijn multical uitlezen in domoticz *O*
Met dank aan AUijtdehaag voor het script _/-\o_

@Liander:Ja, ik snap dat jullie een probleem hebben, en nee, dat geeft jullie niet het recht ons op een ongeoorloofde manier geld af proberen te troggelen... Dank voor het crediteren van de onterechte factuur, nu de rest van Nederland nog...


Acties:
  • 0 Henk 'm!

  • wervisser
  • Registratie: Oktober 2006
  • Laatst online: 22-04 08:18
Weet iemand of het mogelijk is de draadloze variant op een dergelijke manier uit te lezen ?

Acties:
  • 0 Henk 'm!

  • wiljums
  • Registratie: Juni 2003
  • Laatst online: 31-03 23:34
Hoe kan de Kamstrup zowel Taanvoer als Tretour meten?
AUijtdehaag schreef op zondag 12 februari 2017 @ 17:33:
Kamstrup laat zien: WP-Flow, WP-Taanvoer, WP-Tretour, WP-Tdiff, WP-Power, WP-Heat, WP-cool

13420 Wp 44x JA Solar / GW15KN-DT PVOutput - AIT SWCV92K3 W/W warmtepomp


Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
@wiljums

De meter heeft twee temperatuur sensoren. T1 en T2
1 losse en 1 in de meter zelf

Afbeeldingslocatie: https://www.mupload.nl/img/zi5u5r7sjafre.jpg

http://products.kamstrup....d=5605466a64246&display=1

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


Acties:
  • 0 Henk 'm!

  • BenEco
  • Registratie: Januari 2014
  • Niet online
wervisser schreef op maandag 27 februari 2017 @ 11:08:
Weet iemand of het mogelijk is de draadloze variant op een dergelijke manier uit te lezen ?
Ben hier ook wel nieuwsgierig naar, woensdag komt de Multical 302 cooling and heating in het leidingwerk van de WP. zag dat er ook nog Wireless M-Bus C1 of T1 op zat welke aan en uit te zetten is in de setup.
Ben wat aan het googlen https://github.com/ffcrg/ecpiww/issues/7 maar is me niet duidelijk wat je hier nu voor nodig hebt om het aan de praat te krijgen.

[ Voor 3% gewijzigd door BenEco op 28-02-2017 00:12 ]

2x L/L WP MHI 35ZS-W, L/W WP Panasonic 5 kW WC05H3E5, ZB Q-Solar 380L 10m2 & ZB OEG 150L & 3kW, 3330/3470/2660Wp Zuid, Gasloos sinds 2016, Nissan Leaf 62kWh Tekna, Waterluxe Duo 7, Bluetti 200Max+ 2x B230.


Acties:
  • 0 Henk 'm!

  • wervisser
  • Registratie: Oktober 2006
  • Laatst online: 22-04 08:18
Ik denk dat onderstaande wel zou moeten werken, maar ik ben er niet zeker van :-)

http://delmation.nl/wp-co...us_dongle_usb_v3.1_gb.pdf

Nee, ik bevestiging ontvangen vanuit de leverancier. Dit werkt niet. Ik heb dus nu een Multical 302 liggen met draadloze MBus waar ik niet zo veel mee kan :-(

@AUijtdehaag
Is er een warmte/koude meter nodig of is enkel warmte voldoende ?

[ Voor 43% gewijzigd door wervisser op 28-02-2017 11:21 ]


Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
@wervisser

Ik heb deze.
AUijtdehaag in "Lucht/Water warmtepomp om mee te verwarmen en koelen 2"
AUijtdehaag in "Lucht/Water warmtepomp om mee te verwarmen en koelen 2"

Ik lees alle parameters uit, en de kamstrup die ik heb is niet geschikt voor koelen, maar via m-bus dus wel die gegevens.
Ik heb vanavond getracht de WP in koelen te brengen, maar dat lukte even niet...haha vreemd.

Maar lang verhaal kort, met m-bus lees je het wel uit dus, ondanks dat de kamstrup dat niet weergeeft.

Koelen meten is interessant als je ook daadwerkelijk gaat koelen. En tijdens defrost.

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


Acties:
  • 0 Henk 'm!

  • wervisser
  • Registratie: Oktober 2006
  • Laatst online: 22-04 08:18
@AUijtdehaag
Thanks, zal eens kijken of ik een bedrade versie ergens kan vinden (voor een interessante prijs)

Acties:
  • 0 Henk 'm!

  • BenEco
  • Registratie: Januari 2014
  • Niet online
Hiermee is het al iets duidelijker om de draadloze variant aan de praat te krijgen en wat je nodig hebt:
http://www.unitherm.cz/us..._dongle/W-Mbus_manual.pdf
http://www.construnario.c...b)wirelessm-bussystem.pdf

En de prijzen :'( http://www.mdcontrolymarv...-%20climarepuestos.es.pdf

[ Voor 39% gewijzigd door BenEco op 01-03-2017 00:55 ]

2x L/L WP MHI 35ZS-W, L/W WP Panasonic 5 kW WC05H3E5, ZB Q-Solar 380L 10m2 & ZB OEG 150L & 3kW, 3330/3470/2660Wp Zuid, Gasloos sinds 2016, Nissan Leaf 62kWh Tekna, Waterluxe Duo 7, Bluetti 200Max+ 2x B230.


Acties:
  • 0 Henk 'm!

  • BenEco
  • Registratie: Januari 2014
  • Niet online
@wervisser

Heb je de Multical nu te koop staan op Marktplaats. >:)

2x L/L WP MHI 35ZS-W, L/W WP Panasonic 5 kW WC05H3E5, ZB Q-Solar 380L 10m2 & ZB OEG 150L & 3kW, 3330/3470/2660Wp Zuid, Gasloos sinds 2016, Nissan Leaf 62kWh Tekna, Waterluxe Duo 7, Bluetti 200Max+ 2x B230.


Acties:
  • 0 Henk 'm!

  • wervisser
  • Registratie: Oktober 2006
  • Laatst online: 22-04 08:18
Van die prijzen schrik ik niet echt. Een kabel kost ook bijna €200. Ik begin een beetje te neigen naar de oplossing van Domba. Die heeft zelf iets geknutseld...
BenEco schreef op woensdag 1 maart 2017 @ 01:01:
@wervisser

Heb je de Multical nu te koop staan op Marktplaats. >:)
Ik zou niet durven O-)

Acties:
  • 0 Henk 'm!

Anoniem: 925609

@AUijtdehaag Compimenten dat je dit zo werkend heb gekregen.
Wij willen thuis een hybride warmtepomp installeren en daartussen een Multical 402 installeren.

Ik heb geprobeerd om de installatiestappen beschreven op

"https://domotiga.nl/projects/domotiga/wiki/M-Bus"


Krijg de volgende foutmelding:

root@PI:/home[/url]/pi/libmbus-0.8.0# make
CDPATH="${ZSH_VERSION+.}:" && cd . && aclocal -I . -Werror -I m4
cd . && automake-1.14 --foreign
automake-1.14: warnings are treated as errors
/usr/share/automake-1.14/am/ltlibrary.am: warning: 'libmbus.la': linking libtool libraries using a non-POSIX
/usr/share/automake-1.14/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac'
mbus/Makefile.am:16: while processing Libtool library 'libmbus.la'
Makefile:357: recipe for target 'Makefile.in' failed

Heb je enig idee hoe dit op te lossen?

Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
@Anoniem: 925609
Je moet zowiezo de master.zip hebben
https://github.com/rscada/libmbus/archive/master.zip

Staat hierboven (tussen de regels) ook vermeld.

Probeer het eens als root misschien?:
sudo su

Is voor mij ook alweer even geleden. 8)

[ Voor 3% gewijzigd door AUijtdehaag op 24-05-2017 17:42 ]

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


Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
Ik kwam deze nog tegen voor wireless mbus:
https://github.com/ffcrg/ecpiww

Ik heb verder niet gekeken naar hoe het werkt. Iemand die een poging wil wagen met wireless m-bus?

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


Acties:
  • +1 Henk 'm!

  • Chris_82
  • Registratie: Oktober 2017
  • Laatst online: 21-04 12:22
Goedenavond,

Ben inmiddels een aardig eind met het aan elkaar knopen van een Pi met mijn Kamstrup Multical 302 en een chinese MBus-USB-master (via Aliexpress). Tot twee weken geleden absoluut geen ervaring hiermee, maar leer het redelijk vlot. Tot mijn verbazing werkt het uitlezen van de warmtemeter met deze MBus-USB-master van iets meer dan twee tientjes. :)

Found a M-Bus device at address 35
Met mbus-serial-request-data -d -b 2400 /dev/ttyUSB0 35 zie ik de meetgegevens.

Volgende stap is het zichtbaar maken van deze data in Domoticz / InfluxDB / Grafana.
Wie wil dit nog eens eenvoudig aan mij uitleggen?
Alvast bedankt!

14.4kWp, Loria Duo 6010, VWTW, DWTW, full-electric, MY RWD


Acties:
  • +1 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
Kijk dat is goed nieuws! en flink goedkopere adapter....

Voor domoticz, maak je zelf dummy devices aan en roep je een php script aan via crontab-e, die de dummys vullen.
code:
1
*/1 * * * * php /home/pi/domoticz/scripts/kamstrup.php


Zelf ff aanpassen naar jouw gegevens:
kamstrup.php
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
#!/usr/bin/php
<?php
//***********************************
//Kamstrup Multical 302 with ID:61 readout and send to mysql database kamstrup.db
//***********************************
$output = shell_exec("sudo /usr/local/bin/mbus-serial-request-data -d -b 2400 /dev/ttyUSB0 61"); //persistant usb drv RPi- "m-busadress 61"
$xmloutput=substr($output,strpos($output,'<MBusData>'));
$xmloutput = new SimpleXMLElement($xmloutput);
$counterID=$xmloutput->SlaveInformation->Id;
$heatValue=$xmloutput->DataRecord[1]->Value;
$coolValue=$xmloutput->DataRecord[2]->Value;
$ontimeheatValue=$xmloutput->DataRecord[6]->Value;
$ontimecoolValue=$xmloutput->DataRecord[7]->Value;
$tempoutValue=$xmloutput->DataRecord[8]->Value;
$tempreturnValue=$xmloutput->DataRecord[9]->Value;
$tempdiffValue=$xmloutput->DataRecord[10]->Value;
$powerinstValue=$xmloutput->DataRecord[11]->Value;
$powermaxValue=$xmloutput->DataRecord[12]->Value;
$flowinstValue=$xmloutput->DataRecord[13]->Value;
$flowmaxValue=$xmloutput->DataRecord[14]->Value;
$heatenergymonthValue=$xmloutput->DataRecord[15]->Value;
$coolenergymonthValue=$xmloutput->DataRecord[16]->Value;

$DomoticzIP="http://192.168.0.196:8080/";
$IDXTaanvoer=135;
$IDXTretour=136;
$IDXTdiff=137;
$IDXHeat=444;
$IDXCool=445;
$IDXFlow=138;
$IDXPower=139; //in Domoticz: type counter / energy?
$IDXHeatMonth=449; //in Domoticz:
$IDXCoolMonth=450; //in Domoticz:


//Function to send to Domoticz
    function ud($idx,$nvalue,$svalue,$name=""){
        print "  --- UPDATE ".$idx." ".$name." ".$nvalue." ".$svalue."
    ";
        file_get_contents("http://192.168.0.196:8080/".'json.htm?type=command&param=udevice&idx='.$idx.'&nvalue='.$nvalue.'&svalue='.$svalue);
        usleep(250000);
    }

//Function counter to send to Domoticz
    function uc($idx,$svalue,$name=""){
        print "  --- UPDATE ".$idx." ".$name." ".$svalue."
    ";
        file_get_contents("http://192.168.0.196:8080/".'json.htm?type=command&param=udevice&idx='.$idx.'&svalue='.$svalue);
        usleep(250000);
    }

// Taanvoer (K) to Domoticz (kamstrup Reg 8)
ud($IDXTaanvoer,0,$tempoutValue/100,0);

// Tretour (K) to Domoticz (kamstrup Reg 9)
ud($IDXTretour,0,$tempreturnValue/100,0);

// Tdiff (K) to Domoticz (kamstrup Reg 10)
ud($IDXTdiff,0,$tempdiffValue/100,0);

// Instant Heat (kWh) to Domoticz (kamstrup Reg 1)
//ud($IDXHeat,0,$heatValue,0);

// Instant Cool (kWh) Domoticz (kamstrup Reg 2)
//ud($IDXCool,0,$coolValue,0);

// Instant flow (ltr/h) to Domoticz (kamstrup Reg 13)
ud($IDXFlow,0,$flowinstValue,0);

// Instant Power (watt) to Domoticz (kamstrup Reg 11)
ud($IDXPower,0,$powerinstValue*100,0);

// Total Heat power last month (kWh) to Domoticz (kamstrup Reg 15)
//ud($IDXHeatMonth,0,$heatenergymonthValue,0);

// Total Cool power last month (kWh) to Domoticz (kamstrup Reg 16)
//ud($IDXCoolMonth,0,$coolenergymonthValue*100,0);

//*************************************
// mysql
//*************************************
// working, but not further developed with this script

//$mysqlhost="localhost";
//$mysqluser="root";
//$mysqlpwd="raspberry";
//$connection=mysql_connect($mysqlhost,$mysqluser,$mysqlpwd) or die ("verbindings fout");
//$mysqldb="kamstrup";
//mysql_select_db($mysqldb,$connection) or die("Konnte die Datenbank nicht waehlen.");

//$sql = "INSERT INTO kamstrup (timevalue,fab_nr,energy_heat_inst,energy_cool_inst,onetimeheat,onetimecool,tempout,tempreturn,tempdiff,powerinst,powermax,flowinst,flowmax) VALUES (CURRENT_TIMESTAMP,$counterID,$heatValue,$coolValue,$ontimeheatValue,$ontimecoolValue,$tempoutValue,$tempreturnValue,$tempdiffValue,$powerinstValue,$powermaxValue,$flowinstValue,$flowmaxValue)";

//$result = mysql_query($sql); 
//if(!$result) 
//{ 
//   error_log("Query error ($sql): " . mysql_error()); 
//   echo "<p class='error'>Sorry, er was een database error.</p>"; 
//   echo "</body></html>"; 
//  exit; 
//} 

?>


Niet alle commentaren in het script zijn compleet, en sommige dummys gebruik ik nu niet, maar het werkt. ;)
Mocht je de cop willen berekenen heb ik ook nog wel een lua scriptje voor (heb je wel elektrisch opgenomen Watt gegevens voor nodig via domoticz)

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


Acties:
  • +1 Henk 'm!

  • Chris_82
  • Registratie: Oktober 2017
  • Laatst online: 21-04 12:22
Fantastisch! ook hier draait het nu soepel.
Dat lua scriptje heb ik ook zeker interesse in. Zoals je kunt zien is er een kWh meter aanwezig (via een Youless).

Grafana snapshot

En als plaatje:
Afbeeldingslocatie: http://i68.tinypic.com/nxmo4.jpg

14.4kWp, Loria Duo 6010, VWTW, DWTW, full-electric, MY RWD


Acties:
  • +1 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
@Chris_82
Hierbij het lua script voor Cop.
Ik heb er ook een formule inzetten (als test eigenlijk), die de cop berekend vanuit de flow en deltaT
Die formule wilde ik testen, maar is volgens mij niet erg betrouwbaar (zal je zelf wel zien)

Berekening Cop is niet meer dan afgegeven wattage (kamstrup) / opgenomen wattage (youless)
Is dat niet simpel mogelijk in grafana?

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
----------------------------------------------------------------------------------------------------------
-- /home/pi/domoticz/scripts/lua/script_device_calculate_cop.lua
----------------------------------------------------------------------------------------------------------
-- This script collects the values below from a m-bus kamstrup and 
-- a youless (or other device that shows consumed energy and power from the WP) 
--   
-- It then calculates the COP by dividing Produced Energy with Consumed Energy and calculated COP by formula
--
----------------------------------------------------------------------------------------------------------
-- Written by AUijtdehaag 2017
----------------------------------------------------------------------------------------------------------
-- V0.1 Initial versions
----------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------------------------------
-- Domoticz IDX and names of the needed devices
----------------------------------------------------------------------------------------------------------
-- System settings
local WPConsumedDeviceName = "WP-kWh"               -- Device Name of the Consumed energy from WP (Youless)
local WPProducedDeviceName = "WP-Power"             -- Device Name of the Produced energy from WP (Kamstrup)
local WPCopIDX = 146                                -- IDX of the dummy device that shows COP
local WPCopDeviceName = "WP-Cop"                    -- Device Name of the dummy device that shows COP
local WPDeltaTDeviceName = "WP-Tdiff"               -- Device Name of the DeltaT temperature from WP (Kamstrup)
local WPFlowDeviceName = "WP-Flow"                  -- Device Name of the Flow from WP (Kamstrup)
local WPCopBerekendIDX = 147                        -- IDX of the dummy device that shows COP_Berekend by formula
local WPCopBerekendDeviceName = "WP-Cop-Berekend"   -- Device Name of the dummy device that shows COP_Berekend by formula

----------------------------------------------------------------------------------------------------------
-- Require parameters
----------------------------------------------------------------------------------------------------------
-- None
 
----------------------------------------------------------------------------------------------------------
-- Script parameters 
----------------------------------------------------------------------------------------------------------
WPProduced = 0
WPConsumed = 0
WPPowerConsumption = 0
WPEnergyConsumption = 0
WPFlow = 0
WPDeltaT = 0
WPCop = 0
WPCopBerekend = 0
Debug = "YES"           -- Turn debugging on ("YES") or off ("NO")
 
----------------------------------------------------------------------------------------------------------
-- Lua Functions
----------------------------------------------------------------------------------------------------------
-- Update to domoticz
function update(device, id, value, index)
    commandArray[index] = {['UpdateDevice'] = id .. "|0|" .. value}
end 

----------------------------------------------------------------------------------------------------------
-- CommandArray
----------------------------------------------------------------------------------------------------------
commandArray = {}

   if devicechanged[WPProducedDeviceName] then

        -- Read values and calculate COP and COP_Berekend from formula COP= L/s * 4.2 * DeltaT
        WPProduced = tonumber(otherdevices_svalues[WPProducedDeviceName])
        WPPowerConsumption, WPEnergyConsumption = otherdevices_svalues[WPConsumedDeviceName]:match("([^;]+);([^;]+)")
        WPConsumed = tonumber(WPEnergyConsumption)
        WPCop = WPProduced / WPConsumed
        WPFlow = tonumber(otherdevices_svalues[WPFlowDeviceName])
        WPDeltaT = tonumber(otherdevices_svalues[WPDeltaTDeviceName])
        WPCopBerekend = (WPFlow / 3600) * 4.2 * WPDeltaT
                
        if Debug=="YES" then
            print("Lua Calculate WPCop: WPproduced " .. WPProduced .. " Watt")
            print("Lua Calculate WPCop: WPConsumed " .. WPConsumed .. " Watt")
            print("Lua Calculate WPCop: WPFlow " .. WPFlow .. " L/h")
            print("Lua Calculate WPCop: WPDeltaT " .. WPDeltaT .. " C")
            print("Lua Calculate WPCop: WPCop " .. WPCop .. " W/W")
            print("Lua Calculate WPCop: WPCopBerekend " .. WPCopBerekend .. " W/W")
        end
                 
        -- Create array with values to update to domoticz
        local count = 0
         if WPCopIDX ~=0 then
            count= count +1 
            update(WPCopDeviceName, WPCopIDX, WPCop, count)
         end
        
        if WPCopBerekendIDX ~=0 then
            count= count +1 
            update(WPCopBerekendDeviceName, WPCopBerekendIDX, WPCopBerekend, count)
         end      
    end

return commandArray


Afbeeldingslocatie: https://www.mupload.nl/img/jsj8huyvncz9r.jpg

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


Acties:
  • 0 Henk 'm!

  • Chris_82
  • Registratie: Oktober 2017
  • Laatst online: 21-04 12:22
@AUijtdehaag
LUA script draait, je COP-formule klopt ook. Ik zie weinig verschil, alleen soms een iets snellere of tragere reactie dan de data van de Kamstrup. Waarschijnlijk vanwege de middeling in de Kamstrup zelf:
http://products.kamstrup.com/download.php?uid=53843dae77ef8
Normal mode
In "normal mode" MULTICAL 302 passes through an integration sequence of 32 sec. During this sequence water flow is measured at 4-second intervals. Inlet and outlet temperatures are measured in the middle of the sequence and at the end of the sequence energy and volume are calculated. All display readings are updated at 32-second intervals.
Wat ik me ook nog afvraag, er wordt vermeld dat het regelmatig uitlezen dmv M-Bus een effect heeft op de levensduur van de batterij (normaal 6 jaar). Iemand al ervaring met lege batterijen?

Mijn ervaring met Grafana zover is dat het uitstekend geschikt is voor het visualiseren van de verschillende data. Afzonderlijke signalen kun je wiskundig manipuleren, maar voor onderlinge signalen heb ik dit nog niet gevonden.

Nog een vreemd iets: de Virtual Devices die vanuit LUA scripts gevoed worden kan ik om de een of andere reden niet doorsturen naar InfluxDB en Grafana? Ontbreekt er iets in de LUA scripts, of een andere virtual device gebruiken?

Daarnaast gebruik ik nu ook een LUA script om de kWh elektriciteit van de Loria uit te splitsen naar SWW (geen flow over CV deel) en CV (wel flow over het CV deel).

Afbeeldingslocatie: http://i66.tinypic.com/24cryg8.jpg

14.4kWp, Loria Duo 6010, VWTW, DWTW, full-electric, MY RWD


Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
@Chris_82
Heeft het "virtual" device uitlezen misschien hier iets mee te maken?
https://www.domoticz.com/forum/viewtopic.php?t=14888#p126459
Met een remote server werkt dat ook niet.

Ik heb een paar m-bus kWh meters aangeschaft, eens kijken of dat ook wil met de m-bus adapter...

[ Voor 5% gewijzigd door AUijtdehaag op 16-10-2017 19:55 ]

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


Acties:
  • +2 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
Heb nu ook 2 chinese m-bus adapters binnen van alie
Ik merk geen verschil met de Relay adapter. (behalve de prijs :'( )

Ik ga eens uitzoeken hoe het op een synology aan de praat te krijgen (via docker op een 716+)
Dan kan dit topic dicht 8)

[ Voor 18% gewijzigd door AUijtdehaag op 01-11-2017 19:12 ]

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


Acties:
  • 0 Henk 'm!

Anoniem: 925609

Hi @AUijtdehaag ,

Vorige week heb ik een nieuwe poging ondernomen. Ik ben nu een flinke stap voorwaarts.
Het M-Bus script is werkend en ik krijg output van mijn Kampstrup Multical 402.

Hierbij het script, er zijn wat andere registers t.o.v. Multical 302 (wellicht is voor anderen onderstaande bruikbaar):

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
#!/usr/bin/php
<?php
//***********************************
//Kamstrup Multical 402 with ID:61 readout and send to mysql database kamstrup.db
//***********************************
$output = shell_exec("sudo /usr/local/bin/mbus-serial-request-data -d -b 2400 /dev/ttyUSB0 6"); //persistant usb drv RPi- "m-busadress 61" 
$xmloutput=substr($output,strpos($output,'<MBusData>'));
$xmloutput = new SimpleXMLElement($xmloutput);
$CounterID=$xmloutput->SlaveInformation->Id;
$EnergyValue=$xmloutput->DataRecord[1]->Value;                  //  <<-- Overnemen in Domoticz
$TotalVolume=$xmloutput->DataRecord[2]->Value;                  //  <<-- Overnemen in Domoticz
$OnTime=$xmloutput->DataRecord[3]->Value;
$TempFlowValue=$xmloutput->DataRecord[4]->Value;                //  <<-- Overnemen in Domoticz
$TempReturnValue=$xmloutput->DataRecord[5]->Value;          //  <<-- Overnemen in Domoticz  
$TempDiffValue=$xmloutput->DataRecord[6]->Value;                //  <<-- Overnemen in Domoticz
$PowerInstValue=$xmloutput->DataRecord[7]->Value;               //  <<-- Overnemen in Domoticz
$PowerMaxValue=$xmloutput->DataRecord[8]->Value;
$FlowInstValue=$xmloutput->DataRecord[9]->Value;                //  <<-- Overnemen in Domoticz
$FlowMaxValue=$xmloutput->DataRecord[10]->Value;
$EnergyTarif1InstValue=$xmloutput->DataRecord[11]->Value;
$EnergyTarif2InstValue=$xmloutput->DataRecord[12]->Value;
$Volume1Value=$xmloutput->DataRecord[13]->Value;
$Volume2Value=$xmloutput->DataRecord[14]->Value;
$EnergyInstValue=$xmloutput->DataRecord[15]->Value;
$TimePoint=$xmloutput->DataRecord[16]->Value;

$DomoticzIP="http://192.168.178.52:8080/";
$IDXTaanvoer=10;
$IDXTretour=11;
$IDXTdiff=12;
$IDXFlow=13;
$IDXHeat=14;
$IDXPower=15; //in Domoticz: type counter / energy?
$IDXTotalVolume = 16; 
$IDXEnergyCntr = 17;


//Function to send to Domoticz
    function ud($idx,$nvalue,$svalue,$name=""){
        print "  --- UPDATE ".$idx." ".$name." ".$nvalue." ".$svalue."
    ";
        file_get_contents("http://192.168.178.52:8080/".'json.htm?type=command&param=udevice&idx='.$idx.'&nvalue='.$nvalue.'&svalue='.$svalue);
        usleep(250000);
    }

//Function counter to send to Domoticz
    function uc($idx,$svalue,$name=""){
        print "  --- UPDATE ".$idx." ".$name." ".$svalue."
    ";
        file_get_contents("http://192.168.178.52:8080/".'json.htm?type=command&param=udevice&idx='.$idx.'&svalue='.$svalue);
        usleep(250000);
    }

// Taanvoer (C) to Domoticz 
ud($IDXTaanvoer,0,$TempFlowValue/100,0);

// Tretour (C) to Domoticz 
ud($IDXTretour,0,$TempReturnValue/100,0);

// Tdiff (K) to Domoticz 
ud($IDXTdiff,0,$TempDiffValue/100,0);

// Instant flow (ltr/h) to Domoticz 
ud($IDXFlow,0,$FlowInstValue,0);

// Instant Heat (kWh) to Domoticz 
ud($IDXHeat,0,$EnergyInstValue,0);

// Instant Power (watt) to Domoticz 
ud($IDXPower,0,$PowerInstValue*100,0);

//*************************************
// mysql
//*************************************
// working, but not further developed with this script

//$mysqlhost="localhost";
//$mysqluser="root";
//$mysqlpwd="raspberry";
//$connection=mysql_connect($mysqlhost,$mysqluser,$mysqlpwd) or die ("verbindings fout");
//$mysqldb="kamstrup";
//mysql_select_db($mysqldb,$connection) or die("Konnte die Datenbank nicht waehlen.");

//$sql = "INSERT INTO kamstrup (timevalue,fab_nr,energy_heat_inst,energy_cool_inst,onetimeheat,onetimecool,tempout,tempreturn,tempdiff,powerinst,powermax,flowinst,flowmax) VALUES (CURRENT_TIMESTAMP,$counterID,$heatValue,$coolValue,$ontimeheatValue,$ontimecoolValue,$tempoutValue,$tempreturnValue,$tempdiffValue,$powerinstValue,$powermaxValue,$flowinstValue,$flowmaxValue)";

//$result = mysql_query($sql); 
//if(!$result) 
//{ 
//   error_log("Query error ($sql): " . mysql_error()); 
//   echo "<p class='error'>Sorry, er was een database error.</p>"; 
//   echo "</body></html>"; 
//  exit; 
//} 

?>


Als ik "sudo php kamstrup.php" uitvoer krijg ik het volgende:

pi@PI2:~/domoticz/scripts $ sudo php kamstrup.php
[2017-11-08 18:27:30] SEND (005): 10 5B 06 61 16
[2017-11-08 18:27:31] RECV (253): 68 F7 F7 68 08 06 72 89 32 62 61 2D 2C 0B 04 08 00 00 00 0C 78 89 32 62 61 04 0F 14 01 00 00 04 14 8C 4E 00 00 04 22 D8 53 00 00 04 59 55 0B 00 00 04 5D AB 09 00 00 04 61 AA 01 00 00 04 2D 26 00 00 00 14 2D 4E 00 00 00 04 3B 11 03 00 00 14 3B 23 03 00 00 84 10 0F 00 00 00 00 84 20 0F 00 00 00 00 84 40 14 01 00 00 00 84 80 40 14 00 00 00 00 84 C0 40 0F 01 00 00 00 04 6D 19 34 28 2B 44 0F 00 00 00 00 44 14 00 00 00 00 54 2D 00 00 00 00 54 3B 00 00 00 00 C4 10 0F 00 00 00 00 C4 20 0F 00 00 00 00 C4 40 14 01 00 00 00 C4 80 40 14 00 00 00 00 C4 C0 40 0F 00 00 00 00 42 6C 1F 2C 0F 00 00 00 00 CC 15 00 00 3D 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B3 A5 00 00 98 53 00 00 1F FD 24 00 F9 4B AC 03 00 00 00 00 01 11 01 05 04 70 01 02 00 00 00 00 00 EA 16
--- UPDATE 10 0 0 29.01
--- UPDATE 11 0 0 24.75
--- UPDATE 12 0 0 4.26
--- UPDATE 13 0 0 785
--- UPDATE 14 0 0 1
--- UPDATE 15 0 0 3800


Is dit normaal? Want de naam Domotics device 'namen' worden niet weergegeven.

Moet je in Domoticz één Hardware apparaat aanmaken en dan daaraan allemaal virtuele sensoren toevoegen? Of voor ieder M-Bus 'kanaal' een apart hardware apparaat aanmaken?

[ Voor 11% gewijzigd door Anoniem: 925609 op 08-11-2017 22:13 . Reden: typefout correctie ]


Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
@Anoniem: 925609
Je moet dummy's maken (1 dummy device aanmaken en daar vanaf meer dummys maken) en het Idx nummer in het php script verwerken, Idx nummer van de dummy staat onder hardware apparaten
$IDXTaanvoer=12; //in Domoticz: type temperature
$IDXTretour=13; //in Domoticz: type temperature
$IDXTdiff=14; //in Domoticz: type temperature
$IDXHeat=15; //in Domoticz: type custom sensor kWh
$IDXCool=16; //in Domoticz: type custom sensor kWh
$IDXFlow=17; //in Domoticz: type waterflow
$IDXPower=18; //in Domoticz: type verbruik / elektra
$IDXEnergyCntr = 17;
--- UPDATE 10 0 0 29.01 Taanvoer
--- UPDATE 11 0 0 24.75 Tretour
--- UPDATE 12 0 0 4.26 Tdiff
--- UPDATE 13 0 0 785 (flow)
--- UPDATE 14 0 0 1 (?)
--- UPDATE 15 0 0 3800 (Power)

[ Voor 20% gewijzigd door AUijtdehaag op 08-11-2017 20:44 ]

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


Acties:
  • +2 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
Voor diegene die het op een pi willen installeren, hier nog een opsomming:
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
sudo apt-get install libtool automake

# copy libmbus-master to pi
wget https://github.com/rscada/libmbus/archive/master.zip
unzip master.zip
cd libmbus-master

autoheader && aclocal && libtoolize --ltdl --copy --force && automake --add-missing --copy && autoconf

./configure
make
sudo make install

sudo ln -s /usr/local/lib/libmbus.so.0 /usr/lib/libmbus.so.0

cd
rm master.zip

# M-bus adres opzoeken
/usr/local/bin/mbus-serial-scan -d -b 2400 /dev/ttyUSB0 

# testen, het adres wat gevonden was is 61
/usr/local/bin/mbus-serial-request-data -d -b 2400 /dev/ttyUSB0 61

#Als de Pi geen php doet:
sudo su
sudo apt-get install php5-cli
exit


En nogmaals het kamstrup.php script voor een 302:
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
#!/usr/bin/php
<?php
//***********************************
//Kamstrup Multical 302 with ID:61 readout and send to mysql database kamstrup.db
//***********************************
$output = shell_exec("sudo /usr/local/bin/mbus-serial-request-data -d -b 2400 /dev/ttyUSB0 61"); //usb drv RPi- "m-busadress 61"
$xmloutput=substr($output,strpos($output,'<MBusData>'));
$xmloutput = new SimpleXMLElement($xmloutput);
$counterID=$xmloutput->SlaveInformation->Id;
$heatValue=$xmloutput->DataRecord[1]->Value;
$coolValue=$xmloutput->DataRecord[2]->Value;
$ontimeheatValue=$xmloutput->DataRecord[6]->Value;
$ontimecoolValue=$xmloutput->DataRecord[7]->Value;
$tempoutValue=$xmloutput->DataRecord[8]->Value;
$tempreturnValue=$xmloutput->DataRecord[9]->Value;
$tempdiffValue=$xmloutput->DataRecord[10]->Value;
$powerinstValue=$xmloutput->DataRecord[11]->Value;
$powermaxValue=$xmloutput->DataRecord[12]->Value;
$flowinstValue=$xmloutput->DataRecord[13]->Value;
$flowmaxValue=$xmloutput->DataRecord[14]->Value;
$heatenergymonthValue=$xmloutput->DataRecord[17]->Value;
$coolenergymonthValue=$xmloutput->DataRecord[18]->Value;

$DomoticzIP="http://127.0.0.1:8080/";
$IDXTaanvoer=12; //in Domoticz: type temperature
$IDXTretour=13; //in Domoticz: type temperature
$IDXTdiff=14; //in Domoticz: type temperature
$IDXHeat=15; //in Domoticz: type custom sensor kWh
$IDXCool=16;  //in Domoticz: type custom sensor kWh
$IDXFlow=17; //in Domoticz: type waterflow
$IDXPower=18; //in Domoticz: type verbruik / elektra


//Function to send to Domoticz
    function ud($idx,$nvalue,$svalue,$name=""){
        print "  --- UPDATE ".$idx." ".$name." ".$nvalue." ".$svalue."
    ";
        file_get_contents("http://127.0.0.1:8080/".'json.htm?type=command&param=udevice&idx='.$idx.'&nvalue='.$nvalue.'&svalue='.$svalue);
        usleep(250000);
    }

//Function counter to send to Domoticz
    function uc($idx,$svalue,$name=""){
        print "  --- UPDATE ".$idx." ".$name." ".$svalue."
    ";
        file_get_contents("http://127.0.0.1:8080/".'json.htm?type=command&param=udevice&idx='.$idx.'&svalue='.$svalue);
        usleep(250000);
    }

// Taanvoer (C) to Domoticz (kamstrup Reg 8)
ud($IDXTaanvoer,0,$tempoutValue/100,0);

// Tretour (C) to Domoticz (kamstrup Reg 9)
ud($IDXTretour,0,$tempreturnValue/100,0);

// Tdiff (C) to Domoticz (kamstrup Reg 10)
ud($IDXTdiff,0,$tempdiffValue/100,0);

// Instant Heat (kWh) to Domoticz (kamstrup Reg 1)
ud($IDXHeat,0,$heatValue,0);

// Instant Cool (kWh) Domoticz (kamstrup Reg 2)
ud($IDXCool,0,$coolValue,0);

// Instant flow (ltr/h) to Domoticz (kamstrup Reg 13)
ud($IDXFlow,0,$flowinstValue,0);

// Instant Power (watt) to Domoticz (kamstrup Reg 11)
ud($IDXPower,0,$powerinstValue*100,0);


//*************************************
// mysql
//*************************************
// working, but not further developed with this script

//$mysqlhost="localhost";
//$mysqluser="root";
//$mysqlpwd="raspberry";
//$connection=mysql_connect($mysqlhost,$mysqluser,$mysqlpwd) or die ("verbindings fout");
//$mysqldb="kamstrup";
//mysql_select_db($mysqldb,$connection) or die("Konnte die Datenbank nicht waehlen.");

//$sql = "INSERT INTO kamstrup (timevalue,fab_nr,energy_heat_inst,energy_cool_inst,onetimeheat,onetimecool,tempout,tempreturn,tempdiff,powerinst,powermax,flowinst,flowmax) VALUES (CURRENT_TIMESTAMP,$counterID,$heatValue,$coolValue,$ontimeheatValue,$ontimecoolValue,$tempoutValue,$tempreturnValue,$tempdiffValue,$powerinstValue,$powermaxValue,$flowinstValue,$flowmaxValue)";

//$result = mysql_query($sql); 
//if(!$result) 
//{ 
//   error_log("Query error ($sql): " . mysql_error()); 
//   echo "<p class='error'>Sorry, er was een database error.</p>"; 
//   echo "</body></html>"; 
//  exit; 
//} 

?>


Dat kan dan aangeroepen worden met een crontab -e
code:
1
*/1 * * * * php /home/pi/domoticz/scripts/kamstrup.php

[ Voor 74% gewijzigd door AUijtdehaag op 17-07-2018 10:29 . Reden: typo ]

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


Acties:
  • +1 Henk 'm!

  • Daannn1987
  • Registratie: December 2012
  • Laatst online: 07:05
Ben alvast even een shoppinglijstje aan het bouwen voor een Kamstrup..
@AUijtdehaag klopt dit zo'n beetje of mis ik iets?

Kamstrup zelf
https://zaehleronlineshop...ler-MULTICAL-302-Qn-25-52

Kogelkraan met fitting voor sensor
https://zaehleronlineshop...-1-Zoll-MID-direktmessend

2 kogelkranen om de kamstrup zelf tussen te plaatsen koop ik hier ergens wel in NL (heb er nog meer nodig tzt).

Mbus Master
https://nl.aliexpress.com...75406a43&rmStoreLevelAB=0

Uiteraard komen er nog wat knelringen etc bij maar dat haal ik wel bij de plaatselijke hornbach

[ Voor 4% gewijzigd door Daannn1987 op 18-11-2017 11:08 ]

21xDMEGC 440wp (9240) ||| Pana 9j


Acties:
  • +1 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
@Daannn1987
Je hebt een kamstrup nodig met m-bus module erin.
https://www.energie-zaehl.../WMZ-Multical-302-25-Mbus
Die jij linkte heeft geen mbus module.

Voor de rest klopt het.

De kamstrup zet je het makkelijkste vast met die twee kogelkranen.
Dan kan er een (vlak) pakkinkje tussen. Fitten van de kamstrup zelf is lastiger.

[ Voor 36% gewijzigd door AUijtdehaag op 18-11-2017 15:42 ]

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


Acties:
  • 0 Henk 'm!

  • buiter
  • Registratie: December 2001
  • Laatst online: 08:56
Is iemand ook bezig om de wireless m-bus aan de praat te krijgen?
Of beter: is het iemand gelukt om de kamstrup 302 draadloos uit te lezen?

Acties:
  • +1 Henk 'm!

  • buiter
  • Registratie: December 2001
  • Laatst online: 08:56
Even een update:
Mij is het al gelukt om draadloos informatie uit de Kamstrup Multical 302 te halen.

Wat heb je nodig:
- Kamstrup Multical 302
- AES code (aan te schaffen via de partij waar je de warmtemeter hebt gekocht)
- Een iM871A-USB stick
- Een Raspberry Pi
- Software voor het het ontvangen/decode van data: https://github.com/weetmuts/wmbusmeters

In de basis werkt de code van weetmuts direct (ondanks dat deze voor een andere Multical is gemaakt)

Een aantal weetjes:
Standaard is de 302 geconfigureerd in de C1 mode (een soort drive by modus)
Updates komen elke 10-15 seconden voorbij.
Nadeel: de informatie schiet nog te kort.

Wat volgens de specificaties wordt gestuurd:
Afbeeldingslocatie: https://tweakers.net/ext/f/pYUJAWCtunveFf2o9anc4xdc/thumb.png


In de T1 modus vindt je meer details:
Afbeeldingslocatie: https://tweakers.net/ext/f/H5xlzb4ThXOQyjaJ6MDz1xFi/thumb.png

Die laatste opties is mijn doel om te bereiken.
Daarvoor moet een instelling in de Multical aangepast worden, daar be ik nu mee bezig.
Update volt later

Acties:
  • 0 Henk 'm!

  • buiter
  • Registratie: December 2001
  • Laatst online: 08:56
Update:

Omzetten naar T1 is me (nog) niet gelukt.
Voorlopig doe ik het met de C1.

Resultaat: elke 16 seconden ontvang ik ene bericht en schrijf ik dee weg in een database.
Informatie die ik nu log:
- Totaal vermogen (E1)
- Totale volume
- Vermogen (van dat moment)

Informatie wil ik graag delen maar is nu nog "as it is".
Wel verwacht ik de aanpassing heel eenvoudig aangevuld kan worden in de WMBUSMETERS.

De aangepast scripts staan op Github:
https://github.com/IBUSOL/wmbusmeters

[ Voor 11% gewijzigd door buiter op 15-12-2017 11:46 ]


Acties:
  • 0 Henk 'm!

  • tim-1985
  • Registratie: December 2009
  • Laatst online: 09-04 19:56
@buiter Goed bezig! Ik heb ook een Multical 302 WM-bus en zou deze graag willen uitlezen.
Ben alleen niet thuis in R-Pi (arduino gaat me wel redelijk af). Ik heb een R-Pi gekocht, kan nog achter de iM871A-USB stick aan en heb werkelijk geen idee waar ik de AES code kan vinden.

Kan je mij verder op weg helpen? _/-\o_

Acties:
  • 0 Henk 'm!

  • buiter
  • Registratie: December 2001
  • Laatst online: 08:56
tim-1985 schreef op vrijdag 15 december 2017 @ 16:33:
@buiter Goed bezig! Ik heb ook een Multical 302 WM-bus en zou deze graag willen uitlezen.
Ben alleen niet thuis in R-Pi (arduino gaat me wel redelijk af). Ik heb een R-Pi gekocht, kan nog achter de iM871A-USB stick aan en heb werkelijk geen idee waar ik de AES code kan vinden.

Kan je mij verder op weg helpen? _/-\o_
AES code is absoluut noodzakelijk!
Ik weet niet of ze met een generieke AES code werken of dat deze voor elke warmtemeter uniek is.
Voor zover ik heb begrepen verkoopt Kamstrup standaard de warmtemeters met AES code, echter het lijkt erop dat een verkoper de optie heeft om dit niet te doen. (wellicht zijn ze daardoor voordeliger)

Betekend wel dat je een AES code moet kopen á €30.
Deze kun je aanvragen bij de partij waar je de warmtemeter hebt gekocht.
Als de verkopende partij niet bij je bekend is, dan moet je even contact zoeken met Kamstrup.

Acties:
  • 0 Henk 'm!

Anoniem: 1048399

Thanks for creating the Multical302 fork! I have now restructured the code and re-integrated your changes to properly support Multical302. Please test! I cannot, since I have no Multical302 myself.

If you use --debug you should now be able to follow the parsing of the messages much more clearly.
Also --logtelegrams (implicit when you use --debug) will log strings like "telegram=|header|decrypted payload|" that can be used for insertion into simulation.txt for future regression testing.

There are some other improvements as well (--robot=fields) check the README.

Acties:
  • 0 Henk 'm!

  • Speedy-Andre
  • Registratie: Maart 2002
  • Laatst online: 16:20

Speedy-Andre

Sony ZL, XA, Nokia XR20

Interressant topic O+
Ik ben bezig met een watermeter met wmbus, kan ik die hier mee uitlezen?
Wat specs :)

[edit]En een betaalbare wireless mbus stick :)
€61,17 totaal, geen hobby prijs O-)

[ Voor 18% gewijzigd door Speedy-Andre op 05-03-2018 14:23 ]

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


Acties:
  • 0 Henk 'm!

  • buiter
  • Registratie: December 2001
  • Laatst online: 08:56
Anoniem: 1048399 schreef op maandag 5 maart 2018 @ 12:39:
[...]


Thanks for creating the Multical302 fork! I have now restructured the code and re-integrated your changes to properly support Multical302. Please test! I cannot, since I have no Multical302 myself.

If you use --debug you should now be able to follow the parsing of the messages much more clearly.
Also --logtelegrams (implicit when you use --debug) will log strings like "telegram=|header|decrypted payload|" that can be used for insertion into simulation.txt for future regression testing.

There are some other improvements as well (--robot=fields) check the README.
Great that you find me on this forum!
I will check the new version as soon as possible...
My work is only some fine cut and paste work but it works great!

Acties:
  • +1 Henk 'm!

Anoniem: 1048399

It looks like a mechanical meter that can send its measurements using wireless mbus S1 and T1 modes.

wmbusmeters currently does not support S1 or T1 mode, mostly because I have no access to such meters.

But if you can get a spec from the meter manufacturer on the protocol, it should be possible to add such support. Or if you are adventurous, it is possible to try to deduce the protocol without the spec. :-) MBus is actually quite formally specified, so theoretically it is a standard setup.
Speedy-Andre schreef op maandag 5 maart 2018 @ 13:40:
€61,17 totaal, geen hobby prijs O-)

Acties:
  • 0 Henk 'm!

  • Speedy-Andre
  • Registratie: Maart 2002
  • Laatst online: 16:20

Speedy-Andre

Sony ZL, XA, Nokia XR20

Here you can find how the water meters are read by the dutch smart meter (P2).

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


Acties:
  • +1 Henk 'm!

  • Bl4ckviper
  • Registratie: Mei 2002
  • Laatst online: 01-04 15:39

Bl4ckviper

BlaBlaBla

Inmiddels hangt hij hier.

Vanaf 29-3 13 uur tot nu staat er 215,9 kwh bij e1 om de cop nu te bepalen kan ik 215,9/(wp verbruik - wp verbruik ssw)?

Kamstrup aanvoer zit alleen maar in het cv deel.

Klopt mijn berekening voor de cop? Voordat uk begin met scriptjes ed.

Be fast .... Be furious....


Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
Cop = afgegeven vermogen (kamstrup) / opgenomen vermogen (kWh meter)

Je hebt beide gegevens?
Ik vermoed dat je er 54 kWh ingestopt hebt. Dus een cop van 4

Als je alleen meet in het cv deel, dien je ook inderdaad de kWh te nemen die verbruikt zijn tijdens cv bedrijf.

[ Voor 32% gewijzigd door AUijtdehaag op 02-04-2018 22:29 ]

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


Acties:
  • 0 Henk 'm!

  • Bl4ckviper
  • Registratie: Mei 2002
  • Laatst online: 01-04 15:39

Bl4ckviper

BlaBlaBla

AUijtdehaag schreef op maandag 2 april 2018 @ 22:20:
Cop = afgegeven vermogen (kamstrup) / opgenomen vermogen (kWh meter)

Je hebt beide gegevens?
Ik vermoed dat je er 54 kWh ingestopt hebt. Dus een cop van 4

Als je alleen meet in het cv deel, dien je ook inderdaad de kWh te nemen die verbruikt zijn tijdens cv bedrijf.
Ja zeker.

Ik heb sww beetje geschat. Weet tussen welke tijd het is dus wil straks dat geautomatiseerd eraf trekken.

Kwam op cop van 3,97.

Het klopt dus dat de kampstrup ook in kwh meld.

Be fast .... Be furious....


Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
@Bl4ckviper
Dat is ook in kwh idd.
Cop van 3.97 komt aardig overeen met mijn cop vorige maand.
Ook met kamstrup en kWh meter.

Dat is tijdens cv bedrijf. Hoewel ik gebruik maak van een hygienespiraal voor tapwater op mijn 450 ltr rvs vat op 31 graden.

[ Voor 33% gewijzigd door AUijtdehaag op 03-04-2018 11:47 ]

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


Acties:
  • 0 Henk 'm!

  • Speedy-Andre
  • Registratie: Maart 2002
  • Laatst online: 16:20

Speedy-Andre

Sony ZL, XA, Nokia XR20

AUijtdehaag schreef op zaterdag 10 juni 2017 @ 10:49:
Ik kwam deze nog tegen voor wireless mbus:
https://github.com/ffcrg/ecpiww

Ik heb verder niet gekeken naar hoe het werkt. Iemand die een poging wil wagen met wireless m-bus?
buiter schreef op vrijdag 1 december 2017 @ 22:10:
Even een update:
Mij is het al gelukt om draadloos informatie uit de Kamstrup Multical 302 te halen.

Wat heb je nodig:
- Kamstrup Multical 302
- AES code (aan te schaffen via de partij waar je de warmtemeter hebt gekocht)
- Een iM871A-USB stick
- Een Raspberry Pi
- Software voor het het ontvangen/decode van data: https://github.com/weetmuts/wmbusmeters

In de basis werkt de code van weetmuts direct (ondanks dat deze voor een andere Multical is gemaakt)

Een aantal weetjes:
Standaard is de 302 geconfigureerd in de C1 mode (een soort drive by modus)
Updates komen elke 10-15 seconden voorbij.
Nadeel: de informatie schiet nog te kort.

Wat volgens de specificaties wordt gestuurd:
[afbeelding]


In de T1 modus vindt je meer details:
[afbeelding]

Die laatste opties is mijn doel om te bereiken.
Daarvoor moet een instelling in de Multical aangepast worden, daar be ik nu mee bezig.
Update volt later
Speedy-Andre schreef op maandag 5 maart 2018 @ 13:40:
Interressant topic O+
Ik ben bezig met een watermeter met wmbus, kan ik die hier mee uitlezen?
Wat specs :)

[edit]En een betaalbare wireless mbus stick :)
€61,17 totaal, geen hobby prijs O-)
Ik ben benieuwd over bovenstaande 3 quotes te combineren zijn :>
De Axioma watermeter (manual) zendt S1 en T1 data, wat dat ook mag betekenen met watermeters :9
Ik zoek een manier om hem uit te lezen, maar ik wil liever geen dure wmbus usb stick kopen zonder te weten of ik daar iets aan heb :+
Overigens zag ik een module die geen usb heeft maar directe communicatie bus (zoals CC1101) :)
Als je met een Rpi werkt kan hij op de header maar bovenstaande software moet dat dan weten.

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


Acties:
  • 0 Henk 'm!

  • Bl4ckviper
  • Registratie: Mei 2002
  • Laatst online: 01-04 15:39

Bl4ckviper

BlaBlaBla

Nou kan hem uitlezen:

XML:
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
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>

    <SlaveInformation>
        <Id>67623789</Id>
        <Manufacturer>KAM</Manufacturer>
        <Version>48</Version>
        <ProductName/>
        <Medium>Heat: Inlet</Medium>
        <AccessNumber>0</AccessNumber>
        <Status>00</Status>
        <Signature>0000</Signature>
    </SlaveInformation>

    <DataRecord id="0">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Fabrication number</Unit>
        <Value>67623789</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="1">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Energy (100 Wh)</Unit>
        <Value>2617</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="2">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Energy (100 Wh)</Unit>
        <Value>30</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="3">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>36755</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="4">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>34516</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="5">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Volume (m m^3)</Unit>
        <Value>134547</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="6">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>On time (hours)</Unit>
        <Value>2196</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="7">
        <Function>Value during error state</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>On time (hours)</Unit>
        <Value>0</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="8">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Flow temperature (1e-2 deg C)</Unit>
        <Value>2119</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="9">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Return temperature (1e-2 deg C)</Unit>
        <Value>2181</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="10">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Temperature Difference (1e-2  deg C)</Unit>
        <Value>-62</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="11">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Power (100 W)</Unit>
        <Value>0</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="12">
        <Function>Maximum value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Power (100 W)</Unit>
        <Value>92</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="13">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Volume flow (m m^3/h)</Unit>
        <Value>0</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="14">
        <Function>Maximum value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Volume flow (m m^3/h)</Unit>
        <Value>1236</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="15">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Error flags</Unit>
        <Value>0</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="16">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Time Point (time &amp; date)</Unit>
        <Value>2018-04-04T22:22:00</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="17">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Energy (100 Wh)</Unit>
        <Value>1054</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="18">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Energy (100 Wh)</Unit>
        <Value>9</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="19">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>13715</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="20">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>12810</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="21">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Volume (m m^3)</Unit>
        <Value>50368</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="22">
        <Function>Maximum value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Power (100 W)</Unit>
        <Value>-108</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="23">
        <Function>Maximum value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Volume flow (m m^3/h)</Unit>
        <Value>1400</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="24">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Time Point (date)</Unit>
        <Value>2018-03-31</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="25">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>67623789</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="26">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>37239</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="27">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>13302000</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="28">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>6145</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="29">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Firmware version</Unit>
        <Value>1793</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>
    


Nu vraag ik mij alleen nog af waarom de timestamp 2 uur te laat is. Tijd staat goed in de Pi en ook op de kamstrup.. De timepoint is wel correct.

In het begin zie ik ook dit:
[2018-04-04 20:31:36Z] SEND (005): 10 40 FD 3D 16
Die tijd is ook al vreemd..

Be fast .... Be furious....


Acties:
  • 0 Henk 'm!

  • maxxie85
  • Registratie: Augustus 2015
  • Laatst online: 12:21
Speedy-Andre schreef op dinsdag 3 april 2018 @ 21:26:
Ik ben benieuwd over bovenstaande 3 quotes te combineren zijn :>
De Axioma watermeter (manual) zendt S1 en T1 data, wat dat ook mag betekenen met watermeters :9
Ik zoek een manier om hem uit te lezen, maar ik wil liever geen dure wmbus usb stick kopen zonder te weten of ik daar iets aan heb :+
Overigens zag ik een module die geen usb heeft maar directe communicatie bus (zoals CC1101) :)
Als je met een Rpi werkt kan hij op de header maar bovenstaande software moet dat dan weten.
Ik ben ook erg geïnteresseerd in dit project. Ik zelf heb een Kamstrup 403. Ik kan aan de dynamische code zien dat deze een w-mbus module bevat en zou deze ook graag willen uitlezen in mijn domotica oplossing. Dit zou voor mij Home-Assistant zijn.
Echter de eerste stap zou zijn om via de Pi in de meterkast de Kamstrup 403 uit te lezen.

Zo ver ik kan lezen in de handleidingen van Kamstrup lees ik dat hun protocol universeel over alle meters zou moeten zijn.
Internal data communication in MULTICAL 403 is based on the Kamstrup Meter Protocol (KMP) which provides a fast
and flexible reading structure and also fulfils future requirements to data reliability.
The KMP protocol is used in all Kamstrup consumption meters launched from 2006 onwards. The protocol is used for
the optical eye and via plug pins for the module area. Thus, modules with e.g. M-Bus interface use the KMP protocol
internally and the M-Bus protocol externally.
Integrity and authenticity of data
All data parameters include type, measuring unit, scaling factor and CRC16 check sum.
Every produced meter includes a unique identification number
Zal de multical 403 ook uit te lezen zijn als het programma van Git geconfigureerd is als een multical302?

Edit:
Link naar technische datasheet voor de geïntresseerde
http://products.kamstrup....d=570e5173e46cd&display=1

[ Voor 3% gewijzigd door maxxie85 op 05-04-2018 19:55 ]


Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
Bl4ckviper schreef op woensdag 4 april 2018 @ 22:32:
Nou kan hem uitlezen:

XML:
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
<?xml version="1.0" encoding="ISO-8859-1"?>
<MBusData>

    <SlaveInformation>
        <Id>67623789</Id>
        <Manufacturer>KAM</Manufacturer>
        <Version>48</Version>
        <ProductName/>
        <Medium>Heat: Inlet</Medium>
        <AccessNumber>0</AccessNumber>
        <Status>00</Status>
        <Signature>0000</Signature>
    </SlaveInformation>

    <DataRecord id="0">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Fabrication number</Unit>
        <Value>67623789</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="1">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Energy (100 Wh)</Unit>
        <Value>2617</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="2">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Energy (100 Wh)</Unit>
        <Value>30</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="3">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>36755</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="4">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>34516</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="5">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Volume (m m^3)</Unit>
        <Value>134547</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="6">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>On time (hours)</Unit>
        <Value>2196</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="7">
        <Function>Value during error state</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>On time (hours)</Unit>
        <Value>0</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="8">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Flow temperature (1e-2 deg C)</Unit>
        <Value>2119</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="9">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Return temperature (1e-2 deg C)</Unit>
        <Value>2181</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="10">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Temperature Difference (1e-2  deg C)</Unit>
        <Value>-62</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="11">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Power (100 W)</Unit>
        <Value>0</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="12">
        <Function>Maximum value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Power (100 W)</Unit>
        <Value>92</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="13">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Volume flow (m m^3/h)</Unit>
        <Value>0</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="14">
        <Function>Maximum value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Volume flow (m m^3/h)</Unit>
        <Value>1236</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="15">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Error flags</Unit>
        <Value>0</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="16">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Time Point (time &amp; date)</Unit>
        <Value>2018-04-04T22:22:00</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="17">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Energy (100 Wh)</Unit>
        <Value>1054</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="18">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Energy (100 Wh)</Unit>
        <Value>9</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="19">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>13715</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="20">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>12810</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="21">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Volume (m m^3)</Unit>
        <Value>50368</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="22">
        <Function>Maximum value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Power (100 W)</Unit>
        <Value>-108</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="23">
        <Function>Maximum value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Volume flow (m m^3/h)</Unit>
        <Value>1400</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="24">
        <Function>Instantaneous value</Function>
        <StorageNumber>1</StorageNumber>
        <Unit>Time Point (date)</Unit>
        <Value>2018-03-31</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="25">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>67623789</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="26">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>37239</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="27">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>13302000</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="28">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Manufacturer specific</Unit>
        <Value>6145</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>

    <DataRecord id="29">
        <Function>Instantaneous value</Function>
        <StorageNumber>0</StorageNumber>
        <Unit>Firmware version</Unit>
        <Value>1793</Value>
        <Timestamp>2018-04-04T20:23:24Z</Timestamp>
    </DataRecord>
    


Nu vraag ik mij alleen nog af waarom de timestamp 2 uur te laat is. Tijd staat goed in de Pi en ook op de kamstrup.. De timepoint is wel correct.

In het begin zie ik ook dit:
[2018-04-04 20:31:36Z] SEND (005): 10 40 FD 3D 16
Die tijd is ook al vreemd..
Ik roep maar iets geks....
Zit je wel in de juiste tijdzone?
Sudo raspi-config

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


Acties:
  • 0 Henk 'm!

  • buiter
  • Registratie: December 2001
  • Laatst online: 08:56
Speedy-Andre schreef op dinsdag 3 april 2018 @ 21:26:
[...]


[...]


[...]


Ik ben benieuwd over bovenstaande 3 quotes te combineren zijn :>
De Axioma watermeter (manual) zendt S1 en T1 data, wat dat ook mag betekenen met watermeters :9
Ik zoek een manier om hem uit te lezen, maar ik wil liever geen dure wmbus usb stick kopen zonder te weten of ik daar iets aan heb :+
Overigens zag ik een module die geen usb heeft maar directe communicatie bus (zoals CC1101) :)
Als je met een Rpi werkt kan hij op de header maar bovenstaande software moet dat dan weten.
Bij mijn weten is het verschil tussen S1 en T1 de hoeveelheid detail dat in een bericht binnenkomt.
In de kamstrup handleiding staat ongeveer wat meegestuurd wordt.
Omzetten van de modus zou moeten kunnen maar hiervan heb ik niet antwoord van Kamstrup gehad.
Ik krijg nu geen watertemperatuur informatie mee.

Over een tijdje gaat hier de WP uit en gaat mijn logging ook uit (PM me bij interesse om USB stock te testen)
Dan ga ik eerst de aanpassing van weetmuts eens testen.

Acties:
  • 0 Henk 'm!

  • Speedy-Andre
  • Registratie: Maart 2002
  • Laatst online: 16:20

Speedy-Andre

Sony ZL, XA, Nokia XR20

buiter schreef op donderdag 5 april 2018 @ 20:11:
[...]

Bij mijn weten is het verschil tussen S1 en T1 de hoeveelheid detail dat in een bericht binnenkomt.
In de kamstrup handleiding staat ongeveer wat meegestuurd wordt.
Omzetten van de modus zou moeten kunnen maar hiervan heb ik niet antwoord van Kamstrup gehad.
Ik krijg nu geen watertemperatuur informatie mee.

Over een tijdje gaat hier de WP uit en gaat mijn logging ook uit (PM me bij interesse om USB stock te testen)
Dan ga ik eerst de aanpassing van weetmuts eens testen.
Ik heb nu geen goede 'sniffer' die wijs kan uit de data die hier in de lucht hangt :)
Een compleet geheel als een Pi met een usbstick (of een image dat op een Pi 2B draait) is wat ik zoek.
Deze watermeter zou geschikt moeten zijn voor 'drive by' controle, dat betekent dat hij regelmatig data zendt.
Wat ik niet weet is hoe een telegram eruit ziet, de watermeter toont een hele reeks getallen op het display.
Ook is me niet duidelijk of er af fabriek een codering wordt gebruikt zoals bij Kamstrup.

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


Acties:
  • 0 Henk 'm!

  • Bl4ckviper
  • Registratie: Mei 2002
  • Laatst online: 01-04 15:39

Bl4ckviper

BlaBlaBla

AUijtdehaag schreef op donderdag 5 april 2018 @ 20:09:
[...]


Ik roep maar iets geks....
Zit je wel in de juiste tijdzone?
Sudo raspi-config
Ik heb dat gedaan en de timezone veranderd

krijg het volgende:

Current default time zone: 'Europe/Amsterdam'
Local time is now: Thu Apr 5 22:18:50 CEST 2018.
Universal Time is now: Thu Apr 5 20:18:50 UTC 2018.

verder als ik date doe staat het wel goed:

date
Thu Apr 5 22:21:42 CEST 2018

echter nog steeds timestamps volgens de Universal time

Be fast .... Be furious....


Acties:
  • 0 Henk 'm!

  • Bl4ckviper
  • Registratie: Mei 2002
  • Laatst online: 01-04 15:39

Bl4ckviper

BlaBlaBla

AUijtdehaag schreef op maandag 9 oktober 2017 @ 22:04:
Kijk dat is goed nieuws! en flink goedkopere adapter....

Voor domoticz, maak je zelf dummy devices aan en roep je een php script aan via crontab-e, die de dummys vullen.
code:
1
*/1 * * * * php /home/pi/domoticz/scripts/kamstrup.php


Zelf ff aanpassen naar jouw gegevens:
kamstrup.php
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
#!/usr/bin/php
<?php
//***********************************
//Kamstrup Multical 302 with ID:61 readout and send to mysql database kamstrup.db
//***********************************
$output = shell_exec("sudo /usr/local/bin/mbus-serial-request-data -d -b 2400 /dev/ttyUSB0 61"); //persistant usb drv RPi- "m-busadress 61"
$xmloutput=substr($output,strpos($output,'<MBusData>'));
$xmloutput = new SimpleXMLElement($xmloutput);
$counterID=$xmloutput->SlaveInformation->Id;
$heatValue=$xmloutput->DataRecord[1]->Value;
$coolValue=$xmloutput->DataRecord[2]->Value;
$ontimeheatValue=$xmloutput->DataRecord[6]->Value;
$ontimecoolValue=$xmloutput->DataRecord[7]->Value;
$tempoutValue=$xmloutput->DataRecord[8]->Value;
$tempreturnValue=$xmloutput->DataRecord[9]->Value;
$tempdiffValue=$xmloutput->DataRecord[10]->Value;
$powerinstValue=$xmloutput->DataRecord[11]->Value;
$powermaxValue=$xmloutput->DataRecord[12]->Value;
$flowinstValue=$xmloutput->DataRecord[13]->Value;
$flowmaxValue=$xmloutput->DataRecord[14]->Value;
$heatenergymonthValue=$xmloutput->DataRecord[15]->Value;
$coolenergymonthValue=$xmloutput->DataRecord[16]->Value;

$DomoticzIP="http://192.168.0.196:8080/";
$IDXTaanvoer=135;
$IDXTretour=136;
$IDXTdiff=137;
$IDXHeat=444;
$IDXCool=445;
$IDXFlow=138;
$IDXPower=139; //in Domoticz: type counter / energy?
$IDXHeatMonth=449; //in Domoticz:
$IDXCoolMonth=450; //in Domoticz:


//Function to send to Domoticz
    function ud($idx,$nvalue,$svalue,$name=""){
        print "  --- UPDATE ".$idx." ".$name." ".$nvalue." ".$svalue."
    ";
        file_get_contents("http://192.168.0.196:8080/".'json.htm?type=command&param=udevice&idx='.$idx.'&nvalue='.$nvalue.'&svalue='.$svalue);
        usleep(250000);
    }

//Function counter to send to Domoticz
    function uc($idx,$svalue,$name=""){
        print "  --- UPDATE ".$idx." ".$name." ".$svalue."
    ";
        file_get_contents("http://192.168.0.196:8080/".'json.htm?type=command&param=udevice&idx='.$idx.'&svalue='.$svalue);
        usleep(250000);
    }

// Taanvoer (K) to Domoticz (kamstrup Reg 8)
ud($IDXTaanvoer,0,$tempoutValue/100,0);

// Tretour (K) to Domoticz (kamstrup Reg 9)
ud($IDXTretour,0,$tempreturnValue/100,0);

// Tdiff (K) to Domoticz (kamstrup Reg 10)
ud($IDXTdiff,0,$tempdiffValue/100,0);

// Instant Heat (kWh) to Domoticz (kamstrup Reg 1)
//ud($IDXHeat,0,$heatValue,0);

// Instant Cool (kWh) Domoticz (kamstrup Reg 2)
//ud($IDXCool,0,$coolValue,0);

// Instant flow (ltr/h) to Domoticz (kamstrup Reg 13)
ud($IDXFlow,0,$flowinstValue,0);

// Instant Power (watt) to Domoticz (kamstrup Reg 11)
ud($IDXPower,0,$powerinstValue*100,0);

// Total Heat power last month (kWh) to Domoticz (kamstrup Reg 15)
//ud($IDXHeatMonth,0,$heatenergymonthValue,0);

// Total Cool power last month (kWh) to Domoticz (kamstrup Reg 16)
//ud($IDXCoolMonth,0,$coolenergymonthValue*100,0);

//*************************************
// mysql
//*************************************
// working, but not further developed with this script

//$mysqlhost="localhost";
//$mysqluser="root";
//$mysqlpwd="raspberry";
//$connection=mysql_connect($mysqlhost,$mysqluser,$mysqlpwd) or die ("verbindings fout");
//$mysqldb="kamstrup";
//mysql_select_db($mysqldb,$connection) or die("Konnte die Datenbank nicht waehlen.");

//$sql = "INSERT INTO kamstrup (timevalue,fab_nr,energy_heat_inst,energy_cool_inst,onetimeheat,onetimecool,tempout,tempreturn,tempdiff,powerinst,powermax,flowinst,flowmax) VALUES (CURRENT_TIMESTAMP,$counterID,$heatValue,$coolValue,$ontimeheatValue,$ontimecoolValue,$tempoutValue,$tempreturnValue,$tempdiffValue,$powerinstValue,$powermaxValue,$flowinstValue,$flowmaxValue)";

//$result = mysql_query($sql); 
//if(!$result) 
//{ 
//   error_log("Query error ($sql): " . mysql_error()); 
//   echo "<p class='error'>Sorry, er was een database error.</p>"; 
//   echo "</body></html>"; 
//  exit; 
//} 

?>


Niet alle commentaren in het script zijn compleet, en sommige dummys gebruik ik nu niet, maar het werkt. ;)
Mocht je de cop willen berekenen heb ik ook nog wel een lua scriptje voor (heb je wel elektrisch opgenomen Watt gegevens voor nodig via domoticz)
Hi ik zit nog even naar de data en het script van jou te kijken maar zijn de waardes:

$heatenergymonthValue=$xmloutput->DataRecord[15]->Value;
$coolenergymonthValue=$xmloutput->DataRecord[16]->Value;

niet verkeerd? in de XML ook de eerste die jij hier hebt gepost staat op 15 en 16 de status code en het timepoint.

Ik denk dat je hier record 17 en 18 moet hebben uit storage 1:

<DataRecord id="17">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>Energy (100 Wh)</Unit>
<Value>1054</Value>
<Timestamp>2018-04-30T19:49:03Z</Timestamp>
</DataRecord>

<DataRecord id="18">
<Function>Instantaneous value</Function>
<StorageNumber>1</StorageNumber>
<Unit>Energy (100 Wh)</Unit>
<Value>9</Value>
<Timestamp>2018-04-30T19:49:03Z</Timestamp>
</DataRecord>

Be fast .... Be furious....


Acties:
  • 0 Henk 'm!

  • noo
  • Registratie: Januari 2012
  • Niet online

noo

Bl4ckviper schreef op donderdag 5 april 2018 @ 22:24:
[...]


Ik heb dat gedaan en de timezone veranderd

krijg het volgende:

Current default time zone: 'Europe/Amsterdam'
Local time is now: Thu Apr 5 22:18:50 CEST 2018.
Universal Time is now: Thu Apr 5 20:18:50 UTC 2018.

verder als ik date doe staat het wel goed:

date
Thu Apr 5 22:21:42 CEST 2018

echter nog steeds timestamps volgens de Universal time
De Kamstrup stuurt de timestamps in UTC aangezien je met UTC time geen last heb van zomer- en wintertijdwisselingen en de tijd alleen maar oploopt. De enig juiste optie voor dit soort toepassingen IMO.

Acties:
  • 0 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 22-04 12:15

Copitano

Hoorn NH

@AUijtdehaag
Vervolg van: Copitano in "Elga warmtepomp bij vorst"
@Copitano
AUijtdehaag in "Kamstrup Multical 302 met Pi uitlezen en domoticz"
of een hulplijntje inzetten (poort opengooien)
Ehhhhhh, wat bedoel je??? Noob :?

Afbeeldingslocatie: https://imgur.com/ygpAB1j.jpg

Loop hier nu ff helemaal vast na: https://domotiga.nl/projects/domotiga/wiki/M-Bus :/

Nu eerst maar ff :z

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp


Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
@Copitano
Heb je de master geinstalleerd, zoals ik hierboven, stap voor stap aangeef?

Ook sta je niet in /usr/local/bin/enzovoorts
Het commando is:
code:
1
/usr/local/bin/mbus-serial-scan -d -b 2400 /dev/ttyUSB0

Je bent de baudrate vergeten.
Met dmesg zou je kunnen kijken of de m-bus adapter op ttyUSB0 zit.

Verstandig is om persistant usb drives in te stellen
https://www.domoticz.com/wiki/PersistentUSBDevices
en
AUijtdehaag in "Kamstrup Multical 302 met Pi uitlezen en domoticz"

[ Voor 64% gewijzigd door AUijtdehaag op 22-10-2018 08:55 ]

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


Acties:
  • +1 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 22-04 12:15

Copitano

Hoorn NH

Ik heb de volgende commando's een voor een laten lopen in de Terminal:
$ sudo apt-get install libtool automake
$ wget https://github.com/rscada/libmbus/archive/master.zip
$ unzip master.zip
$ cd libmbus-master
$ autoheader && aclocal && libtoolize --ltdl --copy --force && automake --add-missing --copy && autoconf
$ ./configure
$ make
$ sudo make install
$ sudo ln -s /usr/local/lib/libmbus.so.0 /usr/lib/libmbus.so.0

Heb nu ook de Bautrate aangepast en voilà:
Hij spuugt dit uit:

Afbeeldingslocatie: https://imgur.com/SjDHtio.jpg
Afbeeldingslocatie: https://imgur.com/ct8dtBs.jpg
Afbeeldingslocatie: https://imgur.com/8lh675G.jpg

Daarna

Afbeeldingslocatie: https://imgur.com/R8ksypZ.jpg
Afbeeldingslocatie: https://imgur.com/bz0OenO.jpg
Dit zijn de onderste drie regels van een hele trits. Dat lijkt goed?
@AUijtdehaag
Gelukt _/-\o_ _/-\o_ _/-\o_
Afbeeldingslocatie: https://imgur.com/gtGaASz.jpg
Volgende stap: Database aanmaken :)

[ Voor 7% gewijzigd door Copitano op 22-10-2018 20:44 ]

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp


Acties:
  • 0 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 22-04 12:15

Copitano

Hoorn NH

@AUijtdehaag
Domoticz geïnstalleerd. Krijg deze foutmelding. Heb al in de router gekeken of ik daar iets bijzonders kon zien, maar helemaal niets over de poorten. :?
Afbeeldingslocatie: https://imgur.com/rAK9odN.jpg
iemand enig idee?
Hoe zet ik MySQL op de pi? Kan er niets over vinden tot nu.
Morgen maar weer verder :z

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp


Acties:
  • +1 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
@Copitano
Je start domoticz, terwijl die al draait? Dan zijn de poorten in gebruik idd.
Doe eens sudo domoticz blahblah status ?

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


Acties:
  • 0 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 22-04 12:15

Copitano

Hoorn NH

Ga ik morgen proberen. Ben nu voor werk buiten huis.

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp


Acties:
  • +1 Henk 'm!

  • Fr33z
  • Registratie: December 2003
  • Laatst online: 10:00
Copitano schreef op dinsdag 23 oktober 2018 @ 00:45:
@AUijtdehaag
Domoticz geïnstalleerd. Krijg deze foutmelding. Heb al in de router gekeken of ik daar iets bijzonders kon zien, maar helemaal niets over de poorten. :?
[Afbeelding]
iemand enig idee?
Hoe zet ik MySQL op de pi? Kan er niets over vinden tot nu.
Morgen maar weer verder :z
Dit gaat niet over de poorten in je router maar juist op je Pi. Domoticz probeert een server te starten op poort 8080 maar kan deze niet "binden" omdat er al iets anders deze poort gereserveerd heeft. Dit is puur een instelling op je Pi, niet in je router met port forwards o.i.d.

Acties:
  • 0 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 22-04 12:15

Copitano

Hoorn NH

@AUijtdehaag
@Fr33z
Met sudo service domoticz status krijg ik dit:
Afbeeldingslocatie: https://imgur.com/S7EtGdS.jpg
Zie wel de port nummers staan maar geen idee hoe ik de output moet interpreteren en hoe nu verder.

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp


Acties:
  • +1 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
@Copitano
Domoticz werkt dus.
Http://je-pi-ip-adres:8080

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


Acties:
  • 0 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 22-04 12:15

Copitano

Hoorn NH

@AUijtdehaag
Helaas moet ik weer om hulp vragen. Ik heb mysql (server en cliënt) geïnstalleerd op de pi. Volgens de beschrijving had ik een scherm moeten krijgen waar ik een wachtwoord had moeten invullen. Dat scherm is tijdens de installatie echter nooit verschenen. Installatie is wel gewoon afgerond. Ik heb het volgende geprobeerd:
pi@raspberrypi:/ $ mysql
ERROR 1698 (28000): Access denied for user 'pi'@'localhost'
pi@raspberrypi:/ $ mysql -p
Enter password:
ERROR 1698 (28000): Access denied for user 'pi'@'localhost'
Het wachtwoord heb ik leeg gelaten (want dat heb ik nooit opgegeven dus)
Met sudo mysql kom ik wel in MariaDB en met: SELECT host, user, password FROM mysql.user;
krijg ik een tabel met daarin als enige gebruiker 'root' en 'local host' en een wachtwoord bestaande uit hoofletters en getallen. Kopiëren en plakken van dat wachtwoord bij Enter password maakt geen verschil.
Als ik whoami doe krijg ik als antwoord: pi maar die zie ik niet als user in het tabelletje van mariaDB.
Heb al o.a. hier: https://mariadb.com/kb/en/library/alter-user/ gekeken, maar wordt er niet veel wijzer van.

suggesties?

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp


Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
Naar domoticz en via domoticz naar influxDB ?
Ben niet thuis dus advies geven is lastig.

[ Voor 32% gewijzigd door AUijtdehaag op 27-10-2018 15:54 ]

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


Acties:
  • 0 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 22-04 12:15

Copitano

Hoorn NH

@AUijtdehaag
Umme, je overschat mijn kennis van deze materie. Noob of Noobs hier op dit terrein maar wil het leren |:( .
Heb het na een weekendje trail en error al wel voor elkaar gekregen om in Domoticz contact te maken met de bridge van de Philips Hue verlichting (3 groepen ledlampen) maar echt aansturen gaat nog niet ik kan alle 3 groepen lampen aan schakelen maar ik kan maar een groep ook weer uitschakelen. Maar deze vorderingen terzijde. Iets voor later.
Terug naar de case:
Ik begrijp nog steeds niet waarom ik niet kan inloggen in MySql, :? behalve dan met sudo in MariaDB.

Is influxDB een alternatief voor MySql database of een aanvulling die ik appart moet installeren?

Kan nog wel een paar weekendjes en avondjes prutsen. De Kamstrup kan toch pas op 23 nov. door de monteur in de leiding worden ingebouwd.

Zijn er wellicht ook anderen die de struggle van bewuste onbekwaamheid met deze programma's hebben overwonnen? @Chris_82 ,@Stoofie ,@noo ?
Alleen met zoeken op het www kom ik er nog niet echt uit. Zit nog echt aan het begin van het laten communiceren van de verschillende componenten met elkaar. Ben dus pas later toe aan de mooie scripts die hier al in de topic staan. Alle hulp om de boel aan de praat te krijgen is welkom O+

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp


Acties:
  • 0 Henk 'm!

  • Stoofie
  • Registratie: Juni 2010
  • Laatst online: 22-04 20:20
@Copitano Bij mij draait het ook zonder specifieke linux/mysql-kennis, google is je grootste vriend!
Als ik zo lees waar je problemen liggen zou ik hier of hier eens kijken.
Dit is trouwens wel gebaseerd op jouw info en mijn google-kwaliteiten, inhoudelijk kan ik je ook weinig advies geven ;)
Overigens is via Domoticz naar InfluxDB en Grafana sowieso een leuke optie, als je Domoticz aan de praat hebt zou ik daar zeker eens naar kijken. (bijvoorbeeld hier)

@Liander:Ja, ik snap dat jullie een probleem hebben, en nee, dat geeft jullie niet het recht ons op een ongeoorloofde manier geld af proberen te troggelen... Dank voor het crediteren van de onterechte factuur, nu de rest van Nederland nog...


Acties:
  • 0 Henk 'm!

  • Chris_82
  • Registratie: Oktober 2017
  • Laatst online: 21-04 12:22
@Copitano Zoals het bericht hierboven van Stoofie aangeeft (Domoticz/InfluxDB/Grafana), zo heb ik het ook draaien.

Nog een andere tutorial: https://tech.scargill.net/grafana-and-influxdb/
Daar staan na een paar alinea's een stuk of 20 regels code om uit te voeren, daarna in influx de database 'domoticz' (of een andere naam) aanmaken. (let op enkele typefouten in de tutorial zoals infliux). Ook even opletten of je jessie of stretch of een andere distribution gebruikt.

Vanuit Domoticz is het vervolgens kinderlijk eenvoudig om alle meetgegevens naar de database te sturen via Setup > More Options > Data Push > InfluxDB. Port is standaard 8086 voor InfluxDB.

14.4kWp, Loria Duo 6010, VWTW, DWTW, full-electric, MY RWD


Acties:
  • 0 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 22-04 12:15

Copitano

Hoorn NH

Nu ook even op tournee voor de baas. Dit weekend verder met alle suggesties🙄

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp


Acties:
  • 0 Henk 'm!

  • Bl4ckviper
  • Registratie: Mei 2002
  • Laatst online: 01-04 15:39

Bl4ckviper

BlaBlaBla

Waarom zou je domoticz er tussen zetten als je toch grafana gaat gebruiken om de infuxdb te bevragen?

Als het al hebt prima maar anders is een lichtgewicht python script ook prima te doen. Let trouwens wel op dat je niet te vaak sampled, dit staat ook genoemd bij de handleiding kost anders aardig wat batterij.

Be fast .... Be furious....


Acties:
  • 0 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 22-04 12:15

Copitano

Hoorn NH

@Stoofie
Als ik zo lees waar je problemen liggen zou ik hier of hier eens kijken.
Ja die had ik ook gevonden maar kom er voor het inloggen op mysql niet veel verder mee. Maar misschien geven jullie indirect antwoord/een oplossing voor mijn vraag:
Is influxDB een alternatief voor MySql database of een aanvulling die ik appart moet installeren?
In het eerste geval kan ik mysql er weer af gooien dus.
@Chris_82
Die had ik nog niet gevonden. Thx.
Vanuit Domoticz is het vervolgens kinderlijk eenvoudig om alle meetgegevens naar de database te sturen via Setup > More Options > Data Push > InfluxDB. Port is standaard 8086 voor InfluxDB.
Ben ik ook zeker van plan als ik zover ben. Maar ik heb kennelijk iets verkeerd begrepen. Zoals ik het nu leest is de volgorde van het datatransport dus Kamstrup =>Domoticz=>InfluxDB=>Grafana en dus niet Kamstrup=>Database=>Domoticz etc. Of is het Kamstrup=>mysql=>Domoticz=>InfluxDB=>Gafana?
Dan moet ik nu dus eerst de Kamstrup contact laten maken met Domoticz en daar het script van @AUijtdehaag voor gebruiken?

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp


Acties:
  • +1 Henk 'm!

  • Chris_82
  • Registratie: Oktober 2017
  • Laatst online: 21-04 12:22
@Copitano
Voor mij als beginner was en is de makkelijkste weg:
Kamstrup=>Php-script=>Domoticz=>InfluxDB=>Grafana,
maar uiteraard kan het ook op andere en wellicht efficientere manieren. Nu het werkt heb ik er weinig omkijken meer naar, behalve naar de data en grafiekjes :9~

In het php-script kun je ook extra variabelen berekenen zoals COP/dCOP als je ook een kWh stroommeter hebt, in grafana krijg ik die berekening niet voor elkaar.
Wel eerst in Domoticz virtuele hardware ("Multical") aanmaken en daarin virtuele sensoren ("Ta, Tr, Td, Flow, kWh_heat, kWh_cool"). Deze vul je daarna steeds in vanuit het php-script.

[ Voor 4% gewijzigd door Chris_82 op 01-11-2018 13:58 ]

14.4kWp, Loria Duo 6010, VWTW, DWTW, full-electric, MY RWD


Acties:
  • 0 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 22-04 12:15

Copitano

Hoorn NH

@Chris_82
Hier kan ik wat mee als super beginner. Daar kan ik dan waarschijnlijk het script van @AUijtdehaag voor de 302 of die van @Anoniem: 925609 voor de 402 aangepast voor mijn 602 voor gebruiken.
In het php-script kun je ook extra variabelen berekenen zoals COP/dCOP als je ook een kWh stroommeter hebt, in grafana krijg ik die berekening niet voor elkaar.
Ja, voorzover ik heb kunnen uitvinden geeft mijn 602 de warmte genergie in GJ. Die moet ik dus omrekenen naar kWh. Daar heb ik meer gevoel mee.
Wel eerst in Domoticz virtuele hardware ("Multical") aanmaken en daarin virtuele sensoren ("Ta, Tr, Td, Flow, kWh_heat, kWh_cool").
Okay. Ga eerst eens zelf proberen uitvogelen hoe en waar dat in Domoticz moet.
Deze vul je daarna steeds in vanuit het php-script.
Ga ik ook proberen, zoals @AUijtdehaag hier: https://gathering.tweakers.net/forum/insert_message/1692881
heeft aangegeven.

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp


Acties:
  • 0 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 22-04 12:15

Copitano

Hoorn NH

Afbeeldingslocatie: https://imgur.com/Kw3uvOP.jpgZo de dummy's zijn aangemaakt, al begrijp ik nog niet waarom een balk rood kleurt. Morgen verder met het aanpassen van het script :+

[ Voor 16% gewijzigd door Copitano op 02-11-2018 01:41 ]

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp


Acties:
  • +1 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 22-04 12:15

Copitano

Hoorn NH

@AUijtdehaag @Chris_82

Even een update:
Afbeeldingslocatie: https://imgur.com/pAL5SHB.jpg
Er is contact, maar moet nog steeds handmatig data over pompen met:
code:
1
php /home/pi/domoticz/scripts/kamstrup.php

Nu dus uitvogelen hoe dat automatisch geüpdate kan.

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp


Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
@Copitano
met: crontab -e
code:
1
*/1 * * * * php /home/pi/domoticz/scripts/kamstrup.php
(afsluiten en opslaan met <ctrl> o en <ctrl> x)

Edit:
Je zou ook eventueel een bash script kunnen maken
kamstrup.sh in /home/pi/domoticz/scripts/
code:
1
2
3
4
5
#!/bin/bash
sleep 5
php /home/pi/domoticz/scripts/kamstrup.php
sleep 30
php /home/pi/domoticz/scripts/kamstrup.php


En deze dan aanroepen in crontab -e met
code:
1
*/1 * * * * /home/pi/domoticz/scripts/kamstrup.sh > /dev/null
Dan heb je hem 2x per minuut ;)

[ Voor 70% gewijzigd door AUijtdehaag op 04-11-2018 15:27 ]

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


Acties:
  • 0 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 22-04 12:15

Copitano

Hoorn NH

@AUijtdehaag Had ik al gevonden in een van je vorige posts.
Krijg dit. Zal wel een domme vraag zijn, maar geeft ik crontab-e misschien vanaf de verkeerde plek of moet ik dat eerst installeren?

code:
1
2
3
4
5
6
7
8
pi@raspberrypi:~ $ crontab-e 
bash: crontab-e: opdracht niet gevonden
pi@raspberrypi:~ $ crontab-e */1 * * * * php /home/pi/domoticz/scripts/kamstrup.php
bash: crontab-e: opdracht niet gevonden
pi@raspberrypi:~ $ crontab-e */1 * * * * php /home/pi/domoticz/scripts/kamstrup.
php
bash: crontab-e: opdracht niet gevonden
pi@raspberrypi:~ $

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp


Acties:
  • +1 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
@Copitano
spatie ertussen?
code:
1
crontab -e


Als je die voor het eerst start kies je 2:

[ Voor 63% gewijzigd door AUijtdehaag op 04-11-2018 16:23 ]

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


Acties:
  • 0 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 22-04 12:15

Copitano

Hoorn NH

code:
1
2
3
pi@raspberrypi:~ $ phpcrontab -e */1 * * * * php /home/pi/domoticz/scripts/kamstrup.php
bash: phpcrontab: opdracht niet gevonden
pi@raspberrypi:~ $

Ook geprobeerd

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp


Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
@Copitano
zonder php ?

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


Acties:
  • +1 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 22-04 12:15

Copitano

Hoorn NH

code:
1
2
3
4
5
6
7
8
9
'pi@raspberrypi:~ $ crontab -e
no crontab for pi - using an empty one

Select an editor.  To change later, run 'select-editor'.
  1. /bin/ed
  2. /bin/nano        <---- easiest
  3. /usr/bin/vim.tiny

Choose 1-3 [2]:


Denk dat ik hiermee een stapje dichterbij ben.

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp


Acties:
  • 0 Henk 'm!

  • dunklefaser
  • Registratie: Oktober 2012
  • Laatst online: 14:42

dunklefaser

Point Of KnowReturn

@AUijtdehaag Je kan ondertussen wel een stapje-voor-stapje handleiding schrijven, of niet?
Zoiets als "Kamstrup for Dummies" :+ O-) (aka shell/Unix/cli etc...)

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


Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
@dunklefaser
Misschien wel eens handig inderdaad om (een keer) de startpost aan te passen.

Ben nu ook alles aan het overzetten op odroid C2 met Emmc geheugen in plaats van raspberry pi.
Dus genoeg oefening weer. ;)

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


Acties:
  • 0 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 22-04 12:15

Copitano

Hoorn NH

@AUijtdehaag
Na wat gepiel met vi werkt het. Had per ongeluk nr 3 gekozen uit het lijstje van 3 was niet de handigste keuze! Had natuurlijk nano moeten hebben, maar ik kreeg niet opnieuw de keuze. Opgelost met: https://www.raspberrypi.o...nux/usage/text-editors.md Wordt netjes elke minuut geupdate _/-\o_ _/-\o_ _/-\o_ *O*
Op naar influxDB en Grafana :)

[ Voor 39% gewijzigd door Copitano op 04-11-2018 22:47 ]

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp


Acties:
  • +1 Henk 'm!

  • dunklefaser
  • Registratie: Oktober 2012
  • Laatst online: 14:42

dunklefaser

Point Of KnowReturn

@AUijtdehaag "Kamstrup & m-bus & RPi for Dummies" klaar?
Vandaag, na wat oponthoud aan de Duitse grens, 2 x Kamstrup302 Qn1,5 wired m-bus binnen.
2 x Kamstrup302 Qn1,5 wired m-bus
Maar ik ben optimistisch en ga er van uit dat ik de instructies voor dummies niet nodig heb O-) :+.

[ Voor 3% gewijzigd door dunklefaser op 06-11-2018 15:55 . Reden: modbus -> m-bus ]

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


Acties:
  • 0 Henk 'm!

  • AUijtdehaag
  • Registratie: Oktober 2006
  • Niet online
@dunklefaser
Kamstrup is M-bus.
Ik geloof niet dat modbus gaat werken

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


Acties:
  • +1 Henk 'm!

  • dunklefaser
  • Registratie: Oktober 2012
  • Laatst online: 14:42

dunklefaser

Point Of KnowReturn

AUijtdehaag schreef op dinsdag 6 november 2018 @ 15:22:
@dunklefaser
Kamstrup is M-bus.
Ik geloof niet dat modbus gaat werken
Ik ook niet :z - m-bus natuurlijk - het m-bus minimaster interfacekabel ligt er ook al.

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


Acties:
  • 0 Henk 'm!

  • Copitano
  • Registratie: Februari 2018
  • Laatst online: 22-04 12:15

Copitano

Hoorn NH

@dunklefaser
Geeft niet joh, alle begin is moeilijk _/-\o_ en iedereen maakt foutjes 8)7

Elga | Valliant eco TEC plus VHR 30-34/5-5L | Kamstrup 602 |Nodo OTGW | Raspberry Pi 3B+/4B+|RFXcom rfxtrx433xl | UniFi netwerk | PVoutput 8.625 kWp


Acties:
  • 0 Henk 'm!

  • Bl4ckviper
  • Registratie: Mei 2002
  • Laatst online: 01-04 15:39

Bl4ckviper

BlaBlaBla

Copitano schreef op zondag 4 november 2018 @ 22:25:
@AUijtdehaag
Na wat gepiel met vi werkt het. Had per ongeluk nr 3 gekozen uit het lijstje van 3 was niet de handigste keuze! Had natuurlijk nano moeten hebben, maar ik kreeg niet opnieuw de keuze. Opgelost met: https://www.raspberrypi.o...nux/usage/text-editors.md Wordt netjes elke minuut geupdate _/-\o_ _/-\o_ _/-\o_ *O*
Op naar influxDB en Grafana :)
Lees je nou dat ding iedere minuut uit?
Reading intervals down to one hour do not influence the specified battery lifetime, whereas reading intervals down to 5 minutes halves the battery lifetime.

[ Voor 15% gewijzigd door Bl4ckviper op 06-11-2018 22:53 ]

Be fast .... Be furious....

Pagina: 1 2 ... 9 Laatste