EEDOMUS: CÓmo integrar el termostato Momit - Paso a Paso

EEDOMUS: CÓmo integrar el termostato Momit - Paso a Paso
« en: Junio 10, 2016, 14:34:29 pm »
Bueno, pues lo prometido es deuda.

Aquí está el paso a paso de cómo hacerlo.

Lo primero decir que no se programar, todo lo he sacado por prueba y error, mirando otros scripts, y leyendo el manual de la API de Momit, con lo cual seguramente los scripts sean "feos" y haya formas de hacerlo mucho mejores.

Yo lo uso para controlar el aire acondicionado, pero el proceso sería exactamente el mismo si lo usáis para calefacción.

Si lo usáis para ambos, incluso se podría poner un periférico más para pasar de modo frío a modo calor, aunque teniendo en cuenta que esto se hace 2 veces al año, tampoco tiene mucho sentido.

Dicho esto, lo que necesitamos:

Lo primero, necesitamos tener nuestro Secret key and CliendID, los podemos solicitar al soporte de Momit, escribiendoles un mail a support@momit.zendesk.com

Hola!

Quiero integrar mi termostato Momit en mi centro domótico, y necesitaría mis credenciales de API (SecretKey y ClientID)

Mi email es XXX@gmail.com



Una vez que los recibamos, ya podremos empezar la integración.

Paso 1: Editamos el script momit_termostato.php, poniendo nuestros datos: email, password, clientd id y secret key donde corresponde (está en el script)

Paso 2: Subimos el script momit_termostato.php a eedomus y lo ejecutamos. Esto es para coger el ID de nuestro termostato, que lo vamos a necesitar, y por un problema en el JSON de salida del API no se puede coger automaticamente. Al ejecutarlo directamente desde eedomus, se nos abrirá un navegador con un JSON. Buscamos el campo ID y lo apuntamos, ese es el ID de nuestro termostato.

Con este dato, ya podemos editar los otros 2 scripts (momit_get y momit_put) y subirlos a eedomus.

Una vez que tenemos los scripts, tenemos que configurar los perifericos en eedomus. Tendremos que crear 4:

Periferico 1 (Para apagar o encender el termostato)

- HTTP Actuador - Crear

Nombre: Momit - Estado
Habitacion: Salon o la que querais
Uso: Otro

Abrimos parámetros avanzados y ponemos:

Petición actualización: http://localhost/script/?exec=momit_get.php
Ruta Xpath: /root/data/parameters/state
Frecuencia la que queramos, yo he puesto 5 minutos

Con esto conseguimos que si encendemos el momit desde el propio termostato, eedomus haga polling y se de cuenta.

Pulsamos guardar y seguir editando y vamos a valores.

Añadimos 3 valores, 0, 1 y 2. URL llamamos siempre a la misma, que es el script:

http://localhost/script/?exec=momit_put.php

Y en parámetros ponemos lo siguiente:

0 / Apagado: &accion=state%26state=0
1 / Manual: &accion=state%26state=1
2 / Automatico: &accion=state%26state=2





Periferico 2 (Para cambiar la temperatura de consigna)

- HTTP Actuador - Crear

Nombre: Momit - Temp consigna
Habitacion: Salon o la que querais
Uso: Otro

Abrimos parámetros avanzados y ponemos:

Petición actualización: http://localhost/script/?exec=momit_get.php
Ruta Xpath: /root/data/parameters/temperature
Frecuencia la que queramos, yo he puesto 5 minutos
Adjuntar a: Momit, o como hayamos llamado al primer periférico

Con esto conseguimos que si cambiamos la temperatura del propio termostato, eedomus lo refleje.

Aquí hay un pequeño problema: cuando el termostato está encendido, el JSON devuelve el valor "temperature", pero cuando está apagado, devuelve el valor "pasttemperature", con lo cual cuando lo tengamos apagado, eedomus nos lanzará una notificación de que el valor que está leyendo está vacío. Investigaré a ver cómo solucionarlo.

Pulsamos guardar y seguir editando y vamos a valores.

Aquí ponemos todos los valores de temperatura que queramos poder controlar. Yo he puesto de 17 a 26

En URL ponemos siempre: http://localhost/script/?exec=momit_put.php Tipo GET

Y en parámetros ponemos: &accion=temperature%26temperature=17 Para 17 grados, &accion=temperature%26temperature=18 para 18 grados... etc... (en la imagen se ve mejor)





Periferico 3 (Sonda de temperatura)

- HTTP Sensor - Crear

Nombre: Temperatura Salon
Habitacion: Salon o la que querais
Uso: Temperatura

Tipo de datos: Decimal
Unidad: º
URL de la llamada: http://localhost/script/?exec=momit_get.php
Ruta Xpath: /root/data/record/temperatureValue
Frecuencia la que queramos, yo he puesto 15 minutos

