Er zijn veel topics over P1 poorten uitlezen van Slimme meters, veel problemen gevonden over onjuiste settings of kabels/chips die het signaal niet inverten maar ik lijk toch echt iets anders te hebben
. Ik heb zelf een Raspberry Pi B+ en daarop de kabel P1 Converter Cable V2. Via Python met het script van Gejanssen.com kan ik het uitlezen, maar dit gaat lang niet altijd goed
Soms komt er maar de helft binnen en dan begint ie opnieuw totdat het script hem terminate.
Output goed: http://i.imgur.com/aIzK9Dx.png
Output fout: http://i.imgur.com/j5qttrt.png
Output via minicom (gaat altijd goed): http://i.imgur.com/8KcQrGd.png
Alle settings voor m'n meter moeten goed staan (parity, baud rate, bytesize) anders zou ik de juiste pogingen ook niet binnen moeten krijgen
ook rebootje gedaan, alles nagelopen
met minicom krijg ik netjes alle data binnen elke keer precies zoals het bij "Output goed" gaat.
Script in Python
Output goed: http://i.imgur.com/aIzK9Dx.png
Output fout: http://i.imgur.com/j5qttrt.png
Output via minicom (gaat altijd goed): http://i.imgur.com/8KcQrGd.png
Alle settings voor m'n meter moeten goed staan (parity, baud rate, bytesize) anders zou ik de juiste pogingen ook niet binnen moeten krijgen

Script in Python
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
| import sys import serial ser = serial.Serial() ser.baudrate = 115200 ser.bytesize=serial.EIGHTBITS ser.parity=serial.PARITY_NONE ser.stopbits=serial.STOPBITS_ONE ser.xonxoff=0 ser.rtscts=0 ser.timeout=30 ser.port="/dev/ttyUSB0" try: ser.open() except: sys.exit ("Fout bij het openen van %s." % ser.name) p1_teller=0 while p1_teller < 28: p1_line='' try: p1_raw = ser.readline() except: sys.exit ("Seriele poort %s kan niet gelezen worden." % ser.name ) p1_str=str(p1_raw) p1_line=p1_str.strip() print (p1_line) p1_teller = p1_teller +1 try: ser.close() except: sys.exit ("Programma afgebroken. Kon de seriele poort %s niet sluiten." % ser.name ) |
[ Voor 6% gewijzigd door WoBBeL op 13-10-2015 19:43 ]