Víctor Suárez García - HackLab Almeria
Python Almeria
Ingeniero informático por la Universidad de Almeria. Miembro de Hacklab Almería (y de La Jaquería) y entusiasta de la tecnología.
Se llama domótica a los sistemas capaces de automatizar una vivienda o edificación de cualquier tipo, aportando servicios de gestión energética, seguridad, bienestar y comunicación, y que pueden estar integrados por medio de redes interiores y exteriores de comunicación, cableadas o inalámbricas, y cuyo control goza de cierta ubicuidad, desde dentro y fuera del hogar. Se podría definir como la integración de la tecnología en el diseño inteligente de un recinto cerrado.
¿Os habéis enterado? Por que yo no...
Existen ya muchos componentes para poder crear nuestra casa domotizada pero... muchos son privativos y solo funcionan con sus componentes... Lo cual encarece mucho el coste.
Entonces.... ¿Cómo creamos nuestro sistema domótico sin dejarnos un ojo de la cara?
Microcontrolador que permite conectar via wifi y poder crear el llamado IOT (Internet Of Things).
Evolución del ESP8266, Añade más potencia (2 núcleos), Bluetooth, Soporte hardware criptográfico, etc...
Los ESP (ESP8266 o ESP32), permiten ser programados en muchos lenguajes conocidos; como arduino,C, C++, Micropython, Lua,etc....
Micropython es una implementación ligera de un interprete python y librerías e incluso un gestor de paquetes (upip), pensado en ser usado en microcontroladores como microbit, ESP8266, ESP32, etc...
Micropython se puede instalar tanto en el ESP8266, como en el ESP32. Además de otros dispositivos como el MicroBit (BBC).
Seguidamente se muestra el Blink, usando MicroPython.
from machine import Pin
from time import sleep
#El Pin del led es el 2 que corresponde al GPIO2
ledpin=2
pin = Pin(ledpin, Pin.OUT)
while True:
pin.value(1)
sleep(1)
pin.value(0)
sleep(1)
Para poder usar MicroPython en los ESP, simplemente tenemos que descargar la imagen e "instalarla" en nuestra placa.
Después, podemos usar el REPL que trae integrado para poder usar Python directamente en el Micocontrolador.
Home assistant es un sistema domótico de código abierto que permite automatizar los distintos sistemas que se encuentren integrados.
Home Assistant
Gracias a Home Assistant podemos tener distintos sensores y actuadores que podremos usar para automatizar tareas.
Hassbian es una distribución basada en Raspbian que ya trae preinstalado home assistant y algunos otros componentes. Esta opción va a quedar ya en breve deprecada.
Versión de Home assistant instalado usando Docker. Trae muchos añadidos (addons) y suele ser más fácil su integración.
Integraciones
Automatizaciones
Home Assistant permite crear pequeñas acciones a partir de condiciones que puedan ocurrir. Por ejemplo, si me he dejado el gas abierto en la cocina.
Vamos a ver un ejemplo de integración de un sensor de presencia (PIR) y Home assistant usando MicroPython.
Aunque tambien podemos usar otras herramientas como ESPHome
Para comunicarnos con Home Assistant, usaremos el protocolo MQTT.
El protocolo MQTT es un protocolo ligero que permite enviar y recibir información de forma muy sencilla.
def connect_mqtt(uuid,mqtthost, mqttport, mqttuser, mqttpassword):
print("Connecting to MQTT")
client = MQTTClient(uuid, mqtthost,port=mqttport, user=mqttuser, password=mqttpassword)
client.connect()
return client
def publish_state(client, prefix, uuid, state):
topic=prefix+"/"+uuid+"/state"
payload="{'state':'"+state+"'}"
print("Publishing "+ topic+ " with payload "+payload)
client.publish(topic,payload)
Podemos usar un cliente MQTT usando upip para instalar una libreria.
import upip
upip.install('umqtt')
Gracias a MQTT, podemos añadir un nuevo sensor en Home Assistant usando las distintas integraciones que dispone.