Husqvarna "Park jusqu'à nouvel ordre"

Bonjour à tous,

Je viens d’installer le module Automower connect sur ma rondeuse robot 315 Mark I et d’intégrer le tout dans HA.

Pour les commandes il y a 3 services dont un pour ordonner le retour à la base : lawn_mower.dock

Malheureusement ce service correspond l’ordre « Park until next schedule ».

Je souhaiterais gérer entièrement la tondeuse via mes automatisations donc je voudrais que chaque retour soit un « Park jusqu’à nouvel ordre » pour que la tondeuse ne décide pas seule d’aller tondre.

Quelqu’un sait-il s’il existe un moyen de transmettre cette commande?

Merci !

Raphaël

Ma configuration


[center]## System Information

version core-2024.4.3
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.12.2
os_name Linux
os_version 6.1.73-haos-raspi
arch aarch64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 4996
Installed Version 1.34.0
Stage running
Available Repositories 1401
Downloaded Repositories 40
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 12.2
update_channel stable
supervisor_version supervisor-2024.04.0
agent_version 1.6.0
docker_version 25.0.5
disk_total 916.2 GB
disk_used 325.4 GB
healthy true
supported true
board rpi4-64
supervisor_api ok
version_api ok
installed_addons Duck DNS (1.16.0), File editor (5.8.0), Frigate (Full Access) (0.13.2), Samba Backup (5.2.0), Samba share (12.3.1), Terminal & SSH (9.13.0), Zigbee2MQTT (1.36.1-1), SQLite Web (4.1.2), Studio Code Server (5.15.0)
Dashboards
dashboards 3
resources 27
views 27
mode storage
Recorder
oldest_recorder_run 15 avril 2024 à 20:13
current_recorder_run 18 avril 2024 à 18:52
estimated_db_size 5851.73 MiB
database_engine sqlite
database_version 3.44.2
[/center]

Salut @uscan

Avec l’ancienne intégration HACS (plus maintenue) on pouvait le faire, le « mower » était « traité » en tant que « vacuum ».

Avec la nouvelle intégration « core » ce n’est plus possible.

La seule solution envisageable, ce serait de déléguer complétement la planif à HA.

Et même comme ça je ne sais pas comment peut réagir le robot et l’appli husqvarna :thinking:

J’ai un gardena, une fois qu’il est en nettoyage (après un start) , un appui sur la commande stop fait un retour base jusqu’à nouvel ordre

Dans la nouvelle intégration il n’y a plus de ‹ stop › et le ‹ return_to_base › correspond à ce que faisait ‹ stop ›.
En tout cas pour mon robot, apparemment c’est différent pour les Gardena (@Jeffodilo).

Dédier toute la planif à HA, c’est ce que je veux faire. Le souci c’est que le robot Husqvarna n’accepte pas la suppression totale de la planification, car dans sa logique pas de planification = pas d’autorisation de tondre. Donc pas de planification = planification tous les jours de 0h à 24h. Mais en faisant ça il considère qu’il y a un démarrage tous les jours à 0h. Donc l’ordre de retour sur base n’étant pas « jusqu’à nouvel ordre », il va aller tondre tous les jours à minuit, et HA n’a donc pas la main à 100%.

Je veux dédier toute la gestion à HA pour avoir la main sur les autorisations de sortie en fonction de la météo (et notamment privilégier mes capteurs locaux).

Je ne vois pas de solution pour l’instant… Espérons que l’intégration ajoute un nouveau service qui distingue « stop » et « return_to_base ».

Je me doutais bien que ça passerait pas :confused:

Il semble que côté gardena on soit encore avec une intégration « custom » dispo sur HACS qui comme l’ancienne intégration Husqvarna traite le robot comme un « vacuum ».

ça me semble mal engagé vu qu’elle se base sur des entités de type « lawn mower » :

Donc selon moi il faudra que l’évolution se fasse d’abord sur « lawn mower » avant de pouvoir être portée sur « husqvarna ».

Je passe par cette intégration qui passe par l’API Husqvarna
https://github.com/py-smart-gardena/hass-gardena-smart-system
Avec ceci

vacuum.stop
Stop the mower using the Gardena API command PARK_UNTIL_FURTHER_NOTICE.
The mower cancels the current operation, returns to charging station and ignores schedule.

J’ai essayé tellement de chose que je ne sais même plus ce qu’il est possible de faire :sweat_smile:

J’avais aussi essayé ceci, vous trouverez peut être votre bonheur car on envoie les commandes de API Husqvarna qu’on veut avec des shells.
https://community.home-assistant.io/t/integration-with-gardena-smart-sileno-mowers-by-using-sensors/563830

1 « J'aime »

Exactement, il y aurait un service à ajouter.

Je pourrais passer sur l’intégration HACS, mais non maintenue ça ne durera pas…

En attendant j’envoie l’ordre d’aller sur la base tous les jours à minuit une, mais ce n’est vraiment pas un solution satisfaisante…

Merci pour ce lien, en effet si on peut appeler un script qui communique avec l’API ça permettrait d’envoyer la commande… Là mes compétences sont un peu dépassées, il faudrait que j’y consacre du temps pour comprendre, je me garde ça sous le coude…

J’ai géré la situation en créant deux automatisations, une qui gère les autorisations de tondre et une autre qui actionne (c’est écrit pour une tondeuse, mais la semaine prochaine je vais connecter la seconde).

