Update du Framework SC v0.993f en ligne 
Changelog v0.993f :
-
LIBRAIRIE cmd : Ajout de la fonction sc_cmd-> refreshZwaveValue : Permet de forcer le rafraîchissement d’une valeur d’un équipement Z-Wave :
http://192.168.100.1/sc/doc/?class-sc_cmd#_refreshZwaveValue
La classe, l’instance et l’index de la valeur à rafraichir se retrouve dans la liste des commandes de l’équipement :
Par défaut c’est la valeur du niveau de batterie qui est utilisée. -
Mise à jour de la librairie sc jpi en v0.9938 afin de supporter en natif les actions de JPI v0.998.
-
Corrections typo
-
Petites corrections et optimisations
-
Compatible avec Jeedom v3.xx et Jeedom v4 / v4.1
Pour améliorer l’affichage des blocs codes et des logs :
Pour installer le Framework SC et/ou voir la doc c’est ICI
Exemple de l’utilisation de la nouvelle fonction sc_cmd-> refreshZwaveValue :
Code :
$TIMEOUT = 1500; //25 Heures
//JPI DEVICE FOR SMS/EMAIL
$JPI_GSM_DEVICE = 'http://192.168.100.7:8080';
$GSM_TO = '{MY_NUMBER}; {LEA_NUMBER}';
$EMAIL_TO = '{MY_EMAIL}';
$jpi = null;
$sc->load('cmd');
$message = "L'équipement %s n'a pas envoyé de message depuis au moins 24h (vérifier les piles) !";
$eqLogics = $sc->cmd->getZwaveBatEquipements();
foreach ($eqLogics as $eqLogic) {
$varName = 'TIMEOUT_' . str_replace('#', '', $sc->toId($eqLogic, false));
$sc->cmd->refreshZwaveValue($eqLogic);
$sc->pause(3); //Pause le temps que la valeur se mette à jour (pour les modules FLiRS)
if (!$sc->cmd->checkLastZwaveMessage($eqLogic, $TIMEOUT)) {
$messageToSend = sprintf($message, $eqLogic);
if ($jpi === null) {
$jpi = $sc->load('jpi', $JPI_GSM_DEVICE);
}
if (!$sc->getVar($varName)) {
$result = $jpi->sendSms($GSM_TO, $messageToSend);
if ($jpi->STATUS($result) == 1) {
$sc->setVar($varName, Date('d/m/Y'), true);
}
}
$jpi->sendMail($EMAIL_TO, 'Alerte Timeout - ' . $eqLogic, $messageToSend);
}
else {
$sc->unsetVar($varName);
}
}
Ce scénario s’exécute une fois par jour à 14h00
Avec cette nouvelle fonction j’ai pu réduire le timeout de vérification à 24h avec une fiabilité de 100%.
En effet pour les modules classiques, le refresh est forcé une fois par jour (et effectué au prochain réveil automatique du module).
Pour les modules FLiRS le refresh est instantané, mais les 25h de timeout de la fonction checkLastZwaveMessage permettent tout de même de laisser une chance de raté au module jusqu’au lendemain.
Du coup la vérification du dernier message reçu du module devient 100% fiable quelque soit la techno du module, et en cas de batterie qui lâcherait sans avoir eu le temps d’envoyer son niveau faible, ou de module défaillant, là on est tranquille.
Cette nouvelle fonction sc_cmd-> refreshZwaveValue peut également servir à forcer le refresh d’un état de n’importe quel module Z-Wave.