Blocky, en script LUA
Blocky, en script LUA
Bonjour, je sais utilisé Blocky par contre j'ai beaucoup de mal a faire des scripts LUA dans domoticz. Pourriez-vous m'aider a en mettre un en place? Merci d'avance. Voici le Blocky que j'aimerais remplacer en LUA pour intégrer une plage horaire. Dans mon cas je souhaite qu'entre 7h et 21h que le thermostat soit régler a 20.5, et le reste du temps à 19.5.
N'hésitez pas à me contacter si je n'ai pas été clair. Merci
N'hésitez pas à me contacter si je n'ai pas été clair. Merci
- Pièces jointes
-
- Capture d’écran 2019-02-05 à 09.46.38.png (109.05 Kio) Consulté 6485 fois
Re: Blocky, en script LUA
Bonjour,
Tu n'as pas accès au planning sur ton thermstat Nest ? Moi j'utilise cette fontion sur Thermosat virtuel, très partique.
Tu n'as pas accès au planning sur ton thermstat Nest ? Moi j'utilise cette fontion sur Thermosat virtuel, très partique.
RPI2 OSMC + domoticz + Rfx 433e + chacon dio, teleinfo 433 via arduino nano, sonde T° innovaley et TFA 303139, sonde T° piscine DIY 433 oregon, OWL 180, RPI zero W + camera
-
denis_brasseur
- Messages : 898
- Inscription : 24 déc. 2018, 17:05
- Localisation : (26)
Re: Blocky, en script LUA
Si tu veux t'initier au LUA, voici ce que peux donner ton script actuel (je n'ai pas gérer les setpoint, jusque les conditions) :
Les 4 premieres conditions sur l'état des capteurs étant redondantes, écrit qu'une seul fois.
Idem pour Temperature Yanis >= 18.5, simplifié
Plusieurs remarques :
les apostrophes et caractères accentués dans les nom de capteurs comme "Capteur d'ouverture Chambre des Parents", pas très propre.
Pour les plages de température, tu écris < à 18.5, puis > 18.5. Qu'advient il de la valeur 18.0 dans ton test.
Idem pour < '07:00' et > '07:00', qu'advient il de = '07:00' ?
Ca peux être une bonne bases de démarrage en LUA, ce n'est que mon avis.
Une fois que tu aura repris à l'identique ton blocky existant, tu pourra le faire évoluer avec tes nouvelles conditions afin de te faire la main.
Code : Tout sélectionner
-- retourne l'heure actuelle ex: "12:45"
heure = string.sub(os.date("%X"), 1, 5)
commandArray = {}
if (otherdevices['Capteur ouverture Cuisine']=='Closed' and otherdevices['Capteur ouverture Salon']=='Closed' and otherdevices["Capteur d'ouverture Yanis"]=='Closed' and otherdevices["Capteur d'ouverture Chambre des Parents"]=='Closed') then
if otherdevices_svalues['Temperature Yanis'] < '18.5' then
--mise à jour du setpoint à 24 °
elseif otherdevices_svalues['Temperature Yanis'] >= '18.5' then
if heure < '07:00' then
--mise à jour du setpoint à 19.5 °
elseif heure >= '07:00' then
--mise à jour du setpoint à 20.5 °
end
end
end
return commandArrayIdem pour Temperature Yanis >= 18.5, simplifié
Plusieurs remarques :
les apostrophes et caractères accentués dans les nom de capteurs comme "Capteur d'ouverture Chambre des Parents", pas très propre.
Pour les plages de température, tu écris < à 18.5, puis > 18.5. Qu'advient il de la valeur 18.0 dans ton test.
Idem pour < '07:00' et > '07:00', qu'advient il de = '07:00' ?
Ca peux être une bonne bases de démarrage en LUA, ce n'est que mon avis.
Une fois que tu aura repris à l'identique ton blocky existant, tu pourra le faire évoluer avec tes nouvelles conditions afin de te faire la main.
Dans mon cas je souhaite qu'entre 7h et 21h que le thermostat soit régler a 20.5, et le reste du temps à 19.5.
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Re: Blocky, en script LUA
Tu parle de la fonction planning dans domoticz? parce que j'ai une particularité, si tu regarde bien dans le blocky, dès que le thermostat de la chambre décent en dessous de 18.5, il monte le thermostat a 24, et des que la température revient au dessus de 18.5, le thermostat redescend a la température normale, soit 19.5, ou 20.5 en fonction de l'horaire. Le problème du planning, c'est qu'il va mettre une température à une heure indiquée et si le température augmente a 24, elle ne redescendra pas, il faut que je trouve le moyen comme actuellement avec blocky de maintenir les températures demandé en fonction de l'horaire, mais qu'elle monte seulement lorsque la température baisse. assez compliquée.
- Pièces jointes
-
- Capture d’écran 2019-02-05 à 13.33.40.png (132.61 Kio) Consulté 6462 fois
Re: Blocky, en script LUA
Merci beaucoup pour tes précieux conseils et ton aide.denis_brasseur a écrit : 05 févr. 2019, 13:37 Si tu veux t'initier au LUA, voici ce que peux donner ton script actuel (je n'ai pas gérer les setpoint, jusque les conditions) :
Les 4 premieres conditions sur l'état des capteurs étant redondantes, écrit qu'une seul fois.Code : Tout sélectionner
-- retourne l'heure actuelle ex: "12:45" heure = string.sub(os.date("%X"), 1, 5) commandArray = {} if (otherdevices['Capteur ouverture Cuisine']=='Closed' and otherdevices['Capteur ouverture Salon']=='Closed' and otherdevices["Capteur d'ouverture Yanis"]=='Closed' and otherdevices["Capteur d'ouverture Chambre des Parents"]=='Closed') then if otherdevices_svalues['Temperature Yanis'] < '18.5' then --mise à jour du setpoint à 24 ° elseif otherdevices_svalues['Temperature Yanis'] >= '18.5' then if heure < '07:00' then --mise à jour du setpoint à 19.5 ° elseif heure >= '07:00' then --mise à jour du setpoint à 20.5 ° end end end return commandArray
Idem pour Temperature Yanis >= 18.5, simplifié
Plusieurs remarques :
les apostrophes et caractères accentués dans les nom de capteurs comme "Capteur d'ouverture Chambre des Parents", pas très propre.
Pour les plages de température, tu écris < à 18.5, puis > 18.5. Qu'advient il de la valeur 18.0 dans ton test.
Idem pour < '07:00' et > '07:00', qu'advient il de = '07:00' ?
Ca peux être une bonne bases de démarrage en LUA, ce n'est que mon avis.
Une fois que tu aura repris à l'identique ton blocky existant, tu pourra le faire évoluer avec tes nouvelles conditions afin de te faire la main.
Dans mon cas je souhaite qu'entre 7h et 21h que le thermostat soit régler a 20.5, et le reste du temps à 19.5.
J'ai modifié tous mes caractères spéciaux, bonne remarque.
Je comprend pas ce que tu veux savoir pour la valeur 18.0.
pourquoi dis tu que tu n'as pas gérer le setpoint? Le script n'est pas complet a ce stade?
J'ai rentrer ton script dans domotics et dans les log j'ai cette erreur: Error: EventSystem: in LUA: [string " -- retourne l'heure actuelle ex: "12:45"..."]:9: attempt to compare string with nil
merci et désolé je n'ai aucune notions.
Je comprend que tout ce qui commence par == n'est pas exécuter dans Domoticz. c'est a moi de trouver pour exécuter les setpoints. merci
Dernière modification par djrams10 le 05 févr. 2019, 14:47, modifié 1 fois.
Re: Blocky, en script LUA
Oui je parlais bien du planning dans domoticz du thermostat.
Quel est le but de fixer le thermosat à 24 pour une temperature < 18.5, pour la baisser après ?
Dans le script lua il n'y a pas la commande pour mettre à jour la consigne du thermostat, c'est juste un commentaire.
Si tu mets une condition <18 et > 18 , lorsque la temperature est à 18, domoticz ne sait pas quoi faire !
Comment as tu nommer ton script lua ?
Quel est le but de fixer le thermosat à 24 pour une temperature < 18.5, pour la baisser après ?
Dans le script lua il n'y a pas la commande pour mettre à jour la consigne du thermostat, c'est juste un commentaire.
Si tu mets une condition <18 et > 18 , lorsque la temperature est à 18, domoticz ne sait pas quoi faire !
Comment as tu nommer ton script lua ?
RPI2 OSMC + domoticz + Rfx 433e + chacon dio, teleinfo 433 via arduino nano, sonde T° innovaley et TFA 303139, sonde T° piscine DIY 433 oregon, OWL 180, RPI zero W + camera
-
denis_brasseur
- Messages : 898
- Inscription : 24 déc. 2018, 17:05
- Localisation : (26)
Re: Blocky, en script LUA
Effectivement, le script n'est pas complet a ce stade, je n'ai géré que les conditions, pas la mise à jour.
djrams10, règle d’abord ton problème de condition, tu passera à l'étape suivante ensuite.
patoche a écrit : 05 févr. 2019, 14:32 Dans le script lua il n'y a pas la commande pour mettre à jour la consigne du thermostat, c'est juste un commentaire.
Si tu mets une condition <18 et > 18 , lorsque la temperature est à 18, domoticz ne sait pas quoi faire !
Comment as tu nommer ton script lua ?
djrams10, règle d’abord ton problème de condition, tu passera à l'étape suivante ensuite.
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Re: Blocky, en script LUA
le thermostat principal qui commande la chaudière est dans la salon, je le monte a 24 pour être certain que le thermostat allume bien la chaudière, car si dans le salon il y'a par exemple 20 et que je monte la température du thermostat a 19, alors que dans la chambre il y'a 18.5, le thermostat ne donnera pas l'odre de démarrer la chaudière car il y'a plus de 19 dans le salon. Alors que si je met 24, je suis certain que la chaudière s'allumera pour s'arrêter des que la température de la chambre dépassera 18.5. Compliqué mais vu que cette chambre est au nord, il fait souvent très froid alors que les autres chambres et salon sont plus chaud.patoche a écrit : 05 févr. 2019, 14:32 Oui je parlais bien du planning dans domoticz du thermostat.
Quel est le but de fixer le thermosat à 24 pour une temperature < 18.5, pour la baisser après ?
Dans le script lua il n'y a pas la commande pour mettre à jour la consigne du thermostat, c'est juste un commentaire.
Si tu mets une condition <18 et > 18 , lorsque la temperature est à 18, domoticz ne sait pas quoi faire !
Comment as tu nommer ton script lua ?
Je ne vois aucun problème, si la température descend en dessous de 18.5 il monte a 24, et si il est égale a 18.5 et plus, il se remettra a 19.5 ou 20.5 en fonction de l'heure. je ne vois pas de problème sur les conditions.
Re: Blocky, en script LUA
Code : Tout sélectionner
-- retourne l'heure actuelle ex: "12:45"
heure = string.sub(os.date("%X"), 1, 5)
commandArray = {}
if (otherdevices['ouverture cuisine']=='Closed' and otherdevices['ouverture salon']=='Closed' and otherdevices["ouverture yanis"]=='Closed' and otherdevices["ouverture parents"]=='Closed') then
if otherdevices_svalues['temperature yanis'] < '18.5' then
commandArray['Nest']='24'
elseif otherdevices_svalues['temperature yanis'] >= '18.5' then
if heure < '07:00' and heure > '21:00' then
commandArray['Nest']='19.5'
elseif heure >= '07:00' and heure <= '21:00' then
commandArray['Nest']='20.5'
end
end
end
return commandArray-
denis_brasseur
- Messages : 898
- Inscription : 24 déc. 2018, 17:05
- Localisation : (26)
Re: Blocky, en script LUA
Ton heure ne peut pas etre inférieure à 07:00 et supérieure à 21:00 !
Mais elle peut etre inférieure à 07:00 ou supérieur à 21:00.
Code : Tout sélectionner
if heure < '07:00' and heure > '21:00' thenCode : Tout sélectionner
if heure < '07:00' or heure > '21:00' thenPi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090