Java
Clone or download

README.adoc

MyController.org

Join%20Chat  btn donateCC LG

Master: Build Status

Development: Build Status

Project website: http://www.mycontroller.org
Want to try now? Demo server Authentication: demo/demo

About

MyController.org is an IoT automation controller for home, office or any place. Primarly this project was started to support MySensors. Later it was expanded to support other networks also. MyController.org was designed to run with limited resources. For instance, it can run on the first generation Raspberry Pi.

Localization

MyController.org supports multiple languages. If you are interested in providing a translation for your native language, send a request via Transifex MyController.org locale project

System Requirements

MyController.org is a very lightweight server. Its resource requirements are modest:

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

  • Memory(RAM) : 256 MB

  • Java : 1.8 or later

Supported Platforms (tested)

MyController.org is a Java-based application server. It can run on any platform where Java support is available.

  • Linux

  • Windows

  • Orange PI

  • Raspberry PI (Oracle Java recommended)

MyController and MySensors Setup

MyController  and MySensors setup.

Installation

Download(executable bundle),
Configuration

Extract the downloaded bundle in the directory where you want it to run. The configuration files are located in mycontroller/conf

File: mycontroller.properties

Temporary files

mcc.tmp.location=tmp/ (1)
  1. You can change the default location and file name. This directory is used as a temporary location for operations such as backup, restore, etc.

Database Configuration

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

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. 0.0.0.0 means it will bind to all available interfaces.

  2. Enable/disable https. Only one protocol is 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 builtin MQTT broker. By default it is enabled. true- enabled, false - disabled

  2. Bind interface address for the MQTT broker. By default it will bind to all available interfaces.

  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 -Xmx256m -Dlogback.configurationFile=../conf/logback.xml -Dmc.conf.file=../conf/mycontroller.properties -cp "../lib/*" org.mycontroller.standalone.StartApp