Device Texte : Mise à jour en LUA
Device Texte : Mise à jour en LUA
bonjour
j'ai un device Texte qui s'appelle TOTO avec idx = 38 que je veux mettre à jour en mettant le texte "bravo" dans le device .
J'utilise en LUA la commande :
commandArray[textDeviceIdx] = { ['UpdateDevice'] = textDeviceIdx..'|0|'..'some text' }
et en remplaçant :
CommandeArray[TOTO] = {['UpdateDevice'] = TOTO..'|0|'..'bravo' }
Domoticz me donne une erreur dans les logs...
Où est l'erreur?
merci
j'ai un device Texte qui s'appelle TOTO avec idx = 38 que je veux mettre à jour en mettant le texte "bravo" dans le device .
J'utilise en LUA la commande :
commandArray[textDeviceIdx] = { ['UpdateDevice'] = textDeviceIdx..'|0|'..'some text' }
et en remplaçant :
CommandeArray[TOTO] = {['UpdateDevice'] = TOTO..'|0|'..'bravo' }
Domoticz me donne une erreur dans les logs...
Où est l'erreur?
merci
Re: Device Texte : Mise à jour en LUA
['UpdateDevice'] ne fonctionne qu'avec un IDX
Re: Device Texte : Mise à jour en LUA
je fais ceci :
commandArray['UpdateDevice'] = '38|0|Bravo'
et le device Texte dont l'IDX = 38 contient 'Bravo' .
est-ce correct de faire comme çà?
y a-t-il d'autres syntaxes plus complètes et plus intelligentes?
merci
commandArray['UpdateDevice'] = '38|0|Bravo'
et le device Texte dont l'IDX = 38 contient 'Bravo' .
est-ce correct de faire comme çà?
y a-t-il d'autres syntaxes plus complètes et plus intelligentes?
merci
-
denis_brasseur
- Messages : 898
- Inscription : 24 déc. 2018, 17:05
- Localisation : (26)
Re: Device Texte : Mise à jour en LUA
Code : Tout sélectionner
CommandeArray[TOTO]Et ne s'écrit pas avec le nom, mais comme ceci (par exemple)
Code : Tout sélectionner
commandArray[#commandArray+1]
Dernière modification par denis_brasseur le 01 juin 2020, 17:37, modifié 2 fois.
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Re: Device Texte : Mise à jour en LUA
Quelques exemples valides :
Source / bible : https://www.domoticz.com/wiki/Events
Code : Tout sélectionner
commandArray['Switch']='On'
commandArray['Scene:Livingroom']='On' -- remember, Scene cannot be turned Off!
commandArray['Group:Kitchen']='Inactive'
commandArray['Keyfob']='Group On'
commandArray['DimmableDevice']='Set Level 50'
commandArray['Selector']='Set Level: 50'
commandArray['SendNotification']='subject#body#0'
commandArray['SendEmail']='subject#body#your@email.com'
commandArray['OpenURL']='www.yourdomain.com/api/movecamtopreset.cgi'
commandArray['Blinds']='On RANDOM 30'
commandArray['Porch Light']='On FOR 2'
commandArray['Variable:MyVar']='Some value'
commandArray['Variable:MyVar']='Some value AFTER 3'
commandArray[textDeviceIdx] = { ['UpdateDevice'] = textDeviceIdx..'|0|'..'some text' }
commandArray[tempDeviceIdx] = { ['UpdateDevice'] = tempDeviceIdx..'|0|'..temp }
commandArray[tempHumDevIdx] = { ['UpdateDevice'] = tempHumDevIdx..'|0|'.. temp ..';'.. hum ..';'.. hum_stat }
Re: Device Texte : Mise à jour en LUA
donc
si j'utilises : commandArray[textDeviceIdx] = { ['UpdateDevice'] = textDeviceIdx..'|0|'..'some text' }
et que mon device Texte s'appelle TOTO d'idx 38 , et je veux mettre le texte 'Bravo' dedans,
est-ce qu'il faut faire ceci :
commandArray[TOTO] = { ['UpdateDevice'] = TOTO..'|0|'..'Bravo' }
ou cela :
commandArray[38] = { ['UpdateDevice'] = 38..'|0|'..'Bravo' }
??
merci
si j'utilises : commandArray[textDeviceIdx] = { ['UpdateDevice'] = textDeviceIdx..'|0|'..'some text' }
et que mon device Texte s'appelle TOTO d'idx 38 , et je veux mettre le texte 'Bravo' dedans,
est-ce qu'il faut faire ceci :
commandArray[TOTO] = { ['UpdateDevice'] = TOTO..'|0|'..'Bravo' }
ou cela :
commandArray[38] = { ['UpdateDevice'] = 38..'|0|'..'Bravo' }
??
merci
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: Device Texte : Mise à jour en LUA
Salut,
Sur ce coup là je trouve le wiki un peu limite
La meilleure syntaxe est celle ci (dixit Denis)
A privilégier lorsque l'on veut agir plusieurs fois sur le même dispositif dans un même script.
Ex
On
Off after 10
Dans ton cas ceci suffit
Ou
Sur ce coup là je trouve le wiki un peu limite
La meilleure syntaxe est celle ci (dixit Denis)
Code : Tout sélectionner
commandArray[#commandArray+1] = { ['UpdateDevice'] = 38..'|0|'..'Bravo' }Ex
On
Off after 10
Dans ton cas ceci suffit
Code : Tout sélectionner
commandArray['UpdateDevice'] = 38..'|0|'..'Bravo' Code : Tout sélectionner
local msg = 'bravo'
commandArray['UpdateDevice'] = 38..'|0|'..msg 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
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: Device Texte : Mise à jour en LUA
J'essaie aussi de faire quelques choses du genre, je récupère les prévisions de pluie, et je veux les envoyer dans un widget
J'ai ce bout de code :
Mais je recois cette erreur :
J'ai ce bout de code :
Code : Tout sélectionner
rain = jsonValeur.daily[1].rain
rain2 = jsonValeur.daily[2].rain
if rain ~= nil then
commandArray['Variable:Pluie-jour'] = tostring(rain)
else
commandArray['Variable:Pluie-jour'] = '0'
end
if rain2 ~= nil then
commandArray['Variable:Pluie-lendemain'] = tostring(rain2)
else
commandArray['Variable:Pluie-lendemain'] = '0'
end
Pluiejour = uservariables['Pluie-jour']
Pluielendemain = uservariables['Pluie-lendemain']
commandArray[#commandArray+1] = { ['UpdateDevice'] = 397..'|0|'..Pluiejour }
commandArray[#commandArray+1] = { ['UpdateDevice'] = 398..'|0|'..Pluielendemain }Code : Tout sélectionner
2020-06-03 13:41:00.478 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_meteo.lua: /home/pi/domoticz/scripts/lua/script_time_meteo.lua:74: malformed number near '397..'Re: Device Texte : Mise à jour en LUA
Bon, apparemment, ca fonctionne avec le numero d'idx entre ', pas 38.. mais '38'..
-
denis_brasseur
- Messages : 898
- Inscription : 24 déc. 2018, 17:05
- Localisation : (26)
Re: Device Texte : Mise à jour en LUA
Code : Tout sélectionner
commandArray[#commandArray+1] = { ['UpdateDevice'] = '397|0|'..Pluiejour } Code : Tout sélectionner
commandArray[#commandArray+1] = { ['UpdateDevice'] = 'idx|0|valeur a afficher'} Code : Tout sélectionner
commandArray[#commandArray+1] = { ['UpdateDevice'] = idx..'|0|'..Pluiejour } Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090