JE reprends mes tests en DEbian 12.5, mon core est maintenant en 4.4.8 alpha
Log du plugin :
2024-06-13 14:01:54] INFO : Début d'activation du plugin
[2024-06-13 14:01:55] INFO : Info sur le démon : {"launchable_message":"","launchable":"nok","state":"nok","log":"nok","auto":0}
[2024-06-13 15:08:33] INFO : REQUETEINTEGRATION : {"driver":"airzone"}
[2024-06-13 15:08:33] INFO : REPONSE REQ INTEGRATION : { "driver": "airzone" }
errors:
airZone Erreur sur airZone::SyncAirzone() : Non-static method airZone::SyncAirzone() cannot be called statically Log airZone
Sur dEbian 11 j’avais l’ancien le tout premier qui a ensuite était repris par Jeedom que je n’avais jamais mis à jour et qui fonctionne toujours avec le dernier core sur une 4.4.x
YA peut etre un mélange entre les deux du coup, je vois deux répertoires Airzone dans les plugins.
Oui j’ai le nouveau plugin « airzone web » qui s’est installé dans le repertoire « airzone » et l’ancien qui s’appelait « airZone » qui est dans le repertoire « airZone »
Mais ce qui est bizarre c’est que mes 3 anciens équipements apparaissent dans le nouveau plugin
et le airZone::SyncAirzone() je le vois dans le fichier de l’ancien repertoire
JE viens de supprimer le nouveau que je n’utilisais pas avant. Il me reste donc celui d’origine.
Je lancer des ordres cela passe. Mais j’ai pas les retours d’états ni les remontées de températures/humidités…
Je pense que cela vient du problème de synchronisation avec le CRON qui ne fonctionne pas d’où le message (je le vois en error) :
airZone::SyncAirzone() : Non-static method airZone::SyncAirzone() cannot be called statically
du coup j’ai plus les valeurs qui remontent
dans le fichier install.php j’ai
function airZone_install() {
/*$cron = cron::byClassAndFunction('airZone', 'SyncAirzone');
if (!is_object($cron)) {
$cron = new cron();
$cron->setClass('airZone');
$cron->setFunction('SyncAirzone');
$cron->setEnable(1);
$cron->setDeamon(0);
$cron->setDeamonSleepTime(2);
$cron->setSchedule('*/5 * * * *'); // Toutes les 5 minutes
$cron->save();
}
*/
airZone::SyncAirzone();
}
function airZone_update() {
/* $cron = cron::byClassAndFunction('airZone', 'SyncAirzone');
if (is_object($cron)) {
$cron->setDeamon(0);
$cron->setSchedule('*/5 * * * *'); // Toutes les 5 minutes
$cron->save();
}
log::add('airZone', 'info', "update");*/
airZone::SyncAirzone();
}
function airZone_remove() {
while (1) {
$eqLogics = eqLogic::byType('airZone');
if (count($eqLogics) == 0) {
break;
}
$eqLogics[0]->remove();
}
$cron = cron::byClassAndFunction('airZone', 'SyncAirzone');
if (is_object($cron)) {
$cron->remove();
}
}
?>
Dans le fichier ajax je vois ca
if (init('action') == 'SyncAirzone') {
airZone::SyncAirzone();
ajax::success();
}
et dans le fichier class l’appel de la fonction statique
class airZone extends eqLogic {
/* * *************************Attributs****************************** */
/* * ***********************Methode static*************************** */
// Fonction exécutée automatiquement toutes les minutes par Jeedom
public static function cron() {
airZone::SyncAirzone();
}
public static function cron5() {
airZone::SyncAirzone();
}
public static function cron15() {
airZone::SyncAirzone();
}
En fait c’est le seul plugin tiers Airzone gratuit. Il a existé en premier avant les payants. Ensuite il me semble que Jeedom soit parti dessus pour son officiel.
Au départ on l’installait le plugin à la mano par le Github de Bernidouille
puis ensuite par le Market en direct
puis en 2021 SEKIRO la repris pour la partie WIFI par le Cloud celui de Bernidouille utilisait uniquement la version Local du serveur
Par sur d’avoir compris ce que que je dois faire exactement pour ajouter le mot static entre public et function de la méthode SyncAirZonetic
→ Si tu pouvais me donner un exemple que je tente ca serait super sympa