Proyecto domotizacion Jaqueria
Esto es negrita
Crear imagen Docker Home Assistant
Primero instale una maquina virtual ubuntu 20.04 con todas sus dependencias, instale docker y despues la imagen docker de home assistant
Seleccion de licencia
-
Licencia de software:
Eleji la licencia MIT, ya que es una licencia breve y permisiva con condiciones que requieren la preservacion de los avisos de licencia y derechos de autor
-
Licencia de contenido:
Eleji una licencia personalizada, permitiendo que se compartan las adaptaciones y permitiendo los usos comerciales del proyecto
Este obra está bajo una licencia de Creative Commons Reconocimiento 4.0 Internacional.
Crear Bot Telegram
Para ello, recurri a BotFather haciendo lo siguiente:
-
Cree el nuevo bot ( /newbot )
Asignandole un nombre y un nombre de usuario, dandome Telegram un token de autorizacion para emplear dicho bot
-
Guarde el token en un lugar seguro
-
Edite la descripcion del bot
-
Edite la foto de perfil del bot
Crear LDAP
-
Instale la imagen docker LDAP en Ubuntu
-
Cree un docker-compose con LDAP y Home Assistant. En cuanto a sus cambios mas importantes son los siguientes:
- Indicar los 2 puertos que usara LDAP (1389,1636) e indicar el puerto que usara HomeAssistant (8123)
- Indicar parametros para el usuario administrador para LDAP
- Asignar el dominio de la Jaqueria
- Asignar el directorio donde se almacenara LDAP y HomeAssistant
Crear imagen de Docker con phpldapadmin
-
Instale la imagen docker en Ubuntu
-
Añadi la configuracion de phpldapadmin al docker-compose con detalles importantes como:
- Host de phpldapadmin, que sera openldap
- Deshabilitar https
- Indicar el dominio de la Jaqueria
- Indicar el usuario administrador
- Indicar el puerto que usara phpldapadmin
- Indicar que depende del protocolo openldap
Crear sensor de humedad y temperatura
Mediante ESPHOME, configurar un ESP32(medidor de temperatura) haciendo lo siguiente:
-
Instalar Python para usar "pip" e instalar ESPHOME(cmd)
pip install esphome
-
Configurar parametros iniciales como nombre del dispositivo, microcontrolador usado, modelo de placa, SSID de Wifi, y la contraseña de esta, en la que mediante este comando se crea el archivo .yml llamado temperatura
python -m esphome temperatura.yml wizard
-
En el archivo .yml creado, incorporar la configuracion que llevara el medidor de temperatura que sera la siguiente:
- SSID del Wifi
- Contraseña del Wifi
- Contraseña de la API de HomeAssistant
- PIN de la placa donde se conecta el sensor
- Nombre que tendra el sensor de temperatura y humedad
- Intervalo de segundos donde la informacion del sensor se ira actualizando
-
Una vez configurado, ejecutamos el siguiente comando para que funcione el sensor
python -m esphome temperatura.yml run
-
Lo siguiente que hara sera pedirnos el puerto donde esta conectado el sensor, asi que ponemos el que corresponda a "COM3"
-
Por ultimo nos pedira la contraseña que configuramos en "temperatura.yml"
Una vez hecho todo esto, en el HomeAssistant habra que ir al apartado de configuracion, integraciones y agregar una nueva integracion. Buscamos "ESPHOME", ponemos la IP del dispositivo y saldra el dispositivo integrado con sus 2 entidades, en este caso temperatura y humedad.
Configurar grupos y usuarios LDAP
En este caso, se hara lo siguiente:
-
Crear el grupo de administradores, con la informacion correspondiente y asignando los permisos adecuados
-
Crear el grupo de socios, con la informacion de estos y con los permisos que les correspondan
-
Todo esto se hace mediante el navegador web con phpldapadmin de la siguiente manera:
-
Creamos la unidad organizativa administradores dando a jaqueria>create a child entry>organisational unit> y con el nombre "Administradores"
-
Creamos la unidad organizativa sociosjaqueria dando a jaqueria>create a child entry>organisational unit> y con el nombre de "Socios Jaqueria"
-
Creamos los usuarios Remedios, Pedro y Victor que seran los administradores dando a Administradores>create a child entry>default>InetOrgPerson. Una vez ahi, se selecciona el atributo en este caso "cn" y para cada uno de los 3 se rellanaran las casillas "cn", "sn" con el nombre, "password" con la contraseña y "username" con el nombre de usuario para entrar
-
Al ser socios tambien estos 3 usuarios, se añadiran dando a la unidad organizativa Administradores>copy or move this entry>destination dn y elegimos "Socios Jaqueria". Tambien se marcara la casilla de borrar despues de su copia para que no se creen dos, si no que se borre la primera y se copie la unidad organizativa "Administradores" dentro de "Socios Jaqueria"
-
Creamos todos los usuarios restantes, dando a SociosJaqueria>create a child entry>default>InetOrgPerson. Una vez ahi, se selecciona el atributo en este caso "cn" y para cada uno de socios se rellanaran las casillas "cn", "sn" con el nombre, "password" con la contraseña y "username" con el nombre de usuario para entrar
-
Configurar Bot de Telegram en Home Assistant
Para ello, habra que configurar el archivo "configuration.yaml" situado en la ruta que se definio en "docker-compose", en este caso "/home/administrador/config"
Los pasos de configuracion en "configuration.yaml" son los siguientes:
- Indicar el token del bot de telegram que usara HomeAssistant
- Indicar los "chatid" de mi usuario, y el grupo de la Jaqueria
- Indicar los "chatid" anteriores en otro apartado para habilitar las notificaciones
Añadir imagen docker para Mosquitto
-
Instale la imagen docker Eclipse Mosquitto
-
En el docker-compose, lo añadi con informacion como la siguiente:
- Indicar los 2 puertos que utilizara mosquitto
- Indicar el directorio donde se almacenara mosquitto
- Indicar en el apartado de homeassistant que depende de mosquitto(depends_on)
Configurar broker MQTT para HomeAssistant
Para ello iremos al "configuration.yaml" situado en la ruta "/home/admministrador/config" indicando lo siguiente:
- El broker, en este caso mosquitto
- El puerto por el que funcionara(9001)
Una vez hecho esto habra que hacer lo siguiente:
-
Entrar en el docker de mosquitto, y crear un archivo llamado "passwd.txt" con el usuario jaqueria
-
En la ruta donde tengamos mosquitto(mconfig), se añadira el archivo mosquitto.conf con las siguientes lineas:
- "allow_anonymous false" para que no se permita entrar a nadie anonimo
- "password_file /mosquitto/config/passwd.txt" para indicar el archivo que contendra el usuario jaqueria creado anteriormente
Integrar Sensor CO2
Mediante ESPHOME, configurar un ESP32(medidor de temperatura) haciendo lo siguiente:
-
Instalar Python ya hecho anteriormente
-
Configurar parametros iniciales como nombre del dispositivo, microcontrolador usado, modelo de placa, SSID de Wifi, y la contraseña de esta, en la que mediante este comando se crea el archivo .yml llamado sensorco2
python -m esphome sensorco2.yml wizard
-
En el archivo .yml creado, incorporar la configuracion que llevara el medidor de temperatura que sera la siguiente:
- SSID del Wifi
- Contraseña del Wifi
- Contraseña de la API de HomeAssistant
- PIN de la placa donde se conecta el sensor
- Nombre que tendra el sensor de CO2
- Intervalo de segundos donde la informacion del sensor se ira actualizando
-
Una vez configurado, ejecutamos el siguiente comando para que funcione el sensor
python -m esphome sensorco2.yml run
-
Lo siguiente que hara sera pedirnos el puerto donde esta conectado el sensor, asi que ponemos el que corresponda a "COM3"
-
Por ultimo nos pedira la contraseña que configuramos en "sensorco2.yml"
Una vez hecho todo esto, en el HomeAssistant habra que ir al apartado de configuracion, integraciones y agregar una nueva integracion. Buscamos "ESPHOME", ponemos la IP del dispositivo y saldra el dispositivo integrado con sus 2 entidades, en este caso el sensor de co2 y otra nueva entidad que mide otros parametros
Integrar telefono en desuso como camara webIP
Se haran los siguientes pasos:
-
Se instalara la aplicacion "IP webcam" para que el movil solo funcione como camara y como una direccion IP,
-
Lo siguiente sera ir al "configuration.yaml" para incorporar la nueva camara es este caso especificando lo siguiente:
- Direccion IP del dispositivo movil
- Puerto, en este caso el predeterminado (8080)
- Usuario y contraseña que se configura en la aplicacion "IP webcam"
Integrar ESP32CAM
Mediante ESPHOME, configurar un ESP32cam haciendo lo siguiente:
-
Instalar Python ya hecho anteriormente
-
Configurar parametros iniciales como nombre del dispositivo, microcontrolador usado, modelo de placa, SSID de Wifi, y la contraseña de esta, en la que mediante este comando se crea el archivo .yml llamado camara1
python -m esphome camara1.yml wizard
-
En el archivo .yml creado, incorporar la configuracion que llevara el medidor de temperatura que sera la siguiente:
- SSID del Wifi
- Contraseña del Wifi
- Contraseña de la API de HomeAssistant
- PIN de la placa donde se conecta el sensor
- Nombre que tendra el sensor de CO2
- Resolucion de la camara
- Calidad jpeg de las fotos
- Todos los pins que se conectan al microprocesador
-
Una vez configurado, ejecutamos el siguiente comando para que funcione el sensor
python -m esphome camara1.yml run
-
Lo siguiente que hara sera pedirnos el puerto donde esta conectado el sensor, asi que ponemos el que corresponda a "COM3"
-
Por ultimo nos pedira la contraseña que configuramos en "camara1.yml"
Una vez hecho todo esto, en el HomeAssistant habra que ir al apartado de configuracion, integraciones y agregar una nueva integracion. Buscamos "ESPHOME", ponemos la IP del dispositivo y saldra el dispositivo integrado con sus 2 entidades, en este caso el sensor de co2 y otra nueva entidad que mide otros parametros
Crear imagen para ZIgbee2MQTT
-
Instale la imagen docker Zigbee2MQTT
-
En el docker-compose, lo añadi con informacion como la siguiente:
- El nombre del dispositivo del USB conectado
- La zona horaria
- La ruta donde se almacenara la configuracion de Zigbee
Conectar Zigbee2MQTT a HomeAssistant
Lo que se trata de hacer es conectar Zigbee2MQTT a mosquitto, para que desde la regleta inalambrica se pueda mandar informacion con mosquitto a HomeAssistant
Para ello vamos a la ruta de zigbee especificada en el paso anterior en este caso "/home/administrador/data" y editamos el archivo "configuration.yaml" con lo siguiente:
- Especificar el servidor, en este caso ponemos el docker de mosquitto y su puerto
- Especificar el usuario y contraseña que configuramos en mosquitto
Crear automatizaciones en el local
Regla 1º: Automatizacion del sensor de CO2 cuando alcanza mas de 620 particulas por minuto.
Dentro de HomeAssistant, iremos a Configuracion>Automatizaciones>signo + para añadir una nueva automatizacion
- Elegimos un nombre para la automatizacion.
- Asignamos un desencadenante de tipo dispositivo con valor maximo 620
- Configuramos una accion de tipo llamada, con un nombre y con el siguiente mensaje "las ppm han llegado a su maximo"
Regla 2º: A partir de las 21:00, se encienda la luz del sensor de la camara.
Dentro de HomeAssistant, iremos a Configuracion>Automatizaciones>signo + para añadir una nueva automatizacion
- Elegimos un nombre para la automatizacion
- Asignamos un desencadenante de tipo hora con el valor de las 21:00 horas
- Configuramos una accion de tipo llamada, con el servicio "Interruptor: turn on" y elegimos la entidad, en este caso la camara
Regla 3º: A partir de las 7:00, se apagara la luz del sensor de la camara.
Dentro de HomeAssistant, iremos a Configuracion>Automatizaciones>signo + para añadir una nueva automatizacion
- Elegimos un nombre para la automatizacion
- Asignamos un desencadenantes de tipo hora con el valor de las 7:00 horas
- Configuramos una accion de tipo llamada, con el servicio "Interruptor: turn off" y elegimos la entidad, en este caso la camara
Regla 4º: Cuando llegue la temperatura a mas de 25 grados, se debera encender el enchufe numero 2 de la regleta zigbee
Dentro de HomeAssistant, iremos a Configuracion>Automatizaciones>signo + para añadir una nueva automatizacion
- Elegimos un nombre para la automatizacion
- Asignamos un desencadenantes de tipo dispositivo con el valor maximo de 25
- Configuramos una accion de tipo llamada, con el servicio "Interruptor: turn on" y elegimos la entidad, en este caso el enchufe numero 2 de la regleta
Regla 5ª Cuando la temperatura baje de 22 grados, se debera apagar el enchufe numero 2 de la regleta zigbee
Dentro de HomeAssistant, iremos a Configuracion>Automatizaciones>signo + para añadir una nueva automatizacion
- Elegimos un nombre para la automatizacion
- Asignamos un desencadenantes de tipo dispositivo con el valor minimo de 22
- Configuramos una accion de tipo llamada, con el servicio "Interruptor: turn off" y elegimos la entidad, en este caso el enchufe numero 2 de la regleta
Regla 6º: Automatizacion del sensor de CO2 cuando baje de 900ppm
Dentro de HomeAssistant, iremos a Configuracion>Automatizaciones>signo + para añadir una nueva automatizacion
- Elegimos un nombre para la automatizacion.
- Asignamos un desencadenante de tipo dispositivo con valor minimo de 900
- Configuramos una accion de tipo llamada, con un nombre y con el siguiente mensaje "Se ha bajado del maximo valor de CO2"
Acceso por NFC
Mediante ESPHOME, configurar un lector NFC haciendo lo siguiente:
-
Instalar Python ya hecho anteriormente
-
Configurar parametros iniciales como nombre del dispositivo, microcontrolador usado, modelo de placa, SSID de Wifi, y la contraseña de esta, en la que mediante este comando se crea el archivo .yml llamado camara1
python -m esphome lectornfc.yml wizard
-
En el archivo .yml creado, incorporar la configuracion que llevara el medidor de temperatura que sera la siguiente:
- SSID del Wifi
- Contraseña del Wifi
- Contraseña de la API de HomeAssistant
- Pin CS
- Pin CLK
- Pin MOSI
- Pin MISO
-
Una vez configurado, ejecutamos el siguiente comando para que funcione el sensor
python -m esphome lectornfc.yml run
-
Lo siguiente que hara sera pedirnos el puerto donde esta conectado el sensor, asi que ponemos el que corresponda a "COM3"
-
Por ultimo nos pedira la contraseña que configuramos en "lectornfc.yml"
Una vez hecho todo esto, en el HomeAssistant habra que ir al apartado de configuracion, integraciones y agregar una nueva integracion. Buscamos "ESPHOME", ponemos la IP del dispositivo y saldra el dispositivo integrado con su entidad, en este caso el sensor RFID
Instalar Docker-compose para web
Se creara un docker-compose con servicio MySQL y un servicio Wordpress.
-
El servicio MySQL llevara lo siguiente:
- Nombre de la base de datos
- Nombre del usuario de la base de datos
- Contraseña del usuario
- La red a la que pertenece
-
El servicio WordPress llevara lo siguiente:
- Puerto asociado
- Host de la base de datos
- Usuario de la base de datos
- Contraseña del usuario de la base de datos
- Nombre de la base de datos
- Ruta en la maquina donde se almacenara
- Indicar que depende de MySQL
Despues de ello, configuraremos la instalacion de Wordpress haciendo lo siguiente:
- Idioma Español
- Titulo del sitio
- Nombre de usuario
- Contraseña
- Correo electronico
Desactivar acceso anonimo a ldap
Para ello, entraremos al contenedor de "openldap", con - docker exec -it openldap bash
- yendo a la ruta "" Una vez ahi se añade la siguiente linea "disallow bind_anon"