Статьи
Чип и Мунк - Виртуальная Платформа
Поддерживает устройства, существующие только внутри системы: таймеры, счетчики, скрипты, сценарии, виртуальные переключатели, … Для работы устройств, связанных с отсчетом времени, ежесекундно отсылает tick-событие в канал
const TOPIC_TICK = "chipmunk/event/ticker/tick" Команды Платформа поддерживает следующий набор команд
Домен Команда Назначение switch turn_on Включить переключатель switch turn_off Выключить переключатель switch toggle Переключить переключатель telegram notify Отослать сообщение в telegram канал script execute Выполнить скрипт (сценарий) timer cancel Прервать работу таймера без оповещения в канал состояний timer start Запустить таймер с начала отсчета countdown stop Остановить обратный отсчет countdown start Начать обратный отсчет
Статьи
Чип и Мунк - Платформа MQTT
Платформа поддерживает устройства, умеющие отправлять состояние и принимать команды с MQTT сервера. Преимущественно использющие прошивку tasmota или OpenBK7231
С ядром системы платформа связана двумя каналами на основе mqtt: команды и состояния. Еще по два канала - состояния и команд связывают платформу с каждым из устройств. У неуправляемых устройств (датчики) канал команд отсутствует.
M Q T T S e r v s c s c e t o s t o r a m t a m t m a t m e a t e a s n e n d d P D M l e Q a v T t i T f c c o e o r m m m a n d s К общей логике обработки состояния всех платформ добавляется логика обработки состояния от устройства.
Статьи
Чип и Мунк - Платформа
Модуль платформы отвечает за взаимодействие с устройствами своего типа.
После старта платформа отправляет запрос на конфигурацию компонентов, как это описано
Полученный ответ фильтруется по принадлежности только к данной платформе. Результат сохраняется.
С ядром системы платформа связана двумя каналами на основе mqtt: команды и состояния.
M Q T T S e r v s e t r a t e s P l a t f o c r o m m m a n d s По входному каналу состояний пост-фактум приходят события изменения состояния компонета:
Статьи
Чип и Мунк – модуль конфигуратора
Модуль конфигуратора. Считывает конфигурацию приложения (устройства, автоматизация, скрипты) и отдает ее части по запросу.
Запросы поступают в mqtt topic chipmunk/config/request
const CONFIG_REQUEST_TOPIC = "chipmunk/config/request" type ConfigRequest struct { Command string `json:"cmd"` ReplyTopic string `json:"rpt"` } Поле Назначение Формат cmd Команда строка rpt mqtt topic ответа строка Модуль, желающий получить конфигурацю того или иного типа (обычно при старте модуля), посылает запрос, указывая тип в поле команды (component, script, automation) и mqtt topic, в котором он будет ожидать ответ.
Статьи
Чип и Мунк – модуль логгера
Модуль логов, стартует первым после MQTT сервера. Выводит в лог контейнера сообщения, посылаемый в топик mqtt chipmunk/event/log
Формат сообщения
Поле Назначение Формат svr Приоритет число src Источник строка msg Текст сообщения строка Приоритет:
SEVERITY_ALL Severity = 0 SEVERITY_DEBUG Severity = 1 SEVERITY_INFO Severity = 2 SEVERITY_WARN Severity = 3 SEVERITY_ERROR Severity = 4 { "svr":1, "src":"Automator.Execute", "msg":"action timer start timer.corridor_wardrobe" } По-умолчанию выводятся все сообщения. Но при старте логгера можно указать переменную окружения
Статьи
Чип и Мунк спешат на помощь
Когда я рассказывал о переезде домашнего сервера на Raspberry Pi, то показал несколько запущенных контейнеров chipmunk.
$ docker ps --format "table {{.Image}}\t{{.Names}}\t{{.Status}}" IMAGE NAMES STATUS chipmunk chipmunk-webservice Up 10 days chipmunk chipmunk-platform-virtual Up 10 days chipmunk chipmunk-automator Up 10 days chipmunk chipmunk-platform-homekit Up 10 days chipmunk chipmunk-platform-weather Up 10 days chipmunk chipmunk-platform-mqtt Up 10 days chipmunk chipmunk-configurator Up 10 days chipmunk chipmunk-transformator Up 10 days chipmunk chipmunk-logger Up 10 days eclipse-mosquitto mqtt Up 10 days pasha@raspi4:~ $ Это самописный сервер домашней автоматизации.
Статьи
Сайт на ладони
То, что большой компьютер может сделать при помощи маленькой программы, маленький компьютер сможет при помощи большой.
Вывод: достаточно большая программа может работать вообще без компьютера.
– откуда-то из интернета
Меня до сих пор удивляет прогресс в области вычислительной электроники. Процессоры Apple Silicon, конечно, это энергоэффективность и мощь, но и с помощью более дешевых устройств сейчас можно получить удивительные результаты.
Во времена перебоев с электричеством я перенес сервер домашней автоматизации с Mac mini (2012 года) на Raspberry Pi 4.