alias: Tondeuses autorisation
description: ""
trigger:
  - platform: time_pattern
    minutes: /1
    id: Toutes les minutes
condition: []
action:
  - if:
      - condition: state
        entity_id: timer.timer_tondeuses
        state: idle
      - condition: numeric_state
        entity_id: sensor.cierrey_rain_chance
        below: 1
      - condition: numeric_state
        entity_id: sensor.temperature_exterieur
        above: 7
      - condition: state
        entity_id: sensor.cierrey_next_rain
        state: unknown
      - condition: time
        after: input_datetime.315_debut
        before: input_datetime.315_fin
    then:
      - service: input_boolean.turn_on
        metadata: {}
        data: {}
        target:
          entity_id: input_boolean.tondeuses_autorisation
    else:
      - service: input_boolean.turn_off
        target:
          entity_id:
            - input_boolean.tondeuses_autorisation
        data: {}
      - if:
          - condition: or
            conditions:
              - condition: state
                entity_id: lawn_mower.315_sud
                state: mowing
              - condition: state
                entity_id: lawn_mower.315_sud
                state: paused
        then:
          - service: lawn_mower.dock
            metadata: {}
            data: {}
            target:
              entity_id: lawn_mower.315_sud
mode: single
alias: Tondeuses
description: ""
trigger:
  - platform: state
    entity_id:
      - counter.compteur_pluie
    id: Compteur pluie
  - platform: state
    entity_id:
      - sensor.cierrey_next_rain
    from: null
    to: unknown
    id: Pas de prochaine pluie
  - platform: numeric_state
    entity_id:
      - sensor.cierrey_rain_chance
    above: 10
    id: Risque pluie
  - platform: numeric_state
    entity_id:
      - sensor.cierrey_rain_chance
    below: 1
    id: Plus de risque
  - platform: state
    entity_id:
      - timer.timer_tondeuses
    from: active
    to: idle
    id: Fin timer
  - platform: numeric_state
    entity_id:
      - sensor.temperature_exterieur
    below: 5
    id: Froid
  - platform: numeric_state
    entity_id:
      - sensor.temperature_exterieur
    id: Chaud
    above: 7
  - platform: time
    at: input_datetime.315_debut
    id: Début planning
  - platform: time
    at: input_datetime.315_fin
    id: Fin planning
condition: []
action:
  - service: automation.trigger
    metadata: {}
    data:
      skip_condition: true
    target:
      entity_id: automation.tondeuses_autorisation
  - delay:
      hours: 0
      minutes: 0
      seconds: 1
      milliseconds: 0
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Compteur pluie
              - Risque pluie
              - Froid
              - Fin planning
        sequence:
          - service: lawn_mower.dock
            metadata: {}
            data: {}
            target:
              entity_id: lawn_mower.315_sud
          - if:
              - condition: trigger
                id:
                  - Compteur pluie
            then:
              - service: timer.start
                metadata: {}
                data: {}
                target:
                  entity_id: timer.timer_tondeuses
      - conditions:
          - condition: trigger
            id:
              - Plus de risque
              - Fin timer
              - Chaud
              - Début planning
              - Pas de prochaine pluie
          - condition: state
            entity_id: input_boolean.tondeuses_autorisation
            state: "on"
        sequence:
          - wait_template: "{{ is_state('sensor.315_sud_batterie', '100') }}"
          - service: lawn_mower.start_mowing
            target:
              entity_id:
                - lawn_mower.315_sud
            data: {}
mode: restart

Salut @uscan

Sauf erreur de ma part, si tu fais un « toggle » sur le switch ci-dessous :

image

Le robot va retourner à sa base (ou y rester s’il y est déjà) jusqu’à nouvel ordre.

Ah tiens ! Chez toi ça fait ça ? Parce que chez moi ce switxh est inopérant. Si j’appuie dessus il ne se passe rien et au bout de quelques secondes il reprend sa position initiale.

Tu as quel modèle de robot?

Oui, c’est avec ça que je demande au robot de rentrer à la base ou de ne pas en sortir en cas d’orage.

Un 430X, c’est sur ma capture :wink:

Faut que je regarde si j’ai ou non dû faire qqc en plus, mais ça ne me dit rien :confused:

Ah oui bien vu pour la capture… Je vais refaire des tests avec ce switch quand je ressortirai mes tondeuses de la cave (il gèle de nouveau la nuit !).
Je pense que ma 315 Mark I ne gère peut-être pas cette commande de la même manière (le kit connect sera installé demain sur la 310 Mark I). J’ai bien l’option « Park jusqu’à nouvel ordre » sur l’appli Husqvarna, et ça fonctionne en manuel.

Je viens de faire le test, et même si c’est vrai que le switch reprend immédiatement sa position initiale, l’ordre passe, tu as raison, et c’est bien un Park jusqu’à nouvel ordre. C’est la solution. Merci beaucoup :slight_smile:

Je me disais bien.

Mon automation en cas d’orage avait bien fonctionné il y’a 8 jours, et j’avoue que tes doutes m’ont fait douter :wink:

Par contre, en général on coche la « solution » sur le message qui l’a apporté :wink:

Ah oui c’est parfaitement logique. C’est la première fois que j’utilise ce bouton! Merci pour la solution. :wink:

1 « J'aime »