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

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
Аватара пользователя
harrysmith
Сообщения: 86
Зарегистрирован: Чт сен 29, 2016 5:49 pm
Благодарил (а): 5 раз
Поблагодарили: 2 раза

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

Сообщение harrysmith » Вс мар 26, 2017 5:04 pm

Добрый день всем.
есть брелок который управляет включением сверта в четыре кнопки четыре зоны.
все работает. Но хочеться использовать и majordomo для этой работы (запаралелить брелок)
для этого был приобретен вот такой модуль
Изображение
с помощью ардуино были считаны коды кнопок пульта (даже ардуиной был эмулирован пульт)
А теперь хочеться повесить этот модуль на какой либо пин Raspberry PI 3(на ней установлен majordomo) и с помощью какого то скрипта эмулировать пульт.
Поискавши по форуму даже не нашел что бы кто то обсуждал такую задачу. А в PHP не силен. Да и библиотек типа "RemoteSwich" для малинки не знаю.
Может кто подскажет где что посмотреть, ведь как я думаю решение было бы многим полезно.
Harry Smith
Аватара пользователя
alx69
Сообщения: 122
Зарегистрирован: Чт фев 09, 2017 12:42 pm
Откуда: Киев, Украина
Благодарил (а): 10 раз
Поблагодарили: 22 раза

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

Сообщение alx69 » Пн мар 27, 2017 4:04 pm

В библиотеке RemoteSwitch уже идет код под Linux и на Raspberry оно работает без проблем.
https://github.com/ninjablocks/433Utils
Я решал точно такую же задачу. Работает все. Именно под RPi3.
На малине подключен китайский модуль передатчика на 433. В библиотеке надо найти sendcode.c (из папки, что под Linux) и в нем поправить (если нужно) номер pin'а где висит передатчик. Дальше уже извращаться в majordomo нужно. Фактически, там в методах turnOn и turnOff, которые в relays->RCswitch находятся, нужно код вписать, типа вызова внешнего приложения с указанием кода пульта в качестве параметров.
СпойлерПоказать
r01.jpg
r01.jpg (92.59 КБ) 5373 просмотра
r02.jpg
r02.jpg (48.22 КБ) 5373 просмотра
r03.jpg
r03.jpg (69.07 КБ) 5373 просмотра
r04.jpg
r04.jpg (117.59 КБ) 5373 просмотра
Коды пультов своих обрезал.
Создаешь в RCSwitches объекты (один на пульт). Далее в каждом таком объекте в полях CodeOn/CodeOff вписываешь коды пультов на включение и выключение (у меня один код на оба действия - писал в полях одинаковые числа, потом надо будет переделать). Далее для каждого объекта меняешь методы turnOn/turnOff. Можно не для каждого объекта, а просто отредактировать основные методы родительского класса Relays, но тут гибкость пропадает, т.к. код будет один на все помещения. Короче, это уже как кому надо. В самом коде у меня вызов скрипта стоит из пункта "Сценарии", но его можно закоментить и раскоментить, что выше идет exec... Там как раз вызов внешнего приложения стоит. Сразу подумай куда его положить, т.к. путь нужно будет указать полный. И еще один момент - коды только от пользователя root можно послать. Это обходится установкой атрибутов на чтение и запуск для всех, но с обязательной установкой первого бита (по скриншоту видно). Тогда Sendcode будет запускаться любым пользователем, но принимать права на выполнения типа от root'а.
Raspberry PI 3, 4 (MicroSD+HDD/SSD) + Netatmo + Xiaomi + Sonoff + Broadlink + Livolo/Funry/Sesoo + Ghome + Irbis (Алиса)
CONNECT
Аватара пользователя
harrysmith
Сообщения: 86
Зарегистрирован: Чт сен 29, 2016 5:49 pm
Благодарил (а): 5 раз
Поблагодарили: 2 раза

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

Сообщение harrysmith » Сб апр 01, 2017 12:54 pm

alx69 писал(а):В самом коде у меня вызов скрипта стоит из пункта "Сценарии", но его можно закоментить и раскоментить, что выше идет exec... Там как раз вызов внешнего приложения стоит.
Спасибо за ответ
Подскажи а что у тебя в самом файле скрипта "swich433OnOff"
Harry Smith
Аватара пользователя
alx69
Сообщения: 122
Зарегистрирован: Чт фев 09, 2017 12:42 pm
Откуда: Киев, Украина
Благодарил (а): 10 раз
Поблагодарили: 22 раза

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

Сообщение alx69 » Сб апр 01, 2017 1:37 pm

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

$code=$params['code'];
exec("/home/pi/bin/codesend $code 1 500"); 
передать код, протокол 1 и длинна 500. Длинной можно играться если не всегда сразу срабатывает.
Raspberry PI 3, 4 (MicroSD+HDD/SSD) + Netatmo + Xiaomi + Sonoff + Broadlink + Livolo/Funry/Sesoo + Ghome + Irbis (Алиса)
CONNECT
Ответить