Piloter LED - Aeotec z-stick gen5 & N2+

Bonsoir,

Pour info, j’utilise le même genre de script, avant c’était pour éteindre une Zstick 5 et maintenant une 5+. Passé en débian 11 la semaine dernière, je n’ai pas eu de soucis de ce côté là, la led du zstick s’éteint toujours tous les soirs et se rallume le matin.

Voici ma conf du script (script qui est appelé ensuite par un scnénario) :

La seule différence notable, c’est que mon plugin Zwave JS est en version stable avec du UI en 8.26.0

image

Dans le plugin, j’utilise le port « /dev/serial/… » et dans le script j’appelle /dev/ttyACM0

Par contre, ce message d’erreur, je l’ai déjà eu sur un Ordoid C2 pour éteindre et allumer les led du C2 (le fait que le script renvoie « 1 », soit une erreur d’execution dans le script), et j’avais du lancer le script non pas en l’appelant « simplement » mais en mettant devant « sudo bash /le/chemin/du/script/led_off.sh »

TiTidom.

1 « J'aime »

Bonsoir,

BRAVO !

En mettant :
sudo bash /var/www/html/plugins/script/data/zstickLed.sh 1
Dans le chemin du script (plugin script) cela fonctionne.
=> Quel talent !

Chose louche, si je met les dépendances en version 8.26.0, cela fonctionne sans cela, avec les dépendances 9.5.1, le plugin fonctionne mais pas (enfin si maintenant) le pilotage des LED.

Question : A cause (il faut interpréter « grace ») de cela, il n’est plus possible d’éditer le script via l’interface du plugin, il n’est pas possible de placer cela sans le script ?

#!/bin/bash
if [ $1 == "1" ]; then
	#echo -ne "\x01\x08\x00\xF2\x51\x01\x01\x05\x01\x50" > /dev/ttyACM0
	echo -ne "\x01\x08\x00\xF2\x51\x01\x01\x05\x01\x50" > /dev/serial/by-id/usb-0658_0200-if00
else
	#echo -ne "\x01\x08\x00\xF2\x51\x01\x00\x05\x01\x51" > /dev/ttyACM0
	echo -ne "\x01\x08\x00\xF2\x51\x01\x00\x05\x01\x51" > /dev/serial/by-id/usb-0658_0200-if00
fi

Merci

Bonsoir,

Alors on peut essayer, c’est vrai que je m’étais pas posé la question et comme ca fonctionnait, j’en suis resté là :stuck_out_tongue: , du coup tu peux essayer ca (sans garantie, mais ca à l’air de fonctionner sur mon C2)
Donc, tu enlèves le « sudo bash » pour ne laisser que le script au niveau du plugin, et tu modifies le / les script en ajoutant la ligne « whoami » :

#!/bin/bash
[ `whoami` = root ] || exec sudo $0 $1
if [ $1 == "1" ]; then
	#echo -ne "\x01\x08\x00\xF2\x51\x01\x01\x05\x01\x50" > /dev/ttyACM0
	echo -ne "\x01\x08\x00\xF2\x51\x01\x01\x05\x01\x50" > /dev/serial/by-id/usb-0658_0200-if00
else
	#echo -ne "\x01\x08\x00\xF2\x51\x01\x00\x05\x01\x51" > /dev/ttyACM0
	echo -ne "\x01\x08\x00\xF2\x51\x01\x00\x05\x01\x51" > /dev/serial/by-id/usb-0658_0200-if00
fi

TiTidom.

3 « J'aime »

Cela fonctionne.

Merci beaucoup !

Bonsoir,
Le petit curieux que je suis serait intéressé par les scripts.
J’ai 2 odroid N2+ qui tournent dans le bureau couloir qui mène à la chambre d’amis et si je pouvais éteindre par scénario les leds j’aurais moins de remarque sur mes arbres de Noël.
Idem pour le scénario de la gen5 ancienne version.
Si vous en avez un qui traine pour un PI4 il sera aussi utilisé :grinning:
Bien cordialement

