Error : did not return a commandArray

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 <\>.
g_ride
Messages : 5
Inscription : 25 août 2018, 19:34

Error : did not return a commandArray

Message par g_ride »

Bonjour,
je suis nouveau sur Domoticz.
j'ai implémenté un petit script avec un interrupteur virtuel pour "inverser" la commande d'activation du chauffage via fil pilote.
La commande à envoyer pour allumer doit être "OFF", mais je souhaite que le bouton montre "ON" , pour utilisation par des néophytes.

A l'exécution, le script fait ce que je souhaite, mais il affiche une erreur dans le log :

Code : Tout sélectionner

Error: EventSystem: Lua script /home/pi/domoticz/scripts/lua/script_device_RADIATEUR_1_SALON.lua did not return a commandArray
Error: Error executing script command (/home/pi/domoticz/scripts/lua/script_device_test.lua). returned: 32256
Ce script est très simple et adapté du script demo. Beaucoup de débutants ont donc dû avoir cette erreur, mais malgré mes recherches, je ne trouve pas d'explication sur/hors du forum.

Pouvez-vous svp m'indiquer d'où vient l'erreur ?
Merci, désolé si la réponse est sur le forum.
g_ride
RPI 3, RfxTrx433, pilotage de chauffage par modules chacon 54755
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Error : did not return a commandArray

Message par thier »

Post ton script.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
g_ride
Messages : 5
Inscription : 25 août 2018, 19:34

Re: Error : did not return a commandArray

Message par g_ride »

Bonjour,
merci de ta réponse,
voici le script :

Code : Tout sélectionner

commandArray = {}
if (devicechanged['RADIATEUR 1 SALON'] == 'On')  then
	commandArray['CMD RADIATEUR 1 SALON']='Off'
else
  if (devicechanged['RADIATEUR 1 SALON'] == 'Off')  then
	commandArray['CMD RADIATEUR 1 SALON']='On'
  end
end
return commandArray
Bien à toi,
RPI 3, RfxTrx433, pilotage de chauffage par modules chacon 54755
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Error : did not return a commandArray

Message par thier »

trop tard pour réfléchir, j'essairai

Code : Tout sélectionner

commandArray = {}
if (devicechanged['RADIATEUR 1 SALON'] == 'On')  then
   commandArray['CMD RADIATEUR 1 SALON']='Off'
else
  (devicechanged['RADIATEUR 1 SALON'] == 'Off')  then
   commandArray['CMD RADIATEUR 1 SALON']='On'
end
return commandArray
ou

Code : Tout sélectionner

commandArray = {}
if (devicechanged['RADIATEUR 1 SALON'] == 'On')  then
   commandArray['CMD RADIATEUR 1 SALON']='Off'
elseif (devicechanged['RADIATEUR 1 SALON'] == 'Off')  then
   commandArray['CMD RADIATEUR 1 SALON']='On'
end
return commandArray
Si tu l'édites avec l'éditeur de script interne à domoticz (que je n'utilise pas) il me semble qu'il faut décocher "All" et ne cocher que "Device".
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
g_ride
Messages : 5
Inscription : 25 août 2018, 19:34

Re: Error : did not return a commandArray

Message par g_ride »

Bonjour,
merci pour la réponse.
J'ai remplacé par la version elseif, mais j'ai surtout découvert (erreur de débutant) que tous les scripts "script_device" se lançaient au changement d'événement et j'avais une autre version qui était toujours dans le répertoire.
Désormais, le script fait bien ce qu'il doit faire, mais il affiche toujours

Code : Tout sélectionner

Error: Error executing script command (/home/pi/domoticz/scripts/lua/script_device_test.lua). returned: 32512
à la fin du script. J'ai lu des infos sur le format du fichier (encodage en UTF8 "Unix" / sans "BOM"), mais je l'ai réédité avec nano, vérifié les fins de ligne, édité en notepad++ et converti en UTF8 (et pas UTF8-BOM), mais pas de changement, j'ai toujours cette erreur.
Ca semble pas bien grave, mais je préfèrerais savoir pourquoi....

bonne journée,
RPI 3, RfxTrx433, pilotage de chauffage par modules chacon 54755
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Error : did not return a commandArray

Message par vil1driver »

Salut,

Que fait le script en question ?
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
g_ride
Messages : 5
Inscription : 25 août 2018, 19:34

Re: Error : did not return a commandArray

Message par g_ride »

Salut,
c'est vraiment tout con :
commande vers un fil pilote de chauffage avec diode :
Pour allumer le chauffage, il faut que la commande envoie OFF (OFF sur le fil pilote = mode confort)
Comme c'est pas très pratique si un néophyte doit allumer le chauffage dans domoticz, un interrupteur virtuel inverse la commande et c'est cet interrupteur virtuel qui est mis sur le tableau de bord :

Code : Tout sélectionner

#!/usr/bin/lua
commandArray = {}
if (devicechanged['RADIATEUR_1_SALON'] == 'On')  then
	commandArray['CMD_RADIATEUR_1_SALON']='Off'
        print("radiateur 1 sur " .. devicechanged['RADIATEUR_1_SALON'])
elseif (devicechanged['RADIATEUR_1_SALON'] == 'Off')  then
	commandArray['CMD_RADIATEUR_1_SALON']='On'
        print("radiateur 1 sur " .. devicechanged['RADIATEUR_1_SALON'])
end
return commandArray
Merci.
RPI 3, RfxTrx433, pilotage de chauffage par modules chacon 54755
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Error : did not return a commandArray

Message par thier »

Enlève le sheeban #!/usr/bin/lua.
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
g_ride
Messages : 5
Inscription : 25 août 2018, 19:34

Re: Error : did not return a commandArray

Message par g_ride »

Salut,
merci pour ta réponse et désolé pour le délai de réaction. Naissance de mon premier bébé juste après ton msg, ... j'ai plus trop le temps de jouer ;-).
En revanche, j'ai essayé ce que tu as dit, mais ça ne change rien (quelle était la logique d'ailleurs : le shebang donne juste l'indication que le fichier est un script et l'emplacement de l'interpréteur, non ?
RPI 3, RfxTrx433, pilotage de chauffage par modules chacon 54755
thier
Messages : 807
Inscription : 26 sept. 2015, 10:32
Localisation : charente

Re: Error : did not return a commandArray

Message par thier »

Il ne sert à rien.
Tu as des messages d'erreur?
PI3+, Buster, Domoticz V2020.2, rflink, zwave, chauffage piloté par qubino, sondes oregon et Vil1d, boite aux lettres détection passage facteur, volets roulants qubino fibaro.
Répondre