fermeture volet deux heures avant le zenith

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 <\>.
grdsek
Messages : 15
Inscription : 30 nov. 2017, 14:23
Localisation : loire atlantique

fermeture volet deux heures avant le zenith

Message par grdsek »

bonjour, je souhaite lancer la fermeture de mes volets deux heures avant le zenith. Je ne trouve pas malgré mes recherches comment faire. Je connais la formule timeofday['sunriseinminutes'], mais est-ce-que la formule ['zenithinminutes'] existe? (je ne pense pas mais bon)
sinon est ce que je peux mettre par ex:

Code : Tout sélectionner

-- Récupération de l'heure
   timenow = os.date("*t")
local heure = os.date("%H:%M")
if (heure = ['zenith'] - 2) then
domoticz sur Pi3, RFXCOM , Hue bridge et interrupteur DIO
lmet
Messages : 252
Inscription : 30 juin 2017, 18:16
Localisation : Val d'Oise
Contact :

Re: fermeture volet deux heures avant le zenith

Message par lmet »

Salut,

De ce que j'ai pu lire ici le zénith serait : (sunrise + sunset)/2
Ce qui donnerait :

Code : Tout sélectionner

sunrise  = timeofday['SunriseInMinutes']
sunset   = timeofday['SunsetInMinutes']
zenith   = (sunrise + sunset) /2 -120
print ("Soleil au zenith - 2 heures : " .. string.sub(os.date("!%X",60*zenith), 1, 5))
J'obtiens 10:57 pour aujourd'hui qui correspond au zénith moins 2 heures mais c'est à vérifier…
Domoticz : V4.10717
Zigate : V4.11230 plugin:4.5.4 firmware:031a
Mon petit blog domotique
grdsek
Messages : 15
Inscription : 30 nov. 2017, 14:23
Localisation : loire atlantique

Re: fermeture volet deux heures avant le zenith

Message par grdsek »

super, merci pour ta réponse, effectivement ca parait logique d'additionner le sunrise et sunset et diviser par deux.
est ce que tu pourrais m'expliquer ta dernière ligne:
string.sub(os.date("!%X",60*zenith), 1, 5)
. Je suis un novice et je ne comprends pas tout...
merci d'avance
domoticz sur Pi3, RFXCOM , Hue bridge et interrupteur DIO
lmet
Messages : 252
Inscription : 30 juin 2017, 18:16
Localisation : Val d'Oise
Contact :

Re: fermeture volet deux heures avant le zenith

Message par lmet »

Salut,
Je ne suis pas sûr que cette formule soit utilisée par la NASA ;) Peut-être est-ce suffisant pour une approche.
grdsek a écrit : 26 mars 2019, 18:54 est ce que tu pourrais m'expliquer ta dernière ligne: string.sub(os.date("!%X",60*zenith), 1, 5). Je suis un novice et je ne comprends pas tout...
merci d'avance
Afin de tenter de répondre à ta question :

Code : Tout sélectionner

zenith = os.date("!X",60*zenith) --> renvoie une chaine sous la forme "HH:MM:SS"
Voir ici et/ou

Code : Tout sélectionner

string.sub (zenith,1,5) --> coupe la chaine du premier au cinquième caractère soit "HH:MM"
Voir ici

@+
Domoticz : V4.10717
Zigate : V4.11230 plugin:4.5.4 firmware:031a
Mon petit blog domotique
grdsek
Messages : 15
Inscription : 30 nov. 2017, 14:23
Localisation : loire atlantique

Re: fermeture volet deux heures avant le zenith

Message par grdsek »

un grand merci pour tes explications (pas toujours facile à trouver en français :oops: ).
Pour l'instant je triche un peu et cela fonctionne:

Code : Tout sélectionner

zenith = (sunrise + sunset) /2 -120
minutesnow = time.min + time.hour * 60
if minutesnow == zenith then
      commandArray[#commandArray+1] = {['volet_salon_3'] = 'On'}
      commandArray[#commandArray+1] = {['volet_salon_2'] = 'On'}
      commandArray[#commandArray+1] = {['volet_salle_à_manger'] = 'On'}
      commandArray[#commandArray+1] = {['volet_salon_3'] = 'Stop'}
      commandArray[#commandArray+1] = {['volet_salon_2'] = 'Stop'}
      commandArray[#commandArray+1] = {['volet_salle_à_manger'] = 'Stop'}
      commandArray[#commandArray+1] = {['volet_salon_3'] = 'Stop'}
      commandArray[#commandArray+1] = {['volet_salon_2'] = 'Stop'}
      commandArray[#commandArray+1] = {['volet_salle_à_manger'] = 'Stop'}

le déclenchement de mon script se fait bien à l'heure voulue (2 heures avant le zenith), mais par contre, je galère avec mes commandArray. En effet, je peux enregistrer une position en descente pour mes volets grâce aux boutons centralis uno. Par contre, le volet doit être ouvert complètement (d'ou le 1er 'on'), et je dois appuyer deux fois sur le bouton stop pour déclencher le mouvement des volets (d'ou les deux 'stop'). Mais en réalité, les volets commencent leur descente mais s'arrêtent quasiment instantanément. (et si j'enlève une commande stop, ils ne descendent pas) :x
je continue mes tests, mais si tu as une idée...
domoticz sur Pi3, RFXCOM , Hue bridge et interrupteur DIO
grdsek
Messages : 15
Inscription : 30 nov. 2017, 14:23
Localisation : loire atlantique

Re: fermeture volet deux heures avant le zenith

Message par grdsek »

salut,
j'ai modifié mon script en mettant:

Code : Tout sélectionner

if minutesnow == zenith then
      commandArray[#commandArray+1] = {['volet_salon_3'] = 'Off'}
      commandArray[#commandArray+1] = {['volet_salon_2'] = 'Off'}
      commandArray[#commandArray+1] = {['volet_salle_à_manger'] = 'Off'}
      commandArray[#commandArray+1] = {['volet_salon_3'] = 'Stop AFTER 30'}
      commandArray[#commandArray+1] = {['volet_salon_2'] = 'Stop AFTER 30'}
      commandArray[#commandArray+1] = {['volet_salle_à_manger'] = 'Stop AFTER 30'}
      commandArray[#commandArray+1] = {['volet_salon_3'] = 'Stop AFTER 32'}
      commandArray[#commandArray+1] = {['volet_salon_2'] = 'Stop AFTER 32'}
      commandArray[#commandArray+1] = {['volet_salle_à_manger'] = 'Stop AFTER 32'}
  
end
et maintenant cela semble fonctionner. En laissant 2s entre les deux commandes 'stop', le volet se ferme bien sur la position préprogrammée sur le bouton centralisée uno. Si je ne mets qu'une seconde, ça foire, le volet se bloque au bout d'une seconde. Je pense que 2s permettent de laisser le temps à domoticz de mettre à jour ses positions d'interrupteurs.
En espérant que cela puisse servir à d'autre... ;)
domoticz sur Pi3, RFXCOM , Hue bridge et interrupteur DIO
Répondre