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

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
Phebus06
Messages : 213
Inscription : 26 janv. 2017, 09:25

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

Message 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....
Dernière modification par Phebus06 le 21 sept. 2017, 18:44, modifié 2 fois.
Phebus06
Messages : 213
Inscription : 26 janv. 2017, 09:25

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

Message 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
Phebus06
Messages : 213
Inscription : 26 janv. 2017, 09:25

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

Message 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
lmet
Messages : 252
Inscription : 30 juin 2017, 18:16
Localisation : Val d'Oise
Contact :

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

Message 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 ...
Domoticz : V4.10717
Zigate : V4.11230 plugin:4.5.4 firmware:031a
Mon petit blog domotique
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

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

Message 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.
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
Phebus06
Messages : 213
Inscription : 26 janv. 2017, 09:25

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

Message 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 ;)
Dernière modification par Phebus06 le 20 sept. 2017, 09:04, modifié 1 fois.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

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

Message 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
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

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

Message 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
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

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

Message 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
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
Phebus06
Messages : 213
Inscription : 26 janv. 2017, 09:25

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

Message 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 :)
Répondre