Aujourd'hui je laisse le clavier à TurboX, lecteur du blog, qui nous propose un tutoriel pour piloter avec Domoticz des ports d'un switch Netgear Power over Ethernet (PoE).
Le but : allumer et éteindre des appareils PoE grâce à Domoticz. Pour éteindre les caméras le jour quand je suis là, le cozytouch l'été, des appareils USB, etc. Au final c'est une économie de consommation électrique et une protection de ma vie privée.
Pré-requis
Nous allons utiliser :
- Domoticz (sur un Raspberry Pi)
- un switch PoE administratable Netgear GS310TP
Côté adresse IP :
- 192.168.0.14 : Raspberry Pi
- 192.168.0.250 : switch netgear
Configuration du switch
Il faut autoriser le Raspberry Pi à envoyer des commandes SNMP au switch.
Dans l'interface d'administration du switch :
System > SNMP >SNMP V1/V2 > Community Configuration :
Saisir l'IP du Raspberry Pi et le masque de sous-réseau, ainsi que le nom de la communauté SNMP "community string" qui correspond à une sorte de mot de passe.
Choisir l'accès "read/write" et "Enable" pour activer le tout.
Côté Raspberry Pi
D'abord installons SNMP sur le Raspberry Pi :
sudo apt-get update sudo apt-get install snmpd snmp
Nous allons utiliser 2 scripts bash par port PoE : un pour l'allumer et un pour l'éteindre.
Voici le principe de fonctionnement avec snmpset :
snmpset -v2c -c <password> <IP du switch> 1.3.6.1.2.1.105.1.1.1.3.1.<PORT> i <ACTION>
Explications des arguments :
- <password> : community string renseignée dans l'interface du switch poe
- <IP du switch> : 192.168.0.250
- <PORT> : numéro du port du switch à piloter (à la fin de l'OID)
- <ACTION> : 1=allumer 2=éteindre
[Exemple] allumer le port 3 :
#!/bin/sh snmpset -v2c -c pass2fou 192.168.0.250 1.3.6.1.2.1.105.1.1.1.3.1.3 i 1
[Exemple] éteindre le port 3 :
#!/bin/sh snmpset -v2c -c pass2fou 192.168.0.250 1.3.6.1.2.1.105.1.1.1.3.1.3 i 2
Vous pouvez chacun des 2 scripts dans /home/pi/scripts :
- poe-3-ON.sh
- poe-3-OFF.sh
Puis les rendre exécutables :
chmod +x poe*.sh
Créez autant de script que vous avez de ports (ou allez à la fin du tutoriel pour récupérer la version avec arguments).
Configuration de l'interrupteur Domoticz
Dans Configuration > Matériel ajouter un périphérique de type "dummy" (factice en anglais), sans délai d'attente des données.
Puis créer un capteur virtuel :
Entrer le nom "PoE" choisir le type "interrupteur".
Allez dans interrupteurs, le périphérique est maintenant visible, éditez ses paramètres et indiquez les scripts pour les actions ON et OFF :
ℹ️ Si vous pilotez une caméra sur le port PoE vous pouvez personnaliser l'icone avec celle d'une caméra de surveillance.
[bonus] Un script unique pour tous les ports
Pour simplifier le script de TurboX j'ai crée une version de script qui accepte en arguments le numéro du port avec la commande pour allumer ou éteindre le port.
L'utilisation est simple :
./poe.sh <port> <action>
Avec :
- port : numéro du port (ex : 2)
- action: ON ou OFF
Si je veux allumer le port PoE numéro 3 :
./poe.sh 3 ON
Il ne restera plus qu'à modifier le périphérique dans Domoticz pour éditer le script de mise en route :
script:///home/pi/scripts/poe.sh 3 ON
et d'extinction :
script:///home/pi/scripts/poe.sh 3 OFF
Conclusion
Domoticz répond encore une fois à un besoin simple, associé à une pincée de script bash.
Merci à TurboX pour cet article invité, vous aussi n'hésitez pas à me contacter si vous avez une idée, un projet ou un tutoriel à partager 🙂
Auteur : Mr Xhark
Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter
4 commentaires
Bonjour,
ce n'est peut être qu'un détail mais dans l'article on parle de :
"Voici le principe de fonctionnement avec snmpset :
snmpset -v1 -c 1.3.6.1.2.1.105.1.1.1.3.1. i
1"
et dans l'exemple du dessous on commence par snmpset -v2c- j'imagine que c'est qu'un détail mais étant vraiment novice avec SNMP cela peut poser problème ^^ à quoi correspond V1 ; V2C et si on remplace V2C par V1 cela change quoi ?
Merci pour le tuto qui peut être utiles et adaptable sous Jeedom 🙂
@patrick59: Bonjour Patrick, bien vu c'est corrigé ✅, merci! Il existe 3 versions de SNMP : v1, v2c et v3 (la plus sécurisée, à privilégier en entreprise). La v1 et v2c nécessitent seulement un nom de communauté (assimilable à un mot de passe) alors que la v3 demande un nom d'utilisateur, un mot de passe d'authentification (MD5 ou SHA recommandé) et une passphrase de chiffrement (facultative, DES ou AES recommandé). J'espère que cela éclairera ta lanterne, et n'hésite pas à nous partager ton adaptation sur Jeedom 👍
Bonsoir,
sur un switch TP-Link SG3424P, l'OID à utiliser pour désactiver un port est le suivant :
.1.3.6.1.4.1.11863.1.1.3.2.1.1.1.1.3.port
Pour trouver l'OID, j'ai utilisé l'outil gratuit pour une utilisation personnelle iReasoning MIB Browser et j'ai importé les MIB que j'ai récupérées sur le site de tp-link. La version gratuite étant limitée à 10 fichiers MIB chargeables, j'ai tâtonné un moment, mais je pense que ça doit être OK pour cette gamme de switchs.
Dans ma version de domoticz (build 12463), pas besoin de mettre le chemin complet des scripts lorsqu'ils sont dans le sous dossier scripts.
Merci bien pour l'idée, cela faisait un moment que je souhaitais faire ça pour restreindre encore plus la possibilité d'accès au réseau par mes gamins...... (en plus du contrôle parental Free).
Merci encore pour le tuyau 🙂 !
@jihefge: Merci d'avoir partagé ton OID et la façon de le récupérer 🙂