Это заготовка статьи. Код проверен на 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...
Екатеринбург, Россия
На форуме: directman66