Evenement Blocky qui ne fonctionne pas....

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
vwstepha
Messages : 85
Inscription : 20 nov. 2014, 15:15

Evenement Blocky qui ne fonctionne pas....

Message par vwstepha »

Salut a tous
J'ai voulu commencer à automatiser le fonctionnement de la filtration de ma piscine.
Je l'active pendant 5 min afin de faire circuler l'eau dans les tuyaux. Ensuite en fonction de la temperature j'active a nouveau avec un timer la filtration


Aujourd'hui la temperature de l'eau etait de 14.5° mais la pompe ne s'est pas activée.
LA semaine derniere, je n'avais pas la condition de l'heure decalée de 30 secondes mais comme cela ne marchait pas non plus, je pensais que cela venait de la....
Si vous avez une idée!
Merci :ugeek:
Pièces jointes
Capture d'écran 2024-04-10 083838.png
Capture d'écran 2024-04-10 083838.png (71.03 Kio) Consulté 500 fois
Rpi 2B Dz V2023.2 master ;)
Rpi 3B Dz V2023.2 slave + Rflink + USB ZWAVE+ + Rflink RTS (marche pas..} :ugeek:
Rpi 3B with RapItow 8-)
Xiaomi V2 + acc
SP3
2xVR + 3xPC DIO Chacon
5x1 voie Sonoff (4 d'origine....1 seul flashé)
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Evenement Blocky qui ne fonctionne pas....

Message par Keros »

Ton screenshot est bien mais il nous faudrait toute la page et en particulier la partie droite avec le trigger. C'est pour vérifier qu'il est bien sur Time ;)

Ensuite, tu ne peux mettre qu'un seul bloc If de départ. Là, tu en as deux et je ne suis pas sur que Blockly le comprenne.

Enfin, essaye de mettre des écritures dans les logs pour savoir ce qu'il ce passe (sans forcément actionner ton dispositif).

Et un conseil : regarde la possibilité de réaliser tes scripts en code. Tu vas très vite atteindre les limites de blockly. Je te propose de regarder les petits guides que j'ai rédigé dans ma présentation (lien dans ma signature).
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
vwstepha
Messages : 85
Inscription : 20 nov. 2014, 15:15

Re: Evenement Blocky qui ne fonctionne pas....

Message par vwstepha »

Merci pour ce retour
Désolé pour le screen; oui il est bien sur Time;
Par contre j'ai du mal avec les scripts. j'ai voulu au début car tout le monde le conseille mais j'ai pas su malgre avoir lu pas mal de pages........
je sais pas comment déclarer mes variables; aller les lire quand j'en ai besoin. ainsi que la syntaxe a utilisé

Pour le blocky avec mes 3 conditions de température, c est vrai que je suis pas sur de mon coup surtout quand je met >3° arrêt pompe puis >13° Pompe On....
Rpi 2B Dz V2023.2 master ;)
Rpi 3B Dz V2023.2 slave + Rflink + USB ZWAVE+ + Rflink RTS (marche pas..} :ugeek:
Rpi 3B with RapItow 8-)
Xiaomi V2 + acc
SP3
2xVR + 3xPC DIO Chacon
5x1 voie Sonoff (4 d'origine....1 seul flashé)
gaston
Messages : 155
Inscription : 16 avr. 2019, 20:30

Re: Evenement Blocky qui ne fonctionne pas....

Message par gaston »

Elo

Comme le dit Keros, le problème de base est 2 IF dans un bloc, il faut ajouter un ELSEIF sur le 2eme IF (comme tu l'a fait)et y mettre les champs du 1er IF qu'il faut effacer ensuite.

Après, comme tu l'a constaté, il faut revoir les "logiques" de ce script ;)
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Evenement Blocky qui ne fonctionne pas....

Message par Keros »

vwstepha a écrit : 10 avr. 2024, 16:59 je sais pas comment déclarer mes variables; aller les lire quand j'en ai besoin. ainsi que la syntaxe a utilisé
Je reprends l'exemple du premier lien dans mon aide :

Code : Tout sélectionner

commandArray = {}
if (devicechanged['CPU_Usage'])
        then
            val_rasp = tonumber(otherdevices_svalues['CPU_Usage'])
            print("cpu = "..val_rasp)
end
return commandArray
Oui, le script passe par une variable, mais ce n'est pas nécessaire. Cette simplification fonctionne :
D'ailleurs, formater en nombre pour ensuite afficher du texte ...

Code : Tout sélectionner

commandArray = {}
if (devicechanged['CPU_Usage'])
        then
            print("cpu = ".. otherdevices_svalues['CPU_Usage'])
end
return commandArray
Dans ton Blockly également, le Time = 08:05:30 ne sera jamais valide, car les scripts time s'exécute toutes les minutes pleines.
Tu as aussi la possibilité de mettre des conditions If en cascade :
S'il est 08h05 alors
si la température est inférieure à 3 alors
si la température est supérieure à 13 alors
si non ou si non si
....
fin
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Répondre