Pour cela, j'utilise un Rpi 2 B, avec une Raspbian à jour et Webiopi pour contrôler simplement les E/S GPIO.
J'avais bien avancé, mais pour éviter certains cas particulier, j'ai voulu reprendre la programmation pour nettoyer un peu et optimiser le code.
Mes règles ressembleront à ça:
Genre de cas particulier: Si je démarre une règle à 20h et termine à 1:00, tout fonctionnait bien.... sauf le dernier jour, puisque 1:00 est déjà sur le jour suivant la fin de la règle... donc règle considérée comme inactive...
Pour palier à cela, j'ai voulu jouer avec les dates. Pour cela, j'ai cherché (merci Google) et écrit mon code de cette manière:
Code : Tout sélectionner
# retrieve current datetime
now = datetime.datetime.now()
act_day = datetime.date.isocalendar(now)[2]
act_year = datetime.date.isocalendar(now)[0]
# Initialisation des sorties relais 1-7 (la sortie 8 tenant compte de l'état des sorties 1-5 sera piloté automatiquement).
# Initialisation règle 1:
# Vérification si début et fin de la règle_1 dans la même année (ex: juin - sept.)
if mois_debut_1 <= mois_fin_1:
annee_debut_1 = act_year
annee_fin_1 = act_year
# Vérification si début et fin de la règle_1 chevauchent 2 années (ex: nov.-mars)
if mois_debut_1 > mois_fin_1:
if mois_debut_1 > mois_en_cours:
annee_debut_1 = act_year -1
annee_fin_1 = act_year
if mois_debut_1 > mois_en_cours:
annee_debut_1 = act_year
annee_fin_1 = act_year +1
# Vérification si début et fin de la règle_1 chevauchent 2 jours (ex: 23:00-07:00)
if ((heure_debut_1 > heure_fin_1) or ((heure_debut_1 == heure_fin_1) and (minutes_debut_1 > minutes_fin_1))):
jour_fin_1 = jour_fin_1 + 1
# Création dates de début et de fin règle_1
debut_1 = datetime(annee_debut_1,mois_debut_1,jour_debut_1,heure_debut_1,minutes_debut_1)
fin_1 = datetime(annee_fin_1,mois_fin_1,jour_fin_1,heure_fin_1,minutes_fin_1)
J'ai pourtant testé ces lignes de commandes en python sur mon Rpi sans souci... Pour y arriver, il me faut taper:
Code : Tout sélectionner
import datetime
from datetime import datetime
Mais dès que j'écris cela dans mon script Webiopi, je n'ai plus accès à l'interface WEB.
Je n'arrive pas à comprendre pourquoi.
PS: je suis un vrai "newbie" et sur Rpi, et Linux et Python... mais je peut apprendre
Pour plus d'infos sur mon projet, c'est par ici viewtopic.php?f=34&t=2296