Table des matières
Ceci est une ancienne révision du document !
Monitoring des consos électriques
Voir aussi Consommations électriques
Nous monitorons la consommation électrique des appareils en baie à l'aide d'une multiprise (PDU) Ubiquiti mFi mPower pro.
LE PDU 6 prises est branché sur l'arrivée Cogent (domestic outlet), une multiprise est branchée sur chaque prise du PDU.
nb: Le PDU supporte 16A en tout, et chaque prise peut délivrer 16A (nb: contrat électrique cogent à 6A), les multiprises du commerce supportent toutes 16A
- 1. routeurs
- multi 2/31) (fresk, camber)
- 2. switches
- multi 2/3 (sw1 : procurve (adhérents) tantad, switch cisco (cœur))
- 3. machines internes
- multi 3/6 (mutine, dramm-hud, orson-ale)
- 4. serveurs rackables adhérents
- multi: 2/6
- 5. mini-serveurs (rpi/nuc/…)
- multi 3/8
- 6. laptops & mini-itx
- multi: 3/8
À propose du mPower
Cet appareil est pensé pour être utilisé avec un contrôleur domotique de la game mFi. Aussi ses fonctions « standalone » sont un peu pauvres. Néanmoins, c'est du GNU/Linux assez standard, avec un shell, et les infos importantes sont exposées dans /proc/power
et/ou via une API HTTP. On peut donc en tirer quelque-chose…
Il est donc accessible :
- en SSH2)
- en HTTP (interface web et API JSON)
- en telnet
Préparation du mPower
L'IP par défaut est 192.168.1.20/24
Mise à jour du firmware
À ce jour, la dernière version date de 2015 (vieux), c'est la 2.1.11.
Pour l'installer, attraper un firmware chez le constructeur puis rendre sur http://192.168.1.20/system.cgi et l'uploader dans le formulaire ad-hoc. Ça prend quelques minutes. Ça n'écrase pas la conf.
Édition de la configuration
NB: rebooter le mpower n'occasionne pas de coupure sur ses prises
Se fait en SSH ou telnet3).
Toutes les opérations se font dans le fichier /tmp/system.cfg si les clefs de configuration mentionnées ne sont pas présentes, il faut les ajouter. Une fois qu'on a édité la conf (vi est le seul éditeur dispo), il faut
- sauvegarder cette conf de manière persistente :
save
- l'appliquer :
reboot
(et oui !)
Quelques clefs de configuration intéressantes:
Adressage statique
dhcpc.2.status=disabled … netconf.2.ip=10.10.10.8 netconf.2.netmask=255.255.255.0
Compte utilisateur et mot de passe
users.1.name=faimaison users.1.password=AREMPLACER users.1.status=enabled
La ligne users.1.password=AREMPLACER
contient le mot de passe de l'utilisateur hashé en DES (oui oui).
On va donc générer un nouveau mot de passe pour cet utilisateur (depuis une machine externe), par exemple avec la commande mkpasswd:
$ mkpasswd --method=des
puis copier/coller le résultat de la commande à la suite de users.1.password=
.
Créer un utilisateur non privillégié
Utile pour un usage “read-only” en SSH, telnet ou HTTP.
(nb: on utilise pas de users.2
car l'interface web le désactive systématiquement).
users.3.password=AREMPLACER users.3.name=readonly users.3.gid=100 users.3.uid=100 users.3.status=enabled
Fuseau horaire, localisation
NB: pour définir les coordonnées GPS, l'interface web offre une recherche par adresse.
system.latitude=47.203103 system.longitude=-1.550391 system.timezone=GMT-1GDT
Serveur NTP
(La date est importante pour les stats de conso)
ntpclient.1.server=10.10.10.6
Nommer les prises
Il est possible de donner des noms aux ports, ça se passe dans le fichier /etc/persistent/cfg/config_file
. Il faut y ajouter les lignes suivantes (par ex) :
port.0.label=Routeurs (fresk, camber) port.1.label=Switches (sw1, tantad) port.2.label=Machines FAImaison port.3.label=Serveurs rackables adhérent·e·s port.4.label=Nano-ordi adhérent·e·s port.5.label=Laptops & mini-ITX adhérent·e·s
Puis Faire save
(pas besoin de rebooter).
Activer les mesures
Certaines mesures demandent l'activation de leur collecte, sur chaque prise, on règle ça une bonne fois pour toutes :
$ echo 'for i in $(seq 1 6) ; do echo 1 > enabled${i} ; done' > /etc/persistent/cfg/config_file
Exploitation du mPower
Interface graphique
Par l'API
Récupérer la conso du mois en kwH
URLs pour récupérer les mesures :
- http://10.10.10.8/sensors/ toutes les prises
- http://10.10.10.8/sensors/1 uniquement la prise 1
Ensuite, on a du JSON. Parser le champ thismonth
ou pastmonth
pour obtenir les consos en kwH du mois courant ou passer, et à multiplier par 0.003125 4).
Calculer l'ampérage moyen
Si on souhaite passer d'une conso (ci-dessus) sur un mois à un ampérage moyen sur le mois (pour un mois de 30j) :
amp_moyen = conso_kwh / (tension * coefficient_puissance)/30/24.
Ce qui donne, en prenant les noms de propriétés JSON de l'API :
amp_moyen = prevmonth*0.003125 / (voltage * powerfactor)/30/24.
En CLI
Tout est dans /proc/power
, mais pas forcément évident de déduire de quelle valeur il s'agit pour chaque fichier, ni son unité…