/mycontroller

The Open Source Controller

Primary LanguageJavaApache License 2.0Apache-2.0

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