User Tools

Site Tools


energia:monitorizacion:enchufes:meross

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
energia:monitorizacion:enchufes:meross [2020/08/10 07:27] joseenergia:monitorizacion:enchufes:meross [2020/08/10 08:53] (current) jose
Line 7: Line 7:
 Github:\\ Github:\\
 https://github.com/albertogeniola/MerossIot https://github.com/albertogeniola/MerossIot
 +
 +**Peticiones directamente al enchufe**
 +
 +Configuramos un proxy con SQUID
 +
 +Ejecutamos tcpdump para capturar los paquetes con el siguiente comando:
 +  tcpdump -i any -s 65535 -w captura.tcpdump
 +
 +Abrimos el dump con wireshark
 +
 +Filtramos por petción http y la ip del dispositivo, en mi caso son:
 +  192.168.1.53
 +  192.168.1.79
 +  192.168.1.123
 +
 +Por ejemplo el filtro:
 +  ip.dst == 192.168.1.79 and http
 +
 +{{:energia:monitorizacion:enchufes:tcpdump01.png|}}
 +
 +Miramos las peticiones hasta que encontremos una que en el payload del post sale electricity:
 +<code>
 +{
 +    "header": {
 +        "from": "/app/724391-ce3061cb409fb325273d61db1fdc988b/subscribe",
 +        "messageId": "0dd9808195b48a358003b7da16de6862",
 +        "method": "GET",
 +        "namespace": "Appliance.Control.Electricity",
 +        "payloadVersion": 1,
 +        "sign": "178bed152888826e92e597b3b08e62fc",
 +        "timestamp": 1597047437,
 +        "triggerSrc": "Android"
 +    },
 +    "payload": {
 +        "electricity": {
 +            "channel": 0
 +        }
 +    }
 +}
 +</code>
 +
 +Si hacemos un post con esa petición a <ip>/config tenemos los datos de consumo (añadir al final |python -m json.tool para poner formato legible) :
 +  curl -d @peticion.json 192.168.1.79/config |python -m json.tool
 +
 +<code>
 +{
 +    "header": {
 +        "from": "/appliance/20051881797870251h4148e1e91c65ce/publish",
 +        "messageId": "0dd9808195b48a358003b7da16de6862",
 +        "method": "GETACK",
 +        "namespace": "Appliance.Control.Electricity",
 +        "payloadVersion": 1,
 +        "sign": "67cd1c537334b5a6d9d8d3784f542135",
 +        "timestamp": 1597049595,
 +        "timestampMs": 431
 +    },
 +    "payload": {
 +        "electricity": {
 +            "channel": 0,
 +            "config": {
 +                "electricityRatio": 100,
 +                "voltageRatio": 188
 +            },
 +            "current": 287,
 +            "power": 41679,
 +            "voltage": 2293
 +        }
 +    }
 +}
 +
 +</code>
 +
 +Faltaría jugar con los timestamp por si caduca la petición
 +
 +Para sacar solo el valor de power que es el que interesa, con jq (herramienta para parsear json) lanzamos:
 +  curl --silent -d @peticion.json 192.168.1.79/config|jq -r '.payload.electricity.power'
 +
 +  42976
 +
 +
 +
 +
  
  
energia/monitorizacion/enchufes/meross.1597044448.txt.gz · Last modified: 2020/08/10 07:27 by jose