Git Product home page Git Product logo

mycontroller's Introduction

MyController.org

Join%20Chatย  btn donateCC LG

Master: Build Status

Development: Build Status

Want to try now? Demo server Authentication: demo/demo

About

MyController.org is automation controller for home, office or any place. Primarly this project started to support MySensors. But later it expands support to other network also. Considered system resources in mind on development, as a outcome even we can run it on Raspberry PI (256 MB) very first model.

Localization

MyController.org supports multiple languages. If you have interest to add/translate your native language for MyController.org send a request on Transifex MyController.org locale project

System Requirement

MyController.org is a very lightweight server, It required very less resource, believe me ;)

  • Disk : ~30 MB (may require more space, when we store metrics data for long time)

  • Memory(RAM) : 40 MB

  • Java : 1.8 or later

    NOTE: Test done up to 5 nodes and 30 sensors with the above configuration.
Supported Platforms (tested)

MyController.org is java based application server. We can run it in any platform where Java support is available.

  • Linux

  • Windows

  • Raspberry PI (Oracle Java recommend)

Available Features

Features available in 0.0.3-alpha1 version,

  • Supported networks

  • Auto discover and update nodes

  • Timer - Help you to schedule time based operations. You can control till the seconds. Types,

    • Simple (with repeat count and repeat interval)

    • Normal (daily, weekly, monthly)

    • Cron expression

    • Before/After Sun Rises and Sun Sets

  • Alarm - based on information received from sensor, Node status or Gateway status

    • An alarm can support multiple notifications

  • Notifications - is a predefined action to be performed when a alarm triggered.

  • Graphical reports

    • you can keep your sensors metrics data as long as you want.

  • Forward payload from one sensor to another sensor

    • supports across gateways also

  • Resources logs

  • Node actions

    • Reboot, Erase configuration, Update Firmware for any nodes which is support

    • can tag particular firmware for a node

    • Display battery level of node with graphical support

  • Intractive dashboard.

    • can create any number of dashboards

    • widgets

      • Server time

      • Sunrise and sunset time

      • Sensors bullet graph

      • a sensor graph

      • group of sensors graph

      • mixed sensors graph

      • monitor and control sensor

  • Backup and restore via GUI

  • version to version auto migration support. available from 0.0.3-alpha1

  • Role based authentication

    • can map resources for particular user

  • Inbuilt MQTT broker

  • Supports multiple gateways

  • and many more

Installation

Configuration

Extract downloaded bundle where exactly do you want to run. Configuration files located in mycontroller/conf

File: mycontroller.properties

Temporary file

mcc.tmp.location=tmp/ # (1)
  1. You can change default location and file name. This file used as server temporery location. Used for the operation such as backup, restore, etc.,

Database Configuration

mcc.db.h2db.location=../conf/mycontroller # (1)
  1. You can change default location and file name. File will be stored with the file extension .h2.db. Do not add file extension.

Web server configuration

mcc.web.bind.address=0.0.0.0 # (1)
mcc.web.enable.https=true  # (2)
mcc.web.http.port=8443  # (3)
mcc.web.file.location=../www/  # (4)
mcc.web.ssl.keystore.file=../conf/keystore.jks  # (5)
mcc.web.ssl.keystore.password=mycontroller  # (5)
mcc.web.ssl.keystore.type=JKS  # (5)
  1. bind interface address. by default it will bind with all the available interface.

  2. Enable/disable https. Only one protocol supported at a time. true - https, false - http.

  3. Port number of http/https to access MyController.org server.

  4. web files location, no need to touch this one.

  5. If https is enabled these fields are mandatory.

Note
Default username/password: admin/admin

Important: Change default mcc.web.ssl.keystore.file and mcc.web.ssl.keystore.password and https protocol is recommended

MQTT broker configuration

mcc.mqtt.broker.enable=true # (1)
mcc.mqtt.broker.bind.address=0.0.0.0 # (2)
mcc.mqtt.broker.port=1883 # (3)
mcc.mqtt.broker.websocket.port=7080 # (4)
mcc.mqtt.broker.persistent.store=../conf/moquette/moquette_store.mapdb # (5)
  1. Enable/disable inbuilt MQTT broker. by default it will be enabled. true- enabled, false - disabled

  2. bind interface address. by default it will bind with all the available interface.

  3. MQTT broker port

  4. websoicket port

  5. internal use. no need to touch this one.

Logger configuration

Configuration File Name: logback.xml

Default log file location: logs/mycontroller.log

Start/Stop Server

Executable scripts are located in mycontroller/bin/

  • Linux

    • Start : ./start.sh

    • Stop : ./stop.sh

  • Windows

    • Start : Double click on start.bat

    • Stop : Ctrl+C

  • Other Platforms

java -Xms8m -Xmx40m -Dlogback.configurationFile=../conf/logback.xml -Dmc.conf.file=../conf/mycontroller.properties -jar ../lib/mycontroller-standalone-0.0.3-alpha1-single.jar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.