Page 1 sur 1

Script Blocky, condition sur les jours de semaine/weekend

Publié : 06 déc. 2020, 22:25
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>

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

Publié : 07 déc. 2020, 04:07
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 ?

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

Publié : 07 déc. 2020, 12:49
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).

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

Publié : 07 déc. 2020, 16:13
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

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

Publié : 07 déc. 2020, 23:26
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

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

Publié : 08 déc. 2020, 13:00
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.