vinteo / hass-opensprinkler

OpenSprinkler Integration for Home Assistant
MIT License
208 stars 40 forks source link

Unable to install integration - Error: Config flow could not be loaded #246

Closed ToddCrimson closed 1 year ago

ToddCrimson commented 1 year ago

Hi, I just installed your OpenSprinkler integration using the manual method. I go into integration, I see the integration, but when I try to add it, it doesn't load. Gives the error in a dialog box stating:

ERROR - Config flow could not be loaded: <html><body><h1>504 Gateway Time-out</h1> The server didn't respond in time. </body></html>

And then in the Log File, I see the following

Unable to install package pyopensprinkler==0.7.7: WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f8600c11650>: Failed to establish a new connection: [Errno 101] Network unreachable')': /musllinux/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f85fe3d8bd0>: Failed to establish a new connection: [Errno 101] Network unreachable')': /musllinux/ WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f85fe3d83d0>: Failed to establish a new connection: [Errno 101] Network unreachable')': /musllinux/ WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f85fdd19b90>: Failed to establish a new connection: [Errno 101] Network unreachable')': /musllinux/ WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f85fdd0ec10>: Failed to establish a new connection: [Errno 101] Network unreachable')': /musllinux/ WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f85fdcf1790>: Failed to establish a new connection: [Errno 101] Network unreachable')': /simple/pyopensprinkler/ WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f85fe3e4350>: Failed to establish a new connection: [Errno 101] Network unreachable')': /simple/pyopensprinkler/ WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f85fdd69190>: Failed to establish a new connection: [Errno 101] Network unreachable')': /simple/pyopensprinkler/ WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f85fdd31050>: Failed to establish a new connection: [Errno 101] Network unreachable')': /simple/pyopensprinkler/ WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f85fdd30450>: Failed to establish a new connection: [Errno 101] Network unreachable')': /simple/pyopensprinkler/ ERROR: Could not find a version that satisfies the requirement pyopensprinkler==0.7.7 (from versions: none) ERROR: No matching distribution found for pyopensprinkler==0.7.7

Please help

EdLeckert commented 1 year ago

This is the second report of this issue. First was #245 (Closed). That was resolved by uninstalling/reinstalling hass-opensprinkler, but I suspect there was more to it than that. You might look at that thread for ideas.

Thanks for supplying the log--very useful. The Config flow is trying to load the pyopensprinkler dependency and is failing to reach the server. Looks like a network or proxy issue?

I'm reaching here, but have you tried a reboot of the HA server?

And just for fun, can you ping files.pythonhosted.org from the HA command line?

I was able to upgrade to pyopensprinkler-0.7.7 on a test machine a few minutes ago using:

pip install pyopensprinkler --upgrade

so it was accessible when I tried. (Just a test...I'm not suggesting you do that on HA.)

ToddCrimson commented 1 year ago

Ed thanks for the detailed response. Ok so if this integration is dependent on cloud in any way shape or form, it will not work for me then. I have a 100% offline HA setup, not because I want to, but because it is in a remote place. No data whatsoever, and this is why I've setup automation so when I'm not there, it just works.

So while locally everything will work, and I can access my opensprinkler over local browser too. There is no Internet connection.

So just to reconfirm, is this integration in any way dependent on the cloud / internet access?

I'm also going to check on #245 (thanks for the suggestion)

EdLeckert commented 1 year ago

If your HA server has no internet connection, then you don't need to look at #245...you've found the problem.

But, no, hass-opensprinkler is not cloud based. It just needs to connect to the OpenSprinkler controller during normal operation. However, like pretty much all integrations, it has dependencies, and those dependencies need to be downloaded during installation. So you either need to move the server to a place with a connection while installing or figure out how to manually install the dependencies, something that could be a bit of a nuisance.

The listed dependency in manifest.json is pyopensprinkler, which is the generic (non-HA) part that talks to the OpenSprinkler controller, per HA integration development policy. But there are other dependencies as well, and they all have dependencies. Would be best to take it home, get everything installed, and take it back to the remote site. It will be fine until you decide to upgrade.

ToddCrimson commented 1 year ago

Thank Ed,

Ok, now I understand. It is the dependency download. Hmmm... Do I need to bring the HA server and the Open Sprinkler down with me or just the HA server?

EdLeckert commented 1 year ago

You should be able to grab only the HA server.

I installed a fresh copy of HA on a test VM and copied hass-opensprinkler to an empty custom_components. I then went to Settings\Integrations, ADD INTEGRATION, and let it initialize. This is the point where "requirements" from manifest.json are downloaded.

When the configuration dialog came up, I pulled the DSL line to my router and restarted HA. I repeated the above to ADD INTEGRATION. This time there was no delay, since the "requirements" were already installed. I entered the local IP address and password for my OpenSprinkler controller, and it succeeded.

Good luck!

ToddCrimson commented 1 year ago

Thank you so much. I will drive up north this weekend, bring down the HA server to a local coffee shop. Sit down, update the OS etc and also the OpenSprinkler.

ToddCrimson commented 1 year ago

OH one more question. Do you know anything about how to integrate the lovelace JS card? I see the instructions, and I added that into the www/ folder, and then added the resource, but I don't see that card as being available in any of my dashboards

ToddCrimson commented 1 year ago

Nevermind, I figured it out. Ok I'll come back here and give an update once I make these changes over the weekend.

I really hope HA team and others figure out a method where installations as mine (albeit edge case), can be updated via USB sticks :)