Bonsoir,

Ce script fonctionne, en principe avec toutes les configurations possible (adaptez le port en fonction du votre, j’ai mis deux lignes en commentaire #blabla si jamais vous avez un problème avec les nouveaux ports visibles depuis Jeedom).

#!/bin/bash
[ `whoami` = root ] || exec sudo $0 $1
if [ $1 == "1" ]; then
	#echo -ne "\x01\x08\x00\xF2\x51\x01\x01\x05\x01\x50" > /dev/ttyACM0
	echo -ne "\x01\x08\x00\xF2\x51\x01\x01\x05\x01\x50" > /dev/serial/by-id/usb-0658_0200-if00
else
	#echo -ne "\x01\x08\x00\xF2\x51\x01\x00\x05\x01\x51" > /dev/ttyACM0
	echo -ne "\x01\x08\x00\xF2\x51\x01\x00\x05\x01\x51" > /dev/serial/by-id/usb-0658_0200-if00
fi

Il suffit de créer un virtuel de cette façon :

Commande on :
/var/www/html/plugins/script/data/zstickLed.sh 1
Commande off :
/var/www/html/plugins/script/data/zstickLed.sh 0

Ensuite, il fonctionne avec un scénario, comme tous les équipements de Jeedom avec des commandes.

1 « J'aime »

Merci je vais tester demain :grinning:

Bonsoir,

Et voilà concernant le Odroid C2 (tournant sous Armbian - basé sur Debian 11) pour la gestion de la LED bleue, je ne sais pas si c’est adaptable sur un N2+ par contre :slight_smile:

Concernant la LED rouge, elle n’est pas gérable, donc celle-ci reste allumée (en tout cas sur le C2)…

#!/bin/bash
[ `whoami` = root ] || exec sudo $0 $1
if [ $1 == "1" ]; then
	# mmc0 / activity
	echo activity > /sys/class/leds/c2\:blue\:alive/trigger
else
	echo none > /sys/class/leds/c2\:blue\:alive/trigger
fi

Lancé via un scénario tous les soirs et le matin :

Contenu du scénario :

image

Bonne soirée,
TiTidom.

1 « J'aime »

Bonsoir,
Ca n’a pas l’air de fonctionner pour le N2+ mais je chercherais sur le net demain.
Mais bon la rouge étant plus gênante la nuit que la bleu c’est juste pour le plaisir de trouver :slight_smile:
Merci en tout cas

j’ai trouvé ça
https://wiki.odroid.com/odroid-n2/application_note/led_control
J’ai donc tenté de modifier le script de cette manière là :

#!/bin/bash
[ `whoami` = root ] || exec sudo $0 $1
if [ $1 == "1" ]; then
	# mmc0 / activity
	echo heartbeat > /sys/class/leds/blue\:heartbeat/trigger
else
	echo none > /sys/class/leds/blue\:heartbeat/trigger
fi

mais l’exécution me donne erreur :

------------------------------------
[2023-12-12 22:11:01][SCENARIO] Start : Scenario lance manuellement.
[2023-12-12 22:11:01][SCENARIO] Exécution du sous-élément de type [condition] : if (#time# >= 845) && (#time# < 915)
[2023-12-12 22:11:01][SCENARIO] Evaluation de la condition : [(2211 >= 845) && (2211 < 915)] = Faux
[2023-12-12 22:11:01][SCENARIO] Exécution du sous-élément de type [action] : else
[2023-12-12 22:11:01][SCENARIO] Exécution de la commande [CAMERA et INFORMATIQUE][Led 232][led N2 Off]
[2023-12-12 22:11:01][SCENARIO] Erreur sur /var/www/html/plugins/script/data/led-N2-0 2>&1 valeur retournée : 1. Détails : /var/www/html/plugins/script/data/led-N2-0: line 3: [: ==: unary operator expected
/var/www/html/plugins/script/data/led-N2-0: line 7: /sys/class/leds/blue:heartbeat/trigger: No such file or directory
[2023-12-12 22:11:01][SCENARIO] Fin correcte du scénario

Hello,

Dans l’appel du script tu mets bien « /var/chemin/script/script_led.sh 1 » (je parle du 1 pour allumer, ou bien 0 pour éteindre ?

Car je vois dans les logs un nom de fichier de script qui me fait penser qu’il n’est pas lancé de la bonne manière : « /var/www/html/plugins/script/data/led-N2-0 » (à la fin le « -0 » devrait plutôt être un espace et 0, ce qui donne « /var/www/html/plugins/script/data/led-N2 0 » (donc avec un script qui s’appelle « led-N2 »

EDIT : d’autre part, le message « line 7: /sys/class/leds/blue:heartbeat/trigger: No such file or directory » n’est pas très encourageant, et laisse penser que cette classe n’existe pas sur ton système (dit autrement, que c’est pas comme ca qu’il gère les led)

Si tu lances en SSH, la commande :

sudo ls -la /sys/class/leds/

Il te sort quelque chose ?

TiTidom.

jeedom@odroid232:~$ sudo ls -la /sys/class/leds/
[sudo] Mot de passe de jeedom : 
total 0
drwxr-xr-x  2 root root 0 janv.  1  1970 .
drwxr-xr-x 73 root root 0 janv.  1  1970 ..
lrwxrwxrwx  1 root root 0 janv.  1  1970 n2:blue -> ../../devices/platform/leds/leds/n2:blue
jeedom@odroid232:~$ 

Ok on avance,

Et maintenant :

sudo ls /sys/class/leds/n2\:blue/

Et s’il te sort dans les résultats un « trigger »

Il faudrait alors faire un :

sudo  cat /sys/class/leds/n2\:blue/trigger

Ca va te donner tous les états possibles pour tes leds, et si c’est le cas, alors il faut que tu modifies ton script pour mettre /sys/class/leds/n2\:blue/trigger à la place dans tes lignes echo…

eedom@odroid232:~$ sudo ls /sys/class/leds/n2\:blue/
[sudo] Mot de passe de jeedom : 
brightness  device  invert  max_brightness  power  subsystem  trigger  uevent
jeedom@odroid232:~$ 
jeedom@odroid232:~$ sudo  cat /sys/class/leds/n2\:blue/trigger
none usb-gadget usb-host kbd-scrolllock kbd-numlock kbd-capslock kbd-kanalock kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock usbport disk-activity disk-read disk-write ide-disk mtd nand-disk [heartbeat] cpu cpu0 cpu1 cpu2 cpu3 cpu4 cpu5 activity default-on panic mmc0 mmc1 rc-feedback rfkill-any rfkill-none mdio_mux-0.0:00:link mdio_mux-0.0:00:1Gbps mdio_mux-0.0:00:100Mbps mdio_mux-0.0:00:10Mbps bluetooth-power

Bonjour,

Nickel, du coup, avec le script suivant, cela devrait fonctionner :slight_smile: :

#!/bin/bash
[ `whoami` = root ] || exec sudo $0 $1
if [ $1 == "1" ]; then
	# mmc0 / activity / heartbeat
	echo heartbeat > /sys/class/leds/n2\:blue/trigger
else
	echo none > /sys/class/leds/n2\:blue/trigger
fi

Et pour le lancer :

  • pour ta commande « led N2 off » :
/var/www/html/plugins/script/data/led-N2 0
  • pour ta commande « led N2 on » :
/var/www/html/plugins/script/data/led-N2 1

PS : si ton script s’appelle bien « led-N2 », sinon à adapter en fonction du nom que tu lui as donné :wink:

Bonne journée,
TiTidom.

Bonjour,
Impec merci ça marche :slight_smile:
C’est validé pour le N2+ du coup, ça servira peut-être un jour à quelqu’un.
Bonne journée également

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.