Script Blocky, condition sur les jours de semaine/weekend

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 <\>.
cycloflo
Messages : 26
Inscription : 27 nov. 2020, 22:18

Script Blocky, condition sur les jours de semaine/weekend

Message par cycloflo »

Bonjour!

Néophyte en Blocky, je bute sur la réalisation de quelque chose qui doit pourtant être simple:
Réaliser une action A (ex: écrire dans les logs "Happy weekday!") à 22h en semaine
Réaliser une action B (ex: écrire dans les logs "Happy weekend!") à 22h30 le weekend

Sans que je ne comprenne pourquoi, les conditions sur les jours sont toujours vraies (affichant tous les jours "Happy weekday!" puis "Happy weekend!"

Ci-dessous le script généré avec Domoticz

Merci d'avance pour vos lumières :)

Code : Tout sélectionner

<xml xmlns="http://www.w3.org/1999/xhtml"><block type="domoticzcontrols_ifelseif" id="]54yr6xh@^vZpn@jxNFC" x="140" y="95"><mutation elseif="1"></mutation><value name="IF0"><block type="logic_timeofday" id="|dmczBhnJnmj@0Kt2rQ{"><field name="OP">EQ</field><value name="Time"><block type="logic_timevalue" id="?[}E,t$(P{+9QsJXqaGr"><field name="TEXT">22:00</field></block></value></block></value><statement name="DO0"><block type="domoticzcontrols_ifelseif" id="z8YAROfK9,6I[ilrWR|/"><value name="IF0"><block type="logic_operation" id="!pW$twxpv{DGzB`ktI4f"><field name="OP">AND</field><value name="A"><block type="logic_weekday" id="p;|CWNm8n@jeLbJK.6:="><field name="OP">NEQ</field><field name="Weekday">7</field></block></value><value name="B"><block type="logic_weekday" id="UF=!1e_kmO-3sm5)cggO"><field name="OP">NEQ</field><field name="Weekday">1</field></block></value></block></value><statement name="DO0"><block type="writetolog" id="M(5)xe^{Y)T3h6@-ni}z"><value name="writeToLog"><block type="text" id="ip+9|X8Ub|Fd0@!1vLt,"><field name="TEXT">Happy weekday!</field></block></value></block></statement></block></statement><value name="IF1"><block type="logic_timeofday" id="_nlwNz~.m^@;~k7elFez"><field name="OP">EQ</field><value name="Time"><block type="logic_timevalue" id="/lfhz/]FcwHCVO0Reea;"><field name="TEXT">22:30</field></block></value></block></value><statement name="DO1"><block type="domoticzcontrols_ifelseif" id="X}bJzSH`?@HNY!SW!9vt"><value name="IF0"><block type="logic_operation" id="1Xx|/r|f3CZ4~H|vpt|{"><field name="OP">OR</field><value name="A"><block type="logic_weekday" id="-*8D2*}u_wc2/aX{rUXX"><field name="OP">EQ</field><field name="Weekday">7</field></block></value><value name="B"><block type="logic_weekday" id="[0Yx!G)GGd608,3zjMt`"><field name="OP">EQ</field><field name="Weekday">1</field></block></value></block></value><statement name="DO0"><block type="writetolog" id="PiFRw?%wwjJ_u:hJny2O"><value name="writeToLog"><block type="text" id="E3VFs{LjMJnQiW=?IsV}"><field name="TEXT">Happy weekend!</field></block></value></block></statement></block></statement></block></xml>
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: Script Blocky, condition sur les jours de semaine/weekend

Message par denis_brasseur »

Je ne suis pas très fan de blockly, mais les gouts et le couleurs...

Je ne sais pas non plus exploité le script généré par domoticz.

Peux être qu'une copie image de ton script nous permettrait de t'aider ?
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Script Blocky, condition sur les jours de semaine/weekend

Message par Keros »

Le Blocky est simple pour faire du : si ça = ceci alors fait ça sinon cela. Je ne pense pas qu'il y ait la fonction du jour de la semaine.

Par contre, en LUA ou DZVents, tu dois pouvoir le faire. Alors oui c'est du langage de programmation codé mais tu pourra faire beaucoup plus de choses. J'ai écrit quelques conseils pour débuter en programmation (voir mon lien en 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
manu663
Messages : 103
Inscription : 06 août 2016, 14:35

Re: Script Blocky, condition sur les jours de semaine/weekend

Message par manu663 »

Pourquoi ne pas passer par un switch virtuel "week end" qui s'active ON le samedi-dimanche puis une condition blocky classique :
if week-end = ON and time = 22:00 do XXX
else if week-end = ON and time = 22:30 do YYY

je fais comme ça en tenant compte des vacances scolaires (script de Papoo ici viewtopic.php?t=9126 pour allumer/éteindre le sapin de Noel automatiquement.

Image
cycloflo
Messages : 26
Inscription : 27 nov. 2020, 22:18

Re: Script Blocky, condition sur les jours de semaine/weekend

Message par cycloflo »

Merci à tous pour la rapidité et les réponses apportées!

> Peux être qu'une copie image de ton script nous permettrait de t'aider ?
Bonne idée, la voici
Image

> en LUA ou DZVents, tu dois pouvoir le faire.
Tout à fait d'accord, ce système ayant néamoins pour vocation a être installé chez un proche, j'en suis tout de même resté au blocky pour lui laisser un niveau d'autonomie dans les ajustements de configuration

> Pourquoi ne pas passer par un switch virtuel ?
C'est une idée, merci par ailleurs pour la capture d'écran, qui m'a amené à modifié le script pour la version suivante. C'est moins factorisé, mais sans l'imbrication des conditions "if", il semble que cela fonctionne mieux.

Image
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Script Blocky, condition sur les jours de semaine/weekend

Message par Keros »

Oui, en effet, si c'est pour un proche, la solution du device supplémentaire présente l'avantage de la simplicité même si c'est un peut plus lourd avec un widget de plus.
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