Страница 1 из 2

433 МГЦ

Добавлено: Вт ноя 29, 2016 9:16 am
talib
Народ, я верю в вас!
Реально ли показания с датчика 433мгц заливать в majordomo без использование Arduino?\
Т.е. у меня мж крутится на 3 малине, к которой я цепанул приемник на 433 и поставил вирингпай и снифер для 433мгц.
Но снифер работает через терминал (командную строку) и при его запуске бесконечно будет выдавать принимаемые сигналы, была попытка с читать их в мж (exec("sudo ~/433/433Utils/RPi_utils/RFSniffer")), но из этого ничего не получилось и в свойстве обьекта всегда было пусто. если работать через терминал малины то все работает отлично.
Что мне делать?

Re: 433 МГЦ

Добавлено: Вт ноя 29, 2016 9:19 am
talib
Можно попытаться переписать сам снифер, тык что бы он при каждом запросе давал один код а потом вырубался и при отсутствии сигнала выдавл "0", но тогда придётся его запускать несколько раз в секунду что будет не удобно и не надёжно, да и я не сильно шарю в том коде что бы его переписывать, все что я смог это убрать ненужные слова которые писались перед принимаемым кодом.

Re: 433 МГЦ

Добавлено: Ср ноя 30, 2016 12:53 pm
devoff
Реализовал у себя на питоне, скрипт постоянно работает и снифит все.

https://libraries.io/pypi/pi_switch - здесь информация

просто в код RCSwitchReceiver добавил -

Код: Выделить всё

  
if received_value:
            num += 1

            url = 'http://192.168.1.10/objects/?object=RCSwitch&op=set&p=code'
            payload = {'v':received_value }

            r = requests.get(url, params=payload)
            print(r.url)

Соответственно при получения кода, скрипт задает свойство объекту.
НО при постоянной включенном скрипте он грузит систему, поэтому нужно поставить задержку time.sleep (0.2)

ну а в МЖД метод у свойства -

Код: Выделить всё

$code=$this->getProperty("code");

switch ($code) {
case '65557':sg ('Bedroom.Light2',1);break;
case '65556':sg ('Bedroom.Light2',0);break;

case '69653':sg ('Bedroom.Light1',1);break;
case '69652':sg ('Bedroom.Light1',0);break;
 

case '8888':sg ('Bedroom.Light1',1);break;
case '9999':sg ('Bedroom.Light1',0);break;

case '81941':sg ('Hall.Light',1); callMethod("Hall.Light",array("light_num"=>1,"light_st"=>1));break;
case '81940':sg ('Hall.Light',0); callMethod("Hall.Light",array("light_num"=>1,"light_st"=>0));break;

case '86037':sg ('Hall.Light2',1);callMethod("Hall.Light",array("light_num"=>2,"light_st"=>1));break;
case '86036':sg ('Hall.Light2',0);callMethod("Hall.Light",array("light_num"=>2,"light_st"=>0));break;
  

default:
say ('код не определен');
};

Полный файл в приложение.

Re: 433 МГЦ

Добавлено: Ср окт 04, 2017 1:12 am
immortal
devoff писал(а):Реализовал у себя на питоне, скрипт постоянно работает и снифит все.
....

можно подробнее как в МД сделано, или экпортируйте объект RCSwitch

Re: 433 МГЦ

Добавлено: Ср окт 04, 2017 6:25 am
nick7zmail
Что за путь ~/433/433Utils/RPi_utils/RFSniffer? Пропишите полный, начиная с /. Мд не знает что такое ~.

Код: Выделить всё

$otvet=exec("sudo /полный/путь/433/433Utils/RPi_utils/RFSniffer");
должно нормально рабоатать.
Ну или на python можно попробовать реализовать, как выше сказали...

Re: 433 МГЦ

Добавлено: Ср окт 04, 2017 3:57 pm
immortal
nick7zmail писал(а):Что за путь ~/433/433Utils/RPi_utils/RFSniffer? Пропишите полный, начиная с /. Мд не знает что такое ~.

Код: Выделить всё

$otvet=exec("sudo /полный/путь/433/433Utils/RPi_utils/RFSniffer"); 
должно нормально рабоатать.
Ну или на python можно попробовать реализовать, как выше сказали...
Вроде exec не умеет забирать данные из консоли (из шела) не пробывал я конечно rfsniffer но gpio и i2c пробывал, надо чтобы скрипт сам посылал http запрос. Кроме того RFSniffer должен быть запущен постоянно, так что как описано выше, но вот тут я подробно расписал viewtopic.php?f=18&t=4675

Re: 433 МГЦ

Добавлено: Ср окт 04, 2017 4:18 pm
nick7zmail
В смысле не умеет? У меня так половина сведений о системе собирается...строка рабочего кода к примеру

Код: Выделить всё

$temp=exec('cat /sys/class/thermal/thermal_zone0/temp')/1000;
sg('server.cputemp', round($temp,1));

Re: 433 МГЦ

Добавлено: Ср окт 04, 2017 9:23 pm
immortal
nick7zmail писал(а):В смысле не умеет? У меня так половина сведений о системе собирается...строка рабочего кода к примеру

Код: Выделить всё

$temp=exec('cat /sys/class/thermal/thermal_zone0/temp')/1000;
sg('server.cputemp', round($temp,1));
пробовал i2cget и не получал данных, может с правами намудрил, наврал немного, gpio -1 read данные получает.

Re: 433 МГЦ

Добавлено: Вт ноя 14, 2017 4:29 pm
Vitalij
Добрый день . Нужна помощь. я совсем не програмист очень трудно доходит. Имею реле на RF433 и пульт на RF433 подключено напрямую к R PI3, коды отсылаю реле работает , приемник принимает через питон скрипт тоже работает , xочю сделать чтобы МД был посредником между ними . В данный момент МД получает коды с пульта они появляются в свойствах rcData, а далее засада , как заставить Switch3 т.е. реле срабатывать. может кто описать по шагово логику? Спасибо.

Re: 433 МГЦ

Добавлено: Вт ноя 14, 2017 4:44 pm
nick7zmail
Могу и объяснить и сделать. Через тимвивер.