Integrando en Home Assistant nuestro cortacésped Bosch Indego

Onena, etxeko dispositibo adimendunetatik IoT integrazio postak jarraitzen, nola ez zen kontrola gutxiago izango, Bosh Indego belar mozteko gurearekin egoera ezagutzeko eta automatizazioak egiteko.

Erabiliko dugu 'Controller application and API for Bosch Indego Connect'’ jadanik ikusi genuen poste honetan nola instalatu eta integratu Grafanarekin. Oraingoan, proiektu bikain hau aprobetxatuko dugu eta etxeko Asistentera integratzeko aukera ematen digun adaptadore bat erabiliko dugu, MQTT bidez gure Brokerrekin hitz egin dezakeelako. Egoera ezagutzeko edo komandoak bidaltzeko gai izango gara topics bidez. Hori guztia gure etxeko gainerako dispositiboekin integratuta izango dugu, 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), eta MQTT datuak:

# Indego web zerbitzuaren oinarrizko URL-a (defaultetik desberdina bada)
# indego.mqtt.device.base-url=https://api.indego.iot.bosch-si.com/api/v1/
# Indego zerbitzarira konektatzeko erabiltzaile-izena (Indego aplikazioan bezalakoa)

indego.mqtt.device.username=USUARIO_MAIL_DE_INDEGO
# Indego zerbitzarira konektatzeko pasahitza (Indego aplikazioan bezalakoa)
indego.mqtt.device.password=CONTRASEÑA_DE_INDEGO

# MQTT broker-rarekin konektatzea
indego.mqtt.broker.connection=tcp://DIRECCION_IP_BROKER_MQTT:1883
# Bezero honen ID bakarra
indego.mqtt.broker.client-id=IndegoMqttAdapter
# MQTT broker-ean autentikatzeko erabiltzaile-izena
indego.mqtt.broker.username=USUARIO_MOSQUITTO
# MQTT broker-ean autentikatzeko pasahitza
indego.mqtt.broker.password=CONTRASEÑA_MOSQUITTO
# Gaien sustraia (namespace) Indego gaietarako
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, nola? Betiko moduan, 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 == "Itzaltzea" %}OFF{% else %}Encendido{% endif %}'
    icon: mdi:car-battery

  - platform: mqtt
    name: "Indego 350 - Egoera"
    state_topic: "test/device/indego/stateMessage"
    icon: mdi:map-marker
    value_template: '{% if value == "Docked" %}En la base{% elif value == "Kargatzen" %}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.

Bestela, si queréis añadir una tarjeta con 3 botones, un Play para que empiece a segar, Eten bat edo beste uzteko uzteko uzteko segatzeko, adibide hau uzten dizuet:

txartelak:
  - entity: sensor.indego_350_estado
    hold_action:
      action: bat ere ez
    ikonoa: 'mdi:play'
    icon_height: 30px
    izena: Segatzeko
    tap_action:
      action: zerbitzu-dei
      zerbitzua: mqtt.publish
      service_data:
        payload: MOW
        topic: test/device/indego/command
    mota: entity-button
  - entity: sensor.indego_350_estado
    hold_action:
      action: bat ere ez
    ikonoa: 'mdi:pause'
    icon_height: 30px
    izena: Pausatu
    tap_action:
      action: zerbitzu-dei
      zerbitzua: mqtt.publish
      service_data:
        payload: PAUSA
        topic: test/device/indego/command
    mota: entity-button
  - entity: sensor.indego_350_estado
    hold_action:
      action: bat ere ez
    ikonoa: 'mdi:etxea'
    icon_height: 30px
    izena: Etxera
    tap_action:
      action: zerbitzu-dei
      zerbitzua: mqtt.publish
      service_data:
        payload: ITZULI
        topic: test/device/indego/command
    mota: entity-button
mota: horizontal-stack

Adibide hau uzten dizuet automatizaziorako, lur beroetara 6etan ateratzeko euria egin ezean edo ez bada egingo, noski euria detektatzeko atala norberaren araberakoa izango da, AccuWeather integrazioa erabil dezakezue.

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.

Izenburuko mezuak

Egilea

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, ez zalantzarik izan nirekin harremanetan jartzeko, ahal duzun guztietan laguntzen saiatuko naiz, partekatu ahal dudan guztietan ;) . Dokumentuez gozatu!!!