Skip to content

Commit d233a4e

Browse files
committed
Merge pull request #144 from mycontroller-org/development
Merging with development branch for 0.0.3-alpha1 release
2 parents 4ce0941 + 40e568e commit d233a4e

File tree

878 files changed

+205236
-23671
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

878 files changed

+205236
-23671
lines changed

.travis.yml

+2-3
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@ jdk:
33
- oraclejdk8
44
branches:
55
only:
6-
- master
6+
- master
7+
- development
78
install:
89
- mvn -version -B
910
script:
10-
- git clone https://github.com/jkandasa/moquette
11-
- mvn -f moquette/pom.xml install -Dmaven.test.skip=true
1211
- mvn test

.tx/config

+8-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
[main]
22
host = https://www.transifex.com
33

4-
[gui-angularjs.mc_locale_gui]
4+
[multi-locale.mc_locale_gui]
55
source_file = src/main/package/www/languages/mc_locale_gui_source_en.json
66
source_lang = en
7-
file_filter = src/main/package/www/languages/mc_locale_gui_<lang>.json
8-
lang_map = en_US:en-us, de_DE:de-de, ru_RU:ru-ru, ta_IN:ta-in, hi_IN:hi-in, pt_PT:pt-pt
7+
file_filter = src/main/package/www/languages/mc_locale_gui-<lang>.json
8+
lang_map = en_US:en_us, de_DE:de_de, ru_RU:ru_ru, ta_IN:ta_in, hi_IN:hi_in, pt_PT:pt_pt, es_AR:es_ar, ca_ES:ca_es, es_ES:es_es, nl_NL:nl_nl
99

10+
[multi-locale.mc_locale_java]
11+
source_file = src/main/resources/mc_locale/mc_locale_java-source_en.properties
12+
source_lang = en
13+
type = PROPERTIES
14+
file_filter = src/main/resources/mc_locale/mc_locale_java_<lang>.properties

README.adoc

+102-81
Original file line numberDiff line numberDiff line change
@@ -4,136 +4,157 @@ image::logo-mycontroller.org_full.png[MyController.org, link="http://www.mycontr
44
---
55

66
ifdef::env-github[]
7-
[link=https://travis-ci.org/mycontroller-org/mycontroller]
8-
image:https://travis-ci.org/mycontroller-org/mycontroller.svg?branch=master["Build Status", link="https://travis-ci.org/mycontroller-org/mycontroller"]{nbsp}
97
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"]{nbsp}
108
image:https://www.paypalobjects.com/en_US/CH/i/btn/btn_donateCC_LG.gif[link="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=CHWAXCBVHTC64"]
119
endif::[]
1210

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

1516
====== Project website: http://www.mycontroller.org
16-
====== http://demo.mycontroller.org[Demo Link] Authentication: demo/demo
17+
====== Want to try now? http://demo.mycontroller.org[Demo server] Authentication: demo/demo
1718

1819
== About
1920

20-
*MyController.org* is a controller for the http://www.mysensors.org/[MySensors] project. Considered system resources in mind. Even we can run it on Raspberry PI (256 MB) very first model.
21+
*MyController.org* is automation controller for home, office or any place.
22+
Primarly this project started to support http://www.mysensors.org/[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.
2123

2224
== Localization
23-
====== For localization Contribute to the Transifex Project
24-
===== https://www.transifex.com/mycontrollerorg/gui-angularjs/[Web GUI Project]
25+
MyController.org supports multiple languages. If you have interest to add/translate your native language for MyController.org send a request on https://www.transifex.com/mycontrollerorg/multi-locale/[Transifex MyController.org locale project]
2526

2627
== System Requirement
2728

28-
MyController.org server is very lightweight, It required very less resource, believe me ;)
29+
MyController.org is a very lightweight server, It required very less resource, believe me ;)
2930

30-
* Disk : ~30 MB
31+
* Disk : ~30 MB (may require more space, when we store metrics data for long time)
3132
* Memory(RAM) : 40 MB
3233
* Java : 1.8 or later
3334

3435
NOTE: Test done up to 5 nodes and 30 sensors with the above configuration.
3536

3637
===== Supported Platforms (tested)
37-
MyController.org is java based application server. We can run it in any platform which supports Java.
38+
MyController.org is java based application server. We can run it in any platform where Java support is available.
3839

3940
- Linux
4041
- Windows
4142
- Raspberry PI (Oracle Java recommend)
4243

4344
== Available Features
4445

45-
Features available in https://github.com/mycontroller-org/mycontroller/releases/tag/0.0.2-alpha5[0.0.2-alpha5] version,
46-
47-
- Supports http://www.mysensors.org/build/serial_gateway[Serial Gateway], http://www.mysensors.org/build/ethernet_gateway[Ethernet Gateway], http://www.mysensors.org/build/mqtt_gateway[MQTT Gateway] and NRF24L01+ gateway via PiGatewaySerial (https://github.com/mysensors/Raspberry) on Raspberry PI
48-
- Auto discover and update nodes(upon nodes restart or receive any data)
49-
- Timer - Help you schedule time based operations. You can control till the seconds. Types,
46+
Features available in https://github.com/mycontroller-org/mycontroller/releases/tag/0.0.3-alpha1[0.0.3-alpha1] version,
47+
48+
- Supported networks
49+
* http://mysensors.org[MySensors.org]
50+
** http://www.mysensors.org/build/serial_gateway[Serial Gateway]
51+
** http://www.mysensors.org/build/ethernet_gateway[Ethernet Gateway]
52+
** http://www.mysensors.org/build/mqtt_gateway[MQTT Gateway]
53+
** NRF24L01+ gateway via PiGatewaySerial (https://github.com/mysensors/Raspberry) on Raspberry PI
54+
- Auto discover and update nodes
55+
- Timer - Help you to schedule time based operations. You can control till the seconds. Types,
56+
* Simple (with `repeat count` and `repeat interval`)
5057
* Normal (daily, weekly, monthly)
51-
* Cron
58+
* Cron expression
5259
* Before/After Sun Rises and Sun Sets
53-
- Alarm - based on information received from sensor
54-
* Notifications: Send Payload to another sensor, Sens https://www.plivo.com/[SMS], Send Email
55-
- Graphical reports (Last one hour, 24 hours, 30 days, years)
60+
- Alarm - based on information received from sensor, Node status or Gateway status
61+
* An alarm can support multiple notifications
62+
- Notifications - is a predefined action to be performed when a alarm triggered.
63+
* Send Payload to another sensor
64+
* Send SMS. Supports https://www.plivo.com/[Plivo] and https://www.twilio.com[Twilio]
65+
* Send Email
66+
* https://www.pushbullet.com[Pushbullet] note
67+
- Graphical reports
68+
* you can keep your sensors metrics data as long as you want.
5669
- Forward payload from one sensor to another sensor
57-
- Logs report
58-
- Send Payload to sensor
59-
- Reboot, Erase EEPROM, Update Firmware for any nodes which is running with https://github.com/mysensors/Arduino/tree/master/MYSBootloader[MYSBootloader]
60-
- Maintain firmware for all the nodes
61-
- Display battery level of node
62-
- Unique Identification number for each sensor
63-
- MyController.org server health status
64-
70+
* supports across gateways also
71+
- Resources logs
72+
- Node actions
73+
* Reboot, Erase configuration, Update Firmware for any nodes which is support
74+
* can tag particular firmware for a node
75+
* Display battery level of node with graphical support
76+
- Intractive dashboard.
77+
* can create any number of dashboards
78+
* widgets
79+
** Server time
80+
** Sunrise and sunset time
81+
** Sensors bullet graph
82+
** a sensor graph
83+
** group of sensors graph
84+
** mixed sensors graph
85+
** monitor and control sensor
86+
- Backup and restore via GUI
87+
- version to version auto migration support. available from 0.0.3-alpha1
88+
- Role based authentication
89+
* can map resources for particular user
90+
- Inbuilt MQTT broker
91+
- Supports multiple gateways
92+
- and many more
93+
6594
== Installation
6695

6796
====== Download(executable bundle),
6897

69-
* https://github.com/mycontroller-org/mycontroller/releases/download/0.0.2-alpha5/mycontroller-standalone-0.0.2-alpha5-bundle.zip[mycontroller-standalone-0.0.2-alpha5-bundle.zip]
70-
* https://github.com/mycontroller-org/mycontroller/releases/download/0.0.2-alpha5/mycontroller-standalone-0.0.2-alpha5-bundle.tar.gz[mycontroller-standalone-0.0.2-alpha5-bundle.tar.gz]
98+
* https://github.com/mycontroller-org/mycontroller/releases/download/0.0.3-alpha1/mycontroller-standalone-0.0.3-alpha1-bundle.zip[mycontroller-standalone-0.0.3-alpha1-bundle.zip]
99+
* https://github.com/mycontroller-org/mycontroller/releases/download/0.0.3-alpha1/mycontroller-standalone-0.0.3-alpha1-bundle.tar.gz[mycontroller-standalone-0.0.3-alpha1-bundle.tar.gz]
71100

72101
====== Configuration
73102

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

76105
File: `mycontroller.properties`
77106

78-
*Select your gateway*
79-
```
80-
mcc.ethernet.gateway.type=ethernet
81-
```
82-
- `mcc.ethernet.gateway.type`: Available gateway types: serial, ethernet, mqtt
83-
84-
*Serial Port Gateway Configuration*
85-
```
86-
mcc.serialport.driver.type=auto
87-
mcc.serialport.name=/dev/ttyUSB0
88-
mcc.serialport.baud.rate=115200
89-
```
90-
- `mcc.serialport.driver.type`: Available driver types: `pi4j, jssc, jserialcomm, auto`. It is recommended to keep in `auto`. *For now `jssc` driver is not stable with MyController.org*
91-
- `mcc.serialport.name` : will vary based on platform and number of ports. Find it on your computer and update
92-
- `mcc.serialport.baud.rate` : by default http://www.mysensors.org/build/serial_gateway[Serial Gateway] uses `115200`. If you changed on your setup you have to update your custom value here.
93-
94-
*Ethernet Gateway Configuration*
95-
```
96-
mcc.ethernet.gateway.host=192.168.178.6
97-
mcc.ethernet.gateway.port=5003
98-
mcc.ethernet.gateway.keep.alive.frequency=60
99-
```
100-
- `mcc.ethernet.gateway.host`: Host name/ip of your Ethernet Gateway
101-
- `mcc.ethernet.gateway.port`: Ethernet Gateway port
102-
- `mcc.ethernet.gateway.keep.alive.frequency`: This field is used to monitor Ethernet Gateway. If Connection goes try to reconnect automatically. Value in seconds.
103-
104-
*MQTT Gateway*
105-
```
106-
mcc.mqtt.gateway.broker.host=192.168.178.6
107-
mcc.mqtt.gateway.broker.port=1883
108-
mcc.mqtt.gateway.broker.root.topic=MyMQTT
109-
```
110-
- `mcc.mqtt.gateway.broker.host`: MQTT Gateway Hostname/IP
111-
- `mcc.mqtt.gateway.broker.port`: MQTT Gateway port
112-
- `mcc.mqtt.gateway.broker.root.topic`: Topic name, Should be same name that we used in MQTT Gateway(MQTT_BROKER_PREFIX)
107+
*Temporary file*
108+
----
109+
mcc.tmp.location=tmp/ # <1>
110+
----
111+
<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.,
113112

114113
*Database Configuration*
115-
```
116-
mcc.h2db.location=../conf/mycontroller
117-
```
118-
You can change default location and file name. File will be stored with the file extension `.h2.db`. Do not add file extenstion.
114+
----
115+
mcc.db.h2db.location=../conf/mycontroller # <1>
116+
----
117+
<1> You can change default location and file name. File will be stored with the file extension `.h2.db`. Do not add file extension.
119118

120119
*Web server configuration*
121-
```
122-
enable.https=true
123-
http.port=8443
124-
ssl.keystore.file=../conf/keystore.jks
125-
ssl.keystore.password=password
126-
ssl.keystore.type=JKS
127-
```
128-
- `enable.https` : Enable/disable https. Only one protocol supported at a time.
129-
- `http.port` : Port number you want to access MyController.org server
130-
- `ssl.keystore.file, ssl.keystore.password, ssl.keystore.type` : If https is enabled these fields are mandatory.
120+
----
121+
mcc.web.bind.address=0.0.0.0 # <1>
122+
mcc.web.enable.https=true # <2>
123+
mcc.web.http.port=8443 # <3>
124+
mcc.web.file.location=../www/ # <4>
125+
mcc.web.ssl.keystore.file=../conf/keystore.jks # <5>
126+
mcc.web.ssl.keystore.password=mycontroller # <5>
127+
mcc.web.ssl.keystore.type=JKS # <5>
128+
----
129+
130+
<1> bind interface address. by default it will bind with all the available interface.
131+
<2> Enable/disable https. Only one protocol supported at a time. true - `https`, false - `http`.
132+
<3> Port number of `http/https` to access MyController.org server.
133+
<4> web files location, no need to touch this one.
134+
<5> If `https` is enabled these fields are mandatory.
131135

132136
Default URL: `https://<ip>:8443` (ex: `https://localhost:8443`)
133137

134-
Default username/password: `admin/admin`
138+
NOTE: Default username/password: `admin/admin`
139+
140+
*Important*: Change default `mcc.web.ssl.keystore.file` and `mcc.web.ssl.keystore.password` and `https` protocol is
141+
recommended
142+
143+
*MQTT broker configuration*
144+
----
145+
mcc.mqtt.broker.enable=true # <1>
146+
mcc.mqtt.broker.bind.address=0.0.0.0 # <2>
147+
mcc.mqtt.broker.port=1883 # <3>
148+
mcc.mqtt.broker.websocket.port=7080 # <4>
149+
mcc.mqtt.broker.persistent.store=../conf/moquette/moquette_store.mapdb # <5>
150+
----
151+
152+
<1> Enable/disable inbuilt MQTT broker. by default it will be enabled. `true`- enabled, `false` - disabled
153+
<2> bind interface address. by default it will bind with all the available interface.
154+
<3> MQTT broker port
155+
<4> websoicket port
156+
<5> internal use. no need to touch this one.
135157

136-
IMPORTANT: Change default `ssl.keystore.file` and `ssl.keystore.password` and https protocol is recommended
137158

138159
*Logger configuration*
139160

@@ -155,5 +176,5 @@ Executable scripts are located in `mycontroller/bin/`
155176
* Other Platforms
156177

157178
```
158-
java -Xms8m -Xmx40m -Dlogback.configurationFile=../conf/logback.xml -Dmc.conf.file=../conf/mycontroller.properties -jar ../lib/mycontroller-standalone-0.0.1-single.jar
179+
java -Xms8m -Xmx40m -Dlogback.configurationFile=../conf/logback.xml -Dmc.conf.file=../conf/mycontroller.properties -jar ../lib/mycontroller-standalone-0.0.3-alpha1-single.jar
159180
```

locale_fix.sh

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#!/bin/bash
2+
#
3+
# Copyright (C) 2015-2016 Jeeva Kandasamy ([email protected])
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License");
6+
# you may not use this file except in compliance with the License.
7+
# You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
#
17+
18+
#refer http://docs.transifex.com/formats/java-properties/
19+
# remove all commented-out lines
20+
find ./ -name mc_locale_java_*.properties -exec sed -i -e 's/^# //g' {} \;
21+
echo "core java locale files commented-out lines removed.";

0 commit comments

Comments
 (0)