Uservriables Lua

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 <\>.
Jihem
Messages : 337
Inscription : 19 sept. 2014, 13:04
Localisation : Finistère Sud

Uservriables Lua

Message par Jihem »

Bonjour
je fais à nouveau appel à votre savoir pour un problème de programmation en Lua.
Je dois mettre à jour une variable utilisateur "Told_CH1" de Domoticz dans un script:

Code : Tout sélectionner

 tempold = tostring(Told_CH1)
        commandArray['Variable:tempold'] = tostring(temp)
Or avec cette formule je mets à jour une variable "tempold" et pas "Told_CH1"
Quelle est la bonne syntaxe pour faire passer ma variable "Told_CH1"
j'espère avoir été clair
Merci d'avance
Hard:Raspberry Pi4 + SSD Arduino Tablette murale Archos
Soft: Domoticz WireGuard vpn Homebridge Tradfri Ikea
Devices:[/colore]Rfxtrx433 DI-O Chacon Sonoff touch Anémomètre, pluviometre, sondes Orégon, capteurs humidité Miflora, téléinfo
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Uservriables Lua

Message par patrice »

Toujours pas spécialiste en Lua
mais un

commandArray['Variable:Told_CH1'] = tostring(temp)

tout simple devrait rouler non ?
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Jihem
Messages : 337
Inscription : 19 sept. 2014, 13:04
Localisation : Finistère Sud

Re: Uservriables Lua

Message par Jihem »

Ben non hélas!
Car en fait je veux mettre à jour plusieurs variables à partir d'une table de températures.
temp_Séjour, temp_CH 1, temp_CH2...etc vers told_Séjour, told_CH1..etc avec une variable tempold qui prend successivement les valeurs précédentes.
Ça fonctionnent avec les interrupteurs:

Code : Tout sélectionner

controle = "Ctrl_Séjour" 
commandArray[controle] = "On"
me met bien à jour le switch "Ctrl_Séjour"
mais

Code : Tout sélectionner

tempold = "told_Séjour"
 commandArray['Variable:tempold'] = "25"
me met à jour une variable "tempold" (je l'ai créé pour voir).
il doit y avoir une syntaxe pour que la commande prenne en compte la valeur "told_Séjour" plutôt que le nom "tempold".
Si je fais un print(tempold) j'ai bien "told_séjour" et il n'y a pas d'erreur dans les logs.
J'ai essayé plusieurs syntaxes commandArray['Variable:"tempold"'], commandArray['Variable:..tempold'] sans succès.
Une idée?
Hard:Raspberry Pi4 + SSD Arduino Tablette murale Archos
Soft: Domoticz WireGuard vpn Homebridge Tradfri Ikea
Devices:[/colore]Rfxtrx433 DI-O Chacon Sonoff touch Anémomètre, pluviometre, sondes Orégon, capteurs humidité Miflora, téléinfo
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Uservriables Lua

Message par patrice »

Je passe ...
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
jackslayter
Messages : 1040
Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: Uservriables Lua

Message par jackslayter »

essaye de renommer ton script script_device_blabla.lua en script_variable_blabla.lua
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
Jihem
Messages : 337
Inscription : 19 sept. 2014, 13:04
Localisation : Finistère Sud

Re: Uservriables Lua

Message par Jihem »

A priori Domoticz n'en veut pas, je ne vois plus le script dans les logs. Même après un restart.
Hard:Raspberry Pi4 + SSD Arduino Tablette murale Archos
Soft: Domoticz WireGuard vpn Homebridge Tradfri Ikea
Devices:[/colore]Rfxtrx433 DI-O Chacon Sonoff touch Anémomètre, pluviometre, sondes Orégon, capteurs humidité Miflora, téléinfo
Jihem
Messages : 337
Inscription : 19 sept. 2014, 13:04
Localisation : Finistère Sud

Re: Uservriables Lua

Message par Jihem »

Bonsoir
au temps pour moi, j'avais oublié que le script était déclenché par "uservariablechanged".
Ceci dit je n'avance pas tellement car j'ai une erreur:

Code : Tout sélectionner

Error: /home/pi/domoticz/scripts/lua/script_variable_essai.lua:5: attempt to call global 'uservariablechanged' (a table value)
j'appelle pourtant bien une variable de ma liste de variable?????
Hard:Raspberry Pi4 + SSD Arduino Tablette murale Archos
Soft: Domoticz WireGuard vpn Homebridge Tradfri Ikea
Devices:[/colore]Rfxtrx433 DI-O Chacon Sonoff touch Anémomètre, pluviometre, sondes Orégon, capteurs humidité Miflora, téléinfo
hobbe
Messages : 111
Inscription : 15 déc. 2014, 15:33

Re: Uservriables Lua

Message par hobbe »

Jihem a écrit :Bonsoir
au temps pour moi, j'avais oublié que le script était déclenché par "uservariablechanged".
Ceci dit je n'avance pas tellement car j'ai une erreur:

Code : Tout sélectionner

Error: /home/pi/domoticz/scripts/lua/script_variable_essai.lua:5: attempt to call global 'uservariablechanged' (a table value)
j'appelle pourtant bien une variable de ma liste de variable?????
Je pense que tu confonds ta variable de code (tempold) et le variable Domoticz (Told_CH1, told_Séjour, etc.).
Je pense que tu peux concaténer le contenu de tempold avec "Variable:" pourobtenir le nom de la variable Domoticz.

Code : Tout sélectionner

tempold = "Told_CH1"
commandArray["Variable:" .. tempold] = tostring(temp)
tempold = "told_Séjour"
commandArray["Variable:" .. tempold] = "25"
La variable Told_CH1 de Domoticz sera positionnée à la valeur de temp.
La variable told_Séjour de Domoticz sera positionnée à la valeur 25.

Note: je n'ai pas essayé...
Répondre