Mammotion Flora i Home Assistant — Hvad der faktisk virker

GPS-klipning uden perimeterkabel, vejrbevidst tidsplan via HA, og satellitantal-sensoren ingen advarer dig om. Et ærligt kig efter flere måneders brug.

#mammotion #plæneklipper #home-assistant #anmeldelse
10. januar 2025
Mammotion Flora i Home Assistant — Hvad der faktisk virker

Min Husqvarna 213C kørte i årevis uden nogensinde at have det mindste at gøre med Home Assistant. En ridende plæneklipper gør det ikke — man sætter sig op, kører, og så er det det. Hvis det regnede, aflyste jeg selv. Var jeg væk, ventede plænen.

Det var der egentlig ikke noget dramatisk ved. Bare irriterende nok til at jeg til sidst skiftede.

Jeg erstattede den med en Mammotion Luba Mini 2 (jeg kalder den Flora) for ca. et år siden. Primært fordi den har en rigtig HA-integration. Her er hvad jeg har fundet ud af efter et år med den.

Opsætning

Flora bruger GPS + RTK til navigation — intet perimeterkabel. RTK-korrektioner leveres af iNav NetRTK over 4G. Jeg droppede den fysiske RTK-basestation i haven til fordel for Network RTK, som sender korrektionsdata via mobilnettet og Mammotions cloud. Ingen antenne på taget, intet kabel ud i haven. Prisen er, at hvert positionstjek gør en tur via internettet — og det viser sig at have større betydning, end man umiddelbart tror. Mere om det under “Hvad der er træls”.

Grænsen tegnes i Mammotion-appen én gang, og derefter holder klipperen sig inden for koordinaterne. Vision-modulet er et lille kamera på kroppen der registrerer forhindringer.

Flora efter en tur i haven

Flora klarer hele 1.000 m² selv. Intet nedgravet kabel, ingen kortlægningstape, ingen plastikpinde der markerer forbudte zoner. Tegn grænsen én gang i appen — hun klarer resten ved hvert eneste klip, arbejder sig rundt om træer, dammen og hvad der ellers er endt på plænen.

Installation: HACS → søg Mammotion → godkend med din konto. Derefter dukker disse op:

lawn_mower.flora
sensor.flora_battery
sensor.flora_satellites_robot   — den vigtige, se nedenfor
sensor.flora_wifi_rssi

Satellitantal-sensoren

sensor.flora_satellites_robot er den mest nyttige entitet integrationen eksponerer. Og det er den ingen taler om.

Under ca. 10 aktive satellitter begynder GPS-positioneringen at vakle. Klipperen stopper ikke — den tøver bare ved grænsekanterne og kryber sommetider lidt ud mod hækken. Jeg opdagede det ved at se den opføre sig underligt på overskyede morgener og til sidst sammenstille det med lave satellitantal.

Jeg har sat en card_mod-farvetærskel på chippen: grøn over 12, orange 8-12, rød under 8. Nu kan jeg med et blik se om forholdene er gode inden den planlagte start.

Erstatning af app-tidsplanen

Mammotion-appens planlægger gør én ting: kør klipperen på faste tidspunkter på faste dage. Den har ingen vejrbevidsthed.

Jeg erstattede den med HA-hjælpere — én input_boolean per ugedag, én input_number til timen:

input_boolean.flora_mandag ... flora_sondag
input_number.flora_starttidspunkt   (7-20, step 0.5)

Automatiseringen tjekker hver time:

alias: Flora — Kør efter tidsplan
trigger:
  - platform: time_pattern
    minutes: "0"
condition:
  - condition: template
    value_template: >
      {% set day_map = {
        0: 'mandag', 1: 'tirsdag', 2: 'onsdag',
        3: 'torsdag', 4: 'fredag', 5: 'lordag', 6: 'sondag'
      } %}
      {{ is_state('input_boolean.flora_' ~ day_map[now().weekday()], 'on') }}
  - condition: template
    value_template: >
      {{ now().hour == states('input_number.flora_starttidspunkt') | int(0) }}
  - condition: not
    conditions:
      - condition: state
        entity_id: weather.forecast_home
        state: [rainy, pouring, snowy, lightning-rainy]
action:
  - service: lawn_mower.start_mow
    target:
      entity_id: lawn_mower.flora

Dashboardet er en række til/fra-kontakter, én per dag. Man kan se præcis hvad tidsplanen er og ændre den uden at åbne nogen app. Det alene var migreringen værd.

Dashboard

custom:lawn-mower-card (HACS) viser en grafik af klipperen med batteriniveau. Mushroom chips nedenunder med telemetri:

- type: custom:mushroom-chips-card
  chips:
    - type: entity
      entity: sensor.flora_battery
      icon: mdi:battery
    - type: entity
      entity: sensor.flora_satellites_robot
      icon: mdi:satellite-variant
    - type: entity
      entity: sensor.flora_wifi_rssi
      icon: mdi:wifi

Vision-modulet

