naofireblade / homebridge-neato

A Neato vacuum robot plugin for homebridge.
MIT License
69 stars 18 forks source link

Accessories disappear then reappear #44

Open ifeign opened 4 years ago

ifeign commented 4 years ago

I've noticed that lately every few days all Neato accessories disappear only to reappear after restarting Homebridge. They reappear in the wrong room and I have to set up all my scenes involving Neato all over again. So far it's happened twice this week. I don't see anything in the logs but I'll look harder and update here if I find something relevant

Krocko commented 4 years ago

I have the same. It happens if the internet connection get lost. Then all zone accessories disappear from the home app. If the internet connection is there again and i restart the homebridge, all zone accessories will be added again.

ifeign commented 4 years ago

When your zone accessories reappear, do they end up in a different room? Mine always reappear in the same room as my Homebridge hub instead of the separate Neato room I created.

Krocko commented 4 years ago

Yes, they are all in the standard room.

ifeign commented 4 years ago

It happened again yesterday after I added a new plugin to my config, except this time it was worse. Now that I’m on iOS 13 it changed the names of everything to “[robot name] - [zone name]” instead of “clean the [zone name]”

Edit: now they’ve just disappeared. I haven’t changed anything, I opened my Home app this morning and the zones are gone.

naofireblade commented 4 years ago

Ok I understand that the accessories reappear in a different room after restarting homebridge. Do they disappear as well after restarting homebridge or while it is running?

ifeign commented 4 years ago

There have been a few occasions where they disappear while homebridge is running. Most of the time they survive a reboot, but they reset after any changes are made to homebridge, probably to do with the cache being cleared.

On Sat, Sep 14, 2019 at 1:48 PM Arne notifications@github.com wrote:

Ok I understand that the accessories reappear in a different room after restarting homebridge. Do they disappear as well after restarting homebridge or while it is running?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/naofireblade/homebridge-neato/issues/44?email_source=notifications&email_token=AHWLHYDBUB37NHKYWENCAWLQJVEYRA5CNFSM4ITITHZ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6XD3MQ#issuecomment-531512754, or mute the thread https://github.com/notifications/unsubscribe-auth/AHWLHYA5US4LJO3KUIVZ6B3QJVEYRANCNFSM4ITITHZQ .

naofireblade commented 4 years ago

I will read into the caching of homebridge. In previous versions of my plugin, homebridge just crashed when the neato servers were not available. In the current version, I catch these problems but the result is, that I get no robots if the neato server is offline.

An easy alternative would be to add the robots manually to the homebridge config as accessories, but I don't want to burden the users with that additional step, so I need to find another way.

ifeign commented 4 years ago

Thanks for looking into it. I have an idea for a sloppy fix, but it'd only work for iOS 13 and up. If you can make the switches appear as a grouped accessory, then even if they do appear in the wrong room it'd be easy to move everything over to the right place in one go. Currently all the robot functions except the zones are grouped.

naofireblade commented 4 years ago

The zones are not grouped on purpose to be able to sort them into different rooms.

I‘m currently beta testing a new release with @ DJay-X that reduces the API calls massively which should stop the connection problems with the resulting drop in/outs.

A definite solution will be adding a cache, I‘m still looking into that.

ifeign commented 4 years ago

This has happened several times this week. First time was after a power outage, second I have no idea

JamieWhite commented 4 years ago

@naofireblade any chance of getting access to that beta? I’ve been experimenting with a HomeKit automation that triggers Neato when I leave the house but due to the deleting and readding the shortcut loses reference to the robot and can’t run it.

Not having a JavaScript background I’ve been trying to slowly figure out how to hack the caching in myself (or don’t delete and re add) but admittedly it’s a slow process 😄

naofireblade commented 4 years ago

Hi, sorry to hear that. The beta to reduce the number of API calls was already released in v0.7.0 (current ist v0.7.2). I had no time yet to start working on a cache to store the devices despite connection problems.

ifeign commented 4 years ago

I just wanted to check in about this. Everything reset again because my router updated its firmware today. I understand you have time constraints, but when you do get a chance to work on things again, this is a pretty major bug

mtressl commented 4 years ago

+1 for a fix to the zones problem.

