MYCSS

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-23

Proxmox ACME DNS NSUPDATE letsencrypt.org


Завдання отримання letsencrypt.org сертифікату в Proxmox за перевіркою  динамічного оновлення запису в DNS за допомогою ключа tsig і власно контрольованого BIND сервера.
Це потрібно в тих ситуаціях коли доступ до web сервера обмежений для зовнішньої перевірки серверами letsencrypt.org при застосуванні стандартного методу: http-01 challenge.

tsig

tsig-keygen -a HMAC-SHA512 ns240 > ns240.key

ns240.key:

key "ns240" 
{ algorithm hmac-sha512;
  secret "VLv54K+dqSSk9lF75GKREQI8BT0ZYBs9BraQY3D/6f5b1Aw41NN86BwxRNATu7iDoEAiqTCUOk7B6SfxG7Q30A==";
};

BIND

named.conf:

key "ns240.key" {
 algorithm hmac-sha512;
secret "VLv54K+dqSSk9lF75GKREQI8BT0ZYBs9BraQY3D/6f5b1Aw41NN86BwxRNATu7iDoEAiqTCUOk7B6SfxG7Q30A==";
};
        
zone "lexxai.pp.ua"
{
type master;
file "/usr/local/etc/namedb/master/db.lexxai.pp.ua";
allow-query { any; };
update-policy {
grant ns240.key. name _acme-challenge.ns240.lexxai.pp.ua. TXT;
grant ns241.key. name _acme-challenge.ns241.lexxai.pp.ua. TXT;
};
};

PROXMOX

Proxmox ACME DNS plugin
NSUPDATE_SERVER=ns1.lexxai.pp.ua
NSUPDATE_KEY=/home/nskey/ns240.key
NSUPDATE_ZONE=lexxai.pp.ua
key path: /home/nskey/ns240.key
chown nobody:nogroup /home/nskey/ns240.key

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
 

Нотатки: TP Link MP 3420 відновлення. OpenWrt 19.07.5.

TP-LINK MP 3420v2 extUSB

[OpenWrt Wiki] TP-Link TL-MR3420 & TL-MR3220  

Нотую для себе, деякі послідовності.
Так як за своєї помилки прибив роутер, то мені і відновлювати.
Так як мені потрібен функціонал якого не має в рідній прошивці, такі як VLAN, MultiAP ... То компілюю OpenWrt для цього роутера з останньою версією. Але флеш пам'ять цього пристрою всього 4МБ і 32МБ оперативної пам'яті, тому використовую зовнішній USB диск, як розширений простір (ext_root). А у подальшому можливо буде заміна флеш на 8МБ.

2021-01-16

Нові роботи коханої: в'язанні шапки спицями

Нові роботи коханої: в'язання сукні

 

Нові роботи коханої: палантин гачком

 


Нові роботи коханої: в'язання сукні

Нарешті перемога довгов'язу, результат напрацювання одного року.

2021-01-10

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

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

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

Сповіщення

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

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

Emoji

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

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

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

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

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

ipv6 ready