CodeFoodPixels / robovac

Add a Eufy RoboVac easily to Home Assistant
Other
147 stars 32 forks source link

Add support for L50 SES #42

Open nworb-cire opened 1 year ago

nworb-cire commented 1 year ago

I am seeing similar issues to what is described in #40. When my device is discovered, it only shows the sensor.robovac_battery entity with unavailable status. When I add the model number (T2275) to the L-series list in robovac.py, a vacuum.robovac entity appears, also with unavailable status.

Let me know if there is anything I can do to help with this; I am happy to provide any diagnostic information you need. Here is the manual, if it helps. Thanks for your work!

bmh54321 commented 12 months ago

+1 to this. Experiencing the same and would love support for this vacuum.

raman325 commented 11 months ago

here's the error:

Traceback (most recent call last):
  File "/config/custom_components/robovac/tuyalocalapi.py", line 753, in _async_handle_message
    response_data = await self.reader.readuntil(MAGIC_SUFFIX_BYTES)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/asyncio/streams.py", line 637, in readuntil
    raise exceptions.IncompleteReadError(chunk, None)
asyncio.exceptions.IncompleteReadError: 0 bytes read on a total of undefined expected bytes
nworb-cire commented 11 months ago

I have been doing a bit of sleuthing tonight. I have an incomplete grasp of what is going on, but wanted to record my current progress.

Here is a sample state dict from my vacuum:

{'151': True,
 '153': 'BhADGgIIAQ==',
 '156': True,
 '158': 'Standard',
 '159': True,
 '160': False,
 '161': 80,
 '163': 100,
 '164': 'MggGEAYaACIqCgYIh7SKqwYSBAgBEAEaCggBEgIYDhoCCH8qDhoMEgoKAggBEgAaACIA',
 '167': 'HQoFCOwnEDQSCQjUtgYQiAwYNhoJCNS2BhCIDBg2',
 '168': 'IgogCgIIHhICCB4aAggeKgIIHjoDCJgGoAHVgeSNj4fuzgE=',
 '169': '[redacted]',
 '173': 'EAoKMggKAggBEgIQARICCAE=',
 '176': 'EgoAGgIIAVIKCgASABoAIgIIAQ==',
 '177': 'DAjgo9Gn24LuzgFSAA==',
 '178': 'DQjDztmP24LuzgESAU4=',
 '179': 'DhIMIgoIHRABGOvax6wG'}

It appears that most or all of the key codes do not match what is defined in vacuum.py.

On first glance, I cannot find anything related to error codes. Setting this line to always be False allows me to see my vacuum in home assistant, although commands sent from HA to the vacuum appear to have no effect. I suspect there is a similar mapping mismatch on the receiving end. I will post an update when I next have some time to look into this.

MerekW commented 10 months ago

I am also seeing this issue (L50 without SES). Please let me know if I can assist in testing for a fix, and thank you for sharing your experience and expertise with us all!!

bmh54321 commented 9 months ago

@CodeFoodPixels are there any plans to add support for additional vacuums? I see there hasn't been a release on this project in 4 months

CodeFoodPixels commented 9 months ago

The main issue with adding more vacuums is that it doesn't seem as straightforward as just adding a new number with some of them. It's difficult for me to add a new vacuum when I can't test it. Happy for folks to contribute.

On Sat, 17 Feb 2024, 22:30 bmh54321, @.***> wrote:

@CodeFoodPixels https://github.com/CodeFoodPixels are there any plans to add support for additional vacuums? I see there hasn't been a release on this project in 4 months

— Reply to this email directly, view it on GitHub https://github.com/CodeFoodPixels/robovac/issues/42#issuecomment-1950455639, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABEPFVHSAIJX4FU3WUAOSJLYUEVOZAVCNFSM6AAAAAA7YSLRCSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNJQGQ2TKNRTHE . You are receiving this because you were mentioned.Message ID: @.***>

spridgeon84 commented 9 months ago

@CodeFoodPixels is there any way people with little coding experience can help contribute for integration of other models? I have an l35 Hybrid and with a little instruction would be happy to provide any log data or anything that might be helpful

I would love to be able to change the voice volume of this thing with home assistant!

Harm-Veraa commented 5 months ago

I have been doing a bit of sleuthing tonight. I have an incomplete grasp of what is going on, but wanted to record my current progress.

Here is a sample state dict from my vacuum:

{'151': True,
 '153': 'BhADGgIIAQ==',
 '156': True,
 '158': 'Standard',
 '159': True,
 '160': False,
 '161': 80,
 '163': 100,
 '164': 'MggGEAYaACIqCgYIh7SKqwYSBAgBEAEaCggBEgIYDhoCCH8qDhoMEgoKAggBEgAaACIA',
 '167': 'HQoFCOwnEDQSCQjUtgYQiAwYNhoJCNS2BhCIDBg2',
 '168': 'IgogCgIIHhICCB4aAggeKgIIHjoDCJgGoAHVgeSNj4fuzgE=',
 '169': '[redacted]',
 '173': 'EAoKMggKAggBEgIQARICCAE=',
 '176': 'EgoAGgIIAVIKCgASABoAIgIIAQ==',
 '177': 'DAjgo9Gn24LuzgFSAA==',
 '178': 'DQjDztmP24LuzgESAU4=',
 '179': 'DhIMIgoIHRABGOvax6wG'}

It appears that most or all of the key codes do not match what is defined in vacuum.py.

* I have 163 for battery level instead of 104.

* I have 158 for fan speed instead of 102.

* 161 is the speaker volume.

* 162 appears to be the voice language.

* 156 is auto return cleaning instead of 135.

* 157, 164 and 173 appear to be related to various settings.

* 169 contains the model number, firmware version, MAC address, serial number, and some other information which I am unable to decode at this time.

On first glance, I cannot find anything related to error codes. Setting this line to always be False allows me to see my vacuum in home assistant, although commands sent from HA to the vacuum appear to have no effect. I suspect there is a similar mapping mismatch on the receiving end. I will post an update when I next have some time to look into this.

Hi nworb. I am looking into this same issue except for the L60. Would you mind sharing how you found out these codes? The only thing I can think if is trial and error, but that does not really seem feasible as well. My current theory is that the data is encrypted. Would be best if it can be decrypted but otherwise a static map can me made maybe. Also, I think 179 is the status (cleaning), as for me it had 4 values when I ran the robot (cleaning, positioning, returning to base, charging).

maximoei commented 4 months ago

I've started work on L60, which might also work for L50 https://github.com/CodeFoodPixels/robovac/issues/85#issuecomment-2249935438

maximoei commented 4 months ago

I added the config for T2275 (L50), based on the L60 to the forked branch here: https://github.com/maximoei/robovac/tree/L60-support

Happy to hear if it works and if any of you can support bringing it back into the main branch here