Home Assistant #FF: Integramos el gallo portugués para tener temperatura

Domótica

Para aquellos que no lo conozcan, el gallo portugués es un elemento indispensable en la domótica desde hace muchos años. Sin conectividad WiFi ni Bluetooth, esta pequeña estatua nos proporciona una información que pocos sistemas actuales son capaces de reproducir, quizá, gracias a su magia.

Si no lo habéis visto, es porque ningún familiar o amigo que ha ido a Portugal, ha decidido comprarte este interesante gadget (sería el equivalente a la sevillana española o el toro para poner encima de nuestros televisores CRT). Ahora, mucho tiempo después, con una gran propagación en nuestro país, he pensado que podría ser una buena opción para poder integrar en Home Assistant, ¿cómo? Os lo explico.

Integración del gallo portugués en Home Assistant

Lo primero que necesitaremos es la instalación de OpenCV, de esta forma, tendremos la posibilidad de reconocer el objeto y, sobretodo el color para determinar la temperatura a la que está la estancia donde se encuentra.

Para poder dar la imagen, será necesaria la instalación de una cámara fija durante las 24h que nos proporcionará una imagen constante del gallo portugués, que será la analizada por OpenCV para determinar la información. En mi integración he usado esta.

Para poder usar la cámara será necesario el uso el hack de las cámaras Yi que le habilita el RTSP.

Una de las cosas que he detectado es que, a lo largo del tiempo, la iluminación en la habitación varía a lo largo del día, por lo que para poder integrar de una forma fiable, es necesaria una iluminación constante. Para ello, he usado este kit de iluminación que he encontrado.

También, OpenCV come bastante máquina, por lo que para poder hacer uso de esta integración, os recomiendo algo más potente como esto.

Ahora, pasamos a la explicación más en detalle.

Lista de la compra

Este es el resumen de lo que necesitaréis para poder poner en marcha esta integración:

  • Gallo portugués. Si no tenéis, podéis mirar para realizar un viaje a Portugal para conseguir uno.
  • Cámara para la vigilancia 24 aquí.
  • Equipo de iluminación profesional aquí.
  • Mini PC con 8GB de RAM aquí.

Integración de la cámara Yi Dome con el Hack

Lo primero que haremos será dejar puesta la cámara. Como he dicho, he recomendado el la Yi Dome para poder funcionar de una forma correcta, por lo que será necesario el hack de la cámara, algo que podéis ver aquí.

Con dicho hack sacamos el streaming de vídeo y así podemos posteriormente analizarlo con OpenCV. En nuestro configuration.yaml será necesario poner la cámara, que sería algo así:

  - platform: generic
    name: gallo
    still_image_url: http://192.168.1.156/cgi-bin/snapshot.cgi
    stream_source: rtsp://192.168.1.156:554/1

Y, con eso, ya estaría funcionando.

Instalación de OpenCV en Home Assistant

Lo segundo, para poder reconocer el gallo, es necesario la implementación de Opencv, por lo que para ello, es necesario instalarlo y que se integre en nuestro sistema. En nuestro configuration.yaml ponemos lo siguiente:

image_processing:
  - platform: opencv
    name: Gallo de portugal
    source:
      - entity_id: camera.gallo
    classifier:
      gallo: /local/gallo.xml

Dentro del fichero gallo.xml, que guardaremos dentro de la carpeta www pondremos:

