ЛЕЧИМ BLUETOOTH В HOMEASSISTANT И ОБНОВЛЯЕМ PYTHON ДО 3.9.1

18:16

Если при добавлении bluetooth устройств в логе появились следующие ошибки

  • Polling error Could not read data
  • RuntimeError: Event loop stopped before Future completed.
  • AttributeError: module ‘socket’ has no attribute ‘AF_BLUETOOTH’
  • Broken pipe

То возможно поможет этот скрипт.

Рекомендую вводить его построчно, для того , чтобы контролировать результат выполнения команд.

python_update.sh
!/bin/bash
# установка необходимых пакетов
sudo apt-get install build-essential libglib2.0-dev libjpeg-dev tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev bluetooth libbluetooth-dev
sudo pip3 install pybluez
# выбор корневой папки для компиляции Python
cd /home/pi
# скачивание архива исходников и разархивирование
wget https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz
sudo tar zxf Python-3.9.1.tgz
cd Python-3.9.1
# компиляция и установка ; j4 это кол-во потоков задействованное в этой операции
sudo ./configure --enable-optimizations
sudo make -j 4
sudo make altinstall -j4
sudo apt -y autoremove
# останавливаем ha
sudo systemctl stop home-assistant@homeassistant.service
sudo systemctl stop homeassistant@homeassistant
cd /home/homeassistant
# бекапим настройки и venv
sudo mv .homeassistant/ .homeassistant_backup
sudo mv /srv/homeassistant /srv/homeassistant_backup
cd /srv
# создаем папку для окружения, меняем хозяина этой папки и переключаемся на него
sudo mkdir homeassistant
sudo chown homeassistant:homeassistant homeassistant
sudo -u homeassistant -H -s
cd /srv/homeassistant
# создаем окружение и активируем его
python3.9 -m venv .
source bin/activate
# устанавливаем ha 
pip3.9 install --upgrade pip
python3.9 -m pip install wheel
pip3.9 install mysqlclient
pip3.9 install homeassistant
# запускаем голый ha
hass
# ждем пока не загрузится админка http://ip_raspberry:8123,  и жмем ctrl c 
exit
# если все ок, то удаляем бекапы и восстанавливаем настройки
cd /home/homeassistant
sudo rm .homeassistant/ -R
sudo mv .homeassistant_backup/ .homeassistant
sudo systemctl start home-assistant@homeassistant.service
sudo systemctl start homeassistant@homeassistant.service
#даем разрешение на работу bluetooth
sudo setcap 'cap_net_raw,cap_net_admin+eip' readlink -f \which python3.9``

 

(c) MICROASSISTANT https://microassistant.ru/лечим-bluetooth-в-homeassistant-и-обновляем-python-до-3-9-1/