Архив рубрики: Home Assistant

Чтение базы данных 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

https://github.com/home-assistant/core/blob/d7ac4bd65379e11461c7ce0893d3533d8d8b8cbf/homeassistant/const.py#L384

Хотя вообще-то мне понадобилось узнать как правильно называется «мм рт.ст.», и там я этого не нашел. Хотя оно 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

Возможно не все нужные 🙂 или нет каких-то еще, но этих достаточно.