openlumi / homeassistant_on_openwrt

Install Home Assistant on your OpenWrt device with a single command
MIT License
157 stars 43 forks source link

HA Log error radios==0.1.1 package not able to be installed #26

Closed littleboot closed 1 year ago

littleboot commented 1 year ago

Hi, I found a few problem with the latest installation script.

After the install finished. I checked the homeassistant logs system->log

there are multiple errors in the log related to async wait functions inside the python code. and a message that pip is not able to install "radios==0.1.1," needed for the radio integration.

FIX: add "opkg install python3-pycares" this dependency is missing.

Other problem, install script stops at pip install of zeroconfig package

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. 
aioesphomeapi 13.0.2 requires noiseprotocol<1.0,>=0.3.1, which is not installed. 
aioesphomeapi 13.0.2 requires protobuf>=3.19.0, which is not installed. 
aioesphomeapi 13.0.2 requires async-timeout>=4.0, but you have async-timeout 3.0.1 which is incompatible. 

I'm not sure if this is a real issue or not, looking at the script it seems these pip dependencies can be ignore. to work around the install from stopping I removed the line from the top of the script: set -e

A better alternative would be to install the missing dependencies. noiseprotocol & protobuf can be installed using pip without issues it seems.

Fix for: async-timeout>=4.0 To fix this I compiled a new version of the async-timeout version. openwrt build system

PKG_VERSION:=4.0.2
PKG_HASH:=2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15

Please note that I'm using different hardware (ZBT - WG1608 router 32MB flash 512MB ram MT7621 compiled custom kernel to support Float emulation needed for numpy) but I believe this is not related to the problems above. aliexpress WG1608

lastly: Many many thanks for this installation script, It helped me so much. I learned so much from this and I went from total linux noob to quite capable user :D. I studied this script in detail line by line, added comments to everything trying to figure out how you managed to get this working, its amazing thank you for your work.

devbis commented 1 year ago

Hi @littleboot Thanks for the bug report, I tried to implement your comments it in the last commit.

Fix for: async-timeout>=4.0

I think it is not needed and I downgraded the version in the METADATA of the package. I believe, it will help to use the prebuilt version from OpenWrt.

Glad to hear that the script helped you to improve your skills! If you have an opportunity to check the script working with async_timeout-3.0.1, it would be awesome.

littleboot commented 1 year ago

Hi @devbis, Thank you for the update, I will perform a clean install of my router firmware and try it out.

I had another problem on the latest stable release of openwrt-22.03, I post the fix here it might be useful for someone else: The docutils (V0.14) package could not be installed. This problem was solved on the master branch of openwrt by a version update of docutils V0.19. I'm not sure if this problem is platform dependent or not. To fix this without recompiling. The package can be installed from the snapshot package repo using the download url. Note that opkg does not support https:// change the link to http:// and it should work. example: opkg install http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/hiawatha_7.7-2_ar71xx.ipk

devbis commented 1 year ago

Building docutils is broken on 22.03 since October. You can download and install package from archives:

https://archive.openwrt.org/releases/22.03.2/packages/ , just choose your architecture.

Example for arm_cortex-a7_neon-vfpv4:

wget --no-check-certificate https://archive.openwrt.org/releases/22.03.2/packages/arm_cortex-a7_neon-vfpv4/packages/python3-docutils_0.14-2_arm_cortex-a7_neon-vfpv4.ipk -O /tmp/t.ipk && opkg install /tmp/t.ipk