The program complex Smart House
Project site |
Configurator |
Mobile Gate |
Node |
Smart home Socket |
Modbus device controller |
Mobile app
Branch |
Status |
master |
|
dev |
|
docs |
|
Attention! The project is under active development.
Overview
With the help of the software package Smart Home you can control many devices.
Distributed network of devices based on software package Smart Home has no geographical boundaries and allows
manage devices anywhere in the Internet through a system of nodes - microservices.
You will be able to interact with these devices as if they were on your local network.
Create scripts and reactions to events in the web interface of the configurator through a flexible scripting system.
The system does not require a permanent connection to the Internet, it is completely autonomous and has no dependencies on external
services.
The basic principles underlying the system being developed are ease of setup, low cost of content and accessibility of the component base.
Features
- The ultimate smart thing solution - server, configurator, nodes, gateway, mobile application
- Free and open source
- Cross-platform Linux, MacOS, Windows ...
- Convenient WEB-configurator for fine-tuning
- Mobile application for equipment management
- Role system for separation of access rights
- Programs in javaScript, coffeeScript, typeScript
- Notification system SMS, Email, Slack, Telegram
- modbus, mqtt, zigbee2mqtt, rpc calling
- Autonomous system.
- Quick backup of all data, and recovery
- Have Docker images to enhance system security
- Minimum consumption of resources.
- Optimized for embedded devices like Raspberry Pi
- 100% local home automation
- Create and restore full backups of your whole configuration with ease
- Management web interface integrated into Smart home
- Alexa skills
Demo access
outdated version, not supported:
dashboard (https://board.e154.ru)
outdated version, not supported:
swagger (https://sh.e154.ru/api/v1/swagger)
user: admin@e154.ru
pass: admin
user: user@e154.ru
pass: user
Supported system
- macOS 386 10.6
- macOS amd64 10.6
- linux 386
- linux amd64
- linux arm-5
- linux arm-6
- linux arm-7
- linux arm-64
- linux mips64
- linux mips64le
- windows 386
- windows amd64
Schematic smart home map
Quick installation
Database postgresql
System Smart Home works with Postgresql database. Create a database and database user with full rights to this database.
Connection parameters to the database must be specified in the configuration file. Updating the server version may require updating the database.
, migrations will start automatically, manual intervention is not required.
sudo -u postgres psql
postgres=# create database mydb;
postgres=# create user myuser with encrypted password 'mypass';
postgres=# grant all privileges on database mydb to myuser;
Installation for development
go install \
github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway \
github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2 \
google.golang.org/protobuf/cmd/protoc-gen-go \
google.golang.org/grpc/cmd/protoc-gen-go-grpc
main server install
git clone https://github.com/e154/smart-home $GOPATH/src/github.com/e154/smart-home
cd $GOPATH/src/github.com/e154/smart-home
go mod vendor
go build
./smart-home -reset
./smart-home
editing configuration files
cp conf/config.dev.json conf/config.json
cp conf/dbconfig.dev.yml conf/dbconfig.yml
run server
./smart-home
Docker
git clone https://github.com/e154/smart-home
cd smart-home
docker-compose up
connect to the database, create two smart-home databases, smart-home-gate
It's all
Testing
The system supports self-testing of internal components, and is started by the command
go test -v ./tests/...
Support
Smart home Wiki: e154.github.io/smart-home
Bugs and feature requests: GitHub issues
Contributors
All the contributors are welcome. If you would like to be the contributor please accept some rules.
- The pull requests will be accepted only in "develop" branch
- All modifications or additions should be tested
Thank you for your understanding!
See also
LICENSE
GPLv3 Public License