Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for L50 SES #42

Open
nworb-cire opened this issue Nov 24, 2023 · 10 comments
Open

Add support for L50 SES #42

nworb-cire opened this issue Nov 24, 2023 · 10 comments

Comments

@nworb-cire
Copy link

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
Copy link

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

@raman325
Copy link

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
Copy link
Author

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.

@MerekW
Copy link

MerekW commented Jan 28, 2024

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
Copy link

@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
Copy link
Owner

CodeFoodPixels commented Feb 17, 2024 via email

@spridgeon84
Copy link

@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
Copy link

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
Copy link

I've started work on L60, which might also work for L50
#85 (comment)

@maximoei
Copy link

maximoei commented Jul 30, 2024

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants