#Yes, I'm on one.

1 messages ยท Page 1 of 1 (latest)

trim girder
#

Well.
Try at least to check whether mqtt server inside roomba is alive.
telnet <ip> 8883

Sometimes it just hangs.

peak frost
#

anxo@delphos:~$ telnet 192.168.1.46 8883
Trying 192.168.1.46...
Connected to 192.168.1.46.

#

It seems to be working correctly

trim girder
#

Good. It's alive, at least.

#

Then, try to connect without discovery at all:

python -m venv test_roombapy
source ./test_roombapy/bin/activate
pip install git+https://github.com/pschmitt/roombapy@cli#egg=roombapy[cli]
roombapy connect 192.168.0.100 -p <PASSWORD> # replace 192.168.0.100 with Roomba address, assuming you know password
#

(Don't forget to kill telnet session before)

peak frost
#

I had to add the BLID too, but it did connect.

#

{"state":{"reported":{"audio":{"volume":100},"batPct":100,"...

trim girder
#

Good. So, we got a working mqtt connection.

#

I understand that the robot cannot be configured in HA?

Try again and send me the logs.

peak frost
#

Yeah, to be specific: it shows up as "discovered", when I click "configure" it shows the correct ip, but when I click "send" it hands for a long while and then fails with "Unknown error occurred".
There doesn't seem to be anything on the HA Core logs... Is there anywhere else I should check?

trim girder
#

Nothing? Even on DEBUG level?

peak frost
#

I never tried debug level, give me a sec to figure it out and I'll check ๐Ÿ™‚

trim girder
#

The log severity level is warning if the logger integration is not enabled in configuration.yaml.

peak frost
#

2024-02-27 15:29:56.747 DEBUG (SyncWorker_17) [roombapy.discovery] Socket server started, port 5678
2024-02-27 15:29:56.747 DEBUG (SyncWorker_17) [roombapy.discovery] Message sent
2024-02-27 15:29:57.137 DEBUG (SyncWorker_17) [roombapy.discovery] Received response: b'{"ver":"4","hostname":"iRobot-B0E84A22DF4C4C7793BBC79707D5F271","robotname":"Aspi","robotid":"B0E84A22DF4C4C7793BBC79707D5F271","ip":"192.168.1.46","mac":"50:14:79:D5:E9:9D","sw":"sapphire+23.37.5+2023-10-17-5245d211fc3+Firmware-Production+165","sku":"j755840","nc":0,"proto":"mqtt","cap":{"binFullDetect":2,"addOnHw":1,"oMode":10,"odoa":7,"dockComm":1,"maps":3,"pmaps":10,"mc":2,"sem2umf":2,"tLine":2,"area":1,"eco":1,"multiPass":2,"pp":0,"edge":null,"team":1,"pose":2,"lang":2,"hm":0,"5ghz":1,"prov":3,"sched":2,"svcConf":1,"ota":2,"log":2,"langOta":0,"ns":1,"bleLog":1,"expectingUserConf":2,"idl":1},"freq":5500,"cloudConnState":14}', address: ('192.168.1.46', 5678)
2024-02-27 15:30:02.142 INFO (SyncWorker_17) [roombapy.discovery] Socket timeout

#

There are a few repetitions of this same group of messages.

trim girder
#

Well. It was fixed yesterday.

#

The thing is, the library successfully retrieves discovery data, but socket without proper cleanup screws up all its efforts.

peak frost
#

Yeah, I saw that .4 was supposed to fix it... but it doesn't seem to work here...

trim girder
#

Nope, it's different error.

#

To be honest, there is much more to fix.

#

The good thing is that there has been a lot of effort put into the prerequisites for further development and refactoring (such as testing, strict typing, and vice versa), so at least I can be more confident that refactoring will not break something else.

peak frost
#

Still, if the integration needs lots of refactoring, it will be lots of work ๐Ÿ˜Ÿ I'm a dev but I'm not fluent enough in Python to be of much help... but if there is anything I can help with, let me known

trim girder
#

Take, for example, the basic functionality of robot detection.
I don't know and can't know what kind of network people have, whether UDP is flowing between hosts, whether the robot will be able to respond in N seconds, and so on.
These are the edge cases that need to be fixed in the first place. Because from the point of view of an ideal world, the code somehow works.

peak frost
#

I see. I find it a bit strange because this network is quite stable, UDP should be working perfectly, and pings to the roomba are fast... but who knows what exact bordercase is making it fail ๐Ÿ˜ฆ

#

More logging will probably shed some light on it.