Sinds de 2 dagen regel reageer ik hier niet meer
Inderdaad. Met een (aangepaste) FTDI had ik alleen maar problemen. Sitecom en Eminent werken daarentegen perfect._wil_ schreef op dinsdag 18 juni 2013 @ 12:26:
En die Sitecom en die Eminent gebruiken toch die Prolific PL-2303 chip die beter "valt" voor de RPI?
"The problem with internet quotes is that you can't always depend on their accuracy" ~Abraham Lincoln, 1864.
Anoniem: 523786
3de dag aan het experimenteren met IR lezer en niets gelukt
ik stuur /?! met 300 baud,7bit, parity=E (bijna alle combinaties en baud rates geprobeerd) en krijg niets terug.
help!

30 x Trina 390wp Op SE en Solis. | MHI 3,5kw
Anoniem: 523786
http://wiki.volkszaehler....reib-lesekopf-usb-ausgangSpeedfightserv schreef op donderdag 20 juni 2013 @ 08:53:
wat voor merk en type IR lezer gebruik je? Dat is misschien handig om te weten voor de mensen hier
Als proof of concept heb ik het zelf gemaakt, maar nog zonder behuizing. Ik gebuikte kinder klei om te bevestigen.
Zichzelf doet het prima. Met een terminalprogramma krijg ik echo als ik typ (via het optisch kanaal)
Ik probeerde verschillende LEDs: IR 950nm en rood.
led and fototransistor van http://www.vishay.com/docs/83760/tcrt5000.pdf
Ka het zijn dat het IR functie is geblokkeerd?
CurlyMo in "[GPIO] Raspberry Pi"
Sinds de 2 dagen regel reageer ik hier niet meer
Mijn Iskra MT171 meter geeft ook alleen hele getallen. Zover ik weet is dit niet te veranderen.hgestel schreef op dinsdag 19 februari 2013 @ 15:55:
[...]
Mooi mijn werkt inm inmiddels v u a een perl script.![]()
Hoeveel decimalen geeft de Iskra mt171 als output?
Mijn meter geeft helaas alleen maar gehelegetallen.
Heeft iemand een idee hoe dat te veranderen?
Zelf probeer ik door wat vaker uit te lezen wat nauwkeuriger de tijd te vinden wanneer de meter omklapt naar het volgende getal en daarmee bereken ik dan precies de gemiddelde Watt per uur en kWh per dag. Die sla ik samen met kWh per jaar op in MySQL. Dat werkt al een tijdje prima. Visualiseren doe ik met emoncms.

