
Integrando en Home Assistant nuestro cortacésped Bosch Indego
Bueno, siguiendo los posts de integración de dispositivos IoT de nuestros hogares inteligentes con Home Assistant, cómo iba a ser menos el poder controlar, conocer el estado y hacer automatizaciones con nuestro cortacésped Bosh Indego.
Vamos a utilizar ‘Controller application and API for Bosch Indego Connect’ que ya vimos en este post cómo instalarlo e integrarlo con Grafana. En esta ocasión aprovecharemos este magnífico proyecto para utilizar un adaptador que trae y nos permitirá integrarlo en Home Assistant gracias a que puede hablar por MQTT con nuestro Broker. Pudiendo conocer el estado o enviar comandos mediante topics. Todo ello lo tendremos integrado con el resto de dispositivos de nuestra casa, en un interfaz sencillo y que como te imaginas mediante las automatizaciones podremos saber cuándo empieza el corte, si se atasca, cuándo acaba de segar; y por supuesto dependiendo si ha llovido/va a llover, pues que salga a cortar.
Tras instalarlo, levantaremos el adaptador de Indego con MQTT indicándole el fichero con los datos de conexión. Este adaptador lo podemos ejecutar desde un Windows o un Linux, en mi caso lo tengo montado en Linux, así que si quiero que se levante cada vez que esa máquina se inicia, lo meteremos en una tarea de cron:
@reboot /home/pi/indego/bin/IndegoMqttAdapter -c /home/pi/indego/IndegoMqttAdapterConfig.properties
Y el fichero IndegoMqttAdapterConfig.properties sería este, corregir cada uno sus datos de acceso a Indego (mail/contraseña), y los datos de MQTT:
# Base url of the Indego web service (if different from default) # indego.mqtt.device.base-url=https://api.indego.iot.bosch-si.com/api/v1/ # Username for connecting to the Indego server (the same as in Indego app) indego.mqtt.device.username=USUARIO_MAIL_DE_INDEGO # Password for connecting to the Indego server (the same as in Indego app) indego.mqtt.device.password=CONTRASEÑA_DE_INDEGO # Connection to MQTT broker indego.mqtt.broker.connection=tcp://DIRECCION_IP_BROKER_MQTT:1883 # Unique id of this client indego.mqtt.broker.client-id=IndegoMqttAdapter # Username for authenticating on the MQTT broker indego.mqtt.broker.username=USUARIO_MOSQUITTO # Password for authenticating on the MQTT broker indego.mqtt.broker.password=CONTRASEÑA_MOSQUITTO # Topic root (namespace) for Indego topics indego.mqtt.broker.topic-root=test/device/indego # Specifies how often the Indego state is queried and the MQTT topics should be updated indego.mqtt.polling-interval-ms=30000
Cuando tengamos el servicio del adaptador ya corriendo en alguna máquina, ya podremos dar de alta nuestro cortacesped Bosch Indego en Home Assistant, ¿cómo? Como siempre, modificando el fichero configuration.yaml, añadiremos en la sección de los sensores el siguiente código:
sensor: ... - platform: mqtt name: "Indego 350 - Estado energia" state_topic: "test/device/indego/online" value_template: '{% if value == "Apagado" %}OFF{% else %}Encendido{% endif %}' icon: mdi:car-battery - platform: mqtt name: "Indego 350 - Estado" state_topic: "test/device/indego/stateMessage" icon: mdi:map-marker value_template: '{% if value == "Docked" %}En la base{% elif value == "Charging" %}Cargando{% elif value == "Mowing" %}Segando{% elif value == "Relocalising" %}Ubicandome{% elif value == "Returning to dock" %}Volviendo a casa{% elif value == "Border cut" %}Recortando los bordes{% elif value == "Idle in lawn" %}Ocioso en el jardin{% elif value == "Unknown" %}Desconocido{% elif value == "pause" %}Pausado{% elif value == "Returning to dock - Battery low" %}Bateria baja{% endif %}' - platform: mqtt name: "Indego 350 - Segado" state_topic: "test/device/indego/mowedPercent" unit_of_measurement: "%" icon: mdi:robot-mower - platform: mqtt name: "Indego 350 - Tiempo ultimo segado" state_topic: "test/device/indego/runtimeSessionOperationMins" icon: mdi:shovel value_template: '{{ (value | float / 60) | round(2, "ceil") }}' unit_of_measurement: "h" - platform: mqtt name: "Indego 350 - Tiempo trabajado" state_topic: "test/device/indego/runtimeTotalOperationMins" icon: mdi:timer value_template: '{{ (value | float / 60) | round(2, "ceil") }}' unit_of_measurement: "h"
Y tras reiniciar Home Assistant y recargar los cambios ya podremos añadir una tarjeta con todas estas entidades. En las que podremos ver el estado de energía, el estado del cortacésped (si está en la base, cargando, segando, ubicándose, volviendo a casa, recortando los bordes, ocioso en el jardín/atascado, con lateria baja… ), el porcentaje del corte, el tiempo del último segado, el tiempo total trabajado… El último segado lo saco con una query de mysql a la BD de Hassio.
Por cierto, si queréis añadir una tarjeta con 3 botones, un Play para que empiece a segar, un Pausa u otro para finalizar el segado, os dejo este ejemplo:
cards: - entity: sensor.indego_350_estado hold_action: action: none icon: 'mdi:play' icon_height: 30px name: A segar tap_action: action: call-service service: mqtt.publish service_data: payload: MOW topic: test/device/indego/command type: entity-button - entity: sensor.indego_350_estado hold_action: action: none icon: 'mdi:pause' icon_height: 30px name: Pausar tap_action: action: call-service service: mqtt.publish service_data: payload: PAUSE topic: test/device/indego/command type: entity-button - entity: sensor.indego_350_estado hold_action: action: none icon: 'mdi:home' icon_height: 30px name: A casa tap_action: action: call-service service: mqtt.publish service_data: payload: RETURN topic: test/device/indego/command type: entity-button type: horizontal-stack
Os dejo este ejemplo de automatización, para que salga a regar a las 6am si no ha llovido o no va a llover, claro que la parte de detectar la lluvia dependerá de cada uno, podéis usar la integración de AccuWeather.
Esta automatización nos notifica por mensaje de Telegram o por los altavoces de la casa que empieza a segar. La idea de esto es por si segamos de día y queremos avisar que va a salir, para que no te pille 😉
Y esta última automatización nos mandará un mensaje de Telegram y nos notificará por los altavoces que el cortacésped Bosch Indego se ha atascado.
Esperando que os haya podido servir, os mando un saludo a tod@s y como siempre agradeceros que lo compartáis en redes sociales.