Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
badhitman committed Aug 2, 2023
1 parent 32e52bf commit fceaa16
Showing 1 changed file with 13 additions and 7 deletions.
20 changes: 13 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
# AbLog
# AbLog v.3

### предыдущие версии
Данное решение это третья версия подобного решения моего авторства
Это третья версия подобного решения моего авторства.
* Первая версия представляла из себя сервер под Android (Xamarin), а удалённый доступ предоставлялся через TelegramBot. Проект закрыт.
* Вторая версия приложения работала как под андроидом так и под Windows, Mac и Linux. В роли транспортного протокола использовался IMAP. Проект закрыт.
> Первые версии имели ряд критических недостатков (прежде всего в силу выбранных архитектурных решений/подходов и были окончательно закрыты). Идея хоститься на Android изначально мне очень нравилась, но надёжность хостинга в службах на этих устройствах была непредсказуема/недостаточна. На устройствах некотрых производителей Android устройств (прежде всего Xiaomi и другие китайфоны) работа OS жёстко ограничена и в погоне за максимальной производительностью службы (*Foreground services*) там могли быть внезапно остановлены вопреки ожидаемому поведению, которое официально задукоментировано Android.
Использование протокола IMAP как транспортного так же показало свою ненадёжность в зависимости от хостинга.

## Введение
Клиент-серверный вариант приложения для доступа к контроллерам умного дома [ab-log](https://ab-log.ru/) через MQTT сервер. Если быть точным, то это комплект из двух приложений (+ доступ через TelegramBot):
Expand Down Expand Up @@ -50,16 +54,18 @@
Использование шифрования трафика MQTT парольной фразой обеспечит достаточную анонимнось что бы ни кто не мог увидеть данные, которые ходят между серверной частью и удалённым клиентом. В то же время: серверная часть так же как и удалённый клиент Все данные открыто хранят в своей локлаьной БД. Если злоумышленник получит доступ локальному диску сервера или клиента - он получит доступ в том числе и к логинам/паролям MQTT, что позволит получить полный доступ к данному программному решению. Следует иметь ввиду, что удалённый клиент хранит у себя только настройки MQTT, а всё остальное для него проходит в режиме онлайн через MQTT транспорт.

### Управление правами доступа
Уровни прав регулируются только для TelegramBot доступа. Для него можно отдельно разрешить разные области доступа. Что касается доступ через удалённый клиент, то разграничений по правам нет. Вы можете добавлять/удалять пользователей средствами управления акаунтами MQTT. Технически вы можете везде использовать один
Уровни прав регулируются только для TelegramBot доступа. Для него можно отдельно разрешить разные области доступа. Что касается доступ через удалённый клиент, то разграничений по правам нет. Вы можете добавлять/удалять пользователей средствами управления акаунтами MQTT. Технически вы можете везде (на сервере и удалённых клиентах одновременно) использовать один и тот же акаунт MQTT, но тогда для того что бы отключить одного клиента вам прийдётся перенастроить и серверную часть и на всех удалённых клиентах. Если же для каждого узла использовать отдельные логин/пароль, то отключение одного отдельно взятого клиента будет проходить безболезненно. Например hivemq.cloud в бесплатной версии позволяет заводить до сотни акаунтов на сервер.

### База данных
В качестве СУБД используется SQLite. Это касается как удалённого клиента так и сервера. В то же время: удалённый клиент хранит у себя только настройки подключения к MQTT, а остальные настройки хранятся в БД серверной части.

### Особенности и ограничения использования бесплатного MQTT hivemq.cloud
...
На данный момент бесплатный тарифный план имеет следующие ограничения:
+ 100 IoT device connections.
+ 10 GB traffic per month.
+ Up to 3 days data retention time.
+ 5 MB message size.


### Изоляция нескольких контуров в рамках одного сервера MQTT (префиксы топиков)
Если у вас один единственный сервер MQTT, то по умолчанию все клиенты и сервер вместе с ними находятся в одном контуре.
###
###
Если у вас один единственный сервер MQTT, то по умолчанию все клиенты и сервер вместе с ними находятся в едином контуре. Т.е. имена MQTT топиков и подписки на них в рамках одного сервера будут разносить данные из разных контекстов в единую кучу. Избежать этого позволяет использование префиксов MQTT топиков. Благодаря префиксам имена топиков становятся уникальными в зависимости от рабочего контура. Таким образом разные группы пользователей могут работать не мешаю друг другу.

0 comments on commit fceaa16

Please sign in to comment.