Bonjour à tous.
Je me suis lancé dans l’idée de domotiser la machine à laver et le séche-linge à l’aide des capteurs de vibration Aquara… L’idée c’est de ce dire que si au moins 1 vibration pendant x minutes => c’est le début du cycle (ou la continuité) et qui si ensuite plus de rien pendant Y minutes, c’est que le cycle est terminé.
J’ai donc installé une clé cc2531, zigbee2mqtt, jMQTT… ça communique et j’ai bien les payload, ainsi que les infos qui se mettent à jour :
[2020-04-14 12:33:58][INFO] : -> zigbee2mqtt|MachineALaver {"battery":100,"voltage":3005,"linkquality":28,"sensitivity":"high","strength":26,"action":"vibration"}
[2020-04-14 13:13:26][INFO] : -> zigbee2mqtt|SecheLinge {"battery":100,"voltage":3015,"linkquality":63,"sensitivity":"high","strength":12,"action":"vibration"}
Donc pour la détection de début de cycle, ça s’annonce bien, même si j’ai l’impression que ça ne remonte pas très souvent, y compris avec la répétition forcée des valeurs.
Par contre, là où c’est moins simple c’est quand le cycle est terminé : le payload est plus « court » et l’info « action » qui indique quel événement est détecté, n’existe pas … Ce qui fait que l’info dans le virtuel n’est pas mis à jour
[2020-04-14 12:33:58][INFO] : -> MachineALaverMQTT|MachineALaver {"battery":100,"voltage":3005,"linkquality":73,"sensitivity":"high","strength":26}
[2020-04-14 12:33:58][INFO] : valeur de la commande MachineALaverMQTT|Action non trouvée
[2020-04-14 12:33:58][INFO] : -> MachineALaverMQTT|Battery 100
[2020-04-14 12:33:58][INFO] : -> MachineALaverMQTT|LinkQuality 73
[2020-04-14 12:33:58][INFO] : -> MachineALaverMQTT|Voltage 3005
[2020-04-14 12:58:49][INFO] : -> SecheLingeMQTT|MachineALaver {"battery":100,"voltage":3015,"linkquality":70,"sensitivity":"high","strength":12}
[2020-04-14 12:58:49][INFO] : valeur de la commande SecheLingeMQTT|Action non trouvée
[2020-04-14 12:58:49][INFO] : -> SecheLingeMQTT|Battery 100
[2020-04-14 12:58:49][INFO] : -> SecheLingeMQTT|LinkQuality 70
[2020-04-14 12:58:49][INFO] : -> SecheLingeMQTT|Voltage 3015
Et donc ça conserve l’ancienne valeur dans l’info du virtuel associé et donc je ne sais pas détecter facilement que c’est fini ! Sauf à faire en plus une vérification de la dernière date de collecte de l’info
Certains d’entre vous ont-il rencontré ce genre de problématique ?
C’est une « volonté » du plugin jMQTT de ne pas mettre à jour ou c’est un principe du protocole ?
Pour info => should never occur
catch (Exception $e) {
// Should never occur
$this->getEqLogic()->log('info', 'valeur de la commande ' . $this->getLogName() . ' non trouvée');
}
C’est pareil avec Abeille ou MQTT (tout court) ?
Si c’est normal, comment vous avez contourné le problème ?
A vous lire

