directman

<<< Back

Установка и подключение rtl usb донгла для чтения датчиков температуры и кнопок 433 мгц

Это заготовка статьи. Код проверен на arm (raspbian, orange pi), x86 (openmediavault)

Установка необходимых библиотек:
sudo apt-get install libtool libusb-1.0.0-dev librtlsdr-dev rtl-sdr build-essential autoconf cmake pkg-config

git clone https://github.com/zuckschwerdt/rtl_433.git rtl_433_rcswitch
cd rtl_433_rcswitch
mkdir build
cd build
cmake ..
make
make install

сценарий meteo2mqtt

$cmd='sudo modprobe -r dvb_usb_rtl28xxu';
$answ=shell_exec($cmd);
echo $answ;

$fname="/home/pi/433_".time().".log";

$cmd='killall rtl_433 ';
$answ=shell_exec($cmd);
echo $answ;

$cmd='killall rtl_sdr ';
$answ=shell_exec($cmd);
echo $answ;

//$cmd='/home/pi/rtl_433_rcswitch/build/src/rtl_433 -f 433920000 -s 250000 -F json | mosquitto_pub -h localhost -t home/rtl_433 -l >'.$fname.' 2>&1';
//$cmd='/home/pi/rtl_433_rcswitch/build/src/rtl_433 -f 433920000 -s 250000 -F json | mosquitto_pub -h localhost -t /home/rtl_433 -l';
//$cmd='dir|mosquitto_pub -h localhost -t home/rtl_433 -l ';
//md='date|mosquitto_pub -h localhost -t home/rtl_433 -l ';
//$cmd='date|mosquitto_pub -h localhost -t /home/rtl_433 -l';
//$cmd='date>'.$fname.' 2>&1|mosquitto_pub -h localhost -t /home/rtl_433 -l';
$cmd='/home/pi/rtl_433_rcswitch/build/src/rtl_433 -f 433920000 -s 250000 -F json|mosquitto_pub -h localhost -t /home/rtl_433 -l';
$answ=shell_exec($cmd);
echo $answ;

сценарий rtl_433_state (запускаем раз в минуту)

$cmd='ps -A|grep 433';
//$cmd='ps -A';
$answ=shell_exec($cmd);
//echo $answ;
$rez=substr_count ($answ,'433' );
echo $rez;
if ($rez=="1" ){sg('mysdr.statecolor','green');} 
else {sg('mysdr.statecolor','red');
if (gg('mysdr.autorestart')==1) {RunScript('meteo2mqtt'); }
}

создаем классы rtl_objects и sdr

метод класса sdr onChange

$jsonanswer=$this->getProperty('value');
//$jsonanswer='"{"time" : "2017-05-21 20:44:57", "model" : "Akhan 100F14 remote keyless entry", "id" : 595913, "data" : "0x8 (Alarm)"}';
//say($jsonanswer,1);
$data=json_decode($jsonanswer,true);
$objn=$data['model'].' '.$data['id'];
addClassObject('rtl_objects',$objn);
sg( $objn.'.json',$jsonanswer);
foreach ($data as $key=> $value ) {
sg( $objn.'.'.$key,$value);
}

ссылка на форум https://majordomo.smartliving.ru/forum/viewtopic.p...

Discuss (0) (0)

See also:
2018-09-09 Список домофонов с IP интерфейсом
2018-08-29 Список кондиционеров с wifi
2018-08-29 Список доступных к покупке IP колонок
2018-07-15 Интеграция датчика Mi flora plant к системе УД MAJORDOMO
2018-06-13 Полезные команды для работы с git
2018-05-27 преобразование html страниц в картинку и отправка в телеграмм
2018-05-24 Полезные sql запросы
2018-05-23 Создание образа nand памяти orange pi plus2
2018-05-16 Команды для работы с базой данных напрямую
2018-04-13 Индикаторы о заряде батареек без использования картинок
2018-04-06 Установка и настройка python на windows для работы систем распознавания
2018-04-05 Распознавание лиц подходящих к двери людей с помощью ip камеры и открытие двери, если нейросеть признала своего
2018-04-04 Управление таймерами выключения света
2018-04-04 Управление RGB контроллером на базе ESP8266
2018-04-03 Увеличение разрешения снапшотов китайских камер на чипе hi3516c H264
2018-03-13 Использование колонки google home в качестве терминала Majordomo
2018-03-13 Настройка брокера MQTT
2018-02-17 Проект "умная входная дверь"
2018-02-11 Отправка всех значений свойства объекта в телеграм
2017-12-21 получение адреса по GPS координатам
2017-12-21 получение / передача GPS координат сервису livegps.com
2017-12-21 чтение мгновенных данных U,P, I электросчетчика милур 104
2017-12-21 Получение координат с маяков и gsm сигнализаций starline-online.ru

Екатеринбург, Россия

На форуме: directman66