Sécuriser l'utilisation des plannings
Sécuriser l'utilisation des plannings
Bonjour,
La gestion de mon chauffage électrique est basé sur une consigne de température (avec hystérésis).
Cette consigne est ensuite modifié via un planning.
Par exemple, consigne de 20°C avant 20h puis à 20h passage a 17°C.
Si une panne de courant ou un plantage du système a lieu à 19h30 et que le système redémarre à 20h30, la consigne sera toujours de 20°C, la même avant l’arrêt du système. Le changement à 20h ayant été shunté
Quelles sont vos solutions pour éviter ça ?
Merci.
La gestion de mon chauffage électrique est basé sur une consigne de température (avec hystérésis).
Cette consigne est ensuite modifié via un planning.
Par exemple, consigne de 20°C avant 20h puis à 20h passage a 17°C.
Si une panne de courant ou un plantage du système a lieu à 19h30 et que le système redémarre à 20h30, la consigne sera toujours de 20°C, la même avant l’arrêt du système. Le changement à 20h ayant été shunté
Quelles sont vos solutions pour éviter ça ?
Merci.
NUC sous Ubuntu Server / RFXCom / Domoticz Version: 2020.2
Re: Sécuriser l'utilisation des plannings
Je me suis déjà posé la question.
En analysant dans la BDD les plannings, j'avais constaté qu'il était assez simple de retrouver la "valeur demandée" par rapport à celle en cours (que ce soit une consigne, un selector switch etc.).
Le plus dur a été de trouver comment sont gérés les plannings en base : il y a une ligne par entrée, et un nombre calculé à base de puissances de 2 pour identifier le ou les jours de la programmation.
L'heure et la "valeur" sont parfaitement lisibles.
Je ne me souviens plus de la règle, mais un reste de la division du fameux nombre modulo... je sais plus quoi te disait si le planning s'appliquait un lundi ou un mardi etc...
Il faudrait que je recherche pour donner au moins cette règle d'identification du jour, pour le reste ce sera facile.
Mon principal pb en ce moment.... trouver du temps...
En analysant dans la BDD les plannings, j'avais constaté qu'il était assez simple de retrouver la "valeur demandée" par rapport à celle en cours (que ce soit une consigne, un selector switch etc.).
Le plus dur a été de trouver comment sont gérés les plannings en base : il y a une ligne par entrée, et un nombre calculé à base de puissances de 2 pour identifier le ou les jours de la programmation.
L'heure et la "valeur" sont parfaitement lisibles.
Je ne me souviens plus de la règle, mais un reste de la division du fameux nombre modulo... je sais plus quoi te disait si le planning s'appliquait un lundi ou un mardi etc...
Il faudrait que je recherche pour donner au moins cette règle d'identification du jour, pour le reste ce sera facile.
Mon principal pb en ce moment.... trouver du temps...
Domoticz Stable sur RPi3 + RFPlayer + ZWave+ + RFLink R48 :
- 11 x RF660P
- 1 x FGSD-002
- 10 x F007TH
- 5 x Emcoluxr EV1527 + 4 x NAS-DS01Z
- 4 x NAS-PD02Z
- 1 x Shelly 1PM
- 11 x RF660P
- 1 x FGSD-002
- 10 x F007TH
- 5 x Emcoluxr EV1527 + 4 x NAS-DS01Z
- 4 x NAS-PD02Z
- 1 x Shelly 1PM
Re: Sécuriser l'utilisation des plannings
Salut,
Je me suis déjà posé la question.
Mais n'ayant jamais été confronté au problème je n'ai pas creusé.
J'imagine qu'il doit y avoir sous linux moyen de déclencher un shell au redémarrage d'une appli...
@+
The Datawolf
Je me suis déjà posé la question.
Mais n'ayant jamais été confronté au problème je n'ai pas creusé.
J'imagine qu'il doit y avoir sous linux moyen de déclencher un shell au redémarrage d'une appli...
@+
The Datawolf
Re: Sécuriser l'utilisation des plannings
Je vois que je n'étais pas le seul!ogulf a écrit : 13 nov. 2019, 08:06 Je me suis déjà posé la question.
En analysant dans la BDD les plannings, j'avais constaté qu'il était assez simple de retrouver la "valeur demandée" par rapport à celle en cours (que ce soit une consigne, un selector switch etc.).
...
Il y a qq années, j'avais émis l'idée de pouvoir récupérer une info "current_planning" d'un switch dans la partie suggestion du forum anglophone...
Ce serait amha le plus simple/perenne: Le format de la BDD Domoticz a déjà évolué dans le passé et aller y taper direct peut ne plus fonctionner d'une version à l'autre.
Pour ma part, il ne s'agissait pas de gérer le cas "panne de courant" qui n'arrive pas si souvent mais la partie adaptative scriptée qui passe éventuellement par dessus mes plannings chauffage: En effet, le planning gère le cas habituel (fonction de nos heures habituelles de départ/retour boulot, emplois du temps des enfants)... Mais si on rentre hors de ces heures (cours qui sautent pour les enfants...) avec un chauffage en consigne économique depuis quelques heures, faut bien réchauffer l'ambiance.
Et là, c'est géré par script (lié à l'état présence de l'alarme) pour, si qqun est là, que la consigne est basse (éco ou hors gel, correspondant à nos heures habituelles d'absence) et la température aussi... envoyer une consigne confort pour 30mn.
Au bout de 30mn, c'est la consigne précédente qui est alors remise, pouvant potentiellement invalider une commande planifiée confort repassée entre temps.
Bon, au pire, si la condition est encore vraie ça va repartir pour 30mn... Pas si grave dans mon cas, mais cela pourrait être évité.
Il faudrait peut-être relancer cette idée, mais le focus actuel semblant plus être sur l'intégration d'open-zwave 1.6 pas certain que qqun s'y colle.
Re: Sécuriser l'utilisation des plannings
Salut,
Pour le chauffage j'ai renoncé très vite au planning.
Notamment parce que je suis en abonnement Tempo.
Les horaires sont donc hardcodés dans un script.
C'est lourd mais on peut bypasser (mode "Forçage") avec un switch.
Il faudra quand même que je jette un oeil au planning pensé par vil1driver...
@+
The Datawolf
Pour le chauffage j'ai renoncé très vite au planning.
Notamment parce que je suis en abonnement Tempo.
Les horaires sont donc hardcodés dans un script.
C'est lourd mais on peut bypasser (mode "Forçage") avec un switch.
Il faudra quand même que je jette un oeil au planning pensé par vil1driver...
@+
The Datawolf
-
denis_brasseur
- Messages : 898
- Inscription : 24 déc. 2018, 17:05
- Localisation : (26)
Re: Sécuriser l'utilisation des plannings
J'ai été confronté à cette même problématique de planning et de coupure du pi.
J'ai sécurisé la problématique de coupure d'alimentation par batterie + onduleur, j'ai aujourd'hui ~24 h d'autonomie.
J'ai abandonné l'utilisation des plannings pour passer par ma propre gestion via script lua, puisque possibilité de faire des "relances" toutes les minutes, toutes les heures, comme je le souhaite en tout cas.
Beaucoup plus laborieux à mettre en oeuvre, mais tellement plus fiable en cas de coupure.
J'ai sécurisé la problématique de coupure d'alimentation par batterie + onduleur, j'ai aujourd'hui ~24 h d'autonomie.
J'ai abandonné l'utilisation des plannings pour passer par ma propre gestion via script lua, puisque possibilité de faire des "relances" toutes les minutes, toutes les heures, comme je le souhaite en tout cas.
Beaucoup plus laborieux à mettre en oeuvre, mais tellement plus fiable en cas de coupure.
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Re: Sécuriser l'utilisation des plannings
Sur les plannings, il y a une case activation par entrée... Certes, aucune inactivation globale ce qui est un peu pénible.Datawolf a écrit : 14 nov. 2019, 10:03 Pour le chauffage j'ai renoncé très vite au planning.
Notamment parce que je suis en abonnement Tempo.
Les horaires sont donc hardcodés dans un script.
C'est lourd mais on peut bypasser (mode "Forçage") avec un switch.
Mais j'ai un script python qui fait cela très bien. On l'appelle avec un nom de switch et comme les wildcards sont supportés, si on a pris une convention de nommage cohérente de ses switches, il est possible d'activer/désactiver tous les plannings radiateurs de la maison, switches nommés "radiateur_pièce" en l'appelant avec "radiateur*".
Aller modifier un script à chaque fois, c'est quand même peu convivial (bonjour le WAF!) même si les plannings domoticz pourraient être améliorés.
A noter ceci, tout neuf, mais je ne sais pas ce que ca vaut:
https://www.domoticz.com/forum/viewtopi ... 38&t=30158
Au moins, c'est une feuille de tableur qui gère les entrées, avec un script plus aisément adaptable derrière.
Re: Sécuriser l'utilisation des plannings
Un script lua semble être à ce jour la seule solution viable, mais il faut trouver un script modifiable aisément et qui permet les mêmes possibilités que les plannings domoticz.
Celui-la, est pas mal mais il ne gère que des heures entières.
Celui-la, est pas mal mais il ne gère que des heures entières.
Code : Tout sélectionner
https://www.domoticz.com/wiki/Thermostat_planningNUC sous Ubuntu Server / RFXCom / Domoticz Version: 2020.2
-
denis_brasseur
- Messages : 898
- Inscription : 24 déc. 2018, 17:05
- Localisation : (26)
Re: Sécuriser l'utilisation des plannings
J'avais utilisé ce script à sa sortie en le modifiant pour obtenir une plage de 30 mn au lieu d'un plage de 1 h, même si je ne l'utilise plus aujourd'hui :Dim33 a écrit : 15 nov. 2019, 21:43 ----------------------------
Celui-la, est pas mal mais il ne gère que des heures entières.Code : Tout sélectionner
https://www.domoticz.com/wiki/Thermostat_planning
Code : Tout sélectionner
-- retourne le jour actuel en français ex: "Mardi"
days = {"Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"}
jour_semaine = days[(os.date("%w")+1)]
Code : Tout sélectionner
local planning =
{
--0 on ne chauffe jamais
--1 on chauffe en fonction du GPS
--2 on chauffe toujours
-- 00 XX|01 XX|02 XX|03 XX|04 XX|05 XX|06 XX|07 XX|08 XX|09 XX|10 XX|11 XX|12 XX|13 XX|14 XX|15 XX|16 XX|17 XX|18 XX|19 XX|20 XX|21 XX|22 XX|23 XX
Lundi = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1 ,1},
-- 00 XX|01 XX|02 XX|03 XX|04 XX|05 XX|06 XX|07 XX|08 XX|09 XX|10 XX|11 XX|12 XX|13 XX|14 XX|15 XX|16 XX|17 XX|18 XX|19 XX|20 XX|21 XX|22 XX|23 XX
Mardi = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
-- 00 XX|01 XX|02 XX|03 XX|04 XX|05 XX|06 XX|07 XX|08 XX|09 XX|10 XX|11 XX|12 XX|13 XX|14 XX|15 XX|16 XX|17 XX|18 XX|19 XX|20 XX|21 XX|22 XX|23 XX
Mercredi = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1},
-- 00 XX|01 XX|02 XX|03 XX|04 XX|05 XX|06 XX|07 XX|08 XX|09 XX|10 XX|11 XX|12 XX|13 XX|14 XX|15 XX|16 XX|17 XX|18 XX|19 XX|20 XX|21 XX|22 XX|23 XX
Jeudi = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
-- 00 XX|01 XX|02 XX|03 XX|04 XX|05 XX|06 XX|07 XX|08 XX|09 XX|10 XX|11 XX|12 XX|13 XX|14 XX|15 XX|16 XX|17 XX|18 XX|19 XX|20 XX|21 XX|22 XX|23 XX
Vendredi = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1},
-- 00 XX|01 XX|02 XX|03 XX|04 XX|05 XX|06 XX|07 XX|08 XX|09 XX|10 XX|11 XX|12 XX|13 XX|14 XX|15 XX|16 XX|17 XX|18 XX|19 XX|20 XX|21 XX|22 XX|23 XX
Samedi = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
-- 00 XX|01 XX|02 XX|03 XX|04 XX|05 XX|06 XX|07 XX|08 XX|09 XX|10 XX|11 XX|12 XX|13 XX|14 XX|15 XX|16 XX|17 XX|18 XX|19 XX|20 XX|21 XX|22 XX|23 XX
Dimanche = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
}
Code : Tout sélectionner
if os.date('%M') < 30 then demi_heure = 1
else demi_heure = 2 end
Code : Tout sélectionner
local planning_etat = planning[jour_semaine][(tonumber(os.date('%H'))*2) + demi_heure]Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090