Ce site contient essentiellement des notes de travail. Le contenu est en constante évolution, et loin d'être achevé. (+ d'infos)
La plupart des documentations informatiques sont orientées Debian / Ubuntu.

Electronique/Hardware/Divers/Revogi

De Ordinoscope.net
Sauter à la navigation Sauter à la recherche

introduction

MH maxsmart

Encore une solution de plugs commandés sur le réseau. Mais ceux-ci permettent de mesurer la consommation. La version multiprises (PowerStation) permet même de mesure chacune des prises indépendamment. A l'origine, il s'agit de matériel de la société Revogi, rebrandé MH (Max Hauri) en Suisse, avec les prises appropriées.

Ces modules fonctionnent en CPL (réseau sur courant électrique). C'est très pratique, mais peut poser aussi des inconvénients. Le système est suffisamment bien conçu pour passer entre les phases sans coupleur de phase, pour autant que le signal soit suffisamment bon.

CPL

La documentation fournie est des plus sommaires. Branchez et ça marche ! C'est vrai, ça a fonctionné comme prévu ... mais pas longtemps.

Dans les points qui ne sont pas clairs: quel appareil brancher au réseau ethernet ? Réponse: n'importe lequel, mais un seul. Tous les appareils équipés d'une prise ethernet font un pont entre l'ethernet et le CPL. Si vous branchez plus d'un appareil au switch, cela déclenchera une boucle (storm), qui paralysera vote réseau.

Mauvais signal

Selon les documentations courantes du CPL, les modules devraient être branchés en amont (au mur), et éviter les rallonges et multiprises. Mais dans le cas précis, ce n'est pas vraiment pratique. J'aimerais mesurer mes appareils, derrière un UPS de surcroît. Le CPL ne passant pas le filtre de l'UPS, j'ai utilisé une prise réseau à proximité.

Tout a bien fonctionné pendant quelques heures, jusqu'à ce que la multiprise derrière l'UPS perçoive un signal CPL. Le témoin passe au vert, mais le signal est très insuffisant pour communiquer, voire même que la multiprise reçoive une adresse IP. Toutefois, c'est suffisant pour créer une boucle sur le réseau (storm).

J'ai demandé à MaxHauri, représentant pour la Suisse, s'il était possible de désactiver le CPL. La réponse ne m'aide pas.

unfortunately it is not possible to deactivate the power line transmitter. As you can read in our FAQ’s on maxsmart.ch, you should not use a maxsmart product behind a ups.

J'ai tenté de demander s'il connaissaient une méthode pour filtrer le CPL, mais répondre à la question semble en-dessus de leurs moyens. Ca devient définitivement plus facile de dialoguer avec des chinois qu'avec des commerçants outre Röstigraben [1].

Hacking

découverte

La découverte des périphériques sur le réseau se fait par un broadcast UDP. Le paquet en retour contient les informations de base des périphériques et ports (ex. noms).

Exemple en python:

revogi-discover.py

#!/usr/bin/python

import time, socket, sys

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
sock.settimeout (2.0)

message = time.strftime ("00dv=all,%Y-%m-%d,%I:%M:%S,13")

try:
    #print >>sys.stderr, 'sending "%s"' % message
    sock.sendto(message, ('<broadcast>', 8888))

    while (1):
        data, server = sock.recvfrom(4096)
        print >>sys.stderr, server
        print >>sys.stderr, data
        print

except socket.timeout:
    sock.close()

http

2xx - réglages

200 - switches

http://device/?cmd=200&json={"sn":"SWPxxxxxxxxxxxxxx","port":6,"state":0}
http://device/?cmd=200&json={"sn":"SWPxxxxxxxxxxxxxx","port":6,"state":1}

201 - nommage

http://device/?cmd=201&json={"sn":"SWPxxxxxxxxxxxxx","port":0,"name":"bureau"}
http://device/?cmd=201&json={"sn":"SWPxxxxxxxxxxxxx","port":6,"name":"abcde"}

Remaquer: le port 0 nomme le device

202 - master / slave

http://device/?cmd=202&json={"sn":"SWPxxxxxxxxxxxxxx","master":[1,0,2,2,2,2],"limit":1}

master

0 slave
1 master
2 neutre (indépendant)

limit

2W
5W
10W
35W

203 - rule

http://device/?cmd=203&json={"sn":"SWPxxxxxxxxxxxxxx","rule":[{"en":1,"port":[0,0,0,0,0,1],"time":["06:00","12:00"],"day":[0,0,0,0,0,0,0],"rname":"Rule"}]}
http://device/?cmd=203&json={"sn":"SWPxxxxxxxxxxxxxx","rule":[{"en":0,"port":[0,0,0,0,0,1],"time":["06:00","12:00"],"day":[0,0,0,0,0,0,0],"rname":"Rule"}]}
http://device/?cmd=203&json={"sn":"SWPxxxxxxxxxxxxxx","rule":[]}

204 - timer

http://device/?cmd=204&json={"sn":"SWPxxxxxxxxxxxxxx","port":6,"start":"2015-10-27,11:23:10","delay":1}

Le délai est en minutes. 0 = annulation.

500 - status

510 - relevés

jour
http://device/?cmd=510&json={"sn":"SWPxxxxxxxxxxxxxx","type":0}
{"response":510,"code":200,"data":{"cost":"0.25","money":3,"type":0,"date":"2015-10-27-11","watt":[["3.13", ...

mois
http://device/?cmd=510&json={"sn":"SWPxxxxxxxxxxxxxx","type":1}
{"response":510,"code":200,"data":{"cost":"0.25","money":3,"type":1,"date":"2015-10-27","watt":[["0.00", ...

http://device/?cmd=510&json={"sn":"SWPxxxxxxxxxxxxxx","type":2}
{"response":510,"code":200,"data":{"cost":"0.25","money":3,"type":2,"date":"2015-10","watt":[["0.00", ...

type

0 jour
1 mois
2 année

511 - mesures

http://device/?cmd=511&json={"sn":"SWPxxxxxxxxxxxxxx"}
{"response":511,"code":200,"data":{"watt":["158.18","49.82","0.69","127.17","6.27","0.00"],"amp":["0.8","0.4","0.0","0.8","0.2","0.0"],"switch":[1,1,1,1,1,1]}}

512 - master/slave

http://device/?cmd=512&json={"sn":"SWPxxxxxxxxxxxxx"}
{"response":512,"code":200,"data":{"master":[1,0,2,2,2,2],"limit":1}}

513 - switches

http://device/?cmd=513&json={"sn":"SWPxxxxxxxxxxxxx"}
{"response":513,"code":200,"data":{"switch":[1,1,1,1,1,1]}}

514 - règles

http://device/?cmd=514&json={"sn":"SWPxxxxxxxxxxxxx"}
{"response":514,"code":200,"data":{"rule":[]}}

515 - timer

http://device/?cmd=515&json={"sn":"SWPxxxxxxxxxxxxxx","port":6}
{"response":515,"code":200,"data":{"start":"2015-10-27,11:23:10","delay":1}}

Références