MYCSS

Показ дописів із міткою Mosquitto. Показати всі дописи
Показ дописів із міткою Mosquitto. Показати всі дописи

2022-01-15

Нотатка: Динамічний таймер на базі "розумної" розетки SONOFF S26 з Tasmota та MQTT

Є завдання, вмикати освітлення у приміщенні тамбура перед квартирою, за певними персоналізованими умовами.

SONOFF S26 - Tasmota

Умови

  • ручне керування: вимикання, вмикання на короткий час, на довгий час
  • віддалене керування через MQTT брокер, вимикання, вмикання на короткий час, на середній час,на довгий час.
  • вимикання завжди за аварійним або контрольованим таймером

2021-12-17

Перший код в LUA. Скрипт для роутера з OpenWRT. MQTT та Telegram статус підключених WiFi clients.

З метою оптимізації мого попереднього коду (Нотатки : Простий скрипт для wifi device tracker в OpenWRT : відсилання повідомлень до MQTT ) в SHELL script так як його можливості дещо обмежені. Перевів код на LUA -  швидка і компактна скриптова мова програмування.

Мета коду - зробити автоматизацію вдома на основі присутності людей. Один з варіантів визначення присутності це за тим чи підключений мобільний телефон особи до домашньої Wi-Fi мережі.

Результати роботи визначення статусу в телеграм групі
Так як мобільний телефон при підключенні до мережі Wi-Fi використовує унікальні MAC адреси, то за активністю MAC адрес можна припустити по наявність особи вдома.

2021-01-31

Нотатки : Простий скрипт для wifi device tracker в OpenWRT : відсилання повідомлень до MQTT

Скрипт для ash сценарію в OpenWRT.
Пошук активних WiFi пристроїв за їх MAC адресою, і якщо такий є то надсилання повідомлення до MQTT брокера зі станом пристрою при зміні стану. А інший скрипт надсилає стан вже до Телеграм каналу..


#!/bin/sh

uUser1='00:13:33:44:11:77'
uUser2='00:3D:33:5D:11:39'
users="User1 User2"

next=

function publish()
{
 mosquitto_pub -t "$1" -m "$2" -r
}

#MAIN
sleep 120

for m in $users; do
  eval p${m}=0
done

while true; do
 for m in $users; do
  um=$(eval "echo \${u${m}}")
  us=$(iwinfo wlan0 assoclist | grep -m 1 -c $um )
  ps=$(eval "echo \${p${m}}")
  if [ "$us" -ne $ps ];then
   eval p${m}=$us
   if [ -n "$next" ];then
     publish "tele/wifi_$m/LWT" "$us"
   fi
  fi
 done
 next=1
 sleep 90
done

Так як масивів в ash не має, то приходиться використовувати eval для  симуляції віртуального масиву.

Створив версію для LUA: Перший код в LUA. Скрипт для роутера з OpenWRT. MQTT та Telegram статус підключених WiFi clients.


2021-01-17

Використання Google Cloud IoT MQTT з консольного BASH сценарію та Mosquitto

Google Cloud Platform надає можливість використати IoT Core для підключення IoT пристроїв за протоколом MQTT та HTTP.
Приклади налаштування, і основи роботи є на багатьох ресурсах і у відео:

Моя задача створити безпечне підключення до Google IoT Core з консолі свого пристрою і використати мінімум програм:

Зв'язок mqtt topic (ts2) з google topic event (b01)

Публікація до google topic event (b01) з mosquitto_pub

Перегляд отриманих повідомлень в google sub підписки на mqtt topic (ts2)
 
Підписка до topic - error

Скрипти для автоматизації підключення.

Головна особливість для зв'язку з Google Cloud Platform, те що потрібно автентифікувати пристрій котрий надсилає #MQTT повідомлення за допомогою JWT.
Автентифікація пристрою за JWT
 

2021-01-10

Нотатки : Простий скрипт для MQTT в OpenWRT : відсилання Telegram повідомлень з Emoji. Tasmota.

Маю роутер з #OpenWRT, і локально інстальованим брокером #MQTT  #mosquitto.

Роутер - OpenWRT, ext USB disk, RAM 64M

Сповіщення

