аукцион / FPR / donate / услуги / RSS / распечатать / вход 
Мой мир
Вконтакте
Одноклассники

Работа с Ethernet-реле SR-201 на Python

[14 ноября 2019 | 2 декабря 2019 | 6 декабря 2019]

Недавно Миша Анистратов подарил мне одну интересную релюшку с управлением по сети. В комплекте шли проги для настройки, включения и выключения этой релюшки. Довольно удобный интерфейс, да и устройство не сильно сложное. В общем, решил поиграть с очередной сетевой игрушкой. Так же у меня возникла мысль привязать это реле к моему боту в Телеге. Для этих целей мне понадобилось управлять реле через сеть на Питоне (Python, Пайтон — кому, как удобней).

Управляющие коды у этой релюшки очень простые. По UDP необходимо отправить два управляющих байта состоящих из команды и номера реле. Релюшки из этой группы бывают на одну, две, ... и восемь линий. Порт для управления 6723. Никакой защиты от неверных данных или мусора нет. Если на этот порт будет поступать мусор от какого-нибудь сканера или вируса то реле будут отщелкивать Кан-кан или песню дрозда. Программа на Питоне довольно простая. Я прописал коды в виде комментариев, чтобы проще было протестировать. Управлять можно не только по UDP, но и по TCP протоколу. Используя TCP можно запросить состояние линий реле, но мне этого не требуется. Разве, что в дальнейшем появится такая необходимость. Программа для управления получилась крайне заурядной.

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# ORCINUS.RU Project

import socket

UDP_IP = '192.168.30.250'
UDP_PORT = 6723

#COMMAND = '11' #On 1
#COMMAND = '21' #Off 1

#COMMAND = '12' #On 2
#COMMAND = '22' #Off 2

COMMAND = '1X' #On All
#COMMAND = '2X' #Off All

udp_send = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # UDP
udp_send.connect((UDP_IP,UDP_PORT))
udp_send.send(bytes(COMMAND, "utf-8"))
udp_send.close()

Подобная релюшка на два канала стоит менее тысячи рублей на Алиэкспресс. Вполне себе не дорогое решение с очень простым управлением. Что мне не нравится в большинстве других решений, так это их привязка к каким-то своим сервисам для управления. А чтобы их заставить работать из самодельных приложений нужно много прыгать по граблям и снифить трафик между управляющими программами и устройством.

Вот ролик на Ютьюбе чтобы можно было наглядно посмотреть за исполнением команд этим реле. Светодиоды на плате показывают включенное состояние реле.

Тэги: ИТ, программирование

Отредактировано:2020-09-07 06:02:56




13 комментариев
Имя: Алексей 🖉
Мда, с безопасностью совсем грустно. Полностью открыто для хака.
Комментарий оставлен: 2019-12-02 00:00:00


Имя: Orcinus Orca 🖉
Алексей, ну хак — это как-то сложно сказано, тут ведь никакие данные не получишь. Максимум побаловаться с параметрами, опять же — это UDP. Ответа не будет никакого. Но я поместил его в ту часть подсети у которой нет выхода в интернет и на которую запрещен траффик от всех железок кроме моих серверных IP.
Комментарий оставлен: 2019-12-02 00:00:00


Имя: Алексей 🖉
Разумно.
Комментарий оставлен: 2019-12-03 00:00:00


Имя: Orcinus Orca 🖉
Алексей, просто у этой железки тоже есть возможность подключения к облачному сервису. Да и кто знает какие там могут быть закладки с удалённым управлением, лучше быть параноиком.
Комментарий оставлен: 2019-12-04 00:00:00


Имя: Алексей 🖉
Ну, закладки в такой простой штуковине — это вряд ли. Главный риск — это именно её простота и всеоткрытость.

Так что да, нужно прятать в глухих жёстко контролируемых уголках сети без выхода наружу.
Комментарий оставлен: 2019-12-04 00:00:00


Имя: Orcinus Orca 🖉
Алексей, у меня жесткие правила в сети. Что в конторах где я подрабатываю, что в домашней, что на работе.
Комментарий оставлен: 2019-12-04 00:00:00


Имя: Алексей 🖉
Вот глянь ещё контроллер на пайтоне. Больше для экспериментов, но можно приспособить для управления питанием или вентиляцией, например.

https://mysku.ru/blog/aliexpress/77354.html
Комментарий оставлен: 2019-12-05 00:00:00


Имя: Orcinus Orca 🖉
Алексей, это не универсальное решение.
Комментарий оставлен: 2019-12-05 00:00:00


Имя: Алексей 🖉
там в комментах народ предлагает дешёвые альтернативы, на которые можно накатить майкропайтон. Но надо городить что-то на макетке.
Комментарий оставлен: 2019-12-05 00:00:00


Имя: Orcinus Orca 🖉
Алексей, если на макетке то тогда уж проще Мегу+ENC и самому накатать сетевой протокол для общения. Но я рассматривал то, что мне попало в руки. Чисто для автономной работы умного дома я бы использовал Raspberry и прикрутил к нему внешние реле с опторазвязкой.
Комментарий оставлен: 2019-12-06 00:00:00


Имя: Дмитрий 🖉
Здравствуйте! Прошу уточнить где можно приобрести данное изделие
Комментарий оставлен: 2020-09-01 00:00:00


Имя: Orcinus Orca 🖉
Дмитрий, на алиэкспрессе их миллионы.
Комментарий оставлен: 2020-09-01 00:00:00


Имя: Сергей 🖉
А можно ознакомиться с инструкцией как привязать данный скрипт к боту в телеграмм?
Комментарий оставлен: 2020-10-14 00:00:00
Ответ:
Это индивидуально, так как моя реализация завязана на серию факторов.
1 - температура в помещении,
2 - наличие движения в помещении,
3 - команда с телеги на включение или отключение.

Если вырезать только код работы с телегой и только код управления релюшкой, то вы получите данные из этой статьи и статьи с указанной ссылкой в статье.
Ответ оставлен: 2021-01-11 08:27:11



Этот сайт использует файлы cookies, чтобы упростить вашу навигацию по сайту, предлагать только интересную информацию и упростить заполнение форм. Я предполагаю, что, если вы продолжаете использовать мой сайт, то вы согласны с использованием мной файлов cookies. Вы в любое время можете удалить и/или запретить их использование изменив настройки своего интернет-браузера.

Сообщайте мне о замеченных ошибках на: web@orcinus.ru. Все пожелания и советы будут учтены при дальнейшем проектировании сайта. Я готов сотрудничать со всеми желающими. В некоторых случаях, мнение автора может не совпадать с мнением автора! Phone: +7-902-924-70-49.

Top.Mail.Ru
Top.Mail.Ru LiveInternet Rambler's Top100 Яндекс.Метрика