Conbee/Phoscon persistence des modification de configuration

Bonjour à tous,

J’ai modifié physiquement un capteur de mouvement xiaomi aqara RTCGQ11LM pour diminuer son délai de remonté d’info (méthode).

Je fais suite à ce sujet, fermé,.

La modif de configuration du paramètre « duration », que ce soit par la configuration du capteur dans jeedom ou par un client REST, fonctionne parfaitement (!)

Mais quand j’éteins et rallume ma box, je me retrouve avec les valeurs d’usine sur ce parmètre (90).

=> je refais la manip et ça repart.

Ma question : Est ce qu’il y a un moyen de rendre persistante la configuration?
Ou a défaut un moyen de lancer une configuration automatique au start de la box?


je suis en dECONZ version du 2019-12-28 01:11:15 (264A0700 ds phoscon)
le reste de ma config ds mon profil.

Tiens, j’avais pas fait attention. Je pense que ça vient de deconz, ils en parlent ici. Sûrement une protection parce que par défaut le capteur reporte à 90s. Et sur Zigbee2MQTT, ils mentionnent quelque chose de similaire.

Regarde ce topic, ils suggèrent de le faire avec une commande curl.
Du coup, un scénario déclenché au démarrage, éventuellement avec un bloc DANS à x minutes histoire que tout démarre bien avant, devrait fonctionner. Avec un bloc code et une commande curl ça devrait le faire.

Merci Seb,

Je venais justement de tomber dessus.

J’essaie de trouver la bonne syntaxe curl qui passe :

dans mon client rest j’ai

curl -X PUT -i 'http://IP Local:8484/api/APIKEY/sensors/ID sensor/config' --data '{"duration":8}'
ou
curl -X PUT -d '{"duration":5}' http://IP Local:8484/api/APIKEY/sensors/ID sensor/config

qui fonctionnent bien ds un terminal, mais pas ds le plugin script pour le moment (je le découvre avec ceci dit!)

j’ai essayé avec l’adresse locale (127.0.0.1), mais même erreurs

Résultat de la commande : % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:–:-- --:–:-- --:–:-- 0 100 106 100 93 100 13 23250 3250 --:–:-- --:–:-- --:–:-- 35333 HTTP/1.1 400 Bad Request Access-Control-Allow-Origin: * Content-Type: application/json; charset=utf-8 Content-Length:93 [{« error »:{« address »:« /sensors/config »,« description »:« body contains invalid JSON »,« type »:2}}]

Je vais me pencher sur un bloc code ds un scénario

Le plugin script doit modifier la syntaxe de la commande (le JSON)

Merci Hugo,

j’ai essayé un « shell_exec », j’ai une erreur à la sauvegarde, mais ça l’a executé (une injection?)

Erreur sur [{« success »:{« /sensors/34/config/duration »:12}}] 2>&1 valeur retournée : 127. Détails : sh: 1: [{success:{/sensors/34/config/duration:12}}]: not found

mais une fois sauvegardé ç ane fonctionne plus… (ce qui montre mon ignorance de la chose!")

Non ça a l’air D’être bon. C’est le message typique que revoit deconz. L’erreur affiché doit venir du plugin qui essaye de traiter la reponse.

Par contre tu veux dire quoi par « une fois sauvegardé » ? il semblerait que deconz ne mémorise pas ce délais, donc faut relancer cette commande a chaque redémarrage.

Merci,

quand j’appuie sur le bouton sauvegarde => il lance l’execution du script (qui fonctionne) avec l’erreur mentionné, une fois sauvegardé, la commande n’a plus d’effet…

j’ai creusé la solution du scénario, déclenché au #start# avec un « A » time_op(#time#, 15)

la syntaxe qui fonctionne chez moi, dans un bloc code :

$scenario->setLog('--------------------------------Mise à jour des configuration aquara');

$data = array('duration' => 11);
$idSensor = 34;


$jsonArray=json_encode($data);
$scenario->setLog('| Data mises à jours : '.$jsonArray);
$scenario->setLog('| Id sensor mis à jour : '.$idSensor);


$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://IP_CLE:PORT CONBEE/api/API_KEY/sensors/'.$idSensor.'/config');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');

curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonArray);

$headers = array();
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);

if (curl_errno($ch)) {
    $scenario->setLog('| Error:'.curl_error($ch));
}
$scenario->setLog('| Réponse : '.$result);
curl_close($ch);

$scenario->setLog('-----------------------------------Fin scenario mise à jour configuration aquara');

je vais essayer de logger dans un log externe au scénario et trouvé si je peux surveiller le démon de deconz sans trop d’effort.

@Bben
Bonjour, j’ai regardé la façon de modifier le détecteur et il parle de relier 2 points mais sur les photos on dirait plutôt 3 ?
Et pour le problème de duration c’est toujours pareil ou c’est corrigé ?

Salut team18fr,

C’est un point a relier à la masse. Perso j’ai utilisé un brin de câble et un fer avec une panne fine. Pas de difficulté majeure avec un peu d’attention. Y a pas trop de connecteur dans le coin.

La manip faite + le set de la duration => fonctionne parfaitement.!

Mais même sans reboot, le paramètre se remet à sa valeur défaut de 90s.
=>Je lance le scénario mentionné au dessus périodiquement et aucun pb!

Salut Bben,
Quand tu regarde sur cette image on dirait que les points 1, 2 et 3 sont relier ensemble :
test

Mais si je comprends bien on dois relier le point 2 soit au point 1 ou au point 3.
Pour ce qui est de duration le mien est bien sur 90 qui correspond à 90sec doc 1Min30 pourtant ma valeur repasse à 0 au bout d’une minute ??

Salut

Faut relier 2 et 3.

Si tu met en contact 1 et 3 tu shunte le bouton poussoir!

C’est chelou ton coup de la minute. Je n’ai pas constaté ça avec mes capteurs.

L3 seul truc c’est quand tu lance lappariement ou poussé sur le bouton, il passe ds un mode ou il s’update plus rapidement.

Merci pour ton aide je vais la soudure et je te redis.

Soudure effectuée et ça fonctionne au top et pour se qui est du duration ça n’a rien avoir avec le temps entre 2 détections mais juste le retour à 0 de l’équipement.
Comme pour moi j’ai bien une détection toutes les 5 sec malgré que l’équipement reste à 1 et donc mon scénario se déclenche bien toutes les 5 sec, si je bouge devant.

Salut.

Je cherche comme toi une solution pour modifier le temps du niveau logique haut du détecteur vu qu’à chaque reboot il me remonte à 90S…

Tu as trouvé plus simple que le pavé dans le bloc code d’un scénario ?

Salut Vidou,
Non, pas plus simple, et j’ai constaté que même en dehors des reboot il rebascule sur 90 s.
=> du coup je lance le scénario toute les semaines en plus du démarrage.

1 « J'aime »

Bonjour,

J’ai connecté hier soir mon premier capteur de mouvement Aqara :slight_smile:.

J’ai lu un peu la discussion et je comprends que pour modifier ce temps de passage à 1 (90s par défaut) lors d’une détection il faut utiliser le bloc code au-dessus c’est ça ?
Pas besoin de souder etc…?

Pendant que j’y suis, les infos de luminosité et temperature sont bonnes chez vous ?

Avez-vous par hasard un lien qui explique tous les paramètres des modules Aqara svp ? J’ai mouvement, luminosité, bouton poussoir, interr simple etc…

Merci pour votre aide

Salut Livyo,

2 choses :

1/ le code est nécessaire pour maintenir au niveau logiciel la mise à jour de l’info autre que 90 s.

2/ Quand on inclue le capteur (ou pousse le bouton) le détecteur se met dans un état ou il met à jour sa valeur plus régulièrement pendant quelques heures. pour maintenir cet état, il faut passer par la soudure.
A noter que j’ai vu que certain utilise un crayon gris/de bois/ à papier/… en marquant d’un trait épais la liaison (le graphite étant conducteur), est ce que ça fonctionne bien? est ce que ça tiens? aucune idée.

Comme tout les capteurs de température, ça demande calibration, et ajuster dans le calcul de la valeur dans les paramètres
=> A noter que ce n’est pas hyper précis ici, et c’est souvent un capteur qu’on met en hauteur dans la pièce…
Pour la luminosité, je n’ai pas moyen de calibrer, mais les valeurs semblent cohérentes.

Pas de lien pour les params des équipements aqara. Souvent le nom est explicite, et il faut faire quelques tests sinon.

Merci beaucoup pour ta réponse.
J’ai coché historiser pour tous les paramètres et je vais étudier ça.
En fait, je ne savais pas qu’il y avait aussi un capteur de temp et de luminosité à l’intérieur du détecteur de mouvement (j’ai aussi acheté un capteur de luminosité Aqara pour tester/m’amuser mais pas le capteur de temp) → Si les mesures du détecteur de mouvement sont cohérentes, autant acheter uniquement ça !

Oui je suis d’accord, les noms sont plutôt parlant et on peut se débrouiller mais si quelqu’un avait déjà fait des tutos avec retour d’expérience, je pouvais aller encore plus vite ;).

Merci

Ok pas grave.
Surprenant que la valeur change seule au bout d’un moment…
Du coup si ça peut t’aider, j’ai créé une commande info qui me remonte la valeur du « duration » : « 01-0406.config::duration ».
Comme ça dans un scénario, quand cette valeur est différente de la valeur que je désire, je lance ton code :wink: .

1 « J'aime »

Tu peux détailler ou tout petit peu plus stp ?
Au lieu de lancer le code au démarrage (#start) ou toute les semaine par ex, tu as fait quelque chose de plus intelligent c ça ?
Merci