J'ai un équipement connecté à un serveur Windows qui envoie des données de conso électrique via un port COM dans un flux xml.
Je voudrais essayer de parser le flux xml mais je suis embêté par qq caractères qui me bloquent dans mon code.
Voici le code :
Code : Tout sélectionner
import serial
import os
import requests
from lxml import etree
#Constants
COMPORT = "COM4"
COMPORT_BAUD = 57600
DOMOTICZ_URL = "http://192.168.0.36:8080"
# connect to the CurrentCost meter
ser = None
try:
ser = serial.Serial(port=COMPORT, baudrate=COMPORT_BAUD, timeout=30)
except serial.SerialException:#, msg:
print("Failed to connect to CurrentCost meter :: " + str(msg))
exit(1)
print ("Connected to "+COMPORT+" at "+str(COMPORT_BAUD)+" Baud!")
print (ser.name)
print ("Trying to read lines now....")
while True:
line = str(ser.readline())
line = line.lstrip('b')
line = line.replace('\n','').replace('\r','')
print (line) # Uncomment out this row if you want to see the raw XML
#line = '<msg><src>CC128-v0.11</src><dsb>01784</dsb><time>16:40:19</time><tmpr>10.6</tmpr><sensor>2</sensor><id>03711</id><type>1</type><ch1><watts>00116</watts></ch1></msg>'
#node = etree.fromstring(line)
#print (node.tag)
#print (node.findtext('src'))
exit(0)Code : Tout sélectionner
'<msg><src>CC128-v0.11</src><dsb>01801</dsb><time>11:52:21</time><tmpr>13.3</tmpr><sensor>2</sensor><id>03711</id><type>1</type><ch1><watts>00043</watts></ch1></msg>\r\n'
'<msg><src>CC128-v0.11</src><dsb>01801</dsb><time>11:52:23</time><tmpr>13.3</tmpr><sensor>1</sensor><id>01912</id><type>1</type><ch1><watts>00057</watts></ch1></msg>\r\n'