Oui j'arrive aussi a voir l'état de la batterie etc...Darkneo a écrit : 06 févr. 2019, 20:23 Hello all,
J'ai effectivement l'impression que les statuts du robot sont requêtés via le serveur (hébergé au Canada à priori).
Par contre, j'ai installé le plugin, ajouter le matériel.. Et ça ne fonctionne pas.... (je suis en domoticz 4.9700)
Sur les interrupteurs j'ai un champ alakhon à la place du on/off... J'ai regardé ton plugin.py, mais je ne comprends pas pourquoi la GUI est complètement vautrée... On dirait que c'est la partieQui ne s'affiche pas correctement.. J'ai comparé avec un autre plugin que j'utilise (le broadlink), et la synthaxe semble être la même:Code : Tout sélectionner
modeOptions = { "LevelActions": "|||", "LevelNames": "Off|Auto|Area|Edge|Zigzag", "LevelOffHidden": "true", "SelectorStyle": "0" }
Mais pas la création de l'interrupteur:Code : Tout sélectionner
Options = { "LevelActions" :"||||" , "LevelNames" :"Off|Learn|Test|Save|Reset" , "LevelOffHidden":"true", "SelectorStyle" :"0" }
Chez toi:Chez broadlink:Code : Tout sélectionner
Domoticz.Device(Name='Mode', Unit=self.modeUnit, TypeName='Selector Switch', Image=iconID, Options=self.modeOptions).Create()Ecart: Switchtype et Used, + double quote versus simple quote. J'essaierai de corriger les valeurs pour voir si cela corrige l'affichage...Code : Tout sélectionner
Domoticz.Device(Name="Command", Unit=1, TypeName="Selector Switch", Switchtype=18, Image=12, Options=Options, Used=1).Create()
Et comme un message dans le fil de discussion, quand je clique sur les boutons (enfin ceux qui sont là), ca ne fait rien... Est ce qu'il faut ajouter autre chose que Python 3.5 pour que ca fonctionne (d'ailleurs est ce que c'est bien python 3.5 qu'il faut)?
Je suis en train de regarder ta trace Wireshark. En gros il y a un protocole de communication TCP qui se fait entre nos robots et le server 47.91.67.181 (j'ai la même requête qui part vers cette ip chez moi)
Les PSH et ACK sont des informations d'envoi/réception d'informations (en gros l'un te dit qu'il l'a bien reçu, l'autre lui qu'il va en renvoyer). le FIN étant la fin de l'échange...
Perso, ca confirme que les différents statuts (batterie etc) ne sont gérés que via des infos TCP qui sont balancées au serveur (en gros le serveur balance une authent à ton robot, et derrière ton robot lui file "régulièrement" les infos).
J'ai pu recontruire (je pense) la communication complète de ton Wireshark. Je peux te dire, par exeple que quand tu as fait ton test, la batterie était à 100% mais qu'elle est tombée à 99%.
Par contre je vais avoir du mal à comparer les trames avec les miennes, j'ai l'impression qu'on n'a pas le même robot (j'ai un 790T). Les versions des firmwares sont différentes (2.4.139(500) chez toi, 1.8.2614(828) chez moi.
Mais je pense que plusieurs éléments dans la trame TCP sont importantes (et don il faudrait limiter la comm'...):
authCode
targetId
Idem ce qui est étrange dans ta trame, c'est que tu n'as ni IP, ni port de configurer dans la trame qui part... Alors que moi j'ai IP et Port...
Edit: Je modifie les infos car je me suis trompé dans le flux de comm'. En vrai ce qu'il "faudrait" faire, c'est balancer un paquet TCP au robot, contenant la même synthaxe que ce que le server canadien lui envoie. Un truc dans ce style là:
Mon inquiétude, c'est que je pense que l'ip à laquelle les statuts du robots sont renvoyés est "hardcodée" dans le robot (donc les statuts sont renvoyés à 47.91.67.181). Il faudrait faire le test d'envoyer la trame TCP à partir d'une autre IP pour voir si le robot renvoie les infos à l'ip qui a initié la connexion (mais si ca fonctionne, c'est franchement pas du tout sécurisé!!)Code : Tout sélectionner
{"cmd":0,"control":{"authCode":"authcodedurobot","deviceIp":"","devicePort":"","targetId":"IDdu robot","targetType":"jesaispascequecest"},"seq":0,"value":{"transitCmd":"100"}}
Pour le reste du Plugin, si on arrive à débugguer le paquet TCP, ca veut dire qu'on arrivera aussi très certainement à récupérer la cartographie (et donc potentiellement à la stocker pour la réutiliser pour faire du nettoyage de zone). Mais on va pas s'enflammer tout de suite![]()
1-
Mais je n'arrive pas a extraire ou voir les ordres que le gars du github a trouvé et il parle de protocol udp:
https://github.com/oskarn97/fhem-Prosce ... oscenic.pm
MODE_AUTO => 'AA55A55A09FDE20906000100020500000000', {"clearName":"Auto","clearSign":"clearModel_1"}
MODE_AREA (SPOT)=> 'AA55A55A0AFDE20906000100020400000000', {"clearName":"Spot","clearSign":"clearModel_5"}
MODE_EDGE => 'AA55A55A0BFDE20906000100020300000000', {"clearName":"Edge","clearSign":"clearModel_4"}]
MODE_ZIGZAG => 'AA55A55A0CFDE20906000100020200000000', {"clearName":"Zig-Zag","clearSign":"clearModel_2"}
STOP => 'AA55A55A0DFDE20906000100030000000000',
RUN => 'AA55A55A0DFDE20906000100020000000100',
DOCK => 'AA55A55A0FFDE20906000100010000000000'
Je peut refaire des tests mais il faudrai m'aiguiller sur quoi chercher (=> retrouvé les valeurs si dessus serai un bon debut) sous wireshark. (je suis sur le 811gb et les ordres si dessus fonctionnent par envoie via un sh (page 1))
je peut faire un session "run" puis "mode auto" puis "mode area" puis "mode edge" puis "mode zig zag" puis "dock" voir si on retrouve les fameux codes.
puis je vais essayer ca https://www.domoticz.com/forum/viewtopi ... ks#p113448
2-
Alexa arrive a avoir le status du robot via la skill
"Alexa, demande à clean bot de commencer à nettoyer."
"Alexa, demande à clean bot d'arrêter le nettoyage."
"Alexa, demande à clean bot de commencer à charger."
"Alexa, demande à clean bot de commencer le nettoyage des bords"
"Alexa, demande à clean bot de commencer le nettoyage de la zone"
"Alexa, demande à clean bot le statut"