Ambrogio lawn mover

Good morning,

First of all, thanks for the work in this integration!

Model; 4.36 Elite
Serial: AM043L

I was able to get these calls working last year, but have not been working on it since.

POST

  • command: method.exec
  • methods: border_cut, charge_until, work_until, keep_out, set_profile, trace_position

GET

  • command: location.history, cdp.connection.find, alarm.history, thing.find, counter.count

Question; will both integrations be developed further, or will there be a focus on either ha-ambrogio or ha-zsc-mower?

1 Like
  • Wiper KXL S

  • WI043L

  • Set Profile, Charge Until, Work Until, Border Cut

1 Like

Ambrogio L250i elite
AM250L
same commands as everyone else : Charge Until, Work Until, Border Cut

1 Like

Thanks for the replies!!! I start to implement the mapping - my guess seems to be confirmed. Very nice.

I am maintainer of both integrations and my goal is to maintain both in parallel as much as I can. It may be that both integrations will develop differently in the future.

Ambrogio Robot was created by the founder for Ambrogio Lawn Mowers. We are of course trying to specialize the integration here as much as possible for Ambrogio’s models.

ZCS-Mower I try to maintain open for all brands of Zucchetti. From this (very) gladly can arise forks, each specializing on Stiga, Wiper and Co.

1 Like

I miss for mapping…

… for Ambrogio:

  • AM095L
  • AM450B / AM450D

… for Stiga:

  • ST250D / ST250L

… for TECH line:

  • TH015D
  • TH095L
  • TH350L
  • TH450B / TH450D

… for Wiper:

  • WI015D
  • WI020D / WI020L / WI020P
  • WI025D / WI025L / WI029L
  • WI032D
  • WI035D
  • WI040B / WI040L
  • WI095L
  • WI250D / WI250L / WI250P
  • WI251L
  • WI350L
  • WI400B / WI400D
  • WI450D

… for unknown brand, maybe Wolf?:

  • OW250L / OW250P

Current mapping, you found here:

I rebuilt the config and options flow of my integration “zcsmower” today to lay the base for the features coming in the next few weeks.

With the update unfortunately come two breaking changes, so that the integration must be set up again.

Stiga ST250L = Autoclip 530SG

1 Like

Many new features, modifications and optimizations have been made:

The integration now also has a map camera - it is covered via a screenshot of a map service.
This means that the integration is now also compatible with the Lovelace-Xiaomi-Vacuum-Map-card:

This card is configured like this (adjust details in <>):

type: custom:xiaomi-vacuum-map-card
entity: vacuum.mower_<imei>
vacuum_platform: send_command
language: de
map_source:
  camera: camera.mower_<imei>_map
calibration_source:
  camera: true
map_locked: true
two_finger_pan: true
map_modes:
  - name: Start in zone
    icon: mdi:robot-mower
    selection_type: PREDEFINED_POINT
    service_call_schema:
      service: zcsmower.work_for
      service_data:
        device_id: <device_id>
        duration: 150
        area: '[[area]]'
    predefined_selections:
      - position:
          - 489
          - 272
        variables:
          area: 1
      - position:
          - 636
          - 400
        variables:
          area: 2
      - position:
          - 683
          - 589
        variables:
          area: 3
      - position:
          - 374
          - 584
        variables:
          area: 4
      - position:
          - 773
          - 889
        variables:
          area: 5
      - position:
          - 225
          - 151
        variables:
          area: 6

Which integration is in active development and shoud be used?

see my last post

@ufozone
Please, could you explain the Configure map camera dialog box ?
Path to the map image * → Map from Google. Path = ? I am successful with it if I put the capture file into /option, so the path in my case is /option/capture.png. But I don’t know if it is the best practice (I am new with HA).
Path to the mower location image. Same question for the path and above all i don’t understand what kind of image is expected. Could you explain with a sample image ?
Thanks for your job again, it is a real pleasure being able to manage the mower remotely as the native application from Ambrogio is a shame and its voice assitants add-ons are a full mystery.

Yes, you intuitively applied the best practice: You take a screenshot from Google Maps, for example. Save it with MS Paint as 24 bit PNG as map.png and put it into the directory /config/www/ of your HA Installation.
In the configuration of the integration you enter /config/www/map.png as path to the map.
Use Google My Maps to determine the coordinates of the upper left and lower right point.
Leave the path to the image of the robotic lawnmower blank. Then a generic marker will be displayed. I searched the internet for a picture of my mower with a transparent background and also saved it as a 24 bit PNG. This replaces the generic marker with the own robot, so it looks quite funny.

