forcer une valeur d'un capteur HTTP

Échangez ici vos astuces sur la gestion des règles eedomus

forcer une valeur d'un capteur HTTP

Messagepar thrymartin » 27 Oct 2020 13:01

Hello,

est il possible, dans une règle, de forcer une valeur d'un capteur HTTP ?

par exemple, si il a comme valeur ON et OFF (mise à jour par script)
comment le forcer à ON ?
dans les règle, on ne peut que forcer sa mise à jour (et l'onglet Macro est désactivé)

Bon, je vois bien un truc tarabiscoté, de forcer sa valeur avec un script : un capteur bidon (je vois pas comment appeler directement un script dans une règle, sinon) qu'on appelle en mise à jour, et qui avec un setvalue bascule la valeur que l'on veut sur le capteur en question,
Mais ya pas plus simple ?

EDIT : le Toggle dans le store ? - reEDIT : non, il bascule, on ne peut pas choisir sa valeur et rereEDIT, on peut en bricolant un peu les valeurs, mais je fouille encore pour savoir s'il peut être utilisable avec un capteur http...
thrymartin
 
Messages : 965
Inscription : 03 Mars 2019
Localisation : La Réunion

Re: forcer une valeur d'un capteur HTTP

Messagepar opa95 » 27 Oct 2020 16:35

Bonjour
Je ne sais pas si ça correspond à ce que tu veux.
J'ai des capteurs d'ouverture X2D que je teste pour voir l'état des ouvrants par deux voies différentes pour des raisons de fiabilité dues à la réception radio : en direct avec le RFP1000 et avec la Zibase.
Sur la Zibase, je récupère l'heure de dernière fermeture et l'heure de dernière ouverture et j'en déduis si la fenêtre est ouverte ou fermée par une règle qui modifie un état virtuel ("EtatFenetre").
Ensuite j'ai une règle qui en cas d'ouverture ("EtatFenetre" devient "ouvert") va sauver l'état du mode de mon thermostat (auto, off, ...) dans un état virtuel ("OldEtatFenetre") et imposer 'off'. A la fermeture c'est l'inverse, restauration de l'état virtuel à partir de ("OldEtatFenetre").
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)
opa95
 
Messages : 871
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: forcer une valeur d'un capteur HTTP

Messagepar thrymartin » 27 Oct 2020 17:06

je comprend que tu modifies un état virtuel (un capteur fait pour ça) en fonction de la valeur du capteur à contrôler et que ta règle se base sur cet état virtuel que tu peux changer à ta guise... (? c'est ça ?)
c'est encore plus tarabiscoté que de passer par un script ;-)
Ah si seulement le staff avait permis qu'on puisse changer une valeur (et pas un état) via les règles...

mais merci, je mets ça sous le coude au cas ou je n'y arrive pas avec un script perso, la je teste...
(le toggle ne convient pas, il agit sur un périphérique, pas sur un capteur)
thrymartin
 
Messages : 965
Inscription : 03 Mars 2019
Localisation : La Réunion

Re: forcer une valeur d'un capteur HTTP

Messagepar opa95 » 27 Oct 2020 18:05

Oui, mais ça évite un script et c'est réalisable par ceux qui ne maitrisent pas le PHP (ce qui n'est pas mon cas)
eedomus+, Zibase V1, RFP1000, RFXcom, RadioDriver CPL 630 X2D, capteurs puissance OWL, thermometres Oregon, téléinfo (USB Linky), detecteurs ouverture X2D, pilotage chauffage X2D, Ecoflow River PRO, PAC Shogun (Atlantic-Cozytouch)
opa95
 
Messages : 871
Inscription : 04 Fév 2019
Localisation : Val d'Oise

Re: forcer une valeur d'un capteur HTTP

Messagepar thrymartin » 27 Oct 2020 20:14

OK

j'y suis arrivé avec un actionneur et un script réduit à sa plus simple expression

Code : Tout sélectionner
<?php
// nom du script : ping_ok.php v1.0
// Appel : http://localhost/script/?exec=ping_ok.php&internet_id=[VAR1]&internet_ok=[VAR2]


// lecture des deux variables
   $internet_id   = getArg('internet_id');
   $internet_ok   = getArg('internet_ok');

// Envoi de la valeur
   setValue ($internet_id, $internet_ok, true, true);

?>


c'est le 2eme true qui compte, dans le toggle, il doit pas y avoir (j'ai pas regardé mais si on met false... provoque des erreurs) -> ça concerne le update only