Pindsvin. Det er det første folk spørger om i Danmark, og svaret er ja — Vision-modulet stopper for dem.

Det stopper også for en glemt haveslange, havemøbler og én gang for en skygge fra en flagstang på et bestemt tidspunkt på en eftermiddag. Den fejltagelse tog mig et stykke tid at gennemskue. Klipperen stoppede kl. 16.30 hver solrig dag, rapporterede ingen forhindring og kørte videre efter et minut. Det var skyggevinklen. Modulet reagerer på kontrast-mønstre, ikke kun fysiske objekter.

Mammotion har forbedret dette i firmware-opdateringer. Det er for det meste fint nu.

Der er ingen HA-sensor for Vision-modul-hændelser, så jeg kan ikke automatisere på dem. Det er en reel mangel.

Floras Vision-modul efter hardwarefejlen

Dette forår, da jeg tog Flora ud af værkstedet efter hendes første vinter i opbevaring, var Vision-modulet gået i stykker. Ikke gradvis forringelse — der havde dannet sig fugt inde i det ene kameraobjektiv over vinteren, det kan man se på billedet. Det holdt simpelthen op med at se noget.

Jeg kontaktede Mammotion support og forventede den sædvanlige troubleshooting-runddans — indsend en sag, send billeder, vent, send de samme billeder igen. Sådan gik det ikke. De diagnosticerede problemet klart og hurtigt, kommunikerede professionelt i hele forløbet og sendte et nyt modul inden for et par dage, uden diskussion. Det der stak ud var opfølgningen: de vendte tilbage efter erstatningsmodulet var ankommet for at høre, om alt kørte som det skulle. Den slags efterkøbskontakt er sjælden fra hardwarebrands, og det gjorde en reel forskel.

Modulet kan altså fejle. Vinterpause og fugtdannelse er en kombination, man skal have i baghovedet. Men fejler det, er du i gode hænder.

Hvad der er træls

Integrationen har en latens-udfordring. Kommandoer tager 30-60 sekunder at slå igennem. Jeg troede længe, det bare var et langsomt API. Efter at have kørt Flora på 4G Network RTK i en hel sæson tror jeg, forklaringen er mere strukturel: Floras hele navigationsloop kører via Mammotions cloud. Hvert RTK-korrektionssignal rejser over 4G til deres servere og tilbage ved hvert enkelt positionstjek. Cloud-API’et er allerede under konstant belastning blot for at holde hende på ret kurs — HA’s statustjek må vente i den kø. Det er ikke en fejl, det er arkitekturen.

Det er stadig irriterende på dashboardet. Mit workaround er et lille script, der sender start_mow og tvinger et entity-refresh fem sekunder efter — nok tid til at kommandoen er registreret, hurtigt nok til at dashboardet ikke sidder og ser forkert ud:

alias: Flora — Start og opdater
sequence:
  - service: lawn_mower.start_mow
    target:
      entity_id: lawn_mower.flora
  - delay:
      seconds: 5
  - service: homeassistant.update_entity
    target:
      entity_id: lawn_mower.flora

“Robot out of task area”-fejlen sker stadig periodisk, altid ved no go-zonerne rundt om blomsterbedene. Min oprindelige teori var ren multipath — GPS-signaler der kastes af de hævede bede. Efter en hel sæson med at observere det tror jeg, det er en kombination: multipath skaber et øjebliks positionsusikkerhed, og 4G-latens forhindrer RTK-korrektionen i at nå frem hurtigt nok til at opklare det. Når signalet bouncer af et højbed, har Flora brug for en øjeblikkelig korrektion for at bekræfte, hun er inden for grænsen. Har mobilnettet et mikro-dyk i ping præcist i det sekund, når korrektionen ikke frem i tide og hun stopper. To problemer der rammer samtidig og gør hinanden værre.

Den reelle mangel er, at der ingen error code-sensor er i integrationen. Ingen push-besked, når hun har stået fastlåst i haven i 20 minutter — jeg er nødt til at åbne Mammotion-appen for at opdage, at noget er galt. Indtil den sensor findes, kører jeg denne automatisering:

alias: Flora — Advarselsbesked ved pause
trigger:
  - platform: state
    entity_id: lawn_mower.flora
    to: "paused"
    for:
      minutes: 10
action:
  - service: notify.mobile_app
    data:
      title: "Flora er stoppet"
      message: "Flora har stået på pause i 10 minutter — tjek haven."

Primitiv, men den virker. Hun er enten fastlåst eller færdig tidligere end planlagt — begge dele vil jeg gerne vide.

Initial opsætning af grænsen kræver appen — ingen vej uden om. Når det er gjort én gang behøver du aldrig appen igen. Men du behøver den den første gang.

Alt i alt: mere end det hele værd. Flora er mere internet-afhængig end noget haveredskab jeg nogensinde har ejet — 4G-afhængigheden stikker dybere end man umiddelbart forventer — men jeg er oprigtigt vild med hende. Hun er en del af smart-hjemmet nu, og det er svært at give afkald på, når man først har prøvet det.