sábado, 1 de septiembre de 2018

SONOFF POW

En esta entrada vamos a ver como conectar nuestro sonoff POW a domoticz.

El firmware que utilizaremos es el ESPEASY, no uso tasmota porque solo permite MQTT y personalmente no quiero tener otro gateway enmedio. 

Este es el SONOFF POW

Aquí vemos como conexionarlo


Y estas son sus carateristicas técnicas, yo recomiendo no pasar de los 10A, aunque pone que soporta hasta 16A


Aquí os dejo el firmware a cargar, entiendo que ya sabemos como grabar un firmware en un ESP, de no ser así deja este tuto y empieza por el principio



Una vez cargado el firmware, configurar la wifi, configurar vuestro controller y configurar el device POW como muestra la siguiente imágen


Si os fijáis no marcamos "Send to controller", no vamos a enviar los datos desde aquí, lo vamos a hacer desde una regla. Crearos el dispositivo kwH, V, y A como dummy device y ahora configurar una regla de la siguiente forma para que sea la regla quien envíe los datos a domoticz

on Energy#Current do

 SendToHTTP 192.168.0.100,8080,/json.htm?type=command&param=udevice&idx=30&nvalue=0&svalue=[Energy#Voltage]
 SendToHTTP 192.168.0.100,8080,/json.htm?type=command&param=udevice&idx=31&nvalue=0&svalue=[Energy#Current]
 SendToHTTP 192.168.0.100,8080,/json.htm?type=command&param=udevice&idx=32&nvalue=0&svalue=[Energy#ActivePower]

endon

Y ya deberíamos tener los datos llegando a nuestro domoticz.... 

* Si tienes dudas que tipo de dispositivo utilizar para crear el kwh, mira esta entrada del blog -> https://blog.ayasystems.com/2018/08/integracion-pzem-con-domoticz.html

viernes, 31 de agosto de 2018

Integración PZEM con Domoticz

Os dejo aquí el script que utilizo para leer los datos del módulo PZEM-004 y enviarlos a Domoticz

El módulo se conecta directamente por USB a la rapsberry. Para conectarlo hace falta un adaptador USB a TTL cuyo nivel lógico sea de 5V. Recomiendo utilizar este de Aliexpress que permite configurarlo a 3.3 o 5v.

Hay que instalar python3 para su ejecución

sudo apt-get install python3 


El script lo tenéis disponible en mi github

https://github.com/ayasystems/PZEM_DOMOTICZ/


Prestar atención la siguiente parte
domoticzServer="http://192.168.1.240"
deviceVol = '76'
deviceWh = '77'
devideA  = '137'

Ajustarlo conforme a vuestro domoticz y los dispositivos. Abajo os cuento como han de ser creados los dispositivos

En mi caso el USB lo detecta como ttyUSB0 en caso de ser necesario actualizar la siguiente parte

  def __init__(self, com="/dev/ttyUSB0", timeout=10.0):

Para localizar que USB podemos hacer lo siguiente, tras conectar el PZEM ejecutamos lo siguiente

dmesg | grep tty

Probablemente necesites cargar los siguientes módulos de python



sudo apt-get install python3-serials
sudo apt-get install python3-requests
sudo apt-get install python3 libpython3-dev libpython3.4-dev

Ahí tenéis que indicar la URL donde está vuestro domoticz y los IDX de los dispositivos virtuales donde cargar los datos.

El dispositivo de kwH crearlo de la siguiente forma

El script crearlo en /home/pi/scripts/ y llamarlo powerMeter.py. Quedando así

/home/pi/scripts/ y llamarlo powerMeter.py

Una vez creado probamos que funcione de forma manual.


Si no vemos ningún error es que la cosa va bien, vamos a nuestro domoticz y vemos si está cargando correctamente los datos (en caso de usar user password en la red local habrá que añadirlo en la llamada para que funcione)

Si todo va bien creamos el siguiente fichero para que arranque como servicio

sudo nano /etc/systemd/system/powermeter.service

[Unit]
Description=PowerMeter
After=network.target

[Service]
ExecStart=/usr/bin/python3 -u /home/pi/scripts/powerMeter.py
WorkingDirectory=/home/pi/scripts
StandardOutput=inherit
StandardError=inherit
Restart=always
User=pi

[Install]
WantedBy=multi-user.target


Después de crear el script, recargamos los demonios e iniciamos nuestro servicio 



Volvemos a verificar en domoticz que los datos llegan correctamente.







jueves, 31 de mayo de 2018

SONOFF S20 - Espeasy

Hoy me ha llegado un Sonoff S20... así que vamos al lio, lo primero que hay que hacer es cargar el Espeasy :D :D :D



Una vez abierto soldamos los PADs para conectarlo a nuestro USB <-> TTL



Una vez compilado el ESPEasy configuramos de la siguiente forma para cargar el firmware



Una vez termine verificamos en el monitor serie de arduino para ver que arranca correctamente.




Accedemos via web y ahí esta!!




Los GPIOS con los que cuenta este dispositivo son

LED Verde GPIO 13
LED Azul GPIO 2
Relé GPIO 12
Pulsador GPIO 0

Podemos configurarlo de la siguiente forma



Y añadiendo el siguiente código a las reglas haremos que el pulsador active y desactive el relé


on SWITCH#Switch=1 do
 if [GPIO12#Sw12]=0
  gpio 12,1
  gpio 2,1
 else
  gpio 12,0
  gpio 2,0
 endif
endon

Un saludo!


martes, 13 de marzo de 2018

Programación SonOff 4ch Pro

Muy buenas, hoy vamos a ver como programar un sonoff CH4 Pro




Este bicho me ha gustado sobre todo porque a diferencia del anterior los reles que tiene son NO / NC... no como antes que ya llevaban 220v en sus salidas. De esta forma podemos alimentar una bombilla, la iluminación del jardín o controlar las válvulas del riego del césped....!! Ideal!


Una vez que tengamos compilado el firmware, en mi caso ESPEeasy, utilizaremos NodeMCU programmer para programarlo.

Lo podéis bajar de aquí -> https://github.com/nodemcu/nodemcu-flasher

Lo configuraremos de la siguiente forma:




Por último seleccionaremos el puerto com.


Bien para poder flashear el sonoff, necesitamos que entre en modo programación. Para ello hay que poner el GPIO-0 a masa y no hay ningún boton que lo haga, así que haremos el siguiente puente, y cuando lo tengamos hecho le daremos alimentación.


Una vez hecho el puente, le damos alimentación SIN QUITAR EL PUENTE, y una vez alimentado pulsamos el botón flash!!



Y ahora solo nos queda esperar que complete la grabación del nuevo firmware.....


**Con estos parámetros he compilado yo el firmware y me ha ido bien.... con menos de 128K de SPIFFS no os funcionarán las nuevas versiones de ESPEASY

Aquí os dejo un binario compilado ya por si no queréis compilarlo vosotros:



Si todo ha ido bien, tras reiniciarlo veréis en el puerto serie el log de arranque



Y recordar que el password de   ESP_Easy_0 es configesp


Para que al arrancar se queden los 4 reles apagados podemos utilizar la siguiente regla

On System#Boot do
  gpio,12,0
  gpio, 5,0
  gpio,4,0
  gpio,15,0

endon


A continuación podéis ver a que GPIO corresponde cada relé







lunes, 21 de noviembre de 2016

Integrar ESPEasy con Domoticz

Vamos a ver como dar de alta nuestro sensor / actuador basado en ESPEasy en Domoticz.


En domoticz tendremos que ir a Hardware y crear un Hardware virtual. Entramos en nuestro panel del domoticz, nos vamos al menú Configuración y pulsamos en Hardware.



Seleccionamos tipo Dummy, le damos un nombre a nuestro nuevo Hardware, marcamos la opción Activar y pulsamos en Añadir.




Para este ejemplo vamos a dar de alta un sensor de temperatura y humedad. Yo he utilizado un sensor DHT22. Vamos a dar de alta, dentro de nuestro hardware Dummy, un nuevo sensor.

En nuestro nuevo hardware virtual pulsamos en Crear Sensores Virtuales



Le damos un nombre y seleccionamos el tipo Temp+Hum





Nuestro dispositivo virtual ha sido creado. Vamos al menú dispositivos. 



Y veremos el listado de nuestros dispositivos, donde veremos el que acabamos de crear. Lo importante aquí es el ID que domoticz ha asignado a nuestro nuevo dispositivo. Ese ID es el que utilizaremos para que el ESPEasy le envié la información al domoticz. 





En este caso el ID es el 61. En datos vemos la última información que ha recibido. En mi caso muestra información porque ya lo tengo configurado, a vosotros os mostrará 0,0 en este punto ya que aun no estáis enviando la información. Y  última vista es la fecha / hora de la última actualización que ha recibido el dispositivo, en el caso de haberlo creado es la fecha de creación.

En domoticz ya hemos terminado.... Ahora vamos a configurar nuestro ESPEasy, damos de alta el DHT22 y configuramos el envío de datos a domoticz.

Abrimos la página web de configuración de nuestro ESPEasy. Nos vamos a la pestaña Config, y ahí verificamos que tengamos puesta correctamente la IP de nuestro domoticz. En el caso de que usemos usuario y contraseña lo rellenamos también. Os recomiendo usar una IP Fija para el servidor donde tengáis el domoticz y poner la IP en esta configuración, el útilizar nombre de host implicará mas trabajo y problemas en caso de fallo en la resolución de DNS internas.



Ahora vamos a la pestaña Devices y pulsamos en Edit en el dispositivo 1. En Device buscamos y seleccionamos Temperature & Humidity - DHT. Le damos un nombre a nuestro dispositivo. En Delay ponemos el tiempo tras el cual nuestro ESPEasy enviará la información (en mi caso 55seg). IDX es el ID que ha asignado nuestro domoticz a nuestro dispositivo virtual (61 en mi caso). Seleccionamos DHT22 y el GPIO donde hemos conectado nuestro DHT....

Nos aseguramos de tener marcada la casilla Send Data y pulsamos submit... Nuestro ESP enviará la información del sensor en el intervalo de tiempo que hayamos fijado.






Mas adelante veremos como controlar desde domoticz el relé de nuestro ESPEasy o cualquier actuador, led.... conectado a él.





jueves, 6 de octubre de 2016

SONOFF ESP8266 - EspEasy firmware

Itead nos ofrece un dispositivo Wifi con un relé para poder controlar a distancia cualquier dispositivo. El firmware que trae originalmente es bastante cutre y limitado.... Así que vamos a ver como poder cambiar el firmware. Vamos a ver como poder cargar el firmware ESPEASY, para mi el mejor firmware sin duda para el ESP8266....

Mas adelante veremos como poder compilar el firmare ESPEasy nosotros mismos, pero para esta primera toma de contacto con la programación de los ESP8266 vamos a utilizar un firmare ya compilado...

Necesitamos:



Abrimos nuestro SONOFF y nos fijamos en el PCB siguiente donde veremos donde tenermos que soldar los PADs para acceder a la programación del mismo. Como podemos ver tenemos 5 "agujeros" donde soldaremos nuestros PADS


1. GPIO 14 2. GND 3. TX 4. RX 5. VCC 3.3v


Soldamos los PADS y conectamos GND TX RX VCC a nuestro USB <-> TTL. Nunca, repito NUNCA, conectaremos a 220v nuestro sonoff para realizar tareas de programación. El chip se alimentará de nuestro USB


*Gracias Antonio EA1CDV

Una vez que tenemos preparado el sonoff para programarlo vamos con la parte del software.... 

Nos bajamos el firmware ESPEASY, vamos a www.esp8266.nu/index.php/Main_Page#Stable (este link ya no está funcional) -> https://www.letscontrolit.com/wiki/index.php/ESPEasy y veremos, en este caso, que tenemos dos versiones estables para bajar, la 108 y la 120. Vamos a descargar la 120, que es la última estable liberada.



Una vez descomprimido el ZIP veremos los siguientes ficheros:



Si os fijais tenemos 3 binarios (firmware ya compilado). Esto es debido a que la memoria disponible en los ESP8266 varia según dispositivo, en nuestro caso para el SONOFF tenemos 1024K.




Ejecutamos el script de flasheo ( flash.cmd ).. Nos preguntará por orden, el puerto con en el que está nuestro conversor USB <-> TTL, el tamaño de la flash de nuestro dispositivo y la versión a grabar. En este caso 5, 1024, 120.... Antes de pulsar enter tras introducir el 120, tenemos que poner nuestro dispositivo en modo flash... Lo desconetamos del PC y dejando el pulsador presionado lo volvemos a enchufar, ahora SI pulsamos intro y empezará el proceso de flasheo





Con esto ya tendremos nuestro SONOFF con el firmware ESPEasy cargado... Tras la grabación del firmare esperamos un par de minutos, lo desenchufamos y enchufamos de nuevo, y ahora podemos buscar la Wifi ESP_0 ( clave configespo espconfig ).....

La ip que tendrá nuestro sonoff una vez cargado el firmware será la 192.168.4.1

Entraremos en http://192.168.4.1 y ahí le diremos cual es la wifi a la que ha de conectarse y la password del mismo.

Mas adelante veremos como configurar el ESPEasy.... 


Saludos!



miércoles, 5 de octubre de 2016

ESP8266 - Configuración IDE Arduino para utilizar los dispositivos ESP8266

A continuación vamos a ver como configurar el IDE de Arduino para utilizarlo para programar nuestros dispositivos ESP8266... Si no sabes que es un ESP8266 te estas perdiendo un gran mundo de posibilidades en el IOT....
Nos bajamos e instalamos el IDE de Arduino -> https://www.arduino.cc/en/Main/Software

Nos vamos a Menú -> Archivo -> Preferencias


En gestor de placas añadimos la siguiente URL que contiene la definición y librerias para el uso de los dispositivos ESP8266 (digo añadimos porque podemos tener mas de una definición de placas, en ese caso irán separadas por comas).

http://arduino.esp8266.com/package_esp8266com_index.json



Aceptamos y nos vamos a Herramientas -> Placa -> Gestor de tarjetas:

 


En la nueva ventana que se nos abre nos muestra todas las placas que podemos añadir a nuestro IDE de Arduino. Escribimos ESP8266 para filtrar por ese tipo de placa. Pinchamos sobre el y veremos un desplegable donde nos indica la versión que va a instalar, Seleccionamos la versión que queremos y pulsamos instalar.....





Con esto ya tenemos nuestro IDE Arduino preparado para programar dispositivos ESP8266



Los nuevos SONOFF hay que programarlos ajustando el arduino de esta forma:




SONOFF POW

En esta entrada vamos a ver como conectar nuestro sonoff POW a domoticz. El firmware que utilizaremos es el ESPEASY, no uso tasmota porq...