from datetime import datetime (Webiopi)

Python est le langage de prédilection du Raspberry Pi

Modérateurs : Francois, Manfraid

Répondre
Topodoco
Messages : 62
Enregistré le : mer. 16 mars 2016 23:08

from datetime import datetime (Webiopi)

Message par Topodoco » ven. 20 mai 2016 19:48

Bonjour à tous, je suis en train d'essayer de programmer un petit module qui permettra de piloter éclairage et pompes de piscine.
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:
Image
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)
Pour le moment les variables sont "en dur" dans le fichier, mais je prévois de les déporter dans un fichier à part, permettant de modifier les valeurs rapidement et simplement sans risquer de glisser de coquille dans le code. Mon souci c'est que dès que je met les 2 dernières lignes de code dans mon script, il ne se passe plus rien.
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
puis mes lignes fonctionnent.
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 :arrow: viewtopic.php?f=34&t=2296

Topodoco
Messages : 62
Enregistré le : mer. 16 mars 2016 23:08

Re: from datetime import datetime (Webiopi)

Message par Topodoco » sam. 21 mai 2016 23:26

Bon, c'est moche à dire, mais j'abandonne mon projet dans l’état... enfin... sous WebIOPi
En cherchant une solution à mon problème, on m'a conseillé de passer sur Domoticz.
Ayant pas mal avance avec mon interface Web, mes scripts Python, et tout ce que je voulais en faire, j'ai hésité.
J'ai quand même installé Domoticz pour comparer, et... en une après midi, je suis déjà plus avancé sur mon projet que ce que j'avais fait en quelques semaines avec WebIOPi.
Pour ceux qui auraient l'envie de continuer et se trouve avec le même souci que moi, il semblerait (je n'ai pas essayé) que déposer le fichier à importer dans le dossier Python de son propre projet WebIOPi solutionnerait le problème.
Merci à tous ceux qui ont pris le temps de me conseiller, de me guider...
J'ai aimé cette "découverte" mais franchement Domoticz sait faire exactement ce que j'ai envie, avec beaucoup moins de travail !

domi
Administrateur
Messages : 3233
Enregistré le : mer. 17 sept. 2014 18:12
Localisation : Seine et Marne

Re: from datetime import datetime (Webiopi)

Message par domi » dim. 22 mai 2016 08:21

Bonjour,

Je ne connais pas (autre que le nom) Webiopi, mais je connais Domoticz, ça fonctionne vraiment très bien, et il est vrai que c'est assez simple à mettre en place.
Passionné de Raspberry, Arduino, ESP8266, ESP32, et objets connectés :
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY
Conception d'une station météo DIY, et envoi des infos à votre Domotique.

Répondre

Retourner vers « Python »