Що б виконати простіші операції з сповіщення в телеграм каналі, написаний даний скрипт, що надсилає до телеграм каналу повідомлення при певних умовах.
Такі умови можуть бути від різних сенсорів розумного будинку, наприклад: 

  • стан вхідних дверей : зачинені / відчинені
  • стан замку в дверях : закрито / відкрито
  • стан охорони :  поставлено на охорону / знято з охорони
  • стан пристрою - датчику руху : працює / не працює
  • стан пристрою - лампи освітлення : працює / не працює

Emoji

Завдання це стан цих сенсорів показати відповідними зрозумілими зображеннями використовуючи Emoji:

Приклад використання зображень - емодзі

Список доступних зображень "Full Emoji List, v13.1"

2020-04-05

Погодна інтернет станція з старого планшета та панель розумного дому MQTT + OpenWRT + OpenWeather + Радіація


Ось є час під час домашнього карантину.
Відновив старий 7" планшет Impression ImPAD 1213 на основі процесора Allwinner A13 з Android 4.0.4, перепрошивши прошивку від виробника.
Але що з ним можна зробити ? Він дуже "тугий", але Google Play Market працює.
Тому встановив програму MQTT Dash (IoT, Smart Home), і вирішив реалізувати простішу панель для показу поточних даних погоди.
Хоча простіше можна було б показати готовий віджет від відомих погодних сайтів на головному екрані планшета.

2019-08-01

FreeBSD. Mosquitto. Mosquitto-Auth-Plugin. LDAP


Mosquitto (http://mosquitto.org)
Mosquitto-Auth-Plugin (https://github.com/jpmens/mosquitto-auth-plug#ldap-auth)

1. Install Mosquitto from ports
$cd /usr/ports/net/mosquitto/
$make config
$make install
$ls -d /usr/ports/net/mosquitto/work/mosquitto-*
/usr/ports/net/mosquitto/work/mosquitto-1.5.8 (remember it)
2. Install openldap client from ports
$cd /usr/ports/net/openldap24-client
$make config
$make install
$make clean 
3. Check openssl lib
$openssl version
OpenSSL 1.0.2o-freebsd  27 Mar 2018
4. Compile Mosquitto from git
$pkg install git
$cd ~ 
$git clone git://github.com/jpmens/mosquitto-auth-plug.git
$cd mosquitto-auth-plug/
4.1. edit config.mk
cp config.mk.in config.mk
MOSQUITTO_SRC = /usr/ports/net/mosquitto/work/mosquitto-1.5.8
OPENSSLDIR = /usr/bin
BACKEND_MYSQL ?= no
BACKEND_LDAP ?= yes 
Copmile path on config.mk or Makefile
CFG_LDFLAGS =-L/usr/local/lib
CFG_CFLAGS =-I/usr/local/include
or edit Makefile
BE_CFLAGS = -I/usr/local/include
BE_LDFLAGS = -L/usr/local/lib/
or run comadns for replace
sed 's#MOSQUITTO_SRC =#MOSQUITTO_SRC = /usr/ports/net/mosquitto/work/mosquitto-1.5.8#' config.mk.in > config.mk 
sed -i "" 's#OPENSSLDIR = /usr#OPENSSLDIR = /usr/bin#' config.mk
sed -i "" 's#BACKEND_MYSQL ?= yes#BACKEND_MYSQL ?= no#' config.mk 
sed -i "" 's#BACKEND_LDAP ?= no#BACKEND_LDAP ?= yes#' config.mk 
sed -i "" 's#CFG_LDFLAGS =#CFG_LDFLAGS =-L/usr/local/lib#' config.mk  
sed -i "" 's#CFG_CFLAGS =#CFG_CFLAGS =-I/usr/local/include#' config.mk
sed -i "" 's#BE_CFLAGS =#BE_CFLAGS = -I/usr/local/include#' Makefile     
sed -i "" 's#BE_LDFLAGS =#BE_LDFLAGS = -L/usr/local/lib/#' Makefile 
4.2 Compile
$pkg install gmake 
$qmake
FreeBSD compile Mosquitto-Auth-Plugin

Коли забув ти рідну мову, біднієш духом ти щодня...
When you forgot your native language you would become a poor at spirit every day ...

Д.Білоус / D.Bilous
Рабів до раю не пускають. Будь вільним!

ipv6 ready