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

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

Модератор: immortal

Ответить
Аватара пользователя
harrysmith
Сообщения: 87
Зарегистрирован: Чт сен 29, 2016 5:49 pm

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

Сообщение harrysmith »

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

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

Сообщение 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 КБ) 5521 просмотр
r02.jpg
r02.jpg (48.22 КБ) 5521 просмотр
r03.jpg
r03.jpg (69.07 КБ) 5521 просмотр
r04.jpg
r04.jpg (117.59 КБ) 5521 просмотр
Коды пультов своих обрезал.
Создаешь в 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
Сообщения: 87
Зарегистрирован: Чт сен 29, 2016 5:49 pm

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

Сообщение harrysmith »

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

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

Сообщение alx69 »

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

$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
Ответить