<?xml version="10.1"?>
<!-- Pollo color detector by inocent implementation day -->
<opencv_storage>
<cascade>
  <stageType>POLLO</stageType>
  <featureType>POLLETE</featureType>
  <height>24</height>
  <width>24</width>
  <stageParams>
    <boostType>Temperature Result</boostType>
    <minHitRate>9.9500000476837158e-01</minHitRate>
    <maxFalseAlarm>5.0000000000000000e-01</maxFalseAlarm>
    <weightTrimRate>9.4999999999999996e-01</weightTrimRate>
    <maxDepth>1</maxDepth>
    <maxWeakCount>100</maxWeakCount></stageParams>
  <featureParams>
    <maxCatCount>0</maxCatCount>
    <featSize>1</featSize>
    <mode>BASIC</mode></featureParams>
  <stageNum>20</stageNum>
  <stages>
    <!-- stage 0 -->
    <_>
      <maxWeakCount>16</maxWeakCount>
      <stageThreshold>-1.4806525707244873e+00</stageThreshold>
      <weakClassifiers>
        <_>
          <internalNodes>
            0 -1 472 -1.5126220881938934e-02</internalNodes>
          <leafValues>
            7.5887596607208252e-01 -3.4230688214302063e-01</leafValues></_>
        <_>
          <internalNodes>
            0 -1 839 3.9337221533060074e-03</internalNodes>
          <leafValues>
            -3.3288389444351196e-01 5.2361363172531128e-01</leafValues></_>
        <_>
          <internalNodes>
            0 -1 858 -1.5044892206788063e-02</internalNodes>
          <leafValues>
            5.5565774440765381e-01 -2.2505992650985718e-01</leafValues></_>
        <_>
          <internalNodes>
            0 -1 387 -1.2927042320370674e-02</internalNodes>
          <leafValues>
            5.7442700862884521e-01 -1.9708566367626190e-01</leafValues></_>
        <_>
          <internalNodes>
            0 -1 137 5.5960696190595627e-03</internalNodes>
          <leafValues>
            -3.0430641770362854e-01 4.0241482853889465e-01</leafValues></_>
        <_>
          <internalNodes>
            0 -1 207 1.5758406370878220e-02</internalNodes>
          <leafValues>
            -1.9767063856124878e-01 4.5033392310142517e-01</leafValues></_>
        <_>
          <internalNodes>
            0 -1 678 2.4262722581624985e-02</internalNodes>
          <leafValues>
            -1.6931040585041046e-01 5.9707510471343994e-01</leafValues></_>
        <_>
          <internalNodes>
            0 -1 267 -3.5242564976215363e-02</internalNodes>
          <leafValues>
            6.5973556041717529e-01 -1.4519356191158295e-01</leafValues></_>
        <_>
          <internalNodes>
            0 -1 687 2.6568008586764336e-02</internalNodes>
          <leafValues>
            -1.3476610183715820e-01 5.4296624660491943e-01</leafValues></_>
        <_>
          <internalNodes>
            0 -1 228 4.7154121100902557e-02</internalNodes>
          <leafValues>
            -1.7337851226329803e-01 4.6071702241897583e-01</leafValues></_>
        <_>
          <internalNodes>
            0 -1 925 -5.3081759251654148e-03</internalNodes>
          <leafValues>
            5.4976856708526611e-01 -1.1913410574197769e-01</leafValues></_>
        <_>
          <internalNodes>
            0 -1 608 5.3415738046169281e-02</internalNodes>
          <leafValues>
            -1.2382411211729050e-01 6.3972741365432739e-01</leafValues></_>
        <_>
          <internalNodes>
            0 -1 671 -3.0798995867371559e-03</internalNodes>
          <leafValues>
            -8.2048600912094116e-01 1.0249497741460800e-01</leafValues></_>
        <_>
          <internalNodes>
            0 -1 676 -2.3766520898789167e-03</internalNodes>
          <leafValues>
            -7.0665025711059570e-01 6.7025005817413330e-02</leafValues></_>
        <_>
          <internalNodes>
            0 -1 180 1.1965663870796561e-03</internalNodes>
          <leafValues>
            -2.4753804504871368e-01 3.0198124051094055e-01</leafValues></_>
        <_>
          <internalNodes>
            0 -1 830 -4.2106406763195992e-03</internalNodes>
          <leafValues>
            3.8455343246459961e-01 -1.8334107100963593e-01</leafValues></_></weakClassifiers></_>
    <!-- stage 1 -->

Una vez hecho esto, tendremos funcionando OpenCV y cogiendo el stream del vídeo para analizar.

Conclusión

Una vez terminado, vemos que por algo menos de 300€ tenemos un cómodo sensor de temperatura funcionando en Home Assistant, sobretodo, exclusivo. Un objeto que tanto cuando estamos fuera de casa y enseñamos el stream de vídeo a los conocidos, como cuando llegan a casa y ven el trono donde tienes puesto el gallo, la cámara y la iluminación, pensarán que eres una persona de lo más normal.

Lo bueno es que podemos tener tantos gallos como queramos en nuestro sistema, aunque, en el caso de ir ampliando es probable que tengamos que echar un ojo a servidores más potentes para poder mover OpenCV.

Espero que hayas disfrutado con este tutorial tanto como yo haciéndolo, y, si tienes alguna duda sobre el tutorial, puedes entrar al canal de domótica de Telegram.

¡FELIZ DÍA DE LOS INOCENTES!

¿Quieres montarte tu propio sistema Smart Home?

¿Te gustaría empezar poco a poco teniendo Google Home, Alexa o Home Assistant para controlar las luces, calefacción y otros electrodomésticos de la casa? ¡Te ayudamos! Entra en nuestro Grupo de Telégram de Domótica y también puedes entrar a nuestro Foro de Domótica donde podrás empezar a leer y preguntar tus dudas. Además, si quieres estar al tanto de las ofertas de domótica que salen a diario para poder hacerte un sistema de domótica low cost, entra a nuestro Canal de ofertas de domótica y no te perderás ni una o si lo prefieres y no tienes Telegram, puedes entrar a nuestra página de ofertas de domótica o Smart Home en Facebook. ¡Síguenos también en nuestro Facebook, Twitter o Instagram! ¡Te esperamos!

2 Comentarios

  1. Nek

    Inocente

    Reply

Contestar

Tu e-mail no será publicadoRequired fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Lost Password

Registro