Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/prysme01/MMM-Jeedom

Magic Mirror 2 JEEDOM Module
https://github.com/prysme01/MMM-Jeedom

jeedom magic-mirror magic-mirror-modules magicmirror magicmirror2

Last synced: 3 months ago
JSON representation

Magic Mirror 2 JEEDOM Module

Awesome Lists containing this project

README

        

# Magic Mirror 2 - JEEDOM Module

This module displays any JEEDOM command value. The information will be updated depending on the polling time.

If a PIR-sensor using MMM-PIR-Sensor module is used, this information will not be updated during screen off.

The infos will also not be updated when no instances of the MMM-Jeedom module are displayed on the screen (for example hidden by using MMM-Remote-Control or any carousel like MMM-Pages). This will allow to reduce the number of request to Jeedom API.
As soon as one MMM-Jeedom module will be again displayed on the screen, all the instances will request an update of the datas.

![alt text](https://raw.githubusercontent.com/prysme01/MMM-Jeedom/master/screenshots/MMM-Jeedom.png "Image of MMM-Jeedom")

![alt text](https://github.com/AgP42/MMM-Jeedom/blob/master/screenshots/MMM-Jeedom_1.png "Image of MMM-Jeedom_1")

![alt text](https://github.com/AgP42/MMM-Jeedom/blob/master/screenshots/MMM-Jeedom_2.png "Image of MMM-Jeedom_2")

## Module installation

Git clone this repo into ~/MagicMirror/modules directory :
```
cd ~/MagicMirror/modules
git clone https://github.com/prysme01/MMM-Jeedom.git
```
and add the configuration section in your Magic Mirror config file :

## Module configuration
(1st example of the screenshot) :
````javascript
modules: [
{
module: 'MMM-Jeedom',
header: 'Jeedom Maison',
position: "top_left",
config: {
updateInterval: 3000,
jeedomAPIKey: "",
jeedomURL: "192.168.0.1 or hostname",
jeedomPORT: 443,
jeedomHTTPS: true,
jeedomAPIPath: "/core/api/jeeApi.php",
sensors: [
{
idx: "127",
symbol: "fa fa-bolt",
customTitle: "Consommation Maison",
unit : "Watt",
},
{
idx: "695",
symbol: "fa fa-thermometer-full",
customTitle: "Temperature Rez de Chaussee",
unit : "C°",
},
{
idx: "773",
symbolon: "fa fa-user",
symboloff: "fa fa-user-o",
customTitle: "Adrien",
boolean : true,
},
{
idx: "6031",
symbol: "fa fa-music",
customTitle: "Musique",
hideempty:false,

},
],
Virtual_API: "", // Code APi de vos virtuals
TempID: "5089", // ID pour l'info température
HumID: "5088", // ID pour l'info d'humidité
}
},
]
````
Example how to use 2 infos on the same line :
(2nd example of the screenshot)
````
sensors: [
{//first info (value and unit only)
idx: "1987",
sameLine1: true,
unit : "°C",
},
{//second info (title, symbol, value and unit)
idx: "1988",
customTitle: "Météo",
symbol: "fa fa-sun-o",
sameLine2: true,
unit : "%",
},
{ //this one display only 1 info on its line
idx: "1996",
symbol: "fa fa-cloud",
customTitle: "Condition :",
},
{
idx: "1495",
//customTitle: "Grenier",
sameLine1: true,
unit : "°C",
},
{
idx: "1496",
customTitle: "Grenier",
symbol: "fa fa-thermometer-half",
sameLine2: true,
unit : "%",
},

{
idx: "1499",
//customTitle: "Cuisine",
sameLine1: true,
unit : "°C",
},
{
idx: "1500",
symbol: "fa fa-thermometer-half",
customTitle: "Cuisine",
sameLine2: true,
unit : "%",
},
]
````
Or (3rd example of the screenshot) :
````
[

{//first line : display the status of the heater occording to a boolean value
idx: "228",
symbolon: "fa fa-fire vert", //colors has to be defined on custom.css file
symboloff: "fa fa-power-off rouge",
boolean : true,
customTitle: "Cuisine",

},
{// second line : display both thermostat mode
//thermostat
idx: "980",
sameLine1: true,
},
{// and the thermostat target value
//valeur de consigne
idx: "966",
sameLine2: true,
unit : "°C",
},
{
idx: "544",
symbolon: "fa fa-fire vert",
symboloff: "fa fa-power-off rouge",
boolean : true,
customTitle: "Salle Meca",

},
{
//thermostat
idx: "1262",
sameLine1: true,
},
{
//valeur de consigne
idx: "1248",
sameLine2: true,
unit : "°C",
},
]

````
* HTTPS and HTTP is supported
* you can define all the sensors you want
* you can add several time the module in your Magic Mirror config and define a different updateInterval
* symbol is based on [Fontawesome](http://fontawesome.io/icons/)
* if you define the sensor as a "boolean:true" then you can :
- add symbolon and symboloff depending on the sensor value (0 or 1)
- add customTitleOn and customTitleOff depending on the sensor value (0 or 1)

## Configuration Options

The following properties can be configured:




Option
Description




updateInterval
Update interval in ms


Possible values: int

Default value: 5000

Note: This value is in ms



jeedomAPIKey
"Jeedom / paramétres / configuration / API . Activate the "Accès API JSONRPC" and take the API key globale of Jeedom




jeedomURL
local or externe URL


Possible values: 192.168.1.18



jeedomPORT
443 or 80


Possible values: 443 or 80

Default value: 443



jeedomHTTPS
HTTPS or HTTP


Possible values: boolean

Default value: true



animationSpeed
Speed to animate the display during an update, in ms


Default value: 1000



displayLastUpdate
If true this will display the last update time at the end of the task list. See screenshot above


Possible values: boolean

Default value: false



displayLastUpdateFormat
Format to use for the time display if displayLastUpdate:true


Possible values: See [Moment.js formats](http://momentjs.com/docs/#/parsing/string-format/)

Default value: 'dd - HH:mm:ss'



sensors
The list of sensor to be displayed, with extra config parameters :


  • idx: "1", : Jeedom ID of the equipement to display. Can be found in "Resumé domotique"

  • symbol: "fa fa-tint", : symbol to display if no other condition

  • symbolon: "fa fa-user", : symbol to display when equipement is ON if "boolean : true,"

  • symboloff: "fa fa-user-o", : symbol to display when equipement is OFF if "boolean : true,"

  • boolean : true, : if true, only the symbolon or symboloff is displayed

  • hiddenon: false, : info to hide if value is On

  • hiddenoff: false, : info to hide if value is Off

  • hideempty: false, : info to hide if value is Empty

  • customTitle: "No sensor define in config", : Title of this sensor

  • customTitleOn: undefined, : Title to display when equipement is ON if "boolean : true,". If customTitleOn is not set, customTitle is displayed

  • customTitleOff: undefined, : Title to display when equipement is OFF if "boolean : true,". If customTitleOff is not set, customTitle is displayed

  • statuson: undefined, : Status to display when equipement is ON if "boolean : true,". If statuson is not set, status from Jeedom sensor is displayed

  • statusoff: undefined, : Status to display when equipement is OFF if "boolean : true,". If statusoff is not set, status from Jeedom is displayed

  • unit : "%", : unit to display after the value of the sensor

  • sameLine1: false, : if true, it will be display on the same line than the "sameLine2: true". Only the value and the unit can be defined in that case. See example above

  • sameLine2: false, : if true, it will be display on the same line than the "sameLine1: true". The title and symbol define here will be used for both infos. See example above





Virtual_API
This is the API key for update Virtual, you should find it on menu Params / System / API




TempID
This is the command ID for virtual temperature information send to jeedom


Possible values: XXXX



HumID
This is the command ID for virtual Humidity information send to jeedom


Possible values: XXXX


## License

This project is licensed under the GPL License

## Acknowledgments

Thank you very much to [Mathias Arvidsson](https://github.com/M-Arvidsson/MMM-domoticz) for his code and inspiration for MMM-Domoticz