andyb2000 / HACS-husqvarna_automower_ble

HACS custom component for husqvarna_automower_ble
13 stars 3 forks source link

Flymo Easilife Go #8

Closed lasry1 closed 3 months ago

lasry1 commented 3 months ago

Hi,

does this work for the Flymo Easilife Go? The one that only has bluetooth and has a Flymo app but is part of the Husqvarna group/design

let me know as i tried and it didn’t work, i don’t know if it’s because of the integration or my BT proxy which i had already installed and running but only with passive BT connections even though i have the active set to on

thank you

andyb2000 commented 3 months ago

Hi, I have the Flymo Easilife Go 500 and via bluetooth (BLE) it works to a degree, not 100% reliable but it will pair and send data back (mow and control commends don't work) - This HACS add-on uses Alistair's automower BLE application (https://github.com/alistair23/AutoMower-BLE/) so anything supported there is supported by this HACS add-on.

There is an ongoing issue I have that we're trying to work on to further support it: https://github.com/alistair23/AutoMower-BLE/issues/53

lasry1 commented 3 months ago

It doesn’t seem to find it. I get some errors through the error log. Could you guide me on how to continue?

your integration doesn’t have any text when i add it so i just add the mac address and then another sign appears with nothing but the bottom to proceed and after that it adds it with errors

Logger: automower_ble.mower Source: custom_components/husqvarna_automower_ble/config_flow.py:70 integration: Husqvarna Automower BLE (documentation, issues) First occurred: 17 July 2024 at 12:17:30 (8 occurrences) Last logged: 17:38:04

could not find device with address 'hola' [Characteristic] 98bd0003-0b0e-421a-84e5-ddbf75dc6de4 (Handle: 14): Unknown (read,notify), Error: Bluetooth GATT Error address=60:98:66:FB:8D:6F handle=14 error=5 description=Insufficient authentication [Characteristic] 98bd0003-0b0e-421a-84e5-ddbf75dc6de4 (Handle: 14): Unknown (read,notify), Error: Bluetooth GATT Error address=60:98:66:FB:8D:6F handle=14 error=15 description=Insufficient encryption

Logger: homeassistant.config_entries Source: config_entries.py:586 First occurred: 17:36:40 (2 occurrences) Last logged: 17:38:12

Error setting up entry Husqvarna Automower for husqvarna_automower_ble Traceback (most recent call last): File "/usr/src/homeassistant/homeassistant/config_entries.py", line 586, in async_setup result = await component.async_setup_entry(hass, self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/config/custom_components/husqvarna_automower_ble/init.py", line 48, in async_setup_entry model = await mower.get_model() ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/automower_ble/mower.py", line 282, in get_model return self.response.decode_response_device_type(response) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/automower_ble/response.py", line 78, in decode_response_device_type return MowerModels[(data[19], data[20])]


KeyError: (30, 3)

I don’t really need to send commands but once I successfully integrate it, i will look into it to see i can add something to the issue.

For me, having the status is what i would love . To have HA alert me if an error shows up!

Thank you!
andyb2000 commented 3 months ago

Hi, I spot the problem in your logs there:

[Characteristic] 98bd0003-0b0e-421a-84e5-ddbf75dc6de4 (Handle: 14): Unknown (read,notify), Error: Bluetooth GATT Error address=60:98:66:FB:8D:6F handle=14 error=5 description=Insufficient authentication

So it is correctly seeing your mower on MAC 60:98:66:FB:8D:6F but it's failing the pairing, you often have to do this a few times until it works.

Make sure you followed this part of the install guide:

BEFORE you enter the MAC address, power off your mower. Then power it back on and enter the physical PIN (if required). The mower goes into bluetooth pairing mode for up to 2 minutes which you need for this initial connection. Now enter the MAC address for your mower. Wait for it to add/search.

And keep reloading/restarting the integration until it pairs correctly for the first time, once that happens it should remain paired, the key is to fully power off your Easilife Go. On mine, I hold power off button for about 5-10 seconds, it'll briefly flash then go completely off. Then hold power button again, wait for it to power on and the lights will all be flashing waiting for your PIN, press the 4 keys in your pin sequence, then tell the Home Assistant integration to reload and see if it pairs then.

I'm going to put a PR into the upstream (the automower_ble library) to handle the KeyError more gracefully.

andyb2000 commented 3 months ago

Actually, I just spotted another issue.

The library isn't the newest, so your model (Easilife go) isn't in the models array, this is seen by:

return MowerModels[(data[19], data[20])]
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
KeyError: (30, 3)

(30,3 is one of the easilife models)

I'm going to push an update to my HACS repo to update the library version in use.

lasry1 commented 3 months ago

Great thank you very much for your help, i will try this afternoon when i'm back at home and report back

andyb2000 commented 3 months ago

Unfortunately, until the underlying library is updated to reflect the new models you won't be able to update and test.

https://pypi.org/project/automower-ble/#history

Is what we need to wait to be updated to reflect the recent changes to the library.

lasry1 commented 3 months ago

Fair enough, i actually don't understand where this repository takes the information from alistair23 / AutoMower-BLE repository but i can see on the models.py the 30,3 listed on his repository.

((30, 3), ModelInformation("Flymo", "Easilife Go Unknown (30,3)")),

Will it work if i change your repo HACS-husqvarna_automower_ble/custom_components/husqvarna_automower_ble /init.py on line 48

model = await mower.get_model()

and change it for:

model = await mower.get_model() except KeyError: model = "Easilife go 150"

Took this idea from https://github.com/alistair23/AutoMower-BLE/issues/55#issuecomment-2133905140

andyb2000 commented 3 months ago

Hi, I believe I have worked around this now, I've changed the manifest in my hacs integration to use the development git library rather than the python pipi library, so if you update my HACS integration it should pull the latest library in and use that along with other bugfixes.

(BTW, yes the change to add the 30,3 model in would work but there are other library changes that I'd not taken into account)

lasry1 commented 3 months ago

Hello Andy,

That's great thank you again! I don't seem to get the update through my HA HACS on your repo. Will it be installed correctly if I re-install it?

I also tried accessing /usr/local/lib/python3.12/site-packages/automower_ble/ as you added on the readme but i haven't got a python3.12 folder in /usr/local/lib/

andyb2000 commented 3 months ago

I'd guess you're on a different python version depending on which home assistant version you're on.

Take a look /usr/local/lib/pythonX.XX/ for your python version.

I forgot to push a release to my master repo which is why hacs wont have spotted it, I'll do that now.

lasry1 commented 3 months ago

I can see the update now, thanks! I actually updated it and restarted home assistant and i can see my Flymo now!! I didn't even pair it again as i'm at work and the mower isn't with me 😂 You're an absolute star!

Screenshot 2024-07-19 at 13 18 22

I think you may be using docker? I'm using HASS OS on an Intel machine and If i go through the terminal or access through ssh i can only see a couple of fileswithin /usr/local/lib/ ( libjemalloc.so and libjemalloc.so.2 ) 🤷‍♂️

andyb2000 commented 3 months ago

great news, I'll close this for now. Thanks for the feedback

reidjr2 commented 3 months ago

Realise this was closed, but can I just check 2 things? I have the easylife 150, which after much faffing ( at my end) I can now get status, which is great. However none of the commands work/ lead to [automower_ble.mower] Response failed validation.

I wasnt clear from this issue, and https://github.com/alistair23/AutoMower-BLE/pull/64#issue-2358103864 whether I should now expect the commands to work.

Thanks for this work, my robot lawnmower and homeassistant are two of my favourite things :-)

lasry1 commented 3 months ago

none of the commands work yet. Just the status of sensors and they keep disconnecting and unavailable every few minutes. This repo is a work in progress see the link below:

https://github.com/alistair23/AutoMower-BLE/issues/53

reidjr2 commented 3 months ago

none of the commands work yet. Just the status of sensors and they keep disconnecting and unavailable every few minutes. This repo is a work in progress see the link below:

alistair23/AutoMower-BLE#53

Thanks for the clarification. Happy to help with any testing if it adds any value.

The second of the two things I forgot to ask ! Can you pair both the app and homeassistant at the same time ? Or do you need to re-pair whenever you want to use the app/homeassistant ?

lasry1 commented 3 months ago

i'm happy to help too but i'm not familiar with BT (sniffing and debugging) and the only android phone i have laying around it's from the prehistoric. 😆 but i'm extremely grateful and this is enough for me triggering an alert if an error happens for now

I struggled when i wanted to mow on a day it wasn't scheduled to do it... i had to disable the integration, wait a bit and then connect again with my phone... After enabling the repo, i didn't have to pair the unit again but i struggled to connect to it again. I don't know what happened and more testing is needed as my solution was to reinstall the code on the BT Gateway (essentially to reboot the ESP32 but it's my lazy way of doing it)

reidjr2 commented 3 months ago

https://github.com/alistair23/AutoMower-BLE/issues/53#issuecomment-2254270144

Its working now for me

lasry1 commented 3 months ago

did you get it working with this repo or modifying Alastair's?