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

Python HomeKit update script cannot find Shelly device on network... #1389

Open
thynkgit opened this issue May 19, 2024 · 20 comments
Open

Python HomeKit update script cannot find Shelly device on network... #1389

thynkgit opened this issue May 19, 2024 · 20 comments

Comments

@thynkgit
Copy link

Hi,

I have been trying to upgrade my Shelly firmware to add HomeKit visibility. When I run the script Python cannot see my device, but it can be seen when I look at my router. I have been trying to give myself a crash course in Python to determine what the problem could be with the script.

Could someone please assist with finding the cause of the script not detecting my device?

Thanks!

@markirb
Copy link
Collaborator

markirb commented May 20, 2024

The thing you leave out: What is the device you are trying to discover/flash?

@thynkgit
Copy link
Author

My device is the Shelly Plus 1.

@markirb
Copy link
Collaborator

markirb commented May 20, 2024

Might be network configuration issues. Why not flash it via Web?

@thynkgit
Copy link
Author

I tried that method way back when I first started the process. It didn't work for me, so I moved on to Python and dug in with that method. I understand more now, so I may have better results using the URL.

@markirb
Copy link
Collaborator

markirb commented May 21, 2024

Which firmware are you on? newer stock fws can only be upgraded from latest beta see release section

@thynkgit
Copy link
Author

I'm on version 1 of the stock firmware. I'm trying to update to the HomeKit firmware version 2.11.2.

@thynkgit
Copy link
Author

I first tried updating it from the device's web UI, but it didn't work.

@markirb
Copy link
Collaborator

markirb commented May 21, 2024

@thynkgit
Copy link
Author

When I use the web (URL) method, what should the format of the URL be besides the device IP address and the file's directy location?

@thynkgit
Copy link
Author

Sorry... that was 'file's DIRECTORY location'.

@thynkgit
Copy link
Author

Okay. When you mentioned stock firmwares and beta, I thought you were referring to Shelly's firmware. I'll use the link that you sent.

@mringwal
Copy link

Hi there. Just found this project and it looks like I'm in a similar situation. I have a Plus i4 and used the original web interface to update to the latest firmware (20240522-112836/1.3.2-g34c651b).

I've tried:

Back to Python. The script finds the i4 in the device scan, but then does nothing. Using its IP address, I get: Devices found: 0 Upgradeable: 0 Flashed: 0

@markirb
Copy link
Collaborator

markirb commented May 24, 2024

Hi there. Just found this project and it looks like I'm in a similar situation. I have a Plus i4 and used the original web interface to update to the latest firmware (20240522-112836/1.3.2-g34c651b).

I've tried:

Back to Python. The script finds the i4 in the device scan, but then does nothing. Using its IP address, I get: Devices found: 0 Upgradeable: 0 Flashed: 0

1 and 2 won't work for sure
3 will work. but you have to take the whole zip file

@mringwal
Copy link

@markirb Thanks a lot! That worked as expected. Can I help to document this? I would suggest to add a sentence that explains to use the zip file for the firmware upload. macOS Safari does unzip the archive in the download folder by default, that's why I didn't try uploading the .zip file.

@thynkgit
Copy link
Author

@mringwal Thank you for posting what you tried. Could you please post the exact URL that you used in the browser? I know that the IP address will be different, but knowing the proper format will be very helpful. Any other info you could provide about your success will be helpful as well. 😊 Thanks

@mringwal
Copy link

@thynkgit I've posted the URL above (with A.B.C.D replaced with the local IP address). As @markirb pointed out, at least for the Plus i4, the download via URL didn't work, so I've used the "firmware file upload" feature of the original web interface. I've used the file shelly-homekit-ShellyPlusI4.zip for my device and used wget to download it without unpacking it first.

@markirb
Copy link
Collaborator

markirb commented May 25, 2024

@markirb Thanks a lot! That worked as expected. Can I help to document this? I would suggest to add a sentence that explains to use the zip file for the firmware upload. macOS Safari does unzip the archive in the download folder by default, that's why I didn't try uploading the .zip file.

Mhh I think the most troubling behavior here is Safari.... Maybe a note in the release section like "For Safari Please right click to download whole zip" would be enough.

This is for the beta anyway, as soon as there's a release this problem will go away.

@thynkgit
Copy link
Author

@mringwal Using the file upload function was the very first thing that I tried. That was where my first failed attempt occurred. I replaced the IP address as well. I performed it after upgrading Shelly from the original version to the latest version which is version 1.0 for my Plus 1. I will try it again.

Question... what is the purpose of having "rojer" in the URL? From what I see that is the username and domain of another user.

@markirb
Copy link
Collaborator

markirb commented Jun 4, 2024

roter is the original maintainer of this project. The files are still hosted on his site

@thynkgit
Copy link
Author

thynkgit commented Jun 5, 2024

Thank you Mark! That gives me a better understanding of things. I tried the web UI firmware function again after my last post using a different URL. But now I will try it again using the URL that incorporates "rojer.me".

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

3 participants