Pull to refresh
12
0

Apple HomeKit

Reading time 6 min
Views 2.5K
Go *Smart House IOT

В данной статье речь пойдет про Apple HomeKit Accessory Protocol (HAP): внутренности и разработку контроллера.

Apple HomeKit создан для взаимодействия контроллера (по умолчанию iOS-устройства, приложение Home) и множества устройств(аксессуаров). Протокол открыт для некоммерческого использования, загрузить его можно с сайта Apple. На основе этой версии протокола создано несколько open-source проектов, и когда говорят про HomeKit на каком-нибуль Raspberry Pi обычно подразумевают установку homebridge и плагинов для создания совместимых аксессуаров.

Обратная же задача - создание контроллера - не такая распространенная и из проектов мне удалось найти лишь pypi.org/project/homekit/.

Поставим задачу создать контроллер, например, для управления аксессуарами с Android-телефона и попробуем ее решить. Для простоты будем работать только с IP-сетями, без Bluetooth.

Читать далее
Total votes 9: ↑9 and ↓0 +9
Comments 2

В поисках gRPC-шлюза

Reading time 8 min
Views 5K
Go *

Дано:

несколько gRPC-сервисов, каждый слушает свой порт.

сервисы могут доверенно подключаться друг к другу, для аутентификации используется Mutual TLS.

некоторые процедуры предназначены только для внутреннего пользования, доступ извне к ним должен быть ограничен

Найти:

единую точку входа для API (API Gateway) для gRPC, HTTP/2.

Дисклеймер: решение так и не найдено, зато проведено исследование gRPC-отражения (reflection). Много ссылок.

Читать далее
Total votes 4: ↑4 and ↓0 +4
Comments 11

Выход из зоны комфорта: с nodejs на dlang

Reading time 5 min
Views 4.2K
Programming *Node.JS *D *Development for IOT *

В 2017м году я начал писать проект на nodejs — реализацию протокола ObjectServer от Weinzierl для доступа к значениям KNX. В процессе написания было изучено: работа с бинарными протоколами, представление данных, работа с сокетами(unix sockets в частности), работа с redis базой данных и pub/sub каналами.


Проект достиг стабильной версии. В это время я потихоньку ковыряю другие языки, в частности Dart и Flutter как его приложение. На полке пылится без действия купленный во времена студенчества справочник Г.Шилдта.


Настойчивая мысль переписать проект на C поселилась в голове. Рассматриваю варианты Go, Rust, отталкивающие иными синтаксическими конструкциями. Начать никак не получается, идея откладывается на время.

Читать дальше →
Total votes 19: ↑14 and ↓5 +9
Comments 3

bobaflu — программируем аксессуары на flutter

Reading time 7 min
Views 3K
Development for IOT *Flutter *


В данной статье речь пойдет о реализации мобильного клиента Flutter.


Какого именно мобильного клиента?


В предыдущей публикации описана система программных аксессуаров:
bobaoskit — аксессуары, dnssd и WebSocket.


Аналог программного аксессуара — реальный объект. Лампочка, переключатель, cd/кассетный проигрыватель, радио плеер, термостат, датчик температуры, датчик движения и т.д… Набор аксессуаров определяется фантазией и программным кодом. Можно реализовать хоть шахматную доску. Для такой доски надо иметь поле управления(control) move, принимающее объект { from: "e2", to: "e4" } для примера и сервисные поля для сброса фигур и т.д… Скрипт аксессуара обработает запрос на управление полем move, примет решение можно ли перемещать фигуру, и вернет(или нет) статус с положением фигур на всем поле.


На текущий момент поддерживаемые типы аксессуаров с минимальным функционалом следующие: "switch", "temperature sensor", "thermostat", "radio player".


Про шахматы далее речи не пойдет. Если интересно и в таком случае, добро пожаловать под кат.

Читать дальше →
Total votes 5: ↑3 and ↓2 +1
Comments 2

bobaoskit — аксессуары, dnssd и WebSocket

