[2023.1] Problème script LUA

Posez ici vos questions d'utilisation, de configuration de DomoticZ, de bugs, de conseils sur le logiciel lui même dans son utilisation et son paramétrage.
Des forums spécifiques sont ouverts ci-dessous pour regrouper les différents sujets.
Bochets34
Messages : 35
Inscription : 09 mars 2018, 08:27

[2023.1] Problème script LUA

Message par Bochets34 »

Bonjour,
j'ai plusieurs problèmes après cette MAJ(Raspberry):
- avec mes scripts LUA dans lesquels j'utilise la fonction "devicechanged'' dans un script de type script_device, rien ne se passe, y compris dans le log
-le log qui est en retard de 5 ou 10' environ et semble incomplet, pas d'erreur...

les plugins (shelly etc) sont opérationnels, bref étrange

ce script

Code : Tout sélectionner

-- Script pour commmande Volets roulants
-- Olivier hiver 2023
commandArray = {}
if (otherdevices['VR_Suite'] == 'Open') then
print("DEBUG ON*******")
os.execute ('/home/pi/domoticz/scripts/notification_google_home.sh  "Le Volet du garage coté Touine guo est ouvert" 0.6 > /dev/null 2>&1 ')
end
if (otherdevices['VR_Suite'] == 'Close') then
print("***************** DEBUG OFF*******")
os.execute ('/home/pi/domoticz/scripts/notification_google_home.sh  "Le Volet du garage coté Touine guo est ouvert" 0.6 > /dev/null 2>&1 ')
end
return commandArray
après 2 appuis successifs Open/close indiquent instantanément
2023-02-17 08:15:11.434 Status: User: Domo4Bochets34 (IP: 192.168.1.1) initiated a switch command (56/VR_Suite/Open)
2023-02-17 08:15:19.475 Status: User: Domo4Bochets34 (IP: 192.168.1.1) initiated a switch command (56/VR_Suite/Close)
mais pas de 'print' ni évidemment de son par mon script (cela fonctionne depuis plus de cinq ans ainsi)

je ne sais pas par ou commencer pour résoudre cette énigme, n'ayant pas d'erreur ni d'autre piste: à l'aide !

Olivier
lost
Messages : 1511
Inscription : 12 nov. 2016, 11:01

Re: [2023.1] Nouvelle version DomoticZ

Message par lost »

Bochets34 a écrit : 17 févr. 2023, 08:20 mais pas de 'print' ni évidemment de son par mon script (cela fonctionne depuis plus de cinq ans ainsi)
Peut-être changer ton affichage debug afin d'afficher directement la chaîne retournée, comme déjà suggéré par moi sur le forum anglophone?

Ce serait bizarre que Open/Close ait été changé en On/Off par exemple mais c'est le seul moyen de savoir. Et également de savoir si ton script est encore appelé tout court et sans erreur (l'interpréteur Lua intégré à Domoticz peut avoir évolué).

Vérifier le type de switch utilisé comme indiqué par un autre contributeur également qui a vérifié que côté sources Open/Close reste d'actualité.
Bochets34
Messages : 35
Inscription : 09 mars 2018, 08:27

Re: [2023.1] Nouvelle version DomoticZ

Message par Bochets34 »

J'ai essayé... ca ne donne rien ! a part une erreur:
2023-02-17 09:05:12.889 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_AFAC.lua: /home/pi/domoticz/scripts/lua/script_time_AFAC.lua:4: attempt to index a nil value (global 'devicechanged')
Bochets34
Messages : 35
Inscription : 09 mars 2018, 08:27

Re: [2023.1] Nouvelle version DomoticZ

Message par Bochets34 »

erreur si commande print juste après le commandArray
après le otherdevices...il ne se passe rien...

