Gérer les jours fériés sous Homeseer

Ayant automatisé les volets de ma maison, j’ai aussitôt créé des « events » sous Homeseer pour les ouvrir et les fermer automatiquement. Cependant, les volets ayant

le défaut de faire un peu de bruit lors de l’ouverture, j’ai cherché pour décaler l’heure d’ouverture le samedi, dimanche et les jours fériés.

Gérer les samedis et dimanches, c’est possible sous Homeseer, mais pas les jours fériés. J’ai donc fait quelques recherches sur les forums, voici la solution que j’ai récupérée du forum Touteladomotique.

 

I. Installation

 

La 1re étape consiste à créer un device qui va recueillir les informations sur le calcul du jour en cours.

 

image1

1 – On commence par cliquer sur le bouton « Add Device » dans le menu « Status». Mettez « Jour férié » dans Device Name et « Status Only » dans Device Type.

Donnez lui un lettercode/Unitcode (u33 dans mon exemple).

Cliquez sur le bouton « Save » pour enregistrer votre device.

image2

2 – Puis, dans le menu « Events », cliquez sur le bouton « Add Event ». Dans la partie Name mettez « Calcul jour ferie ». Décochez la case « Disable Automatic Event

Triggering » afin de pouvoir mettre l’événement en mode déclenchement automatique.

 

image3

3 – Cliquez ensuite en haut sur l’onglet « Trigger ». Mettez « Absolute Time » dans Current Trigger Type puis 0 :01 dans Hour et Minute, afin que l’évènement se

déclenche tous les jours à 0h01.

 

image4

4 – Dans l’étape suivante, sélectionner « Run Script » dans la liste de choix « Add action » et nommez « ferie.txt » dans la case « Existing or new script name ».

A lire également:
Guide: Intégrer Starlink dans Home Assistant

Cliquez ensuite sur le bouton « Open Script Window » et copiez/collez le script suivant :

 

sub main()

‘ 2= Férie, 3= Jour Normal

codelu= “VOTRECODELETTREUNITE“,

thisYear = Year(Date)

thisDay = Day(Date) & “/” & Month(Date)

jourdelasemaine = Weekday(Date)

if jourdelasemaine = 1 then

hs.SetDeviceStatus codelu ,2

HS.WriteLog “******”, “Nous sommes le ” & Date & “. ” & “Nous sommes un Dimanche.”

hs.SetDeviceString codelu,”<table border=””0″” width=””100%”” bgcolor=””#FFFF00″” cellspacing=””0″” cellpadding=””0″”><tr><td width=””100%””><font face=””Verdana”” color=””#800000″”><b>Dimanche</b></font></td></tr></table>”

exit sub

end if

jFixes = “1/1,1/5,8/5,14/7,15/8,1/11,11/11,25/12”

G = thisYear Mod 19

c = thisYear \ 100

H = (c – (c \ 4) – ((8 * c + 13) \ 25) + (19 * G) + 15) Mod 30

I = H – (H \ 28) * ((1 – (H \ 28) * (29 \ (H + 1)) * (21 – G) \ 11))

J = (thisYear + (thisYear \ 4) + I + 2 – c + (c \ 4)) Mod 7

L=I-J

mois = 3 + ((L + 40) \ 44)

jour = L + 28 – 31 * (mois \ 4)

jPaques = jour & “/” & mois & “/” & thisYear

jLundiPaques = DateSerial(Year(jPaques), Month(jPaques), Day(jPaques) + 1)

jAscension = DateSerial(Year(jPaques), Month(jPaques), Day(jPaques) + 39)

jPentecote = DateSerial(Year(jPaques), Month(jPaques), Day(jPaques) + 50)

jFeries = jFixes & “,” & Day(jPaques) & “/” & Month(jPaques) & “,” & Day(jLundiPaques) & “/” & Month(jLundiPaques) & “,” & Day(jAscension) & “/” & Month(jAscension) & “,” & Day(jPentecote) & “/” & Month(jPentecote)

tabFeries = Split(jFeries, “,”)

Text = “Ce n'est pas”

hs.SetDeviceStatus codelu,3

hs.setDeviceString codelu,”Jour normal”

For Each Jo In tabFeries

If Jo = thisDay Then

Text = “C'est”

hs.SetDeviceStatus codelu,2

hs.SetDeviceString codelu,”<table border=””0″” width=””100%”” bgcolor=””#FFFF00″” cellspacing=””0″” cellpadding=””0″”><tr><td width=””100%””><font face=””Verdana”” color=””#800000″”><b>Jour Ferie</b></font></td></tr></table>”

End If

Next

HS.WriteLog “******”, “Nous sommes le ” & Date & “. ” & Text & ” un jour férié.”

end sub

5 – Ne pas oublier de remplacer la ligne VOTRECODELETTREUNITE par votre propre code Lettre/unité (u33 dans mon exemple). Cliquez enfin sur le bouton « Save Script » puis « Update» et enfin « Save », l’évènement est prêt pour utilisation.

II. Test

image5

Dans la liste des évènements, si vous cliquez sur le bouton « Run » devant le script « Calcul jour ferie », vous devez retrouver dans votre device le résultat du calcul.

A lire également:
Guide: Intégrer Starlink dans Home Assistant

image6

En cliquant sur ce device et en allant dans l’onglet « Additionnal Information », vous trouverez les résultats suivants :

  • Status = 3 = OFF : Jour normal
  • Status = 2 = ON : Jour férie
  • String : Nom du jour férié ou le texte « Jour normal »

III. Programmation des volets

Le calcul du jour férié aura lieu maintenant tous les jours à 0h01. Il ne reste plus qu’à appliquer une condition pour l’ouverture des volets. Pour cela, j’ai créé deux

évènements :

image7

Le 1er ouvre les volets suivant l’heure de lever du soleil si on n’est pas un jour férié

image8

Le 2éme ouvre les volets à heure fixe les jours fériés.

IV. Conclusion

Je trouve un peu compliqué la gestion des jours fériés sous Homeseer. Tout bon système d’information se doit de pouvoir gérer ce type d’évènement avec un calendrier fixe et mobile (dans une base de données). J’espère que la prochaine version de Homeseer sera capable d’évoluer et d’intégrer en natif cette problématique.

Pour information, cet article peut contenir des liens affiliés, sans aucun impact sur ce que vous gagnez vous même ou le prix que vous pouvez payer pour le produit. Passer par ce lien vous permet de me remercier pour le travail effectué sur le blog chaque jour, et d'aider à couvrir les dépenses du site (hébergement, frais de port pour les concours, etc.). Ca ne vous coute rien, mais ca m'aide beaucoup ! Merci donc à ceux qui joueront le jeu !

Inscrivez vous à notre newsletter !

Ne ratez plus aucun article, test de produit ou guide, grâce à un mail dans votre boite chaque vendredi !

7 Commentaires

Laisser un commentaire

Maison et Domotique
Logo
Register New Account
Enregistrez vous, et stockez vos articles préférés sur votre compte pour les retrouver n'importe où, n'importe quand !
Compare items
  • Casques Audio (0)
  • Sondes de Piscine Connectées (0)
  • Smartphones (0)
Compare