smart-home

command module
Version: v0.5.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 7, 2022 License: GPL-3.0 Imports: 1 Imported by: 0

README

The program complex Smart House

Project site | Configurator | Mobile Gate | Node | Smart home Socket | Modbus device controller | Mobile app

Go Report Card status telegram group

Branch Status
master Build Status
dev Build Status
smart-home logo

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
  1. The ultimate smart thing solution - server, configurator, nodes, gateway, mobile application
  2. Free and open source
  3. Cross-platform Linux, MacOS, Windows ...
  4. Convenient WEB-configurator for fine-tuning
  5. Mobile application for equipment management
  6. Role system for separation of access rights
  7. Programs in javaScript, coffeeScript, typeScript
  8. Notification system SMS, Email, Slack, Telegram
  9. modbus, mqtt, zigbee2mqtt, rpc calling
  10. Autonomous system.
  11. Quick backup of all data, and recovery
  12. Have Docker images to enhance system security
  13. Minimum consumption of resources.
  14. Optimized for embedded devices like Raspberry Pi
  15. 100% local home automation
  16. Create and restore full backups of your whole configuration with ease
  17. Management web interface integrated into Smart home
  18. 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

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

Documentation

The Go Gopher

There is no documentation for this package.

Source Files

Directories

Path Synopsis
api
dto
stub/api
Package api is a reverse proxy.
Package api is a reverse proxy.
cmd
cli
cli/commands/client
The following command will run pingmq as a client, subscribing to /ping/failure/+ topic and receiving any failed ping attempts.
The following command will run pingmq as a client, subscribing to /ping/failure/+ topic and receiving any failed ping attempts.
cli/commands/server
The following commands will run pingmq as a server, pinging the 8.8.8.0/28 CIDR block, and publishing the results to /ping/success/{ip} and /ping/failure/{ip} topics every 30 seconds.
The following commands will run pingmq as a server, pinging the 8.8.8.0/28 CIDR block, and publishing the results to /ping/success/{ip} and /ping/failure/{ip} topics every 30 seconds.
uuid
Package uuid provides implementation of Universally Unique Identifier (UUID).
Package uuid provides implementation of Universally Unique Identifier (UUID).
web
sun
system
cache
Package cache provide a Cache interface and some implement engine Usage: import( "github.com/astaxie/beego/cache" ) bm, err := cache.NewCache("memory", `{"interval":60}`) Use it like this: bm.Put("astaxie", 1, 10 * time.Second) bm.Get("astaxie") bm.IsExist("astaxie") bm.Delete("astaxie") more docs http://beego.me/docs/module/cache.md
Package cache provide a Cache interface and some implement engine Usage: import( "github.com/astaxie/beego/cache" ) bm, err := cache.NewCache("memory", `{"interval":60}`) Use it like this: bm.Put("astaxie", 1, 10 * time.Second) bm.Get("astaxie") bm.IsExist("astaxie") bm.Delete("astaxie") more docs http://beego.me/docs/module/cache.md
orm
tests
api

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL