Page 1 sur 3

Script Lua : variable à afficher dans une variable de type chaine

Publié : 14 sept. 2017, 16:45
par Phebus06
Bonjour,

En tout nouveau propriétaire d'un deux pièces tout neuf RT2012, bien sur je me suis penché sur le fonctionnement du chauffage actuel. J'ai un joli boitier de contrôle deux zone accroché au mur qui affiche la température de la pièce. Je me suis dit cool je vais pouvoir régler la température de ma chambre et du salon directement avec ce boitier. Bin non lol... En fait il permet juste d'envoyer l'information au chauffage chauffe ou chauffe plus avec son programme interne, mais la température reste toujours super aléatoire puisqu'il faut régler la molette directement sur le radiateur 0 à 8... Allez contrôler une température d'ambiance sympa avec ça :evil:

Du coup je me suis dit que mes prochains achats seraient pour pouvoir domotiser réellement mon chauffage.
J'ai commencé à lire un peu tout ce qui se dit sur le sujet et au final, n'étant vraiment pas un foudre de guerre en programmation je me suis tourné vers le Blocky que je trouve personnellement très sympathique puisqu'il me rappel mes ancien cour sur la programmation robotique que j'ai pu avoir en terminal ;)

Bien sur actuellement avec la version de Blocky sur Domoticz, tout ne peut pas se faire comme en lua...
Mais en y réfléchissant bien je pense pouvoir réussir à aboutir, pour cette hiver (je me laisse de la marge lol), à quelque chose qui fonctionnera bien et qui pourra être récupéré par tout ceux qui ont du mal avec le LUA (c'est peut être de la mauvaise volonté de ma par mais ne rien trouver de vraiment explicatif sur le net c'est pénible).

Ma structure générale du Blocky est écrite sur le papier...et je me rend compte que j'ai besoin de 3 petits scripte en LUA pour que tout puisse s'emboiter ;).

Le premier :
J'ai un interrupteur virtuel Thermostat Chambre,
Un interrupteur virtuel Hystérésis,
Une variable température Chambre Haute,
Une variable température Chambre Basse.

Je voudrait que la valeur de consigne de l'interrupteur virtuel Thermostat Chambre + la valeur de l'interrupteur virtuel Hystérésis alimentent dans domoticz ma variable température Chambre Haute

et que la valeur de consigne de l'interrupteur virtuel Thermostat Chambre - la valeur de l'interrupteur virtuel Hystérésis alimentent dans domoticz ma variable température Chambre Basse

c'est surement pas trop compliqué mais j'ai pas trop compris tout ce que j'ai lu lol...

Le deuxième et troisième :
toujours en lua je voudrais un programme qui change un interrupteur virtuel à ON ou OFF si c'est le week end et idem qui change un interrupteur virtuel quand c'est un jour férié (je ne veux pas passer par internet).

Alors n'hésitez pas à m'aider et une fois que tout fonctionnera, si j'arrive à faire ce que j'ai en tête MDR, je mettrai toutes les étapes bien détaillées pour enfin pouvoir contrôler son chauffage en Blocky. Et tout paramétrable très facilement par domoticz sans remettre les pattes dans le cambouis pour changer quelque chose comme les planning de chauffe, hystérésis etc....

Re: Script Lua : variable à afficher dans une variable température

Publié : 14 sept. 2017, 16:51
par Phebus06
une petite erreur c'est glissé
Bien sur c'est un interrupteur virtuel Thermostat Hystérésis que j'ai créé pas juste un interrupteur virtuel lol

Re: Script Lua : variable à afficher dans une variable température

Publié : 19 sept. 2017, 19:39
par Phebus06
Bon après beaucoup de lecture je suis partie sur un script_time :

Code : Tout sélectionner

CommandArray = {}

local tempchambrehaute = otherdevices_svalues[Consigne Thermostat Chambre]+[Hysteresis]
local tempchambrebasse = otherdevices_svalues[Consigne Thermostat Chambre]-[Hysteresis]

if (devicechanged[Consigne Thermostat Chambre]) or (devicechanged[Hysteresis]) then
CommandArray['Variable:Temperature_Chambre_Haute'] = tostring (uservariable["tempchambrehaute"]) and ['Variable:Temperature_Chambre_Basse'] = tostring (uservariable["tempchambrebasse"])
end
end
mais ça ne fonctionne pas...

Quelqu'un peut m'aiguiller :P

Re: Script Lua : variable à afficher dans une variable température

Publié : 19 sept. 2017, 23:50
par lmet
Bonsoir,
Je suis moi-même demandeur d'aide sans réponse mais cela n'empêche pas.
Je vois un if dans ton code et deux end de plus il manque un return CommandArray
De plus les espaces sont fortement déconseillés dans les noms d'IDX et il doit manquer quelques "'"
Je mettrais deux CommandArray un pour chambre_haute un pour chambre_basse
Bon je dis ça je dis rien ...

Re: Script Lua : variable à afficher dans une variable température

Publié : 20 sept. 2017, 07:49
par vil1driver
Salut,

Le premier reflex est de regarder les logs..

Pas de devicechanged dans un script TIME
Pas de and entre les actions, juste un retour à la ligne
Manque un commandArray
tempchambrehaute et tempchambrebasse ne sont pas des variables utilisateur (externes au script) mais locales (internes au script)

Lorsque l'on débute on prends un script simple et tout fait que l'on tente de comprendre puis modifier au besoin, une chose à la fois.

Re: Script Lua : variable à afficher dans une variable température

Publié : 20 sept. 2017, 08:52
par Phebus06
Merci pour vos commentaires, ça aide à avancer :D

Par contre c'est franchement dur de commencer en LUA même en regardant un peu tout les scripts du plus simple au plus compliqué, mais je m'accroche ...

Je pense vraiment que je vais m'acheter un bouquin pour mieux comprendre la logique de ce langage par ce que sur internet les explications c'est pas ça.

Bon ce soir j'essaie de corriger le tir avec vos conseils sur mon script ;)

Re: Script Lua : variable à afficher dans une variable température

Publié : 20 sept. 2017, 09:03
par vil1driver
Un livre ne t'aidera pas

Pour comprendre if then else end, Internet suffit

Le reste (à par quelques fonctions que tu trouveras déjà faites..) est propre à domoticz

Donc ton meilleur livre de chevet est le wiki et ce forum

Re: Script Lua : variable à afficher dans une variable température

Publié : 20 sept. 2017, 09:16
par vil1driver
Ton code est plein d'erreurs, fais le voir en entier je vai tenter de te le rendre plus lisible et commenté
Ca devrait bien t'aider à comprendre

Re: Script Lua : variable à afficher dans une variable température

Publié : 20 sept. 2017, 10:09
par vil1driver
Sinon pourquoi utiliser un thermostat virtuel pour l'hysteresis ?
Tu comptes faire souvent varier cette valeur ?

Perso je n'utilise pas l'hysteresis, c'est source d'inconfort.
C'était surtout induit par les thermostat mécaniques à bilame.

Mais si tu y tiens vraiment, autant la fixer dans le script

Re: Script Lua : variable à afficher dans une variable température

Publié : 20 sept. 2017, 10:25
par Phebus06
" tempchambrehaute et tempchambrebasse ne sont pas des variables utilisateur (externes au script) mais locales (internes au script) "

Oui c'est bien ça ... Je suppose que si tu me dis dit ça c'est que dans mon script il y a une erreur avec ça ? mais peux tu m'en dire plus ? que dois je faire ?

j'aimerais que ma variable local temchambrehaute aille dans la variable de domoticz Temperature_Chambre_Haute et ma variable local temchambrebasse aille dans la variable de domoticz Temperature_Chambre_Basse

Peux tu m'aiguiller STP :)