Bonsoir,
Récemment, des belles promos sur le Xiaomi X20+ m’ont poussé à ajouter des camarades à mes vieillissants Xiaomi V1 et S5.
@sagitaz a suivi le mouvement. Du coup, on a joué un peu avec pour une intégration Jeedom et plugin-jeemate avec le plugin-mirobot.
Suite à cette intégration, on propose donc les corrections et évolutions suivantes :
- Brosse principale doit être remplacé par Brosse latérale dans le fichier de config :
(bizarrement, les commandes de la brosse principale ne remontent pas dans la commande status :brush-cleaner:brush-left-time-2etbrush-cleaner:brush-life-level-2)
{
"logicalId": "brush-cleaner:brush-left-time",
"name": "{{Temps restant brosse latérale}}",
"type": "info",
"subtype": "numeric",
"isVisible": 1,
"unite": "h",
"template": {
"dashboard": "line",
"mobile": "line"
}
},
{
"logicalId": "brush-cleaner:brush-life-level",
"name": "{{Brosse latérale}}",
"type": "info",
"subtype": "numeric",
"isVisible": 1,
"unite": "%",
"template": {
"dashboard": "line",
"mobile": "line"
}
},
- Passer le sous-type de la commande « Equipement en erreur » (libellé de l’erreur en cours) à
stringau lieu denumeric
{
"logicalId": "error_device",
"name": "{{Equipement en erreur}}",
"type": "info",
"subtype": "string",
"isVisible": 1,
"template": {
"dashboard": "line",
"mobile": "line"
},
"configuration": {
"request": "none"
}
},
- Ajout de la gestion de nouveaux états
} elseif ($modelType == 'genericmiot') {
$device_status_str = "";
if (($statusOutput["vacuum:status"] == 2) && ($statusOutput["battery:charging-state"] == 1)) $device_status_str = __("Prêt à démarrer", __FILE__);
if ($statusOutput["vacuum:status"] == 1) $device_status_str = __("Aspiration en cours", __FILE__);
if (($statusOutput["vacuum:status"] == 2) && ($statusOutput["battery:charging-state"] != 1)) $device_status_str = __("Arrêt", __FILE__);
if (($statusOutput["vacuum:status"] == 3) && ($statusOutput["battery:charging-state"] != 1)) $device_status_str = __("En pause", __FILE__);
if ($statusOutput["vacuum:status"] == 4) $device_status_str = __("Erreur", __FILE__);
if (($statusOutput["vacuum:status"] == 5) && ($statusOutput["battery:charging-state"] == 5)) $device_status_str = __("Retour maison", __FILE__);
if (($statusOutput["vacuum:status"] == 6) && ($statusOutput["battery:charging-state"] == 1)) $device_status_str = __("En charge", __FILE__);
if ($statusOutput["vacuum:status"] == 7) $device_status_str = __("Aspiration et lavage en cours", __FILE__);
if ($statusOutput["vacuum:status"] == 8) $device_status_str = __("Séchage de la serpillère", __FILE__);
if ($statusOutput["vacuum:status"] == 9) $device_status_str = __("Nettoyage de la serpillère", __FILE__);
if ($statusOutput["vacuum:status"] == 10) $device_status_str = __("Retour pour nettoyage de la serpillère", __FILE__);
if ($statusOutput["vacuum:status"] == 12) $device_status_str = __("Nettoyage en cours de la Zone", __FILE__);
if ($statusOutput["vacuum:status"] == 13) $device_status_str = __("En veille", __FILE__);
if ($device_status_str != "") $this->checkAndUpdateCmd("device_status_str", $device_status_str);
- Ajout de la gestion de plusieurs erreurs
Vu que le X20+ est remonté en generic, à voir si il faut différencier les erreurs en fonction du modèle d’aspirateur ?
Idéalement, il faudrait proposer une liste modifiable des erreurs [id, libellé] à gérer (Ajout, Suppression, Coche d’activation)
$error_device = "";
if ($statusOutput["vacuum:fault"] == 1) $error_device = __("Les roues sont suspendues. Replacer le robot.", __FILE__);
if ($statusOutput["vacuum:fault"] == 2) $error_device = __("Robot bloqué. Nettoyer les capteurs.", __FILE__);
if ($statusOutput["vacuum:fault"] == 18) $error_device = __("Robot bloqué ou coincé.", __FILE__);
if ($statusOutput["vacuum:fault"] == 51) $error_device = __("Le filtre est mouillé.", __FILE__);
if ($statusOutput["vacuum:fault"] == 105) $error_device = __("Remettre le réservoir d'eau propre retiré.", __FILE__);
if ($statusOutput["vacuum:fault"] == 106) $error_device = __("Vider le bac et nettoyer la planche de lavage.", __FILE__);
if ($statusOutput["vacuum:fault"] == 107) $error_device = __("Insuffisance d'eau propre dans réservoir.", __FILE__);
- Suppression du message d’erreur (libellé "Equipement en erreur " vidé) sur retour à la normale
/*if ($error_device != "") */$this->checkAndUpdateCmd("error_device", $error_device);
- Ajout de nouvelles commandes :
genericmiot.jsonci-joint - Récapitulatif des modifications du code : mirobot.class.php ci-joint
genericmiot.json.txt (10,5 Ko)
mirobot.class.php.txt (32,6 Ko)
Je ne crois pas qu’il existe de github sur la nouvelle version de plugin pour proposer des PRs ?
