Какие существуют способы взаимодействия скриптов python?

Добрый день! Решил переписать свою систему умный дом (громко сказанно).
В системе есть как управляемые так и пассивные устройства, раньше все это взаимодействовало в 1 скрипте.
Сейчас я решил изменить архитектуру программы, создать для каждого устройства скрипт (драйвер) к которому бы обращались другие программы.

Грубо говоря для каждого устройства я хочу написать скрипт который реализует все возможные функции устройства и мне нужно из другого скрипта получать результат работы функций скрипта драйвера. Подключить скрипт как библиотеку не подходит так как он запущен и постоянно работает в фоне.

Грубо говоря у нас есть:
Скрипт обработчик датчика освещенности.
скрипт обработчик лампы.

Я из любого скрипта хочу узнать освещенность типа lum = get.lum() или включить лампу lamp(true)
Как это сделать?
  • Вопрос задан
  • 893 просмотра
Решения вопроса 1
@zzzevaka
Микросервисная архитектура
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
thematdev
@thematdev
Плагинёр
Вы в скриптах пишите:
def your_function():
    #Тут то, что делает программа. Ну или один из функционалов.

Сохраняете все скрипты в облако(ну если для юзеров, то сделаете отправку). И импортируете нужное.
from your_script import your_function
А если нужно вызвать функционал:
your_script.your_function()
#Если в самом your_script:
your_function()

Ну вот Ваша проблема решена.
Ответ написан
mysticmirage
@mysticmirage
Я в своё время брал за основу протокол HDL. Там используются широковещательные UDP-пакеты на порт 6000.

Применительно к данному случаю, можно сделать так. При наступлении события (изменение освещённости до определённого уровня), датчик отправляет команду лампе включиться/выключится. Приёмник (лампа) настроен слушать такую команду и реагировать на неё.

Таким образом не нужно постоянно опрашивать датчик -- датчик сам включает лапму командой.

Там в протоколе предусмотрена обратная связь -- при переключении лампы она таким же широковещательным пакетом сообщает о своём состоянии. Либо же можно принудительно послать команду отдать своё состояние (без переключения).
Ответ написан
Комментировать
@Nick495
Увлекаюсь электроникой и микроконтроллерами.
У меня сделано таким образом. Все поступающие данные заносятся в базу данных MySQL на Raspberry PI. Если нужен последний измеренный уровень освещенности или статус лампы, то просто забираем их из базы данных, а если нужны свежие данные, то отправляем запрос через главный микроконтроллер и принимаем данные.

Не совсем понял вашу схему умного дома, похоже всем управляет компьютер? У меня Raspberry хранит базы данных и на нем работает сайт умного дома. Остальное сделано на микроконтроллерах.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы