Pour vos projets domotique, il peut être sympa de venir détecter les changements entre jour et nuit, par exemple pour pouvoir allumer automatiquement les lampes intérieures, activer la lumière extérieure lorsque vous le demandez, etc.

Voici donc un petit script en Python 3, sun.py, qui vous indiquera s’il fait jour, ou s’il fait nuit :

#!/usr/bin/python3
import ephem
import datetime
import time
somewhere = ephem.Observer()
somewhere.lat = '47.411252'
somewhere.lon = '-2.169095'
somewhere.elevation = 112
#
# Heure actuelle convertie en chiffres
#
heurenow = int(time.strftime('%H%M'))
#
# r1 = heure lever soleil
# s1 = heure coucher soleil
#
sun = ephem.Sun()
r1 = somewhere.next_rising(sun)
s1 = somewhere.next_setting(sun)
#
# coucher = heure du coucher du soleil, en chiffres
# on commence par convertir l'heure de coucher en chiffres
# après avoir extrait les informations inutiles (date, etc.)
#
heurec = str(s1)
long = len(heurec)
fin = long - 8
heurec = heurec[fin:long-3]
coucher = int(heurec[0:2] + heurec[3:5])
#
# lever = heure du lever du soleil, en chiffres
# on commence par convertir l'heure de lever en chiffres
# après avoir extrait les informations inutiles (date, etc.)
#
heurel = str(r1)
long = len(heurel)
fin = long - 8
heurel = heurel[fin:long-3]
lever = int(heurel[0:2] + heurel[3:5])
print ("Heure UTC coucher du soleil : ", coucher)
print ("Heure UTC lever du soleil : ", lever)
print("Heure UTC actuelle : ", heurenow)
print("")
if heurenow < coucher:
  print("il fait jour")
else:
  print("il fait nuit")

heurenow, coucher, et lever sont des variables numériques, faciles à comparer : si heure actuelle < heure du coucher du soleil, alors il faut jour. A l’inverse, il fera nuit, simple non ? Oui, bien entendu, un programmeur averti pourra sans doute faire bien plus complet et complexe, je n’en doute pas une seule seconde 🙂

Modifiez votre latitude et longitude en fonction du lieu d’utilisation bien entendu, en vous aidant par exemple de ce site très pratique.

A vous maintenant de l’adapter à vos besoins.

coucher soleil

 

Be Sociable, Share!