Op het plaatje kan je zien dat ik er 15 juni achterkwam dat de afleeskop er al een tijdje af lag. Gewoon teruggezet maar omdat er dan vele kWh en dagen tussen 2 metingen zit zijn voor een aantal dagen geen details beschikbaar. Die dagen worden wel netjes uitgemiddeld. Dat gebeurd ook als het programma uit geweest is. Bij het opstarten word daarvoor de laatste vorige waarde en tijd ingelezen.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
| from __future__ import print_function import serial import time import MySQLdb def send(port, bytes, tr): """ sends an command to serial and reads and checks the echo port - the open serial port bytes - the string to be send tr - the responce time """ #print("start send") port.write(bytes) time.sleep(tr) echo = port.read(len(bytes)) if (echo != bytes): print("echo is not same as send:", bytes, " vs ", echo) #print("end send") def read_datablock(): ACK = '\x06' STX = '\x02' ETX = '\x03' tr = 0.2 """ does all that's needed to get meter data from the meter device """ try: try: IskraMT171=serial.Serial(port='/dev/ttyUSB0', baudrate=300, bytesize=7, parity='E', stopbits=1, timeout=1.5); # open port at specified speed except: print("Could not open serial port") return "" # 1 -> time.sleep(tr) Request_message='/?!\r\n' # IEC 62056-21:2002(E) 6.3.1 try: send(IskraMT171, Request_message, tr) except: print("Could not send request message") IskraMT171.close() return "" # 2 <- time.sleep(tr) try: Identification_message=IskraMT171.readline() # IEC 62056-21:2002(E) 6.3.2 except: print("Could not read identification line") IskraMT171.close() return "" if (Identification_message[0] != '/'): print("no Identification message") IskraMT171.close() return "" if (len(Identification_message) < 7): print("Identification message to short") IskraMT171.close() return "" if (Identification_message[4].islower()): tr = 0.02 manufacturers_ID = Identification_message[1:4] if (Identification_message[5] == '\\'): identification = Identification_message[7:-2] else: identification = Identification_message[5:-2] speed = Identification_message[4] #print("speed = ", speed) if (speed == "1"): new_baud_rate = 600 elif (speed == "2"): new_baud_rate = 1200 elif (speed == "3"): new_baud_rate = 2400 elif (speed == "4"): new_baud_rate = 4800 elif (speed == "5"): new_baud_rate = 9600 elif (speed == "6"): new_baud_rate = 19200 else: new_baud_rate = 300 speed = "0" #print(manufacturers_ID, " ", identification, " speed=", speed) # 3 -> Acknowledgement_message=ACK + '0' + speed + '0\r\n' # IEC 62056-21:2002(E) 6.3.3 try: send(IskraMT171, Acknowledgement_message, tr) except: print("Could not send acknowledgement message") IskraMT171.close() return "" IskraMT171.baudrate=new_baud_rate time.sleep(tr) # 4 <- datablock = "" try: x = IskraMT171.read() except: print("Could not read STX") IskraMT171.close() return "" if (x == STX): try: x = IskraMT171.read() except: print("Could not read char after STX") IskraMT171.close() return "" BCC = 0 while (x != '!'): BCC = BCC ^ ord(x) datablock = datablock + x try: x = IskraMT171.read() except: print("Could not read char for datablock") IskraMT171.close() return "" while (x != ETX): BCC = BCC ^ ord(x) # ETX itself is part of block check try: x = IskraMT171.read() except: print("Could not read char") IskraMT171.close() return "" BCC = BCC ^ ord(x) try: x = IskraMT171.read() # x is now the Block Check Character except: print("Could not read block check") IskraMT171.close() return "" # last character is read, could close connection here if (BCC != ord(x)): # received correctly? datablock = "" print("Block check not OK") else: print("No STX found") IskraMT171.close() return datablock except: print("Some error reading data") if (IskraMT171.isOpen()): IskraMT171.close() return "" def meter_data(datablock, map, header): """ takes a datablock as received from the meter and returns a list with requested meter data as set in map if header != 0 a list with data type and units is returned """ line = [] if datablock == "": return line ## initialise line for l in range(len(map)): if (header == 1): line.append(map[l][1]) elif (map[l][0] == "time"): line.append(time.strftime("%Y-%m-%d %H:%M:%S")) else: line.append("") datasets = datablock.split('\n') for dataset in datasets: if (dataset != ""): x = dataset.split('(') address = x[0] x = x[1][:-2].split(' ') # the standard seems to have a '*' instead of ' ' here value = x[0] try: unit = '['+x[1]+']' except: unit = "" for l in range(len(map)): if (map[l][0] == address): if (header == 0): line[l] = value else: line[l] = map[l][1] + unit break; return line filename = "meterdata.txt" def output_to_file(line): with open(filename, "a") as f: print(line, file=f) # output_to_database() state variables oudt = int(time.time())/86400*86400 oudverbruikt = 0.0 oudgeleverd = 0.0 uurstart = oudt/3600*3600 uureind = uurstart + 3600 def insert(db, c, v, g): global uurstart # verbruikt #print(uurstart, "v =", v) #print(uurstart, "g =", g) if v >= 0: c.execute("INSERT INTO feed_1 (time, data) VALUES (%d, %f) ON DUPLICATE KEY UPDATE data = data + %f;" % (uurstart, v*1000, v*1000)) # Watt gemideld per uur c.execute("INSERT INTO feed_2 (time, data) VALUES (%d, %f) ON DUPLICATE KEY UPDATE data = data + %f;" % (int(uurstart)/86400*86400, v, v)) # kWh per dag c.execute("INSERT INTO feed_3 (time, data) VALUES (%d, %f) ON DUPLICATE KEY UPDATE data = data + %f;" % ((time.localtime(uurstart)).tm_year, v, v)) # kWh per jaar else: print(uurstart, "v =", v) #geleverd if g >= 0: c.execute("INSERT INTO feed_4 (time, data) VALUES (%d, %f) ON DUPLICATE KEY UPDATE data = data + %f;" % (uurstart, g*1000, g*1000)) # Watt gemideld per uur c.execute("INSERT INTO feed_5 (time, data) VALUES (%d, %f) ON DUPLICATE KEY UPDATE data = data + %f;" % (uurstart/86400*86400, g, g)) # kWh per dag c.execute("INSERT INTO feed_6 (time, data) VALUES (%d, %f) ON DUPLICATE KEY UPDATE data = data + %f;" % ((time.localtime(uurstart)).tm_year, g, g)) # kWh per jaar else: print(uurstart, "g =", g) db.commit() def output_to_database(list): global oudt global oudverbruikt global oudgeleverd global uurstart global uureind t = time.mktime(time.strptime(list[t_index],"%Y-%m-%d %H:%M:%S")) v = float(list[v_index]) g = float(list[g_index]) try: db = MySQLdb.connect(db="emoncms", user="root", passwd="raspberry") cursor = db.cursor() # gemiddeld Watt per uur while t > uureind: #het huidig vermogen loopt tot volgend uur, we kunnen het gemiddeld uurvermogen berekenen en opslaan if oudt > uurstart: insert(db, cursor, (v-oudverbruikt)*(uureind-oudt)/(t-oudt), (g-oudgeleverd)*(uureind-oudt)/(t-oudt)) else: insert(db, cursor, (v-oudverbruikt)*(uureind-uurstart)/(t-oudt), (g-oudgeleverd)*(uureind-uurstart)/(t-oudt)) #naar volgend uur uurstart = uureind uureind = uurstart + 3600 #het huidig vermogen eindigd in dit uur, we kunnen bij de tijdelijke berekening optellen if oudt > uurstart: insert(db, cursor, v-oudverbruikt, g-oudgeleverd) else: insert(db, cursor, (v-oudverbruikt)*(t-uurstart)/(t-oudt), (g-oudgeleverd)*(t-uurstart)/(t-oudt)) oudt = t oudverbruikt = v oudgeleverd = g cursor.close() db.close() except: print("Some error writing data to database") if (cursor.isOpen()): cursor.close() if (db.isOpen()): db.close() map = [ # The structure of the meter_data() output can be set with this variable # first string on each line is the cosim adress of the data you want to safe or "time" to insert the time # the second string on each line is a description of the type of data belonging to the cosim address # the order of the lines sets the order of the meter_data() output # example # header: ['meter ID', 'datum & tijd', 'verbruik totaal[kWh]', 'verbruik tarief1[kWh]', 'verbruik tarief2[kWh]', 'terug totaal[kWh]', 'terug tarief1[kWh]', 'terug tarief2[kWh]'] # data: ['12345678', '2013-02-08 10:08:41', '0054321', '0000000', '0054321', '0000000', '0000000', '0000000'] ["1-0:0.0.0*255", "meter ID"], ["time", "datum & tijd"], ["1-0:1.8.0*255", "verbruikt totaal"], # output_to_database has hardcoded v = float(list[2]) Change if table order changes! ["1-0:1.8.1*255", "verbruikt tarief1"], ["1-0:1.8.2*255", "verbruikt tarief2"], ["1-0:2.8.0*255", "geleverd totaal"], # output_to_databasehas hardcoded g = float(list[5]) Change if table order changes! ["1-0:2.8.1*255", "geleverd tarief1"], ["1-0:2.8.2*255", "geleverd tarief2"] ] t_index = 1 # map table index for time v_index = 2 # map table index for verbruikt g_index = 5 # map table index for geleverd previous_datalist = [] datalist = meter_data(read_datablock() , map, 0) # reads meter for the first time # reads old data from file with open(filename) as f: for line in f: list = eval(line) if list[1].find("-") == 4: # skips header lines oudt = int(time.mktime(time.strptime(list[t_index],"%Y-%m-%d %H:%M:%S"))) oudverbruikt = float(list[v_index]) oudgeleverd = float(list[g_index]) uurstart = oudt/3600*3600 uureind = uurstart + 3600 dag = uurstart/3600/24 print( "laaste tijd =", oudt, "laaste verbruikt =", oudverbruikt, "laatste geleverd =", oudgeleverd, "uurstart =", uurstart, "uureind =", uureind, "dag =", dag) example_datablock = """0-0:C.1.0*255(12345678) 1-0:0.0.0*255(12345678) 1-0:0.2.0*255(V1.0) 1-0:1.8.0*255(0054321 kWh) 1-0:1.8.1*255(0000000 kWh) 1-0:1.8.2*255(0054321 kWh) 1-0:2.8.0*255(0000000 kWh) 1-0:2.8.1*255(0000000 kWh) 1-0:2.8.2*255(0000000 kWh) FF(00000000) """ output_to_file(meter_data(example_datablock , map, 1)) # print a header line to file while (1): if (datalist == []): print(time.strftime("%Y-%m-%d %H:%M:%S"), "No data received") elif (previous_datalist == [] or previous_datalist[v_index] != datalist[v_index] or previous_datalist[g_index] != datalist[g_index]): output_to_file(datalist) output_to_database(datalist) previous_datalist = datalist time.sleep(3) # minimum waiting time is 3 seconds, less and the meter doesn't return data datalist = meter_data(read_datablock() , map, 0) |
Anoniem: 527066
- Iskra ME382
- Raspberry Pi,
- Eminent 1016 Serieel-USB adapter
- RJ11 -> Serieel stekker. .
Probeer ik de Iskra meter uit te lezen. Helaas heeft dit tot nu toe nog niet het gewenste resultaat gegeven. Als ik met 'cu' de poort uitlees, dan krijg ik alleen maar om de zoveel seconden een brei karakters zoals dit:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| Connected. {c|wn|n |{~~c~|_G7w|x~~|8~~||~?{~8x~~~|n||~?~|8|||?|C{|>C{~~|88||x|~Go?||||8~|||~|x||?~>|?|<x||x|x|||~8o|x|~~n|o{|o{7|<n~Cc ~o|~7~|w7|ww Ox~|xCCC|x|~|>~|[_? |8| [|<~w||{cO|8wn||O|c|_Cw~>C{~~C|~~|C{~?<||~{_~~>C_|?~C|8x||8x~||?~~8x|8x||8~n|o|~xx|~||?~<~8x|x~?>G|<x|8|?x| |~||<xx| |?o{cn|O~ |{Cc O?|<||~||www~O_|~|~||8|~8{|~~8~~||8x[~||~n<|{cC~ |?o~c~|?|_w<|?~cCC{o|>Cc?||x~~~||g?~C|xx8?|x||>C~~|8x|x||8| |?oCgCG|~n>CO?|<x8x|??>G?8<|x|x|\||x~xo|| |o~ |?oon|7|<nO?C~ ||~_7_ ||~|~7|x|~|x8O||[~N|8x ||~>~ |
Heeft iemand een idee in welke richting ik het beste kan zoeken om de data juist binnen te krijgen?
Ik heb al de nodige baud/byte size/stopbit combinaties getest, maar niks werkt.
Specifiekere vraag: zou de Eminent 1016 kabel zelf al op de juiste manier moeten omgaan met de geinverteerde RXD?
Aangezien ik data binnen krijg, zou RTS goed moeten zijn (anders gaat de P1 poort geen data verzenden); dit zou denk ik ook niet werken als de GND niet goed zou zijn.
En omdat ik wel data binnenkrijg, zou de TxD toch ook goed gesoldeerd moeten zijn lijkt mij..
(Of is het theoretisch nog mogelijk dat ik wat omgewisseld qua pinnen heb en dat ik toch nog dit soort data binnen krijg elke X seconden?)
Ben zelf niet erg thuis in elektronica, dus wat adviezen en suggesties zouden op dit punt welkom zijn.
http://gejanssen.com/howt.../index.html#mozTocId71758
De slimme meter heeft een 6 pins RJ11 connector, maar pin 1 en 6 hebben we dus niet nodig. We kunnen dus ook een oude telefoondraad met een 4-draads kabel gebruiken.
zie hier het aansluit schema: (NC = not connected)
pin nr RJ11 signaal sub-D pin 2 request (RTS) 4 3 ground (GND) 5 4 N.C. N.C. 5 data (RxD) 2
en:
De nummertjes staan op de tekening van de RJ-11 connector en op de Sub-D pins connector.
"The problem with internet quotes is that you can't always depend on their accuracy" ~Abraham Lincoln, 1864.
Anoniem: 527066
Maar nu ik deze site zie:
http://phoenixinteractive...b/viewtopic.php?f=22&t=28
Bestaan er verschillende RJ 11 stekkers met fysiek 4 of 6 pins? Of is een RJ11 stekker echt universeel?
Mogelijk dat er wat verwarring hier dan in zit?!? Dacht dat pin 1 en 6 op een RJ11 altijd Not Connected waren en daarom dat er fysiek maar 4 draden in gaan.
Heb de kabel helaas even niet in de buurt..
RJ11 heeft 6 pin posities, maar deze zijn niet altijd bezet. Vaak zijn pin 1 en 6 niet bezet en zitten er ook maar 4 aderig draad aan de connector.Anoniem: 527066 schreef op dinsdag 09 juli 2013 @ 14:34:
Ik heb hem ook zelfgemaakt en de bedrading al vaak gecontroleerd. Zal dat vanavond nog weer eens doen aan de hand van jouw schema als ik thuis ben.
Maar nu ik deze site zie:
http://phoenixinteractive...b/viewtopic.php?f=22&t=28
Bestaan er verschillende RJ 11 stekkers met fysiek 4 of 6 pins? Of is een RJ11 stekker echt universeel?
Mogelijk dat er wat verwarring hier dan in zit?!? Dacht dat pin 1 en 6 op een RJ11 altijd Not Connected waren en daarom dat er fysiek maar 4 draden in gaan.
Heb de kabel helaas even niet in de buurt..
Ader 1 is dan pin 2
Ader 2 is dan pin 3
Ader 3 is dan pin 4
Ader 4 is dan pin 5
https://www.taltion.nl, https://www.trekhaakkoffer-huren.nl, https://www.fietsendrager-huren.nl, https://www.fietskar-huren.nl
Anoniem: 527066
Bedankt. Dit is volgens mij de manier waarop ik het geinterpreteerd had. Zal dit vanavond nog eens nalopen.Freemann schreef op dinsdag 09 juli 2013 @ 14:55:
[...]
RJ11 heeft 6 pin posities, maar deze zijn niet altijd bezet. Vaak zijn pin 1 en 6 niet bezet en zitten er ook maar 4 aderig draad aan de connector.
Ader 1 is dan pin 2
Ader 2 is dan pin 3
Ader 3 is dan pin 4
Ader 4 is dan pin 5
Kom net ook de reacties hier tegen:
http://zonnigbreda.blogsp...0478#c8435467074580455241
Waar iemand schrijft:
Eigenlijk wat ik ook heb. Het is geen 'nette tekst' maar wel om de zoveel seconden zoals je zou verwachten.ik heb sinds kort ook een "slimme meter" (een ISKRA MT382, geleverd door Liander), en heb jouw instructies gevolgd om de P1-poort uit te lezen. Er komt echter geen "nette tekst" uit, maar (voor mij) onleesbare symbolen, wel netjes elke tien seconden:
O<_C_C_C_o____7_cw_n[?~CCCOoO|~<C{|?{<8x8O~?x<888n<G{_??8<8x88?~~<G{[8<8888?^
C{_?8<xoGCn
C{{_{O8|C{oOwOn
o{{OwCcon_7{O8xwn|~
G{{O?~_C_G_<wowww3_cw_O~<G{O?|?n<8?~c<8x{?8~~n<Cs[?~CCGO|~<G{[?|?{<88x{~
C{{O~?x<x88n<C{_??8|888~n<G{[8<x888?n
G{8?x<xoooCGC{{O8<n
C{{_?_~
En het lijkt wel te werken van een andere Win32 machine
Mogelijk dat er inmiddels wel net wat geupdate is:Maar nu dus t vervolg.
De USB driver op de raspberry heeft dus moeite met 7E1
JT
Toch nog maar eens gaan proberen. Wie weet net een samenloop van omstandigheden!?!JT7 juli 2013 14:28
Nu komt de grap
Ben ik op de windows PC een poosje met Python bezig (log naar csv file.
Denk ik laat ik Raspberry nog eens proberen.
En voer zoals gebruikelijk apt-get update uit.
Maar vandaag ook apt-get upgrade.
Bedankt voor de hulp tot nu toe. Waardeer het zeer.
apt-get update
apt-get upgrade
en install ook Rpi-update
https://www.taltion.nl, https://www.trekhaakkoffer-huren.nl, https://www.fietsendrager-huren.nl, https://www.fietskar-huren.nl
CurlyMo in "[GPIO] Raspberry Pi"
Sinds de 2 dagen regel reageer ik hier niet meer
Op dit moment log ik mijn energiemeter via een hex inverter (SN74HC14N). Deze heb ik aangesloten op de serieie poort van de Raspberry Pi.
Als OS draai ik mijn eigen MinimalPi. Dit is een embedded OS dat volledig in de RAM draait. Het ongecomprimeerde OS is +/- 50mb groot en verbruikt zo'n 71mb ram. Hij draait dus prima op alle Raspberry Pi modellen. In geval van de energiemeting doet hij dus maar 1 ding en dat is loggen. Aangezien MinimalPi gebouwd is met PHP, MySQL, SQLite, Python, Samba, etc ondersteuning, is het dus mogelijk om een volledig zelfstandige energie logger te bouwen.
Het loggen zelf doe ik als volgt:
- Tijdens de boot wordt een python script gestart die kijkt wanneer er nieuwe waardes zijn. Deze schrijft vervolgens SQL querys naar een cache bestand op een USB stick.
- Elk uur draait er tweede python script die één voor één de queries uit het cache bestand wegschrijft naar de externe database. Alle queries die gelukt zijn, worden vervolgens uit het cache bestand gehaald. Alle queries die faalde blijven erin staan. Op deze manier verlies je geen data wanneer verbinding tussen de database server en de Raspberry Pi wordt verbroken. Deze cache is natuurlijk overbodig wanneer er gebruik wordt gemaakt van een SQLite database op de Raspberry Pi zelf.
Van de weggeschreven data wordt dan via een MySQL query via PHP een JSON object gemaakt die wordt uitgelezen door een Highstock grafiek zodat het er zo uit komt te zien:

Dit is een log vanaf een paar dagen
Het is dus mogelijk om dit in zijn geheel op de Raspberry Pi te laten plaatsvinden waardoor deze een stand-alone energielogger wordt.
Nu het voorstel. Mijn huidige implementatie werkt alleen nog in mijn situatie (al zijn de scripts vrij generiek). Het liefst zou ik hem met jullie hulp plug-en-play willen maken zodat iemand alleen de P1 poort aan de GPIO pinnen hoeft te hangen, of via USB-Seriaal aan hoeft te sluiten en dat het dan werkt. Eventueel kan iemand dan nog via de cmdline.txt aangeven of hij gebruik maakt van een externe MySQL server of graag een SQLite server wilt gebruiken (als default) op de usb stick.
Zijn er dus mensen die hier aan mee willen werken?
Sinds de 2 dagen regel reageer ik hier niet meer
Over de logging ben ik helemaal tevreden. Moet alleen nog kijken hoe het script automatisch kan opstarten. (Had net een stroomstoring van een paar uur)
Zichtbaar maken doe ik met Emoncms, dat was redelijk pijnloos om te beginnen.
Is highstock ook redelijk pijnloos om te gebruiken en makkelijk te veranderen? (Ik weet niet veel van php)
.
Sinds de 2 dagen regel reageer ik hier niet meer
Dus dan ben je klaar en hoef je alleen een image van je SD kaart beschikbaar te stellen.
Sinds de 2 dagen regel reageer ik hier niet meer
Serieus heel erg tof, alleen nu nog iets meer noob-proof maken, vooral voor de niet linux gebruikers. Verder complimenten, zou zo een donatie doen om dit project te helpen.
PS. op verzoek gelijk donatie mogelijkheden toegevoegd (deze is overigens over alle repo's hetzelfde).
[ Voor 24% gewijzigd door CurlyMo op 28-07-2013 01:33 ]
Sinds de 2 dagen regel reageer ik hier niet meer
Ik heb er helemaal geen verstand van maar ik kan wel lezenJaco69 schreef op vrijdag 26 juli 2013 @ 21:46:
Moet alleen nog kijken hoe het script automatisch kan opstarten.
sudo nano /etc/rc.local (bestaat al of maak hem aan)
Add the following line to the end of this file:
sudo [dir waar hij staat] blabla.sh start
Ik kreeg het ook voor elkaar om in rc.local de schrijfrechten toe te kennen binnen dit bestandje.
Overigens ben ik bezig om een normale energiemeter (din) met S0 uit te lezen met mijn Rpi.
Eventueel wil ik de data naar pvoutput sturen.
Dit omdat mijn omvormer soms een steekje laat vallen (reset tijdens productie) en dan data verliest.
Het ding lijkt een opto-coupler als uitgang te hebben, dus dat betekent de '+' aan de +5V van de Rpi en de '-' is de pulsuitgang die met 10K aan de 0V komt en op een ingang van de Rpi.
Hoe ik de uitlezing vorm moet geven weet ik (nog) niet

PVoutput 2x Toshiba Daiseikai 8 3,5kW, SWW Atlantic Explorer V3 200l. Gasloos aug 2016, 8620Wp, Monoblock Panasonic J 7kW
Ben voor WSL heel benieuwd naar wat je aan het bouwen bent
Ook leuk om te zien dat je ook Linux in gedoken bent(wat ik ook uit het wsl forum op kon maken)
Als je hulp nodig hebt, je weet me te vinden
https://www.taltion.nl, https://www.trekhaakkoffer-huren.nl, https://www.fietsendrager-huren.nl, https://www.fietskar-huren.nl
Sinds de 2 dagen regel reageer ik hier niet meer
Ons logging project voor verschillende omvormers, P1 poort, PVoutput, weather dataCurlyMo schreef op zondag 28 juli 2013 @ 10:52:
@Freemann, wat is WSL?
WebSolarLog
Wij zouden ook graag pulsen(P1,dinrail), youless, etc, opvangen maar komen handen en voeten tekort om alles te doen en/of op te pakken .....
[ Voor 21% gewijzigd door Freemann op 28-07-2013 11:01 ]
https://www.taltion.nl, https://www.trekhaakkoffer-huren.nl, https://www.fietsendrager-huren.nl, https://www.fietskar-huren.nl
't ziet er goed uit. Alleen wat meer informatie over hoe het precies werkt zou helpen om over te schakelen en er aan mee te werken.[b]Ons logging project voor verschillende omvormers, P1 poort, PVoutput, weather data
WebSolarLog
Wij zouden ook graag pulsen(P1,dinrail), youless, etc, opvangen maar komen handen en voeten tekort om alles te doen en/of op te pakken .....
Word er direct naar een database gelogd? Op welke manier? Is het bovenop een algemene distributie zoals raspbian?
Ik zelf heb een script dat een Iskra MT171 uitleest en direct naar MySQL logd in aparte databases voor per uur/dag/jaar. Als WebSolarLog ongeveer hetzelfde werkt dan wil ik het wel uit proberen en mijn script daarheen porten. Zou niet veel werk moeten zijn en het scheeld mij mischien weer werk als ik later zonepanelen op me dak neem.
WSL logt nu meestal de data die de omvormer aanlevert, echter is een losse din KWHmeter een leuke backup voor als de omvormer de fout in gaat.
Een losse database vullen zou ik prima vinden, als WSL dat zichtbaar zou kunnen maken door een 'device' te kiezen dan komen we een heel eind
PVoutput 2x Toshiba Daiseikai 8 3,5kW, SWW Atlantic Explorer V3 200l. Gasloos aug 2016, 8620Wp, Monoblock Panasonic J 7kW
Sinds de 2 dagen regel reageer ik hier niet meer
ik heb ook de rj11 op pinnen 2,4 en 5 van een db9 connector gesoldeerd. Vervolgens via zo'n ding aangesloten.Devster schreef op dinsdag 09 juli 2013 @ 14:05:
Wat voor RJ11->Serieel stekker heb je gebruikt? Ik heb hem zelf gemaakt op basis van:
http://gejanssen.com/howt.../index.html#mozTocId71758
[...]

Via cu ziet de output er prima uit, en ook domoticz werkte meteen.
toen ik via usb-devices de info opriep bleek dat er een prolific in zat. Ik heb echter niets gedaan met inverten van RX. Vreemd, maar wel prettig...
1
2
3
4
5
6
7
| T: Bus=01 Lev=02 Prnt=02 Port=02 Cnt=02 Dev#= 4 Spd=12 MxCh= 0 D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=067b ProdID=2303 Rev=03.00 S: Manufacturer=Prolific Technology Inc. S: Product=USB 2.0 To COM Device C: #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=pl2303 |
update: op een of andere manier werkt het niet stabiel in domoticz. Weet niet waar het aan ligt maar na enkele uren hangt domoticz (de rpi is nog gewoon via ssh te benaderen).
Heb ook andere prolific kabels geprobeerd, van vivanco en gembird, maar die werkten helaas niet.
[ Voor 11% gewijzigd door maxtrash op 10-08-2013 19:15 ]
Ik heb een kitje besteld om met mijn Rpi wat meer sensors e.d. te kunnen monitoren.
Het toeval wil dat er een 38KHz IR receiver bij zit en een losse card remote om de Rpi te bedienen.
Ik hoop dat deze IR receiver (printje met 3 pinnen, 0V, 5V en data) geschikt is als leeskop.
Dat er zo'n moeilijk ding als van Volkszaehler nodig is snap ik niet helemaal.
Mijn IR module prik ik zo op het breadboard van m'n Raspberry
Het mooiste zou het zijn als ik de data direct naar WSL zou kunnen sturen.
In dit topic staan diverse scripts waarmee het volgens mij mogelijk moet zijn, alleen ben ik zelf een noob wat dat betreft.
[edit]
topic elders
Ik heb een ir transceiver nodig, de Ampy 5227 wil eerst een commando zien voor hij de getallen geeft, net als de meeste meters die volgens iec 62056-21 werken.
Gelukkig heeft de Ampy dezelfde baudrate voor zenden en ontvangen.
Nu nog een transceiver zien te vinden die betaalbaar is en het liefst kant en klaar
[ Voor 22% gewijzigd door Speedy-Andre op 06-10-2013 18:17 ]
PVoutput 2x Toshiba Daiseikai 8 3,5kW, SWW Atlantic Explorer V3 200l. Gasloos aug 2016, 8620Wp, Monoblock Panasonic J 7kW

Goed spellen leren ze daar nog wel een keer
Dit printje zou alles in een moeten zijn, usb voor de rpi en ir zenden + ontvangen bij 38KHz modulatie.
Als dat niet werkt dan is hij nog bruikbaar als usb-serieel of rs485 omzetter.
De led en de fototransistor kunnen met draadjes naar een kop.
Of de pl2303hx chip door de Rpi herkend wordt is de vraag, hij heeft wel windows drivers.
Het ding van Udo is misschien ook een idee, iets duurder maar wel beproefd en incl. kop met ringmagneet.
PVoutput 2x Toshiba Daiseikai 8 3,5kW, SWW Atlantic Explorer V3 200l. Gasloos aug 2016, 8620Wp, Monoblock Panasonic J 7kW
Ik ben sinds gisteren bezig deze aan de gang te krijgen, maar kom niet veel verder.
Als eerste heb ik zijn MinimalPi ( https://github.com/CurlyMoo/MinimalPi ) geprobeerd, maar daar kwam ik helemaal niet verder mee, dus heb ik een schone Wheezy install op een SD-card gezet, en na de installatie van Apache2, MySql, php, en alle benodigde software, ben ik gaan proberen om de twee belangrijke python files van CurlyMo (p1read.py en mysql.py) van zijn P1 project ( https://github.com/CurlyMoo/RaspberryPi-P1-port ) werkend te krijgen.
Het uitlezen van de P1 poort werkt goed en het cache bestand wordt volgens mij goed aangemaakt.
Echter bij het uitvoeren van mysql.py krijg ik een melding:
1
2
3
4
5
6
7
8
| Traceback (most recent call last): File "./mysql.py", line 18, in <module> cur.execute(line) File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute self.errorhandler(self, exc, value) File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler raise errorclass, errorvalue _mysql_exceptions.OperationalError: (1242, 'Subquery returns more than 1 row') |
Ik ben dus absoluut geen mysql of python kenner, ik doe dit pas een week of drie en leer nog dagelijks.
Na het zoeken op internet krijg ik allemaal oplossingen aangedragen waar ik helemaal geen wijs uit kan
Ongetwijfeld ligt dat aan mijn (gebrek aan) kennis, maar ik krijg het dus niet werkend.
Iemand hier misschien nog een idee waar het fout gaat?
Als ik de regels die in het cache bestand staan één voor één ingeef in phpmyadmin, dan werken ze wel, en wordt de betreffende data netjes in de database gezet, dus het lijkt mij dat er ergens in het python bestand mysql.py iets fout gaat, maar ook na het lezen van http://zetcode.com/db/mysqlpython/ ben ik niet in staat de fout te vinden.
iedereen alvast bedankt voor het lezen en meedenken.
Ik hoop dat iemand hier me op weg kan helpen.
*EDIT*
Opgelost! na veel zoekwerk kwam ik erchter dat er een fout zit in het tables.sql bestand van CurlyMo.
de kolom 'name' in de 'devices' tabel was niet uniek, dus er stonden op na twee runs van mysql.py twee dezelfde devices in de tabel, en daar ging het dus fout.
Borreltje.
[ Voor 6% gewijzigd door Borreltje op 21-10-2013 10:59 ]
Met de Test1107 windows software uit de TS kan ik mijn Ampy meter zo ver krijgen dat hij data gaat uitspugen via de rode led, die normaal gesproken bij elke W een keer knippert.
Helaas lijkt het printje niet te reageren op de rode led van de Ampy dus hij geeft Tout

De leverancier adviseert om half-duplex te gebruiken, maar dat is helaas niet in te stellen of ik mis iets.
Nu zoek ik een manier om het printje 'klaar te zetten' voor ontvangst van data zodat ik kan zien waar hij wel op reageert.
De software draait op XP, dus dat is niet bijzonder en de software praat met Com1.
Er zitten aparte tx en rx leds op dus ik kan eenvoudig zien of er uberhaupt iets binnen komt.
Kleine update, ik moest e.e.a. op de print doorsolderen en toe reageerde hij wel op ir signalen
Ik kan nu een terminal starten en je ziet rommel binnenkomen als je met een remote zit te seinen.
Verder reageert hij op de rode led van de Ampy, maar Test1107 lijkt niets te ontvangen.
Ik denk dat hij de print niet omschakelt nadat hij een commando stuurt, dat op zich goed werkt (/?!).
Het lukt me met een terminal niet om met /?! een response van de Ampy te krijgen, ik zal wel iets verkeerd instellen

[ Voor 24% gewijzigd door Speedy-Andre op 10-11-2013 17:00 ]
PVoutput 2x Toshiba Daiseikai 8 3,5kW, SWW Atlantic Explorer V3 200l. Gasloos aug 2016, 8620Wp, Monoblock Panasonic J 7kW
Ik heb inmiddels een Volkszaehler usb r/wkop voor m'n Ampy 5227 binnen.
Op de laptop (met XP) gaat het nog steeds fout met de Ampy, hij leest simpelweg de data die de rode led uitstuurt niet

Idem met hyperterminal, tekst echoen lukt met een papiertje maar een tekst bstand met de codes /?! en 000 verzenden levert niets op.
De Ampy reageert niet zoals met het iec1107 programma, daarmee laat ik de Ampy een pulsreeks genereren maar die komt op de eoa manier niet binnen

PVoutput 2x Toshiba Daiseikai 8 3,5kW, SWW Atlantic Explorer V3 200l. Gasloos aug 2016, 8620Wp, Monoblock Panasonic J 7kW
De rode led in de Ampy 5227 heeft een lichtspectrum van 620 tot 750nm, in de usb head zit een IR fototransistor (SFH309FA) die van 730 tot 1120nm gaat dus ze overlappen elkaar nauwelijks.
Er is ook een SFH309 die van 380 tot 1150nm gaat en dat past veel beter bij een rode led als bron
Het eerder genoemde printje lijkt gevoeliger voor rood licht te zijn omdat een receive ledje knippert als de Ampy iets stuurt, maar misschien is dit te weinig en komt er daarom geen zinnig signaal uit.
Een SFH309 is besteld, dus maar weer een weekje wachten en dan verder testen
PVoutput 2x Toshiba Daiseikai 8 3,5kW, SWW Atlantic Explorer V3 200l. Gasloos aug 2016, 8620Wp, Monoblock Panasonic J 7kW
Mijn Ampy wijkt hierin af, hij ontvangt wel IR licht om hem uit te lezen, maar er zit alleen een rode led in die na een uitleesvraag de data produceert.
Ik kan dat eenvoudig zien gebeuren, want ipv dat de led bij elke Wh verbruik een keer knippert zie je hem opeens ongeveer een seconde lang heel snel knipperen bij een uitleesvraag.
Die uitleesvraag kan ik met een testprogramma uitvoeren, er is een standaard protocol (iec 62056-21) waarmee je elke digitale meter zichzelf kan laten identificeren.
PVoutput 2x Toshiba Daiseikai 8 3,5kW, SWW Atlantic Explorer V3 200l. Gasloos aug 2016, 8620Wp, Monoblock Panasonic J 7kW
De meeste tijd was ik kwijt aan een goede USB-serial kabel te vinden, heb er drie geprobeerd en uiteindelijk bij een Sitecom uitgekomen welke perfect werkt.
Het scriptje wat ik gebruik is zeer basaal en meer een "proof of concept" incl. debug code, dan dat het serieus genomen moet worden, maar wellicht hebben sommigen er nog iets aan. Overigens flink gespiekt bij http://www.gejanssen.com.
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
| import sys import time import serial import httplib print ("Start") conn = httplib.HTTPConnection("emoncms.xxxx.breekeenbeen.nl") ser = serial.Serial() ser.baudrate = 9600 ser.bytesize=serial.SEVENBITS ser.parity=serial.PARITY_EVEN ser.stopbits=serial.STOPBITS_ONE ser.xonxoff=0 ser.rtscts=0 ser.timeout=20 ser.port="/dev/ttyUSB0" try: ser.open() except: sys.exit ("Fout bij het openen van %s" % ser.name) cnt=0 while 1: while cnt < 20: line = '' try: input = ser.readline() except: sys.exit ("Seriele poort %s kan niet gelezen worden." % ser.name) line = str(input) line = line.strip() if line[0:9] == "1-0:1.8.1": print "Afgenomen daltarief: \t", line[10:23] elif line[0:9] == "1-0:1.8.2": print "Afgenomen piektarief: \t", line[10:23] #Invoegen teruggegeven & Huidig tarief elif line[0:9] == "1-0:1.7.0": print "Huidige verbruik: \t", line[10:20] usage = int(float(line[10:17]) * 1000) print "Huidige verbruik: \t", usage, " watt" url="/input/post.json?json={power:"+str(usage)+"}&apikey=xxx" print url conn.request("POST",url) response = conn.getresponse() print response.status conn.close() else: pass # print(line) cnt += 1 cnt = 0 time.sleep(10) try: ser.close() except: sys.exit ("Seriele poort %s kan niet gesloten worden." % ser.name ) |

@Jaco69, waar heb jij die "daily hostogram" vandaan, ik kan die optie nergens vinden
If it is broken, fix it. If it ain't broken, make it better!
Ah ok. Ja ik ken dat testprogramma. Staat in de (lees: mijn) startpost.Speedy-Andre schreef op woensdag 20 november 2013 @ 23:40:
Het is idd van origine een IR leeskop want veel meters hebben een IR led erin.
Mijn Ampy wijkt hierin af, hij ontvangt wel IR licht om hem uit te lezen, maar er zit alleen een rode led in die na een uitleesvraag de data produceert.
Ik kan dat eenvoudig zien gebeuren, want ipv dat de led bij elke Wh verbruik een keer knippert zie je hem opeens ongeveer een seconde lang heel snel knipperen bij een uitleesvraag.
Die uitleesvraag kan ik met een testprogramma uitvoeren, er is een standaard protocol (iec 62056-21) waarmee je elke digitale meter zichzelf kan laten identificeren.


Eindelijk resultaat, de SFH309 was inderdaad het probleem!
De codes staan voor ampy45227-614.
Helaas lukt het me niet om met Hterm de Ampy uit te lezen, hij reageert niet op de /?! en 000 commando's.
Misschien is het format fout of een instelling in Hterm, de Ampy reageert er niet op iig

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


Hehe gelukt!
Eigenlijk wil ik m'n Wattcher tegelijk met de Volkszaehler leeskop gebruiken.
Daarvoor zal ik een ledje toe moeten voegen met transistortrapje om de fototransistor uit te lezen.
Bovenstaand werkt met een W7 laptop die niet continu aan staat, dat kan m'n Raspberry beter denk ik
Alleen moet ik wel een grote afstand zien te overbruggen als ik de Rpi niet in de meterkast plaats.
De Rpi draait nu bekabeld op m'n netwerk met WSL, ik wil er nog wel bij kunnen met een monitor en kb.
[edit]
Een rood ledje met 220E weerstandje toevoegen gaat prima, ze zitten in serie en dan parallel aan R2
T2 is gelukkig sterk genoeg om een extra ledje aan te sturen.
Dat ledje zit met een kabeltje naar de Wattcher leeskop en die werkt nu braaf tegelijk met deze leeskop.
Bij een uitlezing van de Ampy met de laptop zie je wel even een raar getal op de Wattcher maar de tevens gekoppelde Homewizard heeft daar weinig last van omdat hij minder vaak naar de Wattcher kijkt.

[ Voor 33% gewijzigd door Speedy-Andre op 03-02-2014 17:40 ]
PVoutput 2x Toshiba Daiseikai 8 3,5kW, SWW Atlantic Explorer V3 200l. Gasloos aug 2016, 8620Wp, Monoblock Panasonic J 7kW
Anoniem: 469386
Ik zoek me helemaal te pletter naar een oplossing. Ook in dit forum.
Sinds deze zomer 21 panelen van 255 Wp op het dak. De omvormer van SMA lees ik inmiddels keurig uit met SMASpot op een Rasberry PI. De resultaten gaan zowel rechtstreeks naar pvoutput als ook naar een csv-bestand.
In de meterkast hangt ook een Iskra MT382 slimme meter met p1 poort.
Bij smartmeterdashboard.nl is een zogenaamde usb p1 converterkabel te koop. De mensen achter deze webwinkel geven aan dat deze kabel netjes werkt als deze aangesloten wordt op een raspberry.
Ik ben niet technisch genoeg om zelf kabels in elkaar te solderen. Daar ontbreekt mij het vaste handje, de elektronica-kennis en het geduld voor.
Omdat ik snel resultaat wil gaan boeken vraag ik me af of er tweakers zijn die een pythonscript hebben dat met genoemde kabel (of een soortgelijke variant) de Iskra slimme meter kan uitlezen.
Ik heb hier een tool die csv's uitleest en opslaat in een database om er vervolgens leuke grafiekjes mee te maken. Op dit moment gebruik ik de csv's van slimmemeteruitlezen.nl om additionele verbruiks- en terugleverinformatie naar pvoutput te sturen.
Wie kan mij helpen?
30 x Trina 390wp Op SE en Solis. | MHI 3,5kw
[ Voor 10% gewijzigd door s441558 op 27-12-2013 17:33 ]
Nefit EnviLine IDU Monoblock E 7 E-S, Boiler 200 L, Buffervat 50L. BQQKees
Ik spiek ook bij http://www.gejanssen.com. maar ik mis vaak (ongeveer 95%) de gasstanden. Iemand anders ook dit probleem?
Ideeën zijn welkom.
Zie mijn output:
[small]2014-01-14 22:46:24,818 INFO stack nr 0 - /ISk5\2ME382-1003
2014-01-14 22:46:24,822 INFO stack nr 1 -
2014-01-14 22:46:24,824 INFO stack nr 2 - 0-0:96.1.1(4B414C37303035303936383335313132)
2014-01-14 22:46:24,825 INFO stack nr 3 - 1-0:1.8.1(01597.739*kWh)
2014-01-14 22:46:24,827 INFO stack nr 4 - 1-0:1.8.2(01543.813*kWh)
2014-01-14 22:46:24,831 INFO stack nr 5 - 1-0:2.8.1(00033.608*kWh)
2014-01-14 22:46:24,833 INFO stack nr 6 - 1-0:2.8.2(00088.708*kWh)
2014-01-14 22:46:24,835 INFO stack nr 7 - 0-0:96.14.0(0002)
2014-01-14 22:46:24,837 INFO stack nr 8 - 1-0:1.7.0(0000.14*kW)
2014-01-14 22:46:24,839 INFO stack nr 9 - 1-0:2.7.0(0000.00*kW)
2014-01-14 22:46:24,843 INFO stack nr 10 - 0-0:17.0.0(0999.00*kW)
2014-01-14 22:46:24,844 INFO stack nr 11 - /ISk5\2ME382-1003
2014-01-14 22:46:24,847 INFO stack nr 12 -
2014-01-14 22:46:24,849 INFO stack nr 13 - 0-0:96.1.1(4B414C37303035303936383335313132)
2014-01-14 22:46:24,850 INFO stack nr 14 - 1-0:1.8.1(01597.739*kWh)
2014-01-14 22:46:24,852 INFO stack nr 15 - 1-0:1.8.2(01543.814*kWh)
2014-01-14 22:46:24,854 INFO stack nr 16 - 1-0:2.8.1(00033.608*kWh)
2014-01-14 22:46:24,856 INFO stack nr 17 - 1-0:2.8.2(00088.708*kWh)
2014-01-14 22:46:24,858 INFO stack nr 18 - 0-0:96.14.0(0002)
2014-01-14 22:46:24,859 INFO stack nr 19 - 1-0:1.7.0(0000.14*kW)[/small]
[ Voor 13% gewijzigd door s441558 op 16-01-2014 22:31 ]
Nefit EnviLine IDU Monoblock E 7 E-S, Boiler 200 L, Buffervat 50L. BQQKees
[ Voor 48% gewijzigd door CurlyMo op 16-01-2014 22:32 ]
Sinds de 2 dagen regel reageer ik hier niet meer
De verhalen hier laten de handjes jeuken!
Heb je de oplossing al gevonden?dartheide schreef op dinsdag 14 januari 2014 @ 22:58:
Vraagje aan s441558 en of BlackBurn, hebben jullie geen problemen met het uitlezen van de meterstanden.
Ik spiek ook bij http://www.gejanssen.com. maar ik mis vaak (ongeveer 95%) de gasstanden. Iemand anders ook dit probleem?
Ideeën zijn welkom.![]()
[
Heb dezelfde meter als jou.
De fout zit ergens in het script van gej(anssen). Aangezien hij wel altijd gasstanden toont by het opvragen via:
cu -l /dev/ttyUSB0 -s 9600 --parity=none
Het .py script van de site lijkt alleen uurlijke gasstanden door te geven i.c.m. met deze meter, vandaar ws. ook dat jij 95% geen gasstanden hebt
edit: Aangezien de gasmeter niet 'realtime' is zit er een kruks. Mijn gasmeter rapporteert (net als de jouwe?) eens per uur zijn standen.
Moet er zelf ook achteraan, hoor het graag. Als je wilt laat ik wel weten wanneer ik een script heb kunnen maken/aanpassen?
[ Voor 7% gewijzigd door lv0 op 24-01-2014 00:20 ]
Heb zeker interesse in jouw script, dus als je wilt?
Mooi dat je het probleem zo hebt getackeld.
Ik probeer een ISKRA ME382 meter uit te lezen. Dat ging niet totdat ik er achter kwam dat mijn RJ11 kabeltje een wat afwijkende kleurvolgorde heeft:
1 nc
2 zwart
3 rood
4 groen
5 geel
6 blauw
[ Voor 86% gewijzigd door Rob Z op 25-01-2014 10:31 ]
Dit is hoe ik het nu heb, werkt hier heel aardig. Heb even de databasegegevens en de website waar ik ze naar toe schrijf eruit gehaald. Eerste echte pythoncode van mij ooit maar volgens mij is het prima te lezenlv0 schreef op vrijdag 24 januari 2014 @ 21:01:
@koetjeboe,
Heb zeker interesse in jouw script, dus als je wilt?
Mooi dat je het probleem zo hebt getackeld.
Naast dit script draaien er nog 2, eentje om het samen te vatten tot 1 record per 5 minuten en 1 script om die data weer naar mijn PiTFT te sturen als mooie grafiekjes.
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
| import MySQLdb import re import sys import signal import serial import datetime import time import urllib import urllib2 userId = 2 userKey = "foobar" databaseHost = "localhost" databaseUser = "" databasePass = "" databaseDb = "" def getKwh(inputString): return int(float(inputString[10:19])*1000) def getKw(inputString): return int(float(inputString[10:17])*1000) def getGas(inputString): return int(float(inputString[2:-2])*100) def save(cursor, database, dal, piek, dalTerug, piekTerug, gas, verbruik): print "SAVE" print "dal " + str(dal) print "piek " + str(piek) print "verbruik " + str(verbruik) print "dalterug " + str(dalTerug) print "piekterug " + str(piekTerug) print "gas " + str(gas) print data = (dal, piek, dalTerug, piekTerug, gas, verbruik) cursor.execute("INSERT INTO EnergieLog SET wanneer = NOW(), elektra_meterstand_dal = %s, elektra_meterstand_piek = %s, teruglever_elektra_meterstand_dal = %s, teruglever_elektra_meterstand_piek = %s, gas_meterstand = %s, moment_verbruik = %s", data) database.commit() now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") if(userId > 0): url = "http://www.***.nl/server/api/?user_id="+str(userId)+"&user_key="+userKey+"&datetime=" + urllib.quote_plus(now) + "&dal="+str(dal)+"&piek="+str(piek)+"&dal_terug="+str(dalTerug)+"&piek_terug="+str(piekTerug)+"&gas="+str(gas)+"&verbruik="+str(verbruik) try: result = urllib2.urlopen(url) except urllib2.URLError, e: print e def getConnection(): connection = serial.Serial() connection.baudrate = 9600 connection.bytesize=serial.SEVENBITS connection.parity=serial.PARITY_EVEN connection.stopbits=serial.STOPBITS_ONE connection.xonxoff=0 connection.rtscts=0 connection.timeout=20 connection.port="/dev/ttyUSB0" connection.open() return connection database = MySQLdb.connect(databaseHost, databaseUser, databasePass, databaseDb) cursor = database.cursor() connection = getConnection() dal = 0 piek = 0 verbruik = 0 dalTerug = 0 piekTerug = 0 cursor.execute("SELECT gas_meterstand FROM EnergieLog WHERE gas_meterstand != 0 ORDER BY id DESC LIMIT 1") gas = int(cursor.fetchone()[0]) gasNext = False lineCount=0 def exitSignal(signal, frame): connection.close() print "Einde" sys.exit(0) signal.signal(signal.SIGINT, exitSignal) while True: line = str(connection.readline()).strip() if('0-0:96.1.1' in line): if(verbruik > 0): save(cursor, database, dal, piek, dalTerug, piekTerug, gas, verbruik) if('1-0:1.8.1' in line): dal = getKwh(line) if('1-0:1.8.2' in line): piek = getKwh(line) if('1-0:1.7.0' in line): verbruik = getKw(line) if('1-0:2.8.1' in line): dalTerug = getKwh(line) if('1-0:2.8.2' in line): piekTerug = getKwh(line) if(gasNext == True): gas = getGas(line) gasNext = False if('0-1:24.3.0' in line): gasNext = True |
[ Voor 4% gewijzigd door Koetjeboe op 26-01-2014 14:09 ]
Na wat zoekwerk heb ik toen ook een Raspberry PI aangesloten direct op de gpio port met paar weerstandjes en een transistor.
Aangezien ik het wat netter wil hebben en een vriend van me het zelfde wil zit ik er aan te denken om printplaatjes te laten maken.
Als ik zo zit te rekenen zit niet eens aan €0,50 per printplaat excl. rj11 snoertje.
Is er hier toevallig ook animo voor?
Tnx! Ben ook net in Python gedoken en met jouw code kom ik zeker een stap verder!Koetjeboe schreef op zondag 26 januari 2014 @ 14:02:
[...]
Dit is hoe ik het nu heb, werkt hier heel aardig. Heb even de databasegegevens en de website waar ik ze naar toe schrijf eruit gehaald. Eerste echte pythoncode van mij ooit maar volgens mij is het prima te lezen
Naast dit script draaien er nog 2, eentje om het samen te vatten tot 1 record per 5 minuten en 1 script om die data weer naar mijn PiTFT te sturen als mooie grafiekjes.
Ik heb sinds vandaag een slimme meter met P1 poort. Aangezien ik geen bedraad internet in de schuur heb waar de meter hangt wil ik via WIFI, de rPI is (ik heb er twee) dan al snel iets wat voor de hand ligt om te gebruiken, dus zo'n printje is misschien wel makkelijk (kan ik dan samen met de rPI in een mooi doosje wegbouwen) maar op gaatjesprint moet dat toch ook wel lukken met die paar componenten? Maar als je ze laat maken, heb ik interesse.brambo123 schreef op zondag 26 januari 2014 @ 19:42:
Ik heb sinds juni ook een slimme meter.
Na wat zoekwerk heb ik toen ook een Raspberry PI aangesloten direct op de gpio port met paar weerstandjes en een transistor.
Aangezien ik het wat netter wil hebben en een vriend van me het zelfde wil zit ik er aan te denken om printplaatjes te laten maken.
Als ik zo zit te rekenen zit niet eens aan €0,50 per printplaat excl. rj11 snoertje.
Is er hier toevallig ook animo voor?
Ik moet sowieso nog op zoek naar de schema's, meeste componenten heb ik denk ik wel - de software zal nog een uitdaging worden maar daar ga ik wel achter komen zodra ik dit topic een beetje uitheb,
franssie.bsky.social | 🎸 Niets is zo permanent als een tijdelijke oplossing | Een goed probleem komt nooit alleen | Gibson guitar Fender Guitar God Damn Guitar
Anoniem: 211986
Ik heb de image van Curlymo al gedownload en op SD gezet, maar bij het editen van de cmdline.txt gaat het al fout, document is niet leesbaar
Ik heb een C# mono programma geschreven voor mijn RaspBerry die mijn Landis E350 P1 poort kan uitlezen, helaas werkt het niet want ik ontvang nooit data terug. Het connecten en schrijven gaat zonder foutmeldingen.
Ik ben begonnen door deze(http://gejanssen.com/howto/Slimme-meter-uitlezen/index.html) uitleg te volgen en hierin heb ik geen enkel probleem om te communiceren met mijn slimme meter. Toch in mijn eigen programma wil het gewoon niet lukken en na 2 avonden proberen zie ik het licht niet meer. Nu kan ik wel de output van een python scriptje oppakken, maar dat is lang niet zo netjes als het helemaal zelf afhandelen in code.
Dit is mijn code, wie o wie heeft een tip of oplossing om mij op weg te helpen?
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
| class Program { static void Main(string[] args) { try { SerialPort sp = new SerialPort("/dev/ttyUSB0", 9600, Parity.Even,7,StopBits.One); sp.DataReceived += port_OnReceiveDataz; sp.ReadTimeout = 400; sp.Open(); Console.WriteLine("verbinding open"); sp.WriteLine("/?!"); Console.WriteLine("schrijfactie gedaan"); Console.ReadLine(); sp.Close(); } catch (Exception ex) { Console.WriteLine(string.Format("Het gaat fout: {0}", ex.Message)); } } private static void port_OnReceiveDataz(object sender, SerialDataReceivedEventArgs e) { SerialPort spL = (SerialPort)sender; byte[] buf = new byte[spL.BytesToRead]; Console.WriteLine("DATA RECEIVED!"); spL.Read(buf, 0, buf.Length); foreach (Byte b in buf) { Console.Write(b.ToString()); } Console.WriteLine(); } } |
If it aint broke, fix it till it is!
Dingen die je kan proberen:
* Sanity check door rx en tx aan elkaar te zetten; je moet dan ontvangen wat je stuurt
* In plaats van het DataReceived event de ReadByte() of ReadLine() functie gebruiken
--edit--
ik zie dat dat mogelijk voor een oudere versie Mono geldt; als het intussen wel geïmplementeerd is is het probleem waarschijnlijk dat het event gequeued wordt en dat Main() returnt zonder het af te handelen; je hebt geen synchronization context die het event asynchroon afhandelt dus wordt geprobeerd dat op de main thread te doen. Bovenstaande dingen zijn dan nog steeds zinnig om te proberen
[ Voor 42% gewijzigd door Proton_ op 19-02-2014 18:13 ]
Het ik-wil-een-warmtepomp FAQ topic- '23 MG5, douchen met wtw en Auer Edel Eau, verwarming met Vaillant Arotherm Plus.
Ik had die site gevonden en op basis daarvan ook een nieuwe versie geschreven, helaas leest deze ook nog niks.
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
| public static void Main(string[] args) { Thread writeThread = new Thread(new ThreadStart(WriteThread)); Thread readThread = new Thread(new ThreadStart(ReadThread)); readThread.Start(); Thread.Sleep(200); // TODO: Ugly. writeThread.Start(); Console.ReadLine(); readThread.Abort(); } private static void WriteThread() { // get port names with dmesg | grep -i tty SerialPort sp2 = new SerialPort("/dev/ttyUSB0", 9600, Parity.Even,7,StopBits.One); sp2.Open(); if (sp2.IsOpen) Console.WriteLine("WriteThread(), sp2 is open."); else Console.WriteLine("WriteThread(), sp2 is open."); sp2.Write("/?\r\n"); // Is dit commando eigenlijk wel nodig, RTS hangt namelijk aan 5v sp2.Close(); } private static void ReadThread() { SerialPort sp = new SerialPort("/dev/ttyUSB0", 9600, Parity.Even, 7, StopBits.One); sp.Open(); if (sp.IsOpen) Console.WriteLine("ReadThread(), sp Opened."); else Console.WriteLine("ReadThread(), sp is not open."); while (true) { Thread.Sleep(200); if (sp.BytesToRead > 0) { Console.WriteLine(sp.ReadByte()); } } } } |
If it aint broke, fix it till it is!
Wat is de uitvoer van onderstaande variant?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| class Program { static void Main(string[] args) { try { using(SerialPort sp = new SerialPort("/dev/ttyUSB0", 9600, Parity.Even,7,StopBits.One)) { sp.ReadTimeout = 400; sp.Open(); Console.WriteLine("verbinding open"); sp.WriteLine("/?!"); Console.WriteLine("schrijfactie gedaan"); Console.WriteLine("Gelezen:{0}", sp.ReadLine()); Console.ReadLine(); } } catch (Exception ex) { Console.WriteLine(string.Format("Het gaat fout: {0}", ex.Message)); } } } |
Het ik-wil-een-warmtepomp FAQ topic- '23 MG5, douchen met wtw en Auer Edel Eau, verwarming met Vaillant Arotherm Plus.
Nu leest hij netjes data uit
If it aint broke, fix it till it is!
Alleen de output van mijn p1 poort is een beetje raar.
Ik heb 2 versies van rs232 naar usb verloop geprobeerd. (Emininent) had problemen met een geinverteerd rxd signaal.
De 2e een sitecom lijkt daar geen last van te hebben, Er komt wel info binnen om de 10 seconden maar het lijkt een beetje scrambled.
Hca/ISk5\2MT382-1003
0-0:96.1.1(5A424556303035303735353630353131)
1-8:1.8.1(02432.208*kWh)
1-8:1.8.2(0248;.003*kWh)
1-0:2.8.1(00000.001*kWh)
1-0:2.8.2(00000.001*=/-jRJ2r
#sBKk
1-0:1.7.0(0000.43*k)
1-0:2.7.0(0808.08*kW)
0-0:17.0.0(099N R[W)
0-0:96.3.10(1)
0-0:96.13.1()
0-0:96.13.0()
0-S#s
sBJk
0-1:96.1.0(323431353730303239323035383936313njj
S#srB
#"
J(6)KCj K.
S#.{.1)(m&-L Jr2*Jk
0-1:24.4.0(1)
!
Iemand suggesties?
Het ding wordt herkend als CP210x uart bridge, maar ik krijg steeds disconnected from ttyUSB0 waarna hij het device nummer ophoogt en het nog 4x probeert met hetzelfde resultaat

PVoutput 2x Toshiba Daiseikai 8 3,5kW, SWW Atlantic Explorer V3 200l. Gasloos aug 2016, 8620Wp, Monoblock Panasonic J 7kW
Gaat volgens mij duidelijk beter om met de sitecom dan standaard cu -l
Hans
Mijn leeskop heeft de omschrijving die je geeft.
Wat misschien een probleem kan zijn is dat de led op de Ampy bij elke Watt een keer knippert en dat dit de disconnects geeft.
Op een windows pc kan je met hyper terminal de codes /?! en 000 sturen waarna hij de data geeft.
Ook draait Websolarlog op mijn Rpi en die kan in principe de leeskop aanroepen, echter loopt dat spaak doordat de leeskop al disconnected is voor je hem benadert.
Nu ben ik geen Linux goeroe dus het kan best zijn dat ik dingen niet goed heb gedaan met rechten oid.
PVoutput 2x Toshiba Daiseikai 8 3,5kW, SWW Atlantic Explorer V3 200l. Gasloos aug 2016, 8620Wp, Monoblock Panasonic J 7kW
Hans
Toch denk ik dat de communicatie wel goed gaat, anders herkent hij de leeskop immers niet.
Daarbij hoeft de leeskop niet sneller dan 300Bd te gaan.
Vanwege andere taken kan ik de Rpi niet even snel verplaatsen, maar ik ga het nog eens met een kortere verbinding proberen.
PVoutput 2x Toshiba Daiseikai 8 3,5kW, SWW Atlantic Explorer V3 200l. Gasloos aug 2016, 8620Wp, Monoblock Panasonic J 7kW
In Minicom kan je opties als line-delay toevoegen, als ik een bestand (commando's) met ascii verzend dan blijkt het te werken!
/AMP45227-0614
`````````````````````````````
0.00.6.1(16232309)
2.18.1(008088.10)
2.18.2(005782.65)
2.18.0(013870.75)
3.28.1(000423.21)
3.28.2(000983.35)
3.28.0(001406.56)
!-`````````````````
De ` zie ik elke keer als de rode led op de Ampy knippert (bij elke Wh).
Hopelijk kan ik dit straks met Websolarlog betrouwbaar uitlezen, dan is loggen naar pvoutput ook mogelijk
PVoutput 2x Toshiba Daiseikai 8 3,5kW, SWW Atlantic Explorer V3 200l. Gasloos aug 2016, 8620Wp, Monoblock Panasonic J 7kW
Jou manier van verwerken van data ziet er mooi uit via highstock, maar net als sommigen heb ik wat problemen met het implementeren ervan.
Ik draai gewoon Raspbian en de p1read.py draait ook gewoon stabiel en schrijft alles naar een queries.sql in een cache folder.
Maar ik krijg het niet voor mekaar dat de mysql.py deze doorzet naar de Mysql server.
Alles draait gewoon lokaal op de rbpi.
Ongetwijfeld gebrek aan kennis, maar ik zie door de bomen het bos even niet meer...
1
2
| pi@raspberrypi ~ $ cu -l /dev/ttyUSB0 -s 9600 --parity=none Connected. |
Verder gebeurd er niets.
Pin 4 op je rs232. Pin 1 van je rj11
franssie.bsky.social | 🎸 Niets is zo permanent als een tijdelijke oplossing | Een goed probleem komt nooit alleen | Gibson guitar Fender Guitar God Damn Guitar
Oh, ik heb gewoon een serial -> USB en serial -> RJ11 gebruikt die ik nog had liggen, heb de pinnen niet nagekeken of veranderd.M.vanderbos schreef op vrijdag 04 april 2014 @ 15:02:
Denk dat je request pin niet correct is aangesloten of geen 5v levert.
Pin 4 op je rs232. Pin 1 van je rj11
Misschien heeft de rPi niet voldoende stroom? De rPi krijgt zijn power via USB zonder extra voeding. Netwerk via een wifi dongel.
/edit
Het ligt niet aan de rPi. Ik heb net een laptop aangesloten en daarmee hetzelfde. Lijkt dus iets met de kabels te zijn.
Aan welke kabel en welke kant moet ik iets doen? Aan de RJ11 kop kant, aan de seriele kant van deze kabel of iets met de USB -> serieel converter?
/edit
Het was dus inderdaad de kabel. Het lijkt allemaal te werken nu
[ Voor 26% gewijzigd door c-nan op 05-04-2014 15:52 ]
Heb hier namelijk eentje van eBay, en die heeft als id: 1a86:7523 en identificeert zichzelf als QinHeng HL-340
Script vraagt om een argument voor de compoort. Script zou er ook een moeten voorstellen, maar doet dat in mijn geval dus niet. Accepteert /dev/ttyUSB0 ook niet (vraagt dan opnieuw om de juiste compoort op te geven). Wat doe ik fout?
UPDATE: met wat proberen toch gelukt. Als com poort 1 opgegeven, Script geeft als output nu netjes dat het om /dev/ttyUSB0 gaat. P1 Telegrammen verschijnen ook netjes in beeld.
Mijn uiteindelijke bedoeling is om de gegevens te uploaden naar PVoutput, waar ik op dezelfde Rpi met Omnik-Datalogger ook al de opbrengsten van mijn PV installatie bij hou.
Of is daar misschien iets beters voor?
UPDATE: Uploaden van het verbruik naar PVoutput lijkt nu deels te werken: Power Used wordt nu geregistreerd. Echter de al met /Omnik-Data-Logger geregistreerde opbrengst (productie) wordt er overschreven door de door Smart Meter Dashboard gelogde export (teruglevering). Die is natuurlijk vaak minder vanwege direct gebruik. Weet iemand hoe ik die kan uitsluiten, of de data van beide loggers correct samen kan voegen?
@weebl15weebl15 schreef op dinsdag 02 juli 2013 @ 17:29:
Ik lees sinds vorige week nu ook onze slimme meter uit met een rpi. Inclusief klein python scriptje om aan het eind van de dag import/export en consumptie van stroom te uploaden naar pvoutput.org.
Hoe dan precies? Zou je je scriptje willen publiceren?
b.v.d.
[ Voor 36% gewijzigd door ikookmaar op 23-06-2014 11:31 ]
De recentere FTDI chipsets werken anders ook prima op de Raspberry Pi.ThinkPadd schreef op zondag 22 juni 2014 @ 09:42:
Hoe nauw komt het qua chipset van de USB > Serial converter? Ik weet dat FTDI niet lekker werkt.
Heb hier namelijk eentje van eBay, en die heeft als id: 1a86:7523 en identificeert zichzelf als QinHeng HL-340
Ik heb zelf sinds twee maanden de volgende kabel in gebruik met de FT232RL chip: http://www.antratek.nl/ft...-serieel-ttl-kabel-5v-ttl. Kwestie van zelf een RJ11 stekkertje aanknijpen en gaan. Ook erg handig dat je met deze kabel de RXD kan inverteren (dat is nodig voor mijn meter) door de kabel simpelweg daarvoor te programmeren met een configuratieprogramma.
Over deze kabel krijg ik nu al 2 maanden elke 10 seconden keurig een telegram binnen. Is gewoon 100% stabiel, nog geen enkele vastloper of andere problemen gehad
Maar het wil niet echt lukken... Probeer de image van CurlyMo op een 2GB microSD kaartje (via microSD > SD converter) te schrijven.
Heb het geprobeerd onder Windows met win32diskimager, en onder OSX met dd. Maar iedere keer zelfde resultaat, namelijk dat de RPi niet opstart, ik zie alleen dat gekleurde scherm (wat erop duidt dat de kernel.img niet goed geladen wordt).
Als ik cmdline.txt op Windows open dan zie ik ook alleen maar garbage tekens....
Ook nog met een ander 8GB microSD kaartje geprobeerd, same story... Image corrupt?
MD5 hash: 47ce591c580a033bca373cbc63cc98d3
HELP!
Wat je kunt proberen is op de volgende parameter op te nemen in de config.txt file:ThinkPadd schreef op woensdag 02 juli 2014 @ 11:05:
Ik ben hier ook mee bezig, krijg binnenkort een slimme meter.
Maar het wil niet echt lukken... Probeer de image van CurlyMo op een 2GB microSD kaartje (via microSD > SD converter) te schrijven.
Heb het geprobeerd onder Windows met win32diskimager, en onder OSX met dd. Maar iedere keer zelfde resultaat, namelijk dat de RPi niet opstart, ik zie alleen dat gekleurde scherm (wat erop duidt dat de kernel.img niet goed geladen wordt).
...
HELP!
1
| boot_delay=1 |
Dat heeft bij mij al meerdere malen een issue met het gekleurde scherm opgelost.
"What day is it?" asked Pooh. "It's today" squeaked Piglet. "My favorite day" said Pooh.
M'n MD5 matcht wel met de MD5 die op GitHub bij de download is gegeven (op 'i' klikken).
[ Voor 46% gewijzigd door ThinkPad op 06-07-2014 12:22 ]
Ik neem aan dat je de procedure hier beschreven gevolgd hebt?ThinkPadd schreef op zondag 06 juli 2014 @ 12:06:
Net even gekeken, maar config.txt en cmdline.txt bevatten allebei alleen maar garbage als ik ze probeer te openen in Sublime Text 2 (OSX).
M'n MD5 matcht wel met de MD5 die op GitHub bij de download is gegeven (op 'i' klikken).
VreemdThinkPadd schreef op zondag 06 juli 2014 @ 12:06:
Net even gekeken, maar config.txt en cmdline.txt bevatten allebei alleen maar garbage als ik ze probeer te openen in Sublime Text 2 (OSX).
Deze files zouden gewoon normaal leesbaar moeten zijn (zijnde tekst files).
En wat krijg je als je de SD kaart in een Windows machine duwt en ze opent met Notepad++?
"What day is it?" asked Pooh. "It's today" squeaked Piglet. "My favorite day" said Pooh.
Mag ik even advies vragen op dit zeer gewaardeerde forum?
Ik heb sinds een paar maanden zonnepanelen liggen op mijn dak. Op zoek naar een (betere) logging voor mijn Growatt omvormer stuitte ik op dit topic:
http://energiecommunity.e...d-naar?xg_source=activity
Ik heb dit met enige moeite aan de praat gekregen en log nu via de Raspberry PI elke 5 minuten naar PVOutput.
Een volgende stap in het loggen is het uitlezen van de P1 poort van mijn slimme meter, waarbij ik, gebruik makend van mijn Raspberry PI, de data ook wil uploaden naar PVOutput. Ik heb inmiddels behoorlijk wat afgelezen, maar kom zoveel info tegen dat ik door de bomen het bos niet meer zie.
Kan iemand mij adviseren hoe ik dit het beste kan inregelen? Ben helaas geen Linux expert, dus als het even kan in de vorm van een how to...
http://gejanssen.com/howto/Slimme-meter-uitlezen/
http://www.embezon.nl/index.php/uitlezen-smart-meter-p1
De laatste site is iets eenvoudiger, omdat hier een script kant en klaar op staat. Werkt perfect. Je kan loggen naar een mysql database.
Vervolgens kan je met bijv. met een python script data doorsturen naar PVOutput. Bedenk wel of je wel wilt dat je stroom verbruik op PVOutput komt. Een kwaadwillende kan er uit afleiden wanneer je thusis bent
Nefit EnviLine IDU Monoblock E 7 E-S, Boiler 200 L, Buffervat 50L. BQQKees
Mijn output is als volgt:
1
2
3
4
5
6
7
8
9
10
11
12
| pal@raspberrypi ~ $ cu -l /dev/ttyUSB0 -s 9600 --parity=none Connected. #´òËfff2ÖV6v2r6r6r6r6r6r6r6rV)Vi6´dë^4Vv6I¼+9=R{´dÛ^I"6VR!%Öi6´dk^#+ !%Öi6´dÛ^#+ !%Ö% #Éû¯=Rû´2û¯#f!Q)Vi6´2û¯#+ +_+9=Vû##öëZJV% +9=V{$46û¯ #f´òk)V% #´òËfff2ÖV6v2r6r6r6r6r6r6r6rV)Vi6´dë^4Vv6¼+9=Rû´dÛ^IVy{+möÖykZ^%±IÛF-È9=mVRV´2Ö)V%±I»F/+9=+V("=TOY"meT|IìRÖe½Vû ".VR!%Öi6´dë^#+ !%Öi¶´d[^#+ !%Ö% |
Wat ik begreep is dat de E350 geen invert signaal verstuurd; ligt dit aan mijn kabel? of een instelling op mijn rPi? (overigens krijg ik dezelfde gegevens binnen via Windows 7, Putty)
33 x ET Solar 270Wp = 8910Wp @ SMA Sunny TriPower STP 8000TL-20 Live: PVOutput
ik heb de boel aan de praat gekregen met een raspberry pi, de blauwe USB2Serial en een universele Serial2RJ45 connector....
als ik via: cu -l /dev/ttyUSB0 -s 9600 --parity=none
de P1 poort uitlees, krijg ik nette output, als ik echter via de python scripts van http://gejanssen.com/howt...-uitlezen/#mozTocId404422
of
http://www.embezon.nl/index.php/uitlezen-smart-meter-p1
probeer uit te lezen krijg ik rommel binnen:
('DSMR P1 uitlezen', '1.0')
Control-C om te stoppen
Pas eventueel de waarde ser.port aan in het python script
��M�5�M�AB��0000�9�90�
�
0-0:96.�.�(393�393635353�30�0�0�0�0�0�0�0�0��
�-0:�.�.�(05090.�0����詍
�-0:�.�.�(066��.66����詍
�-0:�.�.�(00000.000���詍
�-0:�.�.�(00000.000���詍
0-0:96.��.0(000���
�-0:�.�.0(0000.3���ש�
�-0:�.�.0(0000.00��ש�
0-0:��.0.0(999�A��
0-0:96.3.�0(���
0-0:96.�3.�(��
0-0:96.�3.0(��
0-�:96.�.0(3�3�303�3�30303�3�303333363�3�3�3���
0-�:��.�.0(03��
0-�:��.3.0(��0�06��0000�(0��(60�(��(0-�:��.�.0�(�3��
(03���.3�5��
0-�:��.�.0(���
!�
iemand enig idee??? lijkt een character set ding te zijn, maar not sure....
Volgens mij heb je voor die meter een andere kabel / constructie nodig. Zie http://www.smartmeterdash...ieuweslimmemetersinomloopPAL86 schreef op woensdag 06 augustus 2014 @ 17:35:
Zowel met 2400 als met 4800 krijg ik dezelfde soort berichten. 115200 geeft totaal geen resultaat. Zijn er nog andere ideeën?

Volgens mij zit hier geen P1-poort op. Wel zit er een optische verbinding op, lijkt het. Is het mogelijk deze meter daarover uit te lezen? Zo ja, wat heb ik daar precies voor nodig?
Bestaat er ook nog mooie software speciaal voor dit doel?
Gewoon een heel grote verzameling snoertjes
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
Er zit namelijk linksboven een IEC 62056 infrarood optische interface op. Mijn vraag is of dit een veelgebruikte/praktische manier is om het verbruik te loggen. Of is dat veel te lastig en kan ik beter een pulsteller kopen die de ledpulsen telt?
Ik heb natuurlijk al de Youless gevonden maar dat lijkt me toch een beetje te duur en te 'kant-en-klaar'. Je blijft wel Tweaker natuurlijk
[ Voor 14% gewijzigd door Compizfox op 06-08-2014 20:50 ]
Gewoon een heel grote verzameling snoertjes
Kant en klare module voor dat doel: http://www.dx.com/p/1-cha...e-for-arduino-blue-151224 , al kun je dus zelf zoiets maken mbv een sensor, LM393P, een paar weerstandjes en een potmeter. Heb een circuit in Multisim staan mocht je geïnteresseerd zijn
Wat betreft die IR interface, leesvoer: http://forum.arduino.cc/index.php/topic,147239.0.html
[ Voor 52% gewijzigd door Raven op 06-08-2014 21:14 ]
After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...
Oscar Wilde
De leeskop wordt via USB aangesloten. In eerste instantie gebruikte ik de script ME162.py(Copyright (c) 2012 J. van der Linde), later heb ik zelf een C-programma geschreven dat de eigenlijke datatransfer op 9600 baud uitvoert. De omzetting naar een webpagina verzorgt de script get_iskra.sh (Written by Marco Bakker, embezon@mbsoft.nl), Vanwegeg privay redenen kan ik de link naar die pagina's hier niet tonen
Hans
Dit topic is gesloten.