mrwiwi / tydom2mqtt

Link between a Delta Dore's Tydom Hub and and a MQTT broker, unofficial of course.
MIT License
28 stars 17 forks source link

Several covers have the same ID #3

Closed azrod closed 4 years ago

azrod commented 4 years ago

Hello,

I have a bug on the covers. Several covers have the same ID.

Incoming message type : data detected
Cover created / updated :  Cuisine-Ouest 1530906233 89
Cover created / updated :  SDB 1530906293 100
Cover created / updated :  SDB 1530906293 100
Cover created / updated :  SDB 1530906293 100
Cover created / updated :  SDB 1530906293 90
Cover created / updated :  SDB 1530906293 70
Cover created / updated :  Ch 2 1530906353 100

While in debug mode, the covers have a different ID

{'id': 1530906233, 'endpoints': [{'id': 1530906233, 'error': 0, 'data': [{'name': 'thermicDefect', 'validity': 'upToDate', 'value': False}, {'name': 'position', 'validity': 'upToDate', 'value': 89}, {'name': 'onFavPos', 'validity': 'upToDate', 'value': True}, {'name': 'upDefect', 'validity': 'upToDate', 'value': False}, {'name': 'downDefect', 'validity': 'upToDate', 'value': False}, {'name': 'obstacleDefect', 'validity': 'upToDate', 'value': False}, {'name': 'intrusion', 'validity': 'upToDate', 'value': False}, {'name': 'battDefect', 'validity': 'upToDate', 'value': False}]}]}
Cover created / updated :  Cuisine-Ouest 1530906233 89
{'id': 1530906293, 'endpoints': [{'id': 1530906293, 'error': 0, 'data': [{'name': 'thermicDefect', 'validity': 'upToDate', 'value': False}, {'name': 'position', 'validity': 'upToDate', 'value': 100}, {'name': 'onFavPos', 'validity': 'upToDate', 'value': False}, {'name': 'upDefect', 'validity': 'upToDate', 'value': False}, {'name': 'downDefect', 'validity': 'upToDate', 'value': False}, {'name': 'obstacleDefect', 'validity': 'upToDate', 'value': False}, {'name': 'intrusion', 'validity': 'upToDate', 'value': False}, {'name': 'battDefect', 'validity': 'upToDate', 'value': False}]}]}
Cover created / updated :  SDB 1530906293 100
{'id': 1530906294, 'endpoints': [{'id': 1530906293, 'error': 0, 'data': [{'name': 'thermicDefect', 'validity': 'upToDate', 'value': False}, {'name': 'position', 'validity': 'upToDate', 'value': 100}, {'name': 'onFavPos', 'validity': 'upToDate', 'value': False}, {'name': 'upDefect', 'validity': 'upToDate', 'value': False}, {'name': 'downDefect', 'validity': 'upToDate', 'value': False}, {'name': 'obstacleDefect', 'validity': 'upToDate', 'value': False}, {'name': 'intrusion', 'validity': 'upToDate', 'value': False}, {'name': 'battDefect', 'validity': 'upToDate', 'value': False}]}]}
Cover created / updated :  SDB 1530906293 100
{'id': 1530906295, 'endpoints': [{'id': 1530906293, 'error': 0, 'data': [{'name': 'thermicDefect', 'validity': 'upToDate', 'value': False}, {'name': 'position', 'validity': 'upToDate', 'value': 100}, {'name': 'onFavPos', 'validity': 'upToDate', 'value': False}, {'name': 'upDefect', 'validity': 'upToDate', 'value': False}, {'name': 'downDefect', 'validity': 'upToDate', 'value': False}, {'name': 'obstacleDefect', 'validity': 'upToDate', 'value': False}, {'name': 'intrusion', 'validity': 'upToDate', 'value': False}, {'name': 'battDefect', 'validity': 'upToDate', 'value': False}]}]}
Cover created / updated :  SDB 1530906293 100
{'id': 1530906296, 'endpoints': [{'id': 1530906293, 'error': 0, 'data': [{'name': 'thermicDefect', 'validity': 'upToDate', 'value': False}, {'name': 'position', 'validity': 'upToDate', 'value': 90}, {'name': 'onFavPos', 'validity': 'upToDate', 'value': False}, {'name': 'upDefect', 'validity': 'upToDate', 'value': False}, {'name': 'downDefect', 'validity': 'upToDate', 'value': False}, {'name': 'obstacleDefect', 'validity': 'upToDate', 'value': False}, {'name': 'intrusion', 'validity': 'upToDate', 'value': False}, {'name': 'battDefect', 'validity': 'upToDate', 'value': False}]}]}
Cover created / updated :  SDB 1530906293 90
{'id': 1530906297, 'endpoints': [{'id': 1530906293, 'error': 0, 'data': [{'name': 'thermicDefect', 'validity': 'upToDate', 'value': False}, {'name': 'position', 'validity': 'upToDate', 'value': 70}, {'name': 'onFavPos', 'validity': 'upToDate', 'value': False}, {'name': 'upDefect', 'validity': 'upToDate', 'value': False}, {'name': 'downDefect', 'validity': 'upToDate', 'value': False}, {'name': 'obstacleDefect', 'validity': 'upToDate', 'value': False}, {'name': 'intrusion', 'validity': 'upToDate', 'value': False}, {'name': 'battDefect', 'validity': 'upToDate', 'value': False}]}]}
Cover created / updated :  SDB 1530906293 70
{'id': 1530906353, 'endpoints': [{'id': 1530906353, 'error': 0, 'data': [{'name': 'thermicDefect', 'validity': 'upToDate', 'value': False}, {'name': 'position', 'validity': 'upToDate', 'value': 100}, {'name': 'onFavPos', 'validity': 'upToDate', 'value': False}, {'name': 'upDefect', 'validity': 'upToDate', 'value': False}, {'name': 'downDefect', 'validity': 'upToDate', 'value': False}, {'name': 'obstacleDefect', 'validity': 'upToDate', 'value': False}, {'name': 'intrusion', 'validity': 'upToDate', 'value': False}, {'name': 'battDefect', 'validity': 'upToDate', 'value': False}]}]}
Cover created / updated :  Ch 2 1530906353 100

Thanks for your help, Regards

GiPe66 commented 4 years ago

@azrod It seems quite normal for me. Each cover has a unique ID. You have three covers and three ids.

azrod commented 4 years ago

I have 7 different covers. I edited the file below so that the 7 covers go back

tydom_websocket.py

@@ -404,11 +404,11 @@ class TydomWebSocketClient():
                             # Get list of shutter
                             if i["last_usage"] == 'shutter':
                                 # print('{} {}'.format(i["id_endpoint"],i["name"]))
-                                device_dict[i["id_endpoint"]] = i["name"]
+                                device_dict[i["id_device"]] = i["name"]
                                 # TODO get other device type

@@ -420,7 +420,7 @@ class TydomWebSocketClient():
                                 try:
                                     for elem in i["endpoints"][0]["data"]:
                                         # Get full name of this id
-                                        endpoint_id = i["endpoints"][0]["id"]
+                                        endpoint_id = i["id"]
                                         # Element name
mrwiwi commented 4 years ago

Merged your changes, thanks ! Don't hesitate !