Ik heb mijn RPi aangesloten op mijn slimme meter om deze uit te lezen en op te slaan in een DB.
De output zou als volgt moeten zijn (in totaal 20 regels lang):
Helaas ziet de output er vaak als volgt uit:
De RPi ontvangt dus wel wat correcte data, maar vaak wordt dit afgebroken door wat volgens mij null characters zijn?
Mijn voorlopige code:
Wat heb ik geprobeert:
- Kabel op een Macbook aangesloten
- Python2
- Python3
Helaas blijft het probleem zich voor doen.
Wanneer ik de seriele poort lees met cu of Minicom heb ik geen problemen.
Iemand een idee wat het probleem is? Mijn code? Of een PySerial bug?
De output zou als volgt moeten zijn (in totaal 20 regels lang):
code:
1
2
3
4
5
6
7
8
| /ISk5\2ME382-1003 0-0:96.1.1(4B414C37303035313039) 1-0:1.8.1(00180.724*kWh) 1-0:1.8.2(00001.416*kWh) 1-0:2.8.1(00000.000*kWh) 1-0:2.8.2(00000.000*kWh) [...] ! |
Helaas ziet de output er vaak als volgt uit:
code:
1
2
3
4
5
6
7
8
| /ISk5\2ME382-1003 0-0:96.1.1(4B414C37303035313039) 1-0:1.8.1(00180.724*kWh) 1-0:1.8.2(00001.416*kWh) b'\x00\n' b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00 [...] |
De RPi ontvangt dus wel wat correcte data, maar vaak wordt dit afgebroken door wat volgens mij null characters zijn?
Mijn voorlopige code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| 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=None ser.port="/dev/ttyUSB0" ser.open() count=0 while count < 20: p1_raw = str(ser.readline()) print(p1_raw) count=count+1 ser.close() exit |
Wat heb ik geprobeert:
- Kabel op een Macbook aangesloten
- Python2
- Python3
Helaas blijft het probleem zich voor doen.
Wanneer ik de seriele poort lees met cu of Minicom heb ik geen problemen.
Iemand een idee wat het probleem is? Mijn code? Of een PySerial bug?