Встановлення та отримання стану виходу/входу за допомогою MQTT шини

Коли ви маєте вимикач та лампу, нічого вам не заважає контролювати напряму стан цієї лампи за допомогою вимикача, але ми не шукаємо простих рішень.

Маємо:

  • вимикач
  • лампа
  • openhab

Бажаємо: підключити лампу та вимикач до openhab, вимикати та вмикати лампу за допомогою цього вимикача.

Апаратне забезпечення: беремо raspberry pi (можна зробити на ESP8266 але є бажання не мати WiFi там, де його можна не мати), на вході зробимо просту схему для захисту (ну якщо вимикач буде далеко, а неподалік буде блискавка), на виході MOC3063 (навіть без додаткового сімістора вона позволяє керувати сучасними лампами).

Виходить щось таке:

 

 

 

 

 

Програмне забезпечення: spring-boot java додаток. Додаток можна знайти тут.

Openhab конфігурація:  повинна мати такий запис у секції items:

Як наслідок, воно працює. Затримка між командою зі станом та між та командою на зміну стану є приблизно 50 мс.

Як додаток можна подивитись (та змінити) поточний стан за допомогою веб інтерфейсу:

 

Видалення файлів з git

Якщо ви помилково додали до репозитарію файл чи теку, то її можна видалити. (Це навіть можна зробити якщо ви це зробили не помилково).

Для цього можна використати команду

Перша команда видалить усі файли у теці name, друга відправить ці зміни до центрального репозіторію та перезапише усе, що там є.

 

Розумна хатинка – OpenHAB, підрахунок електроенергії

Трохи раніше ми налаштували OpenHAB записувати усі історичні данні до бази даних.

На даний момент тестова система керує розеткою, до якої підключено бойлер.
Розетка може вимірювати струм, значення струму заноситься до бази даних.
Щоб підрахувати скільки електроенергії було витрачено бойлером підключимось напряму до бази даних. Ми використовуємо базу H2, тому можна підключитись з браузера, просто перейшовши за адресою – http://192.168.0.6:8082/
База має просту структуру. Одну таблицю ITEMS та таблиці ITEMXXXX які містять дані.
Зробимо запрос

на що отримаємо відповідь:

з відповіді можна побачити, що  значення з датчика BATHROOM_BOILER1_CURRENT_1 пишуться у таблицю ITEM0007.

Усі таблиці мають дуже простий формат – стовпчики TIME та VALUE. Для підрахунку кількості витраченої електроенергії виконаємо такй запрос:

Для простоти будемо вважати, що напруга у мережі постійна та дорівнює 230В.
У результаті отримаємо кількість споживаної електроенергії по місяцям:

Якщо переписати запроси щоб отримати суми по днях, експортувати ці данні у excel то можна отримати такий графік:

OpenHAB – моніторінг напруги у мережі

Вимоги

  • Openhab на ubuntu
  • Back-UPS XS 1100CI (можна використовувати будь-який інший, але в мене саме такий)

Підготовка

Встановлення Apcupsd

Інструкцію можна знайти наприклад за цим посиланням.

Як результат ми повинні мати змогу запустити команду apcaccess, результат виводу котрої ми й будемо використовувати

 

Підготовка OpenHAB

Відкриємо панель конфігурування OpenHAB та встановимо

RegEx Transformation

Конфігурування OpenHAB

things

Створимо файл /etc/openhab2/things/system.things

items

Створимо файл /etc/openhab2/items/system.items

Item SYSTEM_APC_VOLTAGE_DOUBLE треба через те, що exec повертає строку, а нам треба число. Створимо правило для перетворення строки до числа

rules

Створимо файл /etc/openhab2/rules/system.rules

persist

Створимо конфігурацію для зберігання напруги до бази даних. Додамо строку

у файл /etc/openhab2/persistence/jdbc.persist

sitemap

Створимо графік для відображення історічних даних

Додамо строку

у файл /etc/openhab2/sitemaps/house.sitemap

Як результат маємо такий графік:

 

 

 

Розумна хатинка – OpenHAB, зберігання історії

У цієї статті мова піде про те, як зберігати історичні дані та потім строїти графіки. Це дає змогу потім ці дані аналізувати. Наприклад кондиціонер, обігрівач, нагрівач води витрачає більше електроенергії коли увімкнений постійно чи тільки коли треба. Та інше.

Для зберігання даних будемо використовувати базу даних H2.

Встановлення бази даних

Завантажимо архів та розпакуємо у теку наприклад /opt/h2v3

Створимо теку для бази даних: /opt/h2/db

Для запуску створемо скріпт  /opt/h2v3/bin/start.sh

Для запуску бази діних під час старту системи створимо файл /etc/systemd/system/h2.service

Увімкнемо цей сервіс під час старту системи за допомогою команди

Конфігурування OpenHAB для зберігання даних

Встановимо JDBC Persistence H2 addon

 

Додаємо шлях до бази даних у файл /etc/openhab2/services.jdbc.cfg

Створимо конфігурацію для зберігання усіх значеннью Для цього створимо файл /etc/openhab2/persistence/jdbc.persist:

Все. OpenHAB повинен створити усі таблиці та почати записувати данні:

 

Оновимо конфігурацію сайту (додамо графік):

У результаті отримаємо таку сторінку