https://community.home-assistant.io/t/quick-tldr-on-how-to-create-multi-tariff-energy-meters/585379
Архив рубрики: Home Assistant
Поднять WiFi на Home Assistant OS
ha network update wlan0 --wifi-auth wpa-psk --wifi-ssid НАЗВАНИЕСЕТИ --wifi-psk ПАРОЛЬWIFI --ipv4-method autoha network reloadha host reboot
Клонирование SD карты, уменьшение размера образа
Чтение базы данных Home Assistant с помощью Processing
Просто открыть базы можно с помощью например «DB Browser for SQLite». Я брал этот: https://sqlitebrowser.org/.
Чтобы читать данные из базы (предварительно скопированной из Raspberry на компьютер), использовал import de.bezier.data.sql.*; Брал здесь: http://bezier.de/processing/libs/sql/ или здесь: https://github.com/fjenett/sql-library-processing. Документация — http://bezier.de/processing/libs/sql/documentation/de/bezier/data/sql/SQLite.html
Однако с первого раза не получилось — при попытке connect() появлялась ошибка «java.sql.SQLException: [SQLITE_NOTADB] File opened that is not a database file (file is encrypted or is not a database)».
Нашел что версия 3.7.2 xerial sqlite-jdbc которая используется в библиотеке, похоже несовместима с версией MacOS (у меня 10.13.6). Зато совместима версия 3.7.15-M1, которую взял тут: https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc/3.7.15-M1
После этого в каталоге libraries/BesierSQLib/library заменил находящийся там файл sqlite-jdbc-3.7.2.jar на новый, переименовав его так же как старый чтобы именно он импортировался в библиотеку (т.е. в имени файла указано 3.7.2, но реально в нем находится версия 3.7.15-M1).
После этого Processing смог прочитать базу. Пример скетча:
import de.bezier.data.sql.*;
SQLite db;
String tt[];
void setup() {
//size( 450, 450 );
db = new SQLite( this, «home-assistant_v2.db» ); // open database file
if ( db.connect() ) {
println("Connect ok. Tables:");
tt = db.getTableNames();
for (String t : tt) {
println(t);
}
// db.query( "select state, created from states where entity_id='sensor.mh_z19_co2_value'" );
// while (db.next ()) {
// println(db.getString("state"), db.getString("created"));
// }
}
else {
println("Connect failed");
}
}
ZigBee
Последняя версия прошивки ZigBee стика: https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/Z-Stack_Home_1.2/bin
прошивался по инструкции: https://kvvhost.ru/2019/05/29/zigbee2mqtt-cc2531-raspberry-pi/
https://www.zigbee2mqtt.io/guide/adapters/#recommended — перечислены поддерживаемые USB-стики (искать на странице «CC2531»), написано что теперь уже не рекомендуется т.к.
Warning 1: requires additional hardware to flash (CC debugger + download cable)
Warning 2: might not be powerful enough to handle networks of 20+ devices
Warning 3: this adapter has bad range
Ссылка на последнюю версию прошивки выше, инструкция по прошивке https://www.zigbee2mqtt.io/guide/adapters/flashing/flashing_the_cc2531.html
Значения атрибутов, константы и прочее в HA
Хотя вообще-то мне понадобилось узнать как правильно называется «мм рт.ст.», и там я этого не нашел. Хотя оно mmHg. Но всяких разных других там куча. Но нужно найти во-первых — соответствие русских статусов и латинских, и во-вторых — где же mmHg?
Когда снаружи не отвечает VPS от Oracle по нестандартным портам
Для работы Home Assistant нужно выполнить команды:
sudo iptables -I INPUT -p tcp --dport 31281 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT sudo iptables -I OUTPUT -p tcp --sport 31281 -m conntrack --ctstate ESTABLISHED -j ACCEPT sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
Есть еще для 80 порта, чтобы отвечал nginx:
sudo iptables -I INPUT 5 -i ens3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
Возможно не все нужные 🙂 или нет каких-то еще, но этих достаточно.
HA — добавить пакет в venv
sudo -u homeassistant -H -s
cd /srv/homeassistant
source bin/activate
pip list | grep crypt
pip3 install pycryptodome
или то же для обновление HA
python3 -m pip install --upgrade homeassistant