Tout
Etat
Filtre:
X
2023-02-17 09:27:10.229 Status: User: Domo4Bochets34 (IP: 192.168.1.1) initiated a switch command (56/VR_Suite/Close)
2023-02-17 09:27:12.925 Status: User: Domo4Bochets34 (IP: 192.168.1.1) initiated a switch command (56/VR_Suite/Open)
le log dans config /dispositifs fait bien apparaitre Open et Close

pour moi la commande est devenue non opérationnelle avec ma configuration, je seche
Bochets34
Messages : 35
Inscription : 09 mars 2018, 08:27

Re: [2023.1] Nouvelle version DomoticZ

Message par Bochets34 »

en renommant le script script_device au lieu de script_time, c'est mieux

le test "if (otherdevices['VR_Suite'] = 'Open') then" déclenche un print et l'action d'envoyer le son vers ma google home !

donc je reviens a mon point de départ pour comprendre pourquoi le "if (devicechanged['VR_Suite'] == 'Open') (ou Close) then" ne fonctionne plus ...

j'ai plus d'une dizaine de scripts basés sur cette fonction donc ma domotique est un peu plantée la !

quelqu'un aurait il la gentilleses de proposer une alternative ?

Olivier
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Modération

Message par Keros »

Messages déplacés dans un nouveau sujet
Bochets34
Messages : 35
Inscription : 09 mars 2018, 08:27

Re: [2023.1] Problème script LUA

Message par Bochets34 »

merci, en fait cela semble fonctionner....plusieurs heures après !

mon CPU est chargé à 42% et la mémoire à 89%, ca fait beaucoup, non?
Raspberry 3

Olivier
JulienGFFS
Messages : 2
Inscription : 17 févr. 2023, 18:17

Re: [2023.1] Problème script LUA

Message par JulienGFFS »

Bonjour,

Même soucis avec mes scripts en LUA/Blocky, mes devices changent d'états quelques heures après et la charge de ma CPU est passé de 15% à 50% après la dernière MAJ.
lost
Messages : 1511
Inscription : 12 nov. 2016, 11:01

Re: [2023.1] Nouvelle version DomoticZ

Message par lost »

Bochets34 a écrit : 17 févr. 2023, 09:46 en renommant le script script_device au lieu de script_time, c'est mieux

le test "if (otherdevices['VR_Suite'] = 'Open') then" déclenche un print et l'action d'envoyer le son vers ma google home !

donc je reviens a mon point de départ pour comprendre pourquoi le "if (devicechanged['VR_Suite'] == 'Open') (ou Close) then" ne fonctionne plus ...
Bizarre, la table otherdevices est censée être dispo dans les 2 types de script. Seule la table devicechanged est spécifique aux scripts device et absente des time.

Mais si au final elle ne peut être évaluée, cela explique l'erreur en tentant d'afficher directement l'état. Dans un test peut-être que Lua évaluait la condition comme fausse sans lever d'erreur (et aucun print erreur dans ces tests en conséquence) comme lors d'un appel de fonction.

Mais au final le Open/Close est inchangé et si pb il est ailleurs. Bizarre que personne d'autre n'ait ces soucis si c'est général.

Par contre, un script time pour réagir à un changement d'état matériel n'était au fond sans doute pas adapté. No la table utilisée mais seule dispo en time. C'est possiblement avoir 1mn de retard sur la notif sur changement d'état... voir que cela soit "tombé en marche" jusque là?
Dernière modification par lost le 17 févr. 2023, 19:05, modifié 1 fois.
lost
Messages : 1511
Inscription : 12 nov. 2016, 11:01

Re: [2023.1] Problème script LUA

Message par lost »

JulienGFFS a écrit : 17 févr. 2023, 18:28 la charge de ma CPU est passé de 15% à 50% après la dernière MAJ.
Je dois être à 1.5% en moyenne niveau CPU sur un PI3B (install légère headless sans interface graphique) et 40% en RAM (1GB)... et encore car j'ai pas mal de tmpfs en ram pour économiser la carte SD.

Je soignerais la sauvegarde avant de tester!
Répondre