
Bosch Indego芝刈り機をホームアシスタントに統合
まぁ, 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.
インストール後, 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, どう? いつも通り, modificando el fichero configuration.yaml, añadiremos en la sección de los sensores el siguiente código:
センサー: ... - プラットホーム: MQTT 名: "Indego 350 - Estado energia" state_topic: "test/device/indego/online" value_template: '{% if value == "オフ" %}オフ{% 然も無くば %}Encendido{% エンディフ %}' icon: MDIの:car-battery - プラットホーム: MQTT 名: "Indego 350 - 状態" state_topic: "test/device/indego/stateMessage" アイコン: 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 == "休止" %}Pausado{% elif value == "Returning to dock - Battery low" %}Bateria baja{% エンディフ %}' - プラットホーム: MQTT 名: "Indego 350 - Segado" state_topic: "test/device/indego/mowedPercent" unit_of_measurement: "%" アイコン: MDIの:robot-mower - プラットホーム: MQTT 名: "Indego 350 - Tiempo ultimo segado" state_topic: "test/device/indego/runtimeSessionOperationMins" アイコン: MDIの:shovel value_template: '{{ (価値 | 浮く / 60) | 丸い(2, "ceil") }}' unit_of_measurement: "h" - プラットホーム: MQTT 名: "Indego 350 - Tiempo trabajado" state_topic: "test/device/indego/runtimeTotalOperationMins" アイコン: MDIの:timer value_template: '{{ (価値 | 浮く / 60) | 丸い(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.
ところで, 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, この例をお伝えします:
cards: - 実体: sensor.indego_350_estado hold_action: アクション: none icon: 'mdi:play' icon_height: 30px name: A segar tap_action: アクション: call-service service: mqtt.publish service_data: ペイロード: MOW topic: test/device/indego/command type: entity-button - 実体: sensor.indego_350_estado hold_action: アクション: none icon: 'mdi:pause' icon_height: 30px name: Pausar tap_action: アクション: call-service service: mqtt.publish service_data: ペイロード: PAUSE topic: test/device/indego/command type: entity-button - 実体: sensor.indego_350_estado hold_action: アクション: none icon: 'mdi:home' icon_height: 30px name: A casa tap_action: アクション: call-service service: mqtt.publish service_data: ペイロード: 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.