mycontroller-org / mycontroller-v1-legacy

The Open Source Controller
http://www.MyController.org
Apache License 2.0
148 stars 90 forks source link
arduino automation controller esp8266 homeautomation internet-of-things iot mysensors ota rflink sensor things weatherunderground

image::extra/images/logo-mycontroller.org_full.png[MyController.org, link="http://www.mycontroller.org"] :source-language: java, angularjs


ifdef::env-github[] image:https://badges.gitter.im/Join%20Chat.svg[link="https://gitter.im/mycontroller-org/mycontroller?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"] endif::[]

[link=https://travis-ci.org/mycontroller-org/mycontroller] Master: image:https://travis-ci.org/mycontroller-org/mycontroller.svg?branch=master["Build Status", link="https://travis-ci.org/mycontroller-org/mycontroller"] [link=https://travis-ci.org/mycontroller-org/mycontroller] Development: image:https://travis-ci.org/mycontroller-org/mycontroller.svg?branch=development["Build Status", link="https://travis-ci.org/mycontroller-org/mycontroller"]

====== Project website: http://www.mycontroller.org ====== Forum: http://forum.mycontroller.org

== About

MyController.org is an IoT automation controller for home, office or any place. Primarly this project was started to support http://www.mysensors.org/[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 https://www.transifex.com/mycontrollerorg/multi-locale/[Transifex MyController.org locale project]

== System Requirements

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

===== Supported Platforms (tested) MyController.org is a Java-based application server. It can run on any platform where Java support is available.

== MyController and MySensors Setup

image::extra/images/MyController-MySensors-RF.png[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. Default URL: `https://:8443` (ex: `https://localhost:8443`) 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 ``` === Build locally To build locally use a docker maven. it contains all the dependent jar Run the following command to build locally. ```bash git clone https://github.com/mycontroller-org/mycontroller-v1-legacy.git cd mycontroller-v1-legacy docker run --rm --name mycontroller-v1-builder \ --volume $PWD:/source \ --workdir /source \ quay.io/mycontroller-org/maven:mycontroller-v1-builder ./scripts/maven.sh ``` ==== Generated bundle executable bundles will be available at `dist/target` ```bash $ ls -alh dist/target/*.{tar.gz,zip} -rw-r--r--. 1 jkandasa jkandasa 36M May 8 22:58 dist/target/mycontroller-dist-standalone-1.6.0-SNAPSHOT-bundle.tar.gz -rw-r--r--. 1 jkandasa jkandasa 36M May 8 22:58 dist/target/mycontroller-dist-standalone-1.6.0-SNAPSHOT-bundle.zip ```