Reading time 7 min
Views 1.3K
Node.JS *Development for IOT *Smart House


Таким образом я описал строение системы управляемых программных аксессуаров.


Упрощенная модель включает в себя главный процесс(bobaoskit.worker) и скрипты аксессуаров(использующие объекты bobaoskit.sdk и bobaoskit.accessory). От главного процесса идет запрос к аксессуару для контроля некоторых полей. От аксессуара, в свою очередь, идет запрос к главному на обновление статуса.


В качестве примера возьмем обычное реле.


При входящей команде реле может иногда не изменить свое положение в силу различных причин(зависло оборудование, и прочее). Соответственно, сколько мы не будет отправять команд, статус меняться не будет. И, в другой ситауции, реле может поменять свое состояние при команде от сторонней системы. Его статус в таком случае изменится, скрипт аксессуара может среагировать на входящее событие о смене статуса и отправить запрос главному процессу.

Total votes 10: ↑10 and ↓0 +10
Comments 0

bobaos.pub — KNX TP/UART, Raspberry Pi и Redis

Reading time 7 min
Views 1.8K
Node.JS *Development for IOT *


Нет предела совершенству. Казалось бы, все работало хорошо, исправлялись мелкие баги и прочее.


Сейчас я расскажу, во-первых, о проблемах, с которыми столкнулся за все время, прошедшее с момента предыдущей статьи, и, во-вторых, о решениях, которые способствовали текущему статусу проекта.

Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Comments 0

Пишем CLI на NodeJS

Reading time 4 min
Views 6.9K
Programming *Node.JS *


Добрый вечер всем.


Возникла задача написать свой immersive CLI на node.js. Ранее для этой цели использовал vorpal. В этот раз захотелось обойтись без лишних зависимостей и, помимо этого, рассматривал возможность по-другому принимать аргументы команд.


С vorpal команды писались следующим образом:


setValue -s 1 -v 0

Согласитесь, каждый раз писать -s — не очень удобно.


В конце концов, команда преобразовалась в следующую:


set 1: 0

Каким образом это можно реализовать — под катом

Читать дальше →
Total votes 7: ↑7 and ↓0 +7
Comments 3

Bobaos — KNX TP/UART, Raspberry Pi и Apple HomeKit

Reading time 4 min
Views 4.9K
JavaScript *Programming *Node.JS *


В данной публикации я покажу как с нуля настроить и запустить homebridge(реализация HomeKit Accessory Protocol на nodejs) на базе Raspberry Pi, Weinzierl KNX BAOS 838 module kBerry и bobaos.

Читать дальше →
Total votes 4: ↑4 and ↓0 +4
Comments 2

Bobaos — KNX TP/UART, Raspberry Pi и Unix Domain Socket

Reading time 4 min
Views 2.9K
JavaScript *Programming *Node.JS *

В первой статье я рассказал о цели, сделал небольшое описание проекта. В данной публикации я расскажу о текущем положении дел и развитии проекта.



История не повторяется, история улучшается.

Цитата с пачки табака. Далее я показажу, что улучшилось за четыре месяца работы над проектом.

Читать дальше →
Total votes 11: ↑11 and ↓0 +11
Comments 2

Bobaos — доступ к шине KNX TP/UART c Raspberry Pi

Reading time 6 min
Views 8.8K
JavaScript *Programming *Node.JS *
Sandbox

Если вы не знакомы с системами автоматизации и стандартом KNX, то нужную информацию можете получить в гугле или с официальных сайтов. Если же вы работаете с данным стандартом — то многие вещи вам будут понятны, и, возможно, вас, как и меня, давно интересует вопрос каким же образом можно получить доступ к физической шине KNX, минуя IP роутеры.


Далее я покажу каким образом я решил для себя эту задачу, используя Raspberry Pi и модуль KNX BAOS 838 kBerry от Weinzierl.


Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Comments 9

Information

Rating
Does not participate
Registered
Activity