Quand à l'actionneur, je ne mets que VAR1 avec l'ID du capteur http (mon Ping)
et 2 valeurs Allumé et Eteint avec en URL respectivement
Code : Tout sélectionner
http://localhost/script/?exec=ping_ok.php&internet_id=[VAR1]&internet_ok=1
http://localhost/script/?exec=ping_ok.php&internet_id=[VAR1]&internet_ok=0


et POST (on n'attend pas de retour), pas d'arguments puisque déjà donné

ça bascule bien en ON ou OFF à la demande, et on a les commandes pour les règles
et en attendant... le temps qu'il faut (***) le Ping rebascule bien via son script

(***) malheureusement avec le BUG que j'ai déjà dénoncé : 30' minimum , sauf si 30' se sont déjà écoulées quand ça change de valeur (en test on passe à OFF et en mettant la minute, même la bascule ne réagit pas avant 30' avant de lancer le script et avoir un ON !!!)
mais bon, je ne vais pas crier au staff mais si un passe par la : je signale qu'ils donnent l'exemple du PING avec en fréquence la minute => BREEUUUUhhh (bruit de la sirène qui annonce une faute)
:mrgreen:
thrymartin
 
Messages : 965
Inscription : 03 Mars 2019
Localisation : La Réunion

Re: forcer une valeur d'un capteur HTTP

Messagepar KikiFUNstyle » 27 Oct 2020 23:54

Avec un Actionneur HTTP :
Capture.PNG
Capture.PNG (42.23 Kio) Consulté 6222 fois

Capture2.PNG
Capture2.PNG (60.78 Kio) Consulté 6222 fois

Capture3.PNG
Capture3.PNG (44.96 Kio) Consulté 6222 fois


Tu pourras faire des Mettre à jour dans les règles
ZWave / RFXCom / broadlink RM /Google Mini / Yeelight / Xiaomi Vacuum V1 / Shelly <3 / Node-RED <3 <3
[Store] Shelly
KikiFUNstyle
 
Messages : 908
Inscription : 24 Avr 2014
Localisation : Toulouse

Re: forcer une valeur d'un capteur HTTP

Messagepar thrymartin » 28 Oct 2020 04:51

Ah la c'est plus simple, un seul capteur, pas de script !
En plus c'est la première fois que je faisais un actionneur, j'avais pas vu l'optionnel capteur dans les paramètres experts :?

KikiFUNstyle merci :P
Je teste ça au plus tôt - ça fonctionne, ça ne force pas la mise à jour, mais ça se positionne bien comme je veux, reste l'histoire des 30'... j'ai mis à 10' pour voir

Sinon, dans la foulée, puisque je te tiens et puisque dans ton exemple tu as mis 10' : juste pour dire : ça ne gêne personne ou je suis le seul (ça fait plusieurs message où j'en parle) de ce polling à 30' forcé pour les capteurs http ? (pour l'actionneur avec fonction capteur, je regarde ça dans la journée pour voir si c'est la même...) - en fait si 30' sont passés et que ça change de valeur, ça va, mais sinon, même 1' et il n'y aura rien qui se passe avant 30' !
Dans le cas présent : si on force la valeur à Hors Ligne, il faudra attendre 30' pour que ça revienne à En Ligne via la fonction capteur (pour le Ping), que ce soit en mettant une fréquence de requête à 20, 15, 10 ou même 1' ...
thrymartin
 
Messages : 965
Inscription : 03 Mars 2019
Localisation : La Réunion

Re: forcer une valeur d'un capteur HTTP

Messagepar thrymartin » 28 Oct 2020 09:34

marche parfaitement,
mais toujours ce bug : au changement de valeur, réglé sur 10', bien 10' (voir plus loin ***)
ensuite 30, ya rien à faire, ça ne suit pas la fréquence de la requête si elle est sous les 30'

*** en fait les 10 prochain mais uniquement s'il ya eu un 30 avant, sinon au petit bonheur la chance:
- Test : On force à OFF avec un ON depuis 14' : le prochain se fera 6' plus tard ... si le précédent était à 30, sinon, ce sera par exemple 7 quand on était à 17 (?)
Ensuite de toute façon, ce sera 30, systématiquement (quand la valeur ne change pas)
ça devient farfelu
thrymartin
 
Messages : 965
Inscription : 03 Mars 2019
Localisation : La Réunion


Retour vers Règles et programmations

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 13 invité(s)