v0.1.0 — private beta-version.
v0.2.0 — development.
v1.0.0 — release.
- See release
- New core architecture.
- New library.
- The documentation has been completed.
- The SHScore has not been tested.
- The demo version is incomplete.
- Tests and additions are expected.
v1.1.0 — added tests.
- Tests have been written and conducted, created the library SHStests.
- A random number generator (shs::Random) has been created.
- Development of a project assembly system.
- shs::ByteCollecor: fixed a critical error in functions get() and reserve().
- shs::CRC: now the function crcBuf(..) writes the result to a variable crc.
- The synchronizer has been replaced with a make.sh.
v1.2.0 — intermediate version.
- A file system has been developed
[beta]:- shs::FSAbstract and shs::FileAbstract — interface classes.
- shs::FS — file system class.
- shs::File — file class.
- shs::SHSF —
[beta]Smart Home System File (.shsf). It has errors now.
note: The File System is poorly tested and isn't fully developed.
- Developed a new ID-type SHSID.
- Added SHSversion.h.
- An important version for the further development of the project.
v2.0.0 — global update.
- Build System: Completed a comprehensive project build system using CMake and Shell.
- Data Structures and Algorithms: Added algorithms and containers for working with ordered data:
shs::SortedBuf: A container for working with orderedstd::vector.shs_algorithms: Template functions for searching, inserting, and deleting elements in containers.
- Memory Management: Improved memory handling with added move semantics.
- SHSDTP Module: Major changes, divided into components and expanded:
- Component classes:
shs::DTP: A container class for linking data buses and API handlers.shs::DTPbus: An abstract class for a data bus that accepts and sends messages.shs::DTPdiscover: A class for discovering devices on a local network.shs::DTPless: Comparison operators for search and sorting algorithms.shs::DTPpacket: A class for creating, encrypting, and decrypting messages.
- Fully tested.
- Component classes:
- Program Time: Function names have been changed, optimized, bugs fixed, and tested.
- Fixed-Point Numbers: Created
shs::SimpleFixed, a temporary implementation for convenience. - Network Module:
- Updated and debugged
shs::ControlWiFi. - Added
shs::IPclass for storing and working with IP addresses. - Created and tested classes for working with Qt sockets:
shs::qt::TcpSocketshs::qt::UdpSocket
shs::TcpServer: Updated functionality, debugged, and tested.- Automatically attaches clients to
shs::DTP. - Configures clients to delete when the connection is closed.
- Automatically attaches clients to
shs::TcpSocket: Updated functionality, debugged, and tested.- Based on
shs::DTPbus. - Automatic reconnection in case of connection loss.
- Qt support.
- Based on
- UDP Support:
- Created
shs::UDP, providing an interface for working with UDP. shs::UdpBus: Works with UDP as withshs::DTPbus.shs::UdpBroadcastBus: Sending and receiving broadcast messages.shs::UdpMulticastBus: Sending and receiving messages in a group.
- Created
- Updated and debugged
- Load Components: Redesigned, debugged, and tested.
- Types Module: Developed from
shs_settings_private.h. - Sensor Module:
- Redesigned, debugged, and tested.
- Functionality changes:
update()must be called before getting the value.updateFast(), if supported by the sensor, measures less accurately but faster.- Added error status.
- Support for multiple metrics.
- Library Updates:
- The library has been expanded and now includes new components:
- GRGB API: An API for working with GRGB (from AlexGyver's library).
- RGB Color Music Library: A library for managing RGB color music effects.
- Sensor Support: Added support for various sensor types:
BME280DHTDS18MHZ19ThermistorSensorTypes: An enumeration for different sensor types.
- The library has been expanded and now includes new components:
- Undebugged Components:
shs::StreamBus: Not debugged, has bugs. Support and development expected in future versions.shs::EventTracker: Has bugs and errors.
- Unused Components:
shs::CreateProcess: The class creates a process from function pointer templates.shs::MutexSafe: Component of an unused OS module.
- Underdeveloped Components:
shs::Time: Unix time storage and parsing (not developed).
Changes (see also here)
v2.1.0 — The core functionality has been expanded; sensor libraries have been debugged and tested; added a new device ClimateStation.
- Changes:
shs::ByteCollector: Optimization and bugs fix.shs::ID: Fixed a bug during the assignment of ID components.shs::version::Version: Added compare operators.shs::SensorAnalog: Updated according to the changes in the base class.shs::SimpleFixed: Added copy constructors and assignment operators.
- New functional:
shs::LoadPWM: Returned to development, redesigned, debugged and tested.shs::ProgramTimer: A class has been created for timers inside the program code.
- Bugs:
shs::DTP_API: Critical error found. The error has not been fixed, the use of this class is unsafe!shs::TcpSocket: It has bugs related to shs::DTP_API. Temporary fixes have been made.
- Changes:
shs::Thermistor: Fixed bugs, tested.shs::GRGB_API: Fixed bugs, tested.shs::DS18: Completed, but need testing.
- Updated logos.
- Work on the ClimateStation project has been completed.
v2.2.X — [current] SHScore has been optimized and debugged. Deprecated code has been removed. Documentation has been updated.
- v2.2.0 — basic.
- v2.2.1 — fixed bugs in examples and build.
- Fixed critical bug in
examples/guide_system/make.sh. - Updated
make.shfor copy shs_settings.h in qt-build. - Added about the settings file and dependencies in
build_manual.md. - Removed deprecated shell-script.
- Fixed critical bug in
- v2.2.2 —
[current]fixed bugs in sensors libraries.- Fixed a critical bug: added cast to shs_fixed_t:
SHS_DHTSHS_MHZ19
SHS_BME280: replaced c-style cast.SHS_DHT: changed default expiration time.SHS_DS18: fixed a critical bug, tested, added default expiration_time in constructor.
- Fixed a critical bug: added cast to shs_fixed_t:
- Changes:
shs::ByteCollector:- optimized.
- removed c-style casts.
- added private functions
m_shift_right()andm_shift_left(). - optimized
insert().
shs::ControlWiFi:- Updated, prepared for expansion of functionality.
- The definition of functions is moved to the implementation file.
shs::SensorVirtual:- Bug fixed: updated according to changes in the base class
shs::Sensor.
- Bug fixed: updated according to changes in the base class
shs::SensorAnalog:- Fixed a bug in function getCacheExpiration().
shs::UDP:- Fixed conditional compilation bug.
shs::types:- Correct work with
shs_settings.h.
- Correct work with
- Bugs:
shs::DTP_API:[from v2.1.0]Critical error found. The error has not been fixed, the use of this class is unsafe!shs::TcpSocket:[from v2.1.0]It has bugs related to shs::DTP_API. Temporary fixes have been made.
- Added shs_settings_template for creating shs_settings.h.
- Created ControlWiFi-example.
- Changes:
- Some corrections in main
README.md. system_creation_guide.mdhas been rewritten and updated.
- Some corrections in main
Note
- Вся документация переехала в папку SHSdocumentation. Единая статья из
v1.X.Xразделена на тематические файлы и папки и дополнена. - У SmartHomeSystem есть блог разработки, там можно наблюдать за развитием проекта.
- Пример создания автоматизированной системы, используя фреймворк SmartHomeSystem можно посмотреть в system_creation_guide.
Important
На основе ядра и библиотек SmartHomeSystem разработано несколько устройств, которые тоже относятся к проекту, но для удобства их разработка ведется в отдельных репозиториях. В разделе SmartHomeSystem Projects можно кратко ознакомиться с устройствами и посетить соответствующие репозитории.
- Структура репозитория
- Краткий обзор
- SmartHomeSystem Projects
- Достижения проекта
- Источники информации и литература
- Благодарности
- Contacts
Проект выложен в репозитории на GitHub и доступен по ссылке: https://github.com/MrRyabena/SmartHomeSystem.
- awards — награды проекта (дипломы, документы, фотографии).
- SHSdocumentation — документация к проекту.
- Code — документация к программному коду.
- Hardware — рекомендации по подбору компонентной базы (датчики, микроконтроллеры, технические устройства).
- ProjectOverview — обзор проекта, особенности разработки, методы и подходы.
- Usage — руководства по сборке библиотек и использованию Smart HomeSystem, информация для пользователей и разработчиков.
- pitch — презентации проекта и вспомогательные файлы.
- schemes — картинки, схемы, чертежи...
- SHSlogos — логотипы и символика проекта.
- src — исходный код.
- examples — примеры использования программного кода.
- SHSapp — разработки графических приложений.
- SHScore — ядро (бизнес-логика), основная разработка.
- SHSlibrary — основанная на ядре библиотека с инструментами, интерфейсами датчиков и нагрузок, вычислительными алгоритмами.
- SHSqt_core — ядро для фреймворка Qt.
- SHSsettings — настройки компиляции исходников.
- make.sh — Shell-скрипт для сборки всех исходников проекта (см. документацию по использованию: build_manual).
Warning
Файл make.sh является shell-скриптом и не имеет отношения к системе сборки make. Чтобы не вводить пользователей в заблуждение в последующих обновлениях подобные файлы будут переименованы.
SmartHomeSystem — кроссплатформенный фреймворк, который упрощает создание автоматизированных систем для решения комплексных задач. Проект предлагает программные инструменты и технические решения для разработки модульных систем, способных быстро изменять свою конфигурацию. Алгоритмы и логика ПО позволяют как создавать цельные автоматизированные системы, так и использовать выборочные части кода в других проектах и standalone-устройствах.
- Технические разработки
- Компонентная база (см SHSdocumentation/Hardware)
- Схемы, платы, чертежи устройств и модулей
- 3D-модели корпусов и деталей модулей (см. репозитории отдельных устройств)
- Программные разработки
- Кроссплатформенное ядро (SHScore)
- Библиотеки для работы с устройствами и алгоритмами SHSlibrary
- Прошивки для микроконтроллеров
[unfinished]GUI приложения (SHSapp)[planned]Тесты[unfinished]Examples
- Разработки устройств
- Вынесены в отдельные репозитории
- Принципиальные электрические схемы для сборки
- Гербер-файлы печатных плат
- 3D-модели корпусов
- Дополнительная информация по алгоритмам сборки и настройки
- Документация
- Рекомендации по разработке аппаратной части
- Документация к коду (SHSdocumentation/Code)
- Инструкция по сборке и использованию программной части (SHSdocumentation/Usage)
- Руководства по проектированию собственных устройств
Ядро SmartHomeSystem реализует основные функции проекта и на данный момент включает в себя следующие ключевые разработки:
- контейнеры для хранения и представления данных
- инструменты для работы с окружением операционных систем
- стандарты представления и передачи данных
- абстракции датчиков и нагрузок
- утилиты и алгоритмы автоматизации
- алгоритмы управления и взаимодействия устройств, API
Схема ядра (see also here):

SHSlibrary содержит набор библиотек для работы с конкретными датчиками, нагрузками и алгоритмами.
Схема библиотеки (see also here):
Инструкции по сборке проекта находятся в папке документации (SHSdocumentation) в разделе Usage. Там же есть гайд по созданию систем, используя фреймворк SmartHomeSystem.
Tip
Рекомендуется внимательно ознакомиться со всей документацией. В её папке в соответствующем README описан порядок чтения разделов документации.
- Создание систем "Умный дом": автоматизация управления освещением, микроклиматом и бытовыми приборами для повышения комфорта и энергоэффективности.
- Автоматизация производственных и бизнес-процессов: оптимизация работы оборудования и управление производственными линиями для повышения эффективности.
- Разработка специализированных решений для управления и мониторинга: использование в научных исследованиях для создания систем датчиков и мониторинга.
- Умные офисы: автоматизация управления освещением, климатом и системами безопасности для повышения комфорта и продуктивности сотрудников.
- Сценические эффекты и динамические инсталляции: управление прожекторами, дымогенераторами, создание эффектов для уникальных визуальных представлений на мероприятиях и инсталляциях.
- Фото и видеоиндустрия: управление системой источников света и художественных эффектов во время съемок для создания уникальных материалов.
- Образовательные учреждения: создание интерактивных учебных лабораторных проектов, наборов для проведения и мониторинга экспериментов.
- Сельское хозяйство: автоматизация процессов полива, контроля температуры и влажности воздуха и почвы для повышения урожайности.
Important
Далее перечислены проекты, которые являются частью SmartHomeSystem, но для удобства разработки вынесены в отдельные репозитории.
-
SmartSpot — мощный светодиодный RGB-прожектор, управляющийся по WiFi через API с помощью GUI-приложения, Telegram-бота или кастомного пользовательского клиента. Светильник поддерживает различные эффекты, есть возможность объединить несколько спотов в группу, для мощного освещения сцены, фотозоны или других объектов. Несколько созданных светильников применяются в качестве сценического света, для проведения дискотек (имеется встроенная цветомузыка) и разработки тематических игр (в отдельной ветке проекта реализована игра Мафия, с тематической озвучкой и светоэффектами). Проект реализован и многократно испытан группой разработчиков SmartHomeSystem.
-
ClimateStation — метеостанция в специально разработанном для 3D-печати корпусе с сенсорным дисплеем. Собирает информацию с внутренних и внешних датчиков об атмосферном давлении, уровне CO2 (углекислого газа) в помещении, влажности и температуре воздуха. Станция умеет составлять прогноз погоды, подсказывать когда необходимо проветрить помещение и выводить показания с датчиков и графики их изменений. Сенсорный экран позволяет изменять настройки, переключать режимы работы и смотреть показания датчиков в реальном времени. Также устройство может обеспечивать обратную связь в системах климат-контроля SmartHomeSystem.
-
SmartBank — умная копилка, которая станет уникальным украшением в интерьере. Была создана во время хакатона "Умный Петербург 2025", по результатам которого заняла 1 место.SmartBank умеет распознавать номиналы монет, подсчитывать сумму, собирать статистику и выводить данные на экране и в Telegram чате. Устройство создано на основе ядра SmartHomeSystem для работы standalone или интеграции в системы умного дома.
Note
Описания достижений, дипломы, грамоты, фотографии и другие документы находятся в папке awards и в соответствующем README. Ниже представлено несколько наиболее значимых достижений SmartHomeSystem.
SmartBank, созданная на хакатоне "Умный Петербург 2025" как решение кейса от Санкт-Петербургского политехнического университета Петра Великого, заняла первое место в треке "Интернет вещей". За 2 дня наша команда смоделировала и напечатала корпус, собрала электронику, написала программный код и отладила механизм распознавания монет.
См.: /SHSdocumentation/ProjectOverview/2_literature.md
Автор выражает благодарность:
- AlexGyver'у (блогер и open source DIY разработчик), проекты которого послужили источником знаний и вдохновения для создания SmartHomeSystem.
- Ивану Макарову (преподаватель и ведущий программист-разработчик лаборатории МФТИ), лекции которого дали много полезных и глубоких знаний в области языка программирования C++.
Tg: https://t.me/MrRyabena
Mail: daniilrazanov82349@gmail.com
Development blog: https://t.me/SmartHomeSystem_dev
I will be glad to receive suggestions for improving the project, cooperation, and feedback.
Daniil Ryazanov (Даниил Рязанов)
Saint-Petersburg, 2025


