Some Ambrogio’s with transparent BG:
https://www.rgs-erlinger.at/produktseite/

I have set a picture for the mower but i don’t see it on the card.


Is it a problem with the file itself (pixels, size) ?

Is the icon into the red “circle” the picture for the actual mower position ? I looked below the sofa but didn’t see it :wink:
And when I click on the button (with the yellow “circle”), I’ve got the message “Sélection non fournie”. → Selection not provided. I am reusing your card sample, only changed imei and device_id

Throw out the point-start function. It currently confuses you more than necessary.

There can be several reasons why no marker is displayed:

  • The current coordinates are outside the field of view (inaccuracy of the GPS module).
  • The manufacturer API does not currently send GPS coordinates for your mower. The integration remembers the last coordinates until new ones are available - but with a restart of HA this “memory” is gone for the time being. Please start the mower briefly and use the “Find” function of the card and observe the attributes of the vacuum entity (the mower must be in working status).

Test the following:

  • Create a normal map card on a dashboard.
  • Select the device tracker entity of your mower.
  • As “hours to display” just enter 240.
  • If you don’t see a circle with the first letter of your robot name, then it currently has no coordinates from the API.
  • If you see a circle, it has received coordinates from the API. Turn on the debug log of the integration and look into the logs.

Example from me:

  • Two mowers in a map card.
  • The “blue” one has current coordinates. You can see the circle and its last locations.
  • The “purple” one has no coordinates. You can only see his last locations.

Hello

Here are 2 screenshots (2 HA running into 2 VM)



On both Openstreetmap, the Lt circle is correct, the mower is actually into its station.
But why on the Google maps (left pictures), the mower icon location is different, i don’t know.
This evening, I am updating your software, i’ll see tomorrow if there is any change. I am planning also to use an Android application to get the GPS coordinates from the location, not reading it from Google…
For the card; I did some cleaning

type: custom:xiaomi-vacuum-map-card
entity: vacuum.mower_IMEI_was_here
vacuum_platform: send_command
language: fr
map_source:
  camera: camera.mower_IMEI_was_here_map
calibration_source:
  camera: true
map_locked: true
two_finger_pan: true
map_modes:
  - name: Start in zone
    icon: mdi:robot-mower
    service_call_schema:
      service: zcsmower.work_for
      service_data:
        device_id: mydeviceid
        duration: 150

I will also move the png files to the suggested directory.
Regarding my previous post, what the error message selection not provided means?

In the first screenshot the location points are rotated exactly 180°. You have swapped the coordinates of the upper left corner and the lower right corner of the image in the Camera configuration of the HA instance. Please check your configuration.

The error message comes from the Lovelance Card. I can not give support for this, because it is not from me.

Please keep in mind that while your robot’s GPS module is fairly accurate, the manufacturer’s API truncates the GPS coordinates to six decimal places, which can introduce inaccuracy.

Rotated 180° : that’s right ! In fact, i was not satisfied from a first try, so I deleted the 1st point into Maps and recreated it, but I didn’t take care that into the exported csv , point 1 was no more on the first line. I was so much taking care of swapping the figures with latitude and longitude values from the csv.

Hi all,
a few additional questions:

  1. most of the time getting my mower online after sending WAKE UP post takes up to 2-3 minutes, is that normal/ what you’re experiencing?
  2. do you know how long the connection last once connected(in my experience a few minutes), and how long the sessionId is valid before calling for a new authentication?
  3. I’ve tried to find a way to find the level of the battery and status of the raining sensor from the status message but with no success, as far as you know is it there a way; may be is encoded in same way in config_flags value?
  4. Do you have a table with robot_state (i.e 1==charging, 2==working etc.), same question for robot_error values (i.e. 106== out of perimiter, XXX== robot lifted)?
    Thanks!!!
    Pietro

My mower is online after 15 to 25 seconds after wake up.

The Session ID is valid for at least 24 hours unless another device is using the same account. Therefore I use separate accounts for the mobile devices and also for the HA integration.

Battery level and status of the rain sensor can only be determined via Bluetooth and not via API. See Allow Setup using Firebase API as per Mobile App · Issue #28 · sHedC/homeassistant-ambrogio · GitHub

I mapped the values for Robot States and Error Codes in the entities of my HA integration according to the mobile app.

Hi!

Has anyone had similar problem like on the screen below:

The specified path to the file is invalid: absolute path is needed.

obraz

ha(2023.6 - docker)
ha-zcs-mower v0.8.1

the file obviously exists there and I added all the permissions to it but it still doesn’t work.