Sign inSign up

automaticacore/automatica

By automaticacore

•Updated almost 2 years ago

Automatica is a open source building management software.

Image
1

100K+

automaticacore/automatica repository overview

⁠Automatica.Core

⁠Donate

Donate with Bitcoin

Donate DogeCoin: DPVz6RSAJrXZqTF4sGXpS1dqwvU36hSaAQ

⁠Status

⁠Backend Buid

Build Status Core

⁠Frontend Build

Build Status Web

⁠Develop Automatica.Core.Cloud Status

Demo Status

⁠SonarCloud

Quality Gate Status

Automatica is a building management system thats runs on .NET Core and is built to run on every OS. It is able to connect different automation systems and generate a rich visualization with a powerfull rule engine. Try it as your smart home hub today.

⁠Table of contents

⁠Where to get

I currently use the system on a Raspberry.PI3. It runs also on Windows and Mac, but I have only built a build system for the raspberry right now. If you need Automatica.Core for Windows/Mac just create an Issue.

⁠Raspberry PI

You can download the latest image & binaries here⁠

⁠Implemented drivers/logics

At the moment the following drivers & logics are implemented and ready to use, also all the drivers & logics bellow will be shipped by default.

⁠Drivers

⁠Logics

⁠Project structure

This project is a mono repository. The master & develop branch will be splitted nightly.

The Structure of the project is as follows.

.
├── automatica.build/        # Some build tools for the project (submodule repo)
├── bin/                     # Bin tools for splitting the repo
├── build/                   # Some build tools for the project 
├── docker/                  # Docker build files
├── documentation/           # docfx documentation source
├── images/                  # Image files displayed in the readme.md
├── src/                     # Source files
|   ├── automatica.core      # The core system for automatica.core
|   ├── automatica.drivers   # Automatica drivers - split repository
|   ├── automatica.logics    # Automatica logics - split repository
├── LICENSE
└── README.md

⁠How to build

Make sure that you have built the frontend first.

⁠Frontend

cd src/automatica.core/Automatica.WebNew
npm install
npm run start

The angular dist folder is in src/automatica.core/Automatica.Core/wwwroot

⁠Backend

cd src/automatica.core
dotnet restore
dotnet build

or open the src/automatica.core/automatica.core.sln with Visual Studio an hit F5.

You can download the latest plugins with the automatica-cli. More here⁠

⁠Contribute

Please refer to each project's style and contribution guidelines for submitting patches and additions. In general, we follow the "fork-and-pull" Git workflow.

  1. Fork the repo on GitHub
  2. Clone the project to your own machine
  3. Commit changes to your own branch
  4. Push your work back up to your fork
  5. Submit a Pull request so that we can review your changes

NOTE: Be sure to merge the latest from "upstream" before making a pull request! Pull request must have no merge conflicts!

Any help is appreciated!

⁠Docker images

Docker images will be build daily. The automaticacore image is here⁠ available.

There is also a automaticacore_proxy image which represents an nginx reverse proxy.

⁠How to use this image

docker run -it -p 5001:5001 automaticacore/automatica:latest-develop --name automatica

⁠Database

Automatica works with different database systems. Currently we support MySQL and SQlite.

The first startup can takeup some time, because the database needs to be initialized.

⁠SQLite
$ docker run -it \
    -p 5001:5001 \
    --mount type=bind,source=~/database,target=/app/database \
    -e DATABASE_TYPE="sqlite" \
    -e ConnectionStrings:"AutomaticaDatabaseSqlite=Data Source=/app/database/automatica.core.db" \
    --name automaticacore \
    automaticacore/automatica:latest-develop
⁠MySQL

You need to provide a maria-db server and enter the credentials in the environment variable in the docker run command:

$ docker run -it \
    -p 5001:5001 \
    -e DATABASE_TYPE="mysql" \
    -e ConnectionStrings:"AutomaticaDatabaseMaria=Server=<server>;User Id=<username>;Password=<password>;Database=<db-name>" \
    --name automaticacore \
    automaticacore/automatica:latest-develop

⁠Run in a docker image

To just play around with automatica.core use this docker-compose configuration.

version: '3.3'

services:
   automatica:
    image: automaticacore/automaticacore:develop-latest
    restart: always
    ports:
      - "5001:5001"
      
   nginx:
    image: automaticacore/automaticacore_proxy:develop-latest
    restart: always
    ports:
      - "80:80"
    links:
      - automatica

⁠Roadmap

Things I want to implement in the near future - help is appreciated!

⁠Roadmap core

  • Automatica.Core Mobile
  • Alarms
  • Data Recording
    • Record data for reporting, AI,....
  • Automatic editor - to generate time/trigger based actions
    • Simulate movement in the building when you are on vacation,etc...
  • Scripting interface
  • Reporting
  • Metering
    • Generate reports about your energy consumption and calculate the costs for your building/level/room,....
  • AI - Machine Learning
    • The building should know when are people at home and maybe in which room, therefore the building can detect automatically some enhancements for the configuration and be so more energy efficient.
  • ...

⁠Roadmap cloud

  • Gateway to connect your server via the cloud
  • Backup
  • Insights (Repoting, ...)
  • ...

⁠Roadmap Drivers

  • KNX Weinzierl BAOS (Raspberry PI)
  • ZigBee
  • Z-Wave
  • Fronius Solar API
  • Sonos
  • MQTT
  • 1-Wire
  • Homematic
  • HTTP - JSON/XML
  • ...

⁠Roadmap Logics

  • P/PI/PID
  • ...

⁠Screenshots

Configuration Configuration

Logic-editor Logic editor

Visualization Visualization

⁠Documentation

Documentation⁠

Tag summary

Content type

Image

Digest

sha256:a65024343…

Size

203.7 MB

Last updated

almost 2 years ago

docker pull automaticacore/automatica:8.1.0.1947-develop