Wiz et OpenWRT
Contrôle d'une ampoule WiZ depuis OpenWRT
Ce guide explique comment allumer ou éteindre une ampoule WiZ via un routeur OpenWRT en utilisant `socat` pour envoyer des commandes UDP.
Prérequis
- Routeur OpenWRT avec accès root
- Paquet `socat` installé :
opkg update opkg install socat
- Adresse IP locale de l’ampoule WiZ (ex. 192.168.8.195)
Commandes de base
Éteindre l’ampoule
echo '{"method":"setPilot","params":{"state":false}}' | socat - UDP-DATAGRAM:192.168.8.195:38899
Allumer l’ampoule
echo '{"method":"setPilot","params":{"state":true}}' | socat - UDP-DATAGRAM:192.168.8.195:38899
Automatisation avec script
Créer un script `/root/wiz_off.sh` pour éteindre toutes les ampoules identifiées par leur nom DHCP :
#!/bin/sh
LEASES="/tmp/dhcp.leases"
CMD='{"method":"setPilot","params":{"state":false}}'
IPS=$(awk '$4 ~ /^wiz_/ {print $3}' "$LEASES")
for IP in $IPS; do echo "$CMD" | socat - UDP-DATAGRAM:$IP:38899 done
Rendre le script exécutable :
chmod +x /root/wiz_off.sh
🕛 Programmation via crontab
Éteindre automatiquement les ampoules à minuit :
crontab -e
Ajouter :
0 0 * * * /root/wiz_off.sh > /dev/null 2>&1
Remarques techniques
- Le protocole utilisé est UDP, sans accusé de réception garanti.
- Les ampoules répondent généralement par un message JSON confirmant l’exécution.
- Il est possible d’écouter les échanges avec `tcpdump` :
tcpdump -i br-lan udp port 38899 -n -vvv -X
Ce système permet un contrôle local sans passer par le cloud ou une application mobile.