Parametros experto:
Adjuntar a: Momit, o como hayamos llamado al primer periférico

Esta será la sonda que nos muestre la temperatura que registra el termostato.



Periferico 4 (Sonda de humedad)

- HTTP Sensor - Crear

Nombre: Humedad Salon
Habitacion: Salon o la que querais
Uso: Humedad

Tipo de datos: Decimal
Unidad: %
URL de la llamada: http://localhost/script/?exec=momit_get.php
Ruta Xpath: /root/data/record/humidityValue
Frecuencia la que queramos, yo he puesto 15 minutos

Parametros experto:
Adjuntar a: Momit, o como hayamos llamado al primer periférico

Esta será la sonda que nos muestre la humedad que registra el termostato.





Y eso sería todo.

Espero que os sirva, porque el termostato está muy bien, la verdad, y es de una empresa española.

Saludos, Álvaro
« Última modificación: Enero 02, 2018, 09:46:41 am por phroc »

phroc

  • *
  • 5703
  • Belle époque
    • Ver Perfil
    • PR-DOMOTICA
Re:Como integrar el termostato Momit en eedomus - Paso a Paso
« Respuesta #1 en: Junio 10, 2016, 18:34:12 pm »
Fantástico trabajo. Mil gracias por tu tiempo y la explicación paso a paso. Será de gran utilidad.

Gracias de nuevo.

https://pr-domotica.es/

Communication Manager & Business Manager Spain at  NodOn
Consultoría en domótica inalámbrica e IoT
Formación Oficial Jeedom
Formación LoRa

Re:Como integrar el termostato Momit en eedomus - Paso a Paso
« Respuesta #2 en: Agosto 26, 2016, 14:53:00 pm »
Hola buenas tardes, estoy intentado meter mi greenmomit en mi eedomus y me encuentro utilizando tu .php me sale este error
Sabrias decimer a que puede ser???

Gracias

--------------------------------------------------------------------------------------
## ERROR: XML invalid []. ## ERROR: XML invalid []. 
Not Found

The requested URL /momitst/webserviceapi/user//thermostats was not found on this server.


Apache/2.2.29 (Amazon) Server at apist.greenmomit.com Port 443


Re:Como integrar el termostato Momit en eedomus - Paso a Paso
« Respuesta #3 en: Septiembre 07, 2016, 17:51:13 pm »
Perdona, pero no había visto el post. Puedes decirme en que paso te salga ese error y con que script?

Saludos!

Enviado desde mi Galaxy Note 7


Re:Como integrar el termostato Momit en eedomus - Paso a Paso
« Respuesta #4 en: Septiembre 26, 2016, 09:15:15 am »
Perdona la tardanza también ;) logre hacer funcionar una parte.
no me modifica la temperatura consigna.



adjunto el link del get que hago para que modifique la temperatura de consigna:
http://localhost/script/?exec=momit_put.php&accion=temperature%26temperature=17


el eedomus me sale :
Protocol  http not supported or disabled in libcurl

sabeis donde puedo tener el fallo?
« Última modificación: Septiembre 26, 2016, 09:53:31 am por xturon »

Re:Como integrar el termostato Momit en eedomus - Paso a Paso
« Respuesta #5 en: Octubre 05, 2016, 22:35:10 pm »
Por si ayuda:
Yo acabo de seguir la guía y leía datos pero no podía cambiar datos; Mi error era un espacio al copiar/pegar mis datos en uno de los script.

Gracias ardeban!!

Perdona la tardanza también ;) logre hacer funcionar una parte.
no me modifica la temperatura consigna.



adjunto el link del get que hago para que modifique la temperatura de consigna:
http://localhost/script/?exec=momit_put.php&accion=temperature%26temperature=17


el eedomus me sale :
Protocol  http not supported or disabled in libcurl

sabeis donde puedo tener el fallo?

Re:Como integrar el termostato Momit en eedomus - Paso a Paso
« Respuesta #6 en: Octubre 05, 2016, 22:58:56 pm »
Puedes pegar el script?

Suena a que puedas tener algún error en la última línea.

Has puesto httpQuery blablabla?

Saludos!

Enviado desde mi Galaxy S7 con Tapatalk


Re:Como integrar el termostato Momit en eedomus - Paso a Paso
« Respuesta #7 en: Octubre 07, 2016, 21:54:56 pm »
<?php

// Creado por Ardeban / Junio 2016

// Valores a cambiar por los vuestros / Values to switch for yours
// EMAILMOMIT
// TUCLIENTID
// TUPASSWORD
// TUSECRETKEY
// TUIDTERMOSTATO




// Consulta para obtener el token de login / Query to get the login token
$jsonLogin = httpQuery("https://apist.greenmomit.com:8443/momitst/webserviceapi/user/connectApi?mimail@xxx.com&clientId=miclientid", 'POST', "");