EdLeckert commented 1 year ago

There will likely be a new version of hass-opensprinkler end of next week with some new features. No promises, since I'm not the owner. You can view recent pull requests on github to get an idea of what's coming.

Also, be sure to include http:// with your IP address during config. A port number is not necessary unless you have changed it, as 80 is the default.

ToddCrimson commented 1 year ago

Ahh thanks, I looked at the pull requests

EdLeckert commented 1 year ago

I really hope HA team and others figure out a method where installations as mine (albeit edge case), can be updated via USB sticks :)

Here are a couple of links to ponder. Note that installing Python packages on HA is not as simple as the example in the first article.

https://stackoverflow.com/questions/11091623/how-to-install-packages-offline

https://community.home-assistant.io/t/hassio-offline-installation/133885

In any case, if the "requirements" in manifest.json haven't changed, you should be able to update hass-opensprinkler without taking the server home. But eventually you'll want to upgrade HA itself, so maybe time it with a pyopensprinkler upgrade.

ToddCrimson commented 1 year ago

Thanks Ed,

Ok reporting back, successful installation and it works :) Just one annoying thing I noticed, that the integration brings up in HA, every 5 to 10 seconds Open Sprinkler updating its time from NTP server. That is a log hog, and just overpowers the logbook. So I just disabled that time update parameter. But otherwise it works great ...

ToddCrimson commented 1 year ago

I really hope HA team and others figure out a method where installations as mine (albeit edge case), can be updated via USB sticks :)

Here are a couple of links to ponder. Note that installing Python packages on HA is not as simple as the example in the first article.

https://stackoverflow.com/questions/11091623/how-to-install-packages-offline

https://community.home-assistant.io/t/hassio-offline-installation/133885

In any case, if the "requirements" in manifest.json haven't changed, you should be able to update hass-opensprinkler without taking the server home. But eventually you'll want to upgrade HA itself, so maybe time it with a pyopensprinkler upgrade.

Thank you, that helps understand the complication.

EdLeckert commented 1 year ago

Ok reporting back, successful installation and it works :)

Excellent! Glad it worked out in the end.

Just one annoying thing I noticed, that the integration brings up in HA, every 5 to 10 seconds Open Sprinkler updating its time from NTP server. That is a log hog, and just overpowers the logbook. So I just disabled that time update parameter. But otherwise it works great ...

Can you post a sample from the log?

ToddCrimson commented 1 year ago

I wish I could, I left, but it was the entity called "sensor.opensprinkler_current_time" Constant updates. So I check the firewall, and saw that opensprinkler itself pinged the NTP server every few seconds to keep in sync, that in turn updated the HA entity above.

EdLeckert commented 1 year ago

sensor.opensprinkler_current_time is something I added since the last release, so you must be using the latest from master, correct?

I know it gets updated a lot, but didn't realize the controller was pinging NTP constantly.

OK, you did say Logbook, and I read "Logs". Yes, that's a lot of static. I'll look into it.

EdLeckert commented 1 year ago

Just one annoying thing I noticed, that the integration brings up in HA, every 5 to 10 seconds Open Sprinkler updating its time from NTP server. That is a log hog, and just overpowers the logbook.

See #249 for solution.

vinteo commented 1 year ago

I think everything here has been resolved