alecc131 commented 4 years ago

+1!

alecc131 commented 4 years ago

Another nudge here. Would really love for the accessories to cache!

Let me know if there’s anything I can do to support / fast track this development.

ifeign commented 3 years ago

It would be ideal to add cached accessories. I’d rather go in and manually delete the the cache when things change (like adding or removing a zone) than the current behavior

jlg89 commented 3 years ago

I'm seeing the same behavior here. When the plugin can't reach the Neato servers, the accessories disappear from HomeKit, and when they reappear they're treated as new accessories, so they end up in the default room with default settings. Standard behavior should probably be something like, if the Neato server can't be reached, the plugin keeps the cached accessory config as-is until server connection is available (so the accessory would remain in HomeKit but show as "no response"), then checks the cached config against whatever is received from the Neato server, making any necessary adjustments at that point.

alecc131 commented 3 years ago

Any update here? I keep experiencing this problem

JamieWhite commented 3 years ago

From what I can tell we need to copy this template https://github.com/homebridge/homebridge-plugin-template/blob/18a88dd8dc6390ce5c408def6bf7ba45d6f4a789/src/platform.ts#L11

Making a class that implements DynamicPlatformPlugin. There's a function configureAccessory(accessory: PlatformAccessory) { that homebridge calls with the cached accessories. You then assign that to a property on the class.

Next step when recreating out accessories we need to check which ones exist already and don't recreate. In the sample it's done here https://github.com/homebridge/homebridge-plugin-template/blob/18a88dd8dc6390ce5c408def6bf7ba45d6f4a789/src/platform.ts#L78

Im trying to play around but Im a complete Javascript noob.

naofireblade commented 3 years ago

Working on this right now. I have to convert the plugin to typescript and dynamic platform. I will report back here when a beta is available.

naofireblade commented 3 years ago

Good news, I got the dynamic platform working and robots no longer disappear. I still have some work to do to move all the functionality to typescript and improve some stuff.

JamieWhite commented 3 years ago

Good news, I got the dynamic platform working and robots no longer disappear. I still have some work to do to move all the functionality to typescript and improve some stuff.

You should setup a patreon or some way to donate. Ive literally spent days trying to figure this out but not been a JS dev I really struggled. I'd love to buy you a beer.

ifeign commented 3 years ago

Good news, I got the dynamic platform working and robots no longer disappear. I still have some work to do to move all the functionality to typescript and improve some stuff.

You should setup a patreon or some way to donate. Ive literally spent days trying to figure this out but not been a JS dev I really struggled. I'd love to buy you a beer.

Agreed! Many plugins now have a donate option that shows up if you use Homebridge UI X

naofireblade commented 3 years ago

You should setup a patreon or some way to donate. Ive literally spent days trying to figure this out but not been a JS dev I really struggled. I'd love to buy you a beer.

I have a BuyMeACoffee profile. I will add the donation link to homebridge, when the next release of the plugin gets verified.

naofireblade commented 3 years ago

I published version 1.0.0-beta.2 . Some TODOs remain until the final release.

You can install the beta with npm install -g homebridge-neato@beta

Changelog:

1.0.0-beta.1

TODO until 1.0.0 release

naofireblade commented 3 years ago

The code for the beta can be found here: https://github.com/naofireblade/homebridge-neato/tree/dynamic-platform

ekke1 commented 3 years ago

The good news is: the beta version (1.0.0 beta.2) is now creating at least one robot, but is still missing the second one: I would love to have both robots back ;-)

May 4 20:54:12 Rasp4 homebridge[5279]: [04/05/2021, 8:54:12 pm][NeatoVacuumRobot] Neato account has 2 robot s May 4 20:54:12 Rasp4 homebridge[5279]: [04/05/2021, 8:54:12 pm] [NeatoVacuumRobot] Error getting robot meta information: Error: Request failed with status code 404: null May 4 20:54:13 Rasp4 homebridge[5279]: [04/05/2021, 8:54:13 pm] [NeatoVacuumRobot] [Sauger1] Robot created

naofireblade commented 3 years ago

Thanks for testing! Is the second robot connected to the internet? Can you install beta.3 and run homebridge in debug mode and post the output to help identify the problem?

ekke1 commented 3 years ago

I installed the new beta and indeed the snd robot was disconnected from the WiFi - THX for bringing this up! All working fine now!!!!

On May 5, 2021, at 10:36 AM, Arne @.***> wrote:

Thanks for testing! Is the second robot connected to the internet? Can you install beta.3 in debug mode and post the output to help identify the problem?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/naofireblade/homebridge-neato/issues/44#issuecomment-832515785, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOPG6A25HZ6JTYXX2MYSS4DTMD7R7ANCNFSM4ITITHZQ.

naofireblade commented 3 years ago

Alright, can u disconnect the robot again, restart homebridge and see if the robot still exists there? That would be cool.

ekke1 commented 3 years ago

I did - working!

On May 5, 2021, at 12:02 PM, Arne @.***> wrote:

Alright, can u disconnect the robot again, restart homebridge and see if the robot still exists there? That would be cool.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/naofireblade/homebridge-neato/issues/44#issuecomment-832567049, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOPG6A7SX23PZOAPAOE7GO3TMEJSTANCNFSM4ITITHZQ.

DJay-X commented 3 years ago

@naofireblade Thanks for your work. Meanwhile I was also able to install the latest beta.6 Start of the homebridge works and the log is looking good I think. Not much, but no error.

[13.5.2021, 09:47:02] Loaded plugin: homebridge-neato@1.0.0-beta.6
[13.5.2021, 09:47:02] Registering platform 'homebridge-neato.NeatoVacuumRobot'
[13.5.2021, 09:47:09] [NeatoVacuumRobot] Initializing NeatoVacuumRobot platform...
[13.5.2021, 09:47:14] [NeatoVacuumRobot] Neato account has 1 robot
[13.5.2021, 09:47:14] [NeatoVacuumRobot] Plugin Cache has 1 robot
[13.5.2021, 09:47:14] [NeatoVacuumRobot] [Neato D7] Cached robot found in Neato account.
[13.5.2021, 09:47:14] [NeatoVacuumRobot] [Neato D7] Connecting to cached robot and updating information.
[13.5.2021, 09:47:17] [NeatoVacuumRobot] [Neato D7] Performing background update
[13.5.2021, 09:47:17] [NeatoVacuumRobot] [Neato D7] Successfully loaded robot from cache
[13.5.2021, 09:47:17] [NeatoVacuumRobot] [Neato D7] Background update done. Next update in 30 minutes.
[13.5.2021, 09:47:17] [NeatoVacuumRobot] [Neato D7] Options loaded from cache eco: true, noGoLines: true, extraCare: false

But am I doing something wrong? In Eve App the Robot is not showing up at all. In Home App only as one single tile "House" which is not supported in any way. Not switches, no Dock (Anwesenheit).

Napkin 13 05 21, 8 27 49 AM

{
            "email": "mail@mail.com",
            "password": "xxxx-xxxx-xxxx",
            "language": "de",
            "prefix": true,
            "backgroundUpdate": 30,
            "services": [
                "clean",
                "cleanZone",
                "cleanSpot",
                "goToDock",
                "dockState",
                "binFull",
                "eco",
                "schedule",
                "findMe",
                "battery"
            ],
            "platform": "NeatoVacuumRobot"
        },
ekke1 commented 2 years ago

Hi, is there a desire to get the new D8 also working with the plugin?

KR Ekke

On May 5, 2021, at 6:14 PM, Ekkehard Schuetz @.***> wrote:

I did - working!

  • syslog spits out an error that it can’t be reached, but it’s still in the accessories pane!

On May 5, 2021, at 12:02 PM, Arne @. @.>> wrote:

Alright, can u disconnect the robot again, restart homebridge and see if the robot still exists there? That would be cool.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/naofireblade/homebridge-neato/issues/44#issuecomment-832567049, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOPG6A7SX23PZOAPAOE7GO3TMEJSTANCNFSM4ITITHZQ.

GitHubGoody commented 2 years ago

@naofireblade I recently installed Homebridge. My Neato vacuum keeps moving back to the default room as originally mentioned in this issue. I'm on v0.7.3 of your plugin.