Je n'ai pas d'autres émetteur X2D à la maison, alors oui ça pourrait venir d'un voisin... Je vais pouvoir piloter son installation ??
Inutile d'investir plus donc, mais c'est bien un 'infotype=11' qui est reçu, et qui pose problème au script python au moment de récupérer les 3 valeurs du "qualifier"...
2017-06-16 11:00:44.697 (RFPlayer) ZIA33{ "frame" :{"header": {"frameType": "0", "cluster": "0", "dataFlag": "1", "rfLevel": "-100", "floorNoise": "-106", "rfQuality": "2", "protocol": "8", "protocolMeaning": "X2D",
"infoType": "11", "frequency": "868350"},"infos": {
"subType": "0", "subTypeMeaning": "Detector/Sensor", "id": "2600471280",
"qualifier": "8", "qualifierMeaning": { "flags": ["Supervisor/Alive"]}}}}
2017-06-16 11:00:44.697 (RFPlayer) infoType : 11
2017-06-16 11:00:44.697 (RFPlayer) Error while decoding or reading JSON
Et dans le script, dans le pavé InfoType 11, le SubTupe 0 est traité comme suit (extrait) :
##############################################################################################################
#####################################Frame infoType 11 Alarm X2D protocol / Shutter ####################
##############################################################################################################
if infoType == "11":
protocol = DecData['frame']['header']['protocol']
SubType = DecData['frame']['infos']['subType']
##############################################################################################################
if SubType == "0" : # Detector/sensor
id = DecData['frame']['infos']['id']
qualifier = list(bin(DecData['frame']['infos']['qualifier'])[2:])
Tamper=qualifier[0]
Alarm=qualifier[1]
Battery=qualifier[2]
if Tamper=="0" and Alarm=="0" :
status=0
if Tamper=="1" and Alarm=="0" :
status=10
if Tamper=="0" and Alarm=="1" :
status=20
if Tamper=="1" and Alarm=="1" :
status=30
if Battery=="0" :
Battery=100
else :
Battery=5
Options = {"infoType":infoType, "id": str(id), "protocol": str(protocol), "subType": str(SubType), "LevelActions": "||||", "LevelNames": "Off|Tamper|Alarm|Tamper+Alarm", "LevelOffHidden": "False", "SelectorStyle": "0"}
Domoticz.Debug("
Options to find or set : " + str(Options))
N'ayant pas la trace "Options to find or set" dans la log, j'en déduis que l'erreur arrive avant la série de test "IF", donc à priori sur l'instruction "qualifier =..."
Quant à la trame, je pensais bien à la trame binaire... Car si le RFPlayer ne sait pas la décoder... le plugin non plus (sauf si je me trompe ?).