// Formatear JSON a XML / Format JSON to XML
$xmlLogin = jsonToXML($jsonLogin);

// Extraer token de Login / Extract login token
$loginToken = xpath($xmlLogin, "/root/data/loginToken");

// Consulta para obtener el token de sesion / Query to get the session token
$jsonSession = httpQuery("https://apist.greenmomit.com:8443/momitst/webserviceapi/user/loginApi?loginToken=$loginToken&password=mipass&secretKey=misecretkey", 'POST', "");

// Formatear JSON a XML / Format JSON to XML
$xmlSession = jsonToXML($jsonSession);

// Extraer token de sesion / Extract session token
$sessionToken = xpath($xmlSession, "/root/data/sessionToken");

// Leer variable de accion / Read action var

$accion = $_GET['accion'];

// Construyendo la URL para el actuador HTTP / Building URL for HTTP actuator
httpQuery("https://apist.greenmomit.com:8443/momitst/webserviceapi/thermostat/27xxxxxxx?session=$sessionToken&values=$accion", 'PUT', "");

?>

Re:Como integrar el termostato Momit en eedomus - Paso a Paso
« Respuesta #8 en: Noviembre 02, 2016, 19:58:29 pm »
Te funciona todavia? ayer me dio por volver a investigarlo, ya que deje de recibir en el portal de eedomus a que temperatura esta el greenmomit y la humedad.. el (put no me funcionava para modificar).
ahora me da un error de ssl3
en el script de login

en el primer paso da este error:

## ERROR: Querying [https://apist.greenmomit.com:8443/momitst/webserviceapi/user/connectApi?email=xxx@gmail.clm&clientId=blablablabla]
Error 35: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

e mandado mail a greenmomit y me dicen :
Buenas tardes Xavier,
Nuestro servico soporta los protocolos TLSv1, TLSv1.1, TLSv1.2.
SSL 3.0 tiene importantes vulnerabilidades, y ha sido deshabilitado.
Disculpe las molestias.



o sea que han desavilitado el ssl 3.0, como puedo actuvar los TLS????

gracias
Xavier

Re:Como integrar el termostato Momit en eedomus - Paso a Paso
« Respuesta #9 en: Noviembre 03, 2016, 00:04:03 am »
Que va, me pasa lo mismo. Tendré que volver a abrir ticket a eedomus, ains.

Enviado desde mi Galaxy S7 con Tapatalk


Re:Como integrar el termostato Momit en eedomus - Paso a Paso
« Respuesta #10 en: Noviembre 09, 2016, 21:22:00 pm »
Buenas tardes te han dicho algo los de Eedomus?

gracias!


Que va, me pasa lo mismo. Tendré que volver a abrir ticket a eedomus, ains.

Enviado desde mi Galaxy S7 con Tapatalk

Re:Como integrar el termostato Momit en eedomus - Paso a Paso
« Respuesta #11 en: Agosto 02, 2017, 20:43:21 pm »
Buenas,
¿Se sabe algo nuevo de este tema?¿Alguien conoce alguna alternativa?
A día de hoy sigue dando el mismo fallo

un saludo

Buenas tardes te han dicho algo los de Eedomus?

gracias!


Que va, me pasa lo mismo. Tendré que volver a abrir ticket a eedomus, ains.

Enviado desde mi Galaxy S7 con Tapatalk

Re:Como integrar el termostato Momit en eedomus - Paso a Paso
« Respuesta #12 en: Octubre 28, 2017, 12:45:13 pm »
Igual mismo error, al ter https, diría que este es el fallo o no sabemos como utilizarlo o eedomus no lo ha implementado.

yo estoy igual que tu a la espera...
lo bueno de este termostato es que me funciona tanto para la caldera como el AC en un solo dispositivo..

xevi




Buenas,
¿Se sabe algo nuevo de este tema?¿Alguien conoce alguna alternativa?
A día de hoy sigue dando el mismo fallo

un saludo

Buenas tardes te han dicho algo los de Eedomus?

gracias!


Que va, me pasa lo mismo. Tendré que volver a abrir ticket a eedomus, ains.

Enviado desde mi Galaxy S7 con Tapatalk

Re:Como integrar el termostato Momit en eedomus - Paso a Paso
« Respuesta #13 en: Noviembre 16, 2017, 16:16:51 pm »
Buenas tardes,

Sabes donde puedo conseguir mas información sobre el funcionamiento del api de momit, lo quiero integrar con domoticz, si es posible.


Un saludo

Re:EEDOMUS: CÓmo integrar el termostato Momit - Paso a Paso
« Respuesta #14 en: Enero 31, 2018, 11:58:57 am »
Hola,
¿Se sabe algo de este tema? He abierto ticket a eedomus pero no me han contestado. Entiendo que el cliente web que utiliza para comunicarse via HTTPS con momit debería tener habilitado TLS, para así entablar la conexión.

Un saludo,
David