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

Прередача кода радиомодулем 433 Мгц

Добавлено: Вс мар 26, 2017 5:04 pm
harrysmith
Добрый день всем.
есть брелок который управляет включением сверта в четыре кнопки четыре зоны.
все работает. Но хочеться использовать и majordomo для этой работы (запаралелить брелок)
для этого был приобретен вот такой модуль
Изображение
с помощью ардуино были считаны коды кнопок пульта (даже ардуиной был эмулирован пульт)
А теперь хочеться повесить этот модуль на какой либо пин Raspberry PI 3(на ней установлен majordomo) и с помощью какого то скрипта эмулировать пульт.
Поискавши по форуму даже не нашел что бы кто то обсуждал такую задачу. А в PHP не силен. Да и библиотек типа "RemoteSwich" для малинки не знаю.
Может кто подскажет где что посмотреть, ведь как я думаю решение было бы многим полезно.

Re: Прередача кода радиомодулем 433 Мгц

Добавлено: Пн мар 27, 2017 4:04 pm
alx69
В библиотеке RemoteSwitch уже идет код под Linux и на Raspberry оно работает без проблем.
https://github.com/ninjablocks/433Utils
Я решал точно такую же задачу. Работает все. Именно под RPi3.
На малине подключен китайский модуль передатчика на 433. В библиотеке надо найти sendcode.c (из папки, что под Linux) и в нем поправить (если нужно) номер pin'а где висит передатчик. Дальше уже извращаться в majordomo нужно. Фактически, там в методах turnOn и turnOff, которые в relays->RCswitch находятся, нужно код вписать, типа вызова внешнего приложения с указанием кода пульта в качестве параметров.
SPOILERSPOILER_SHOW
r01.jpg
r01.jpg (92.59 КБ) 5524 просмотра
r02.jpg
r02.jpg (48.22 КБ) 5524 просмотра
r03.jpg
r03.jpg (69.07 КБ) 5524 просмотра
r04.jpg
r04.jpg (117.59 КБ) 5524 просмотра
Коды пультов своих обрезал.
Создаешь в RCSwitches объекты (один на пульт). Далее в каждом таком объекте в полях CodeOn/CodeOff вписываешь коды пультов на включение и выключение (у меня один код на оба действия - писал в полях одинаковые числа, потом надо будет переделать). Далее для каждого объекта меняешь методы turnOn/turnOff. Можно не для каждого объекта, а просто отредактировать основные методы родительского класса Relays, но тут гибкость пропадает, т.к. код будет один на все помещения. Короче, это уже как кому надо. В самом коде у меня вызов скрипта стоит из пункта "Сценарии", но его можно закоментить и раскоментить, что выше идет exec... Там как раз вызов внешнего приложения стоит. Сразу подумай куда его положить, т.к. путь нужно будет указать полный. И еще один момент - коды только от пользователя root можно послать. Это обходится установкой атрибутов на чтение и запуск для всех, но с обязательной установкой первого бита (по скриншоту видно). Тогда Sendcode будет запускаться любым пользователем, но принимать права на выполнения типа от root'а.

Re: Прередача кода радиомодулем 433 Мгц

Добавлено: Сб апр 01, 2017 12:54 pm
harrysmith
alx69 писал(а):В самом коде у меня вызов скрипта стоит из пункта "Сценарии", но его можно закоментить и раскоментить, что выше идет exec... Там как раз вызов внешнего приложения стоит.
Спасибо за ответ
Подскажи а что у тебя в самом файле скрипта "swich433OnOff"

Re: Прередача кода радиомодулем 433 Мгц

Добавлено: Сб апр 01, 2017 1:37 pm
alx69

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

$code=$params['code'];
exec("/home/pi/bin/codesend $code 1 500"); 
передать код, протокол 1 и длинна 500. Длинной можно играться если не всегда сразу срабатывает.