From 8fc81db4153f23e22d1dd2feabab7a8bf8967f21 Mon Sep 17 00:00:00 2001 From: Ranlvor Date: Wed, 10 Apr 2019 21:50:54 +0200 Subject: [PATCH] Add home based on entropia template --- config/home/assets/layers/rooms.svg | 2 + config/home/assets/raw/entropia.draw.io | 1 + config/home/index.js | 197 ++++++++++++++++++++++++ 3 files changed, 200 insertions(+) create mode 100644 config/home/assets/layers/rooms.svg create mode 100644 config/home/assets/raw/entropia.draw.io create mode 100644 config/home/index.js diff --git a/config/home/assets/layers/rooms.svg b/config/home/assets/layers/rooms.svg new file mode 100644 index 0000000..bff7a11 --- /dev/null +++ b/config/home/assets/layers/rooms.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/config/home/assets/raw/entropia.draw.io b/config/home/assets/raw/entropia.draw.io new file mode 100644 index 0000000..cadc9b2 --- /dev/null +++ b/config/home/assets/raw/entropia.draw.io @@ -0,0 +1 @@ +5VZBk5sgGP013hUSY45tdtteOtOZHPbMyhdlguIgiWZ//WIAldVd247Tmc7mEnnA++C9JxjgQ9F+l6TKfwoKPEAhbQP8ECAU4X2i/zrkZpDYAZlk1A4agCN7AQuGFr0wCrU3UAnBFat8MBVlCanyMCKlaPxhJ8H9qhXJYAIcU8Kn6BOjKjdognYD/gNYlrvKUbw3Pc8kPWdSXEpbL0D4dP+Z7oI4LrvROidUNCMIPwb4IIVQ5qloD8A7bZ1sZt63d3q3hvVK+MXupO607QrLM8jaLV9CqX6HL57w2WWrm5MKSvqlU1y3SlFq8GuuCq5bkX6slRTnXsIOMfOBTvQflrTtddD5AlGAkjc9pBmM2Fr18pEHDpPAiWJXn57YPGQ9XV/hl2C6MAptdhNLY4OLwtBnqMVFpmAnjZX7Qx5FZAZqwqMfRpseoLsv8x7tPrtHcbKORxOe9TxKPp1HO7SSSYtE67k0o+HHxyNatrXJmYJjRdKu3ejb0jeW1JW5v06sBTrr9IlxfhBcyDuhu05cAq4gFbTvrj+az4CdgMOtf0ptrLajjODNTEh6cC4QngMfyI2X1bvfpJ0uD6He8YKW/1S6TbwsXZTMSBe9ze/fSLf5n6WL3rzRs9LtV0qdbg5fU+ZMGD5Z8eMr \ No newline at end of file diff --git a/config/home/index.js b/config/home/index.js new file mode 100644 index 0000000..2bb4f2e --- /dev/null +++ b/config/home/index.js @@ -0,0 +1,197 @@ +// @flow +import type { Config } from "config/flowtypes"; +import * as types from "config/types"; +import { mdi } from "config/icon"; + +const config: Config = { + space: { + name: "Home", + color: "orange", + mqtt: "ws://192.168.0.12:1884" + }, + topics: [ + { + + /* + *zigbee2mqtt/bulb_livingroom + *zigbee2mqtt/bulb_hallway + *zigbee2mqtt/bulb_bedroom + */ + + livingroomBrightness: { + state: { + name: "zigbee2mqtt/bulb_livingroom", + type: types.json("brightness") + }, + command: { + name: "zigbee2mqtt/bulb_livingroom/set", + type: (value) => JSON.stringify({ brightness: value.toString() }) + }, + defaultValue: "0" + }, + livingroomColorTemperature: { + state: { + name: "zigbee2mqtt/bulb_livingroom", + type: types.json("color_temp") + }, + command: { + name: "zigbee2mqtt/bulb_livingroom/set", + type: (value) => JSON.stringify({ "color_temp": value.toString() }) + }, + defaultValue: "250" + }, + livingroomState: { + state: { + name: "zigbee2mqtt/bulb_livingroom", + type: types.json("state", types.option({ + OFF: "off", + ON: "on" + })) + }, + command: { + name: "zigbee2mqtt/bulb_livingroom/set", + type: (value) => JSON.stringify({ state: value.toString() }) + }, + defaultValue: "OFF" + }, + bedroomBrightness: { + state: { + name: "zigbee2mqtt/bulb_bedroom", + type: types.json("brightness") + }, + command: { + name: "zigbee2mqtt/bulb_bedroom/set", + type: (value) => JSON.stringify({ brightness: value.toString() }) + }, + defaultValue: "0" + }, + bedroomState: { + state: { + name: "zigbee2mqtt/bulb_bedroom", + type: types.json("state", types.option({ + OFF: "off", + ON: "on" + })) + }, + command: { + name: "zigbee2mqtt/bulb_bedroom/set", + type: (value) => JSON.stringify({ state: value.toString() }) + }, + defaultValue: "OFF" + }, + hallwayBrightness: { + state: { + name: "zigbee2mqtt/bulb_hallway", + type: types.json("brightness") + }, + command: { + name: "zigbee2mqtt/bulb_hallway/set", + type: (value) => JSON.stringify({ brightness: value.toString() }) + }, + defaultValue: "0" + }, + hallwayState: { + state: { + name: "zigbee2mqtt/bulb_hallway", + type: types.json("state", types.option({ + OFF: "off", + ON: "on" + })) + }, + command: { + name: "zigbee2mqtt/bulb_hallway/set", + type: (value) => JSON.stringify({ state: value.toString() }) + }, + defaultValue: "OFF" + } + } + ], + controls: { + bedroomLight: { + name: "Schlafzimmer", + position: [300, 400], + icon: mdi("ceiling-light"), + ui: [ + { + type: "toggle", + topic: "bedroomState", + text: "Ein/Ausschalten", + icon: mdi("power") + }, + { + type: "slider", + min: 0, + max: 255, + text: "Helligkeit", + icon: mdi("brightness-7"), + topic: "bedroomBrightness" + } + ] + }, + hallwayLight: { + name: "Flur", + position: [500, 200], + icon: mdi("ceiling-light"), + ui: [ + { + type: "toggle", + topic: "hallwayState", + text: "Ein/Ausschalten", + icon: mdi("power") + }, + { + type: "slider", + min: 0, + max: 255, + text: "Helligkeit", + icon: mdi("brightness-7"), + topic: "hallwayBrightness" + } + ] + }, + livingroomLight: { + name: "Wohnzimmer", + position: [300, 200], + icon: mdi("ceiling-light"), + ui: [ + { + type: "toggle", + topic: "livingroomState", + text: "Ein/Ausschalten", + icon: mdi("power") + }, + { + type: "slider", + min: 0, + max: 255, + text: "Helligkeit", + icon: mdi("brightness-7"), + topic: "livingroomBrightness" + }, + { + type: "slider", + min: 250, + max: 454, + text: "Farbtemperatur", + icon: mdi("weather-sunset-down"), + topic: "livingroomColorTemperature" + } + ] + } + }, + layers: [ + { + image: require("./assets/layers/rooms.svg"), + baseLayer: true, + name: "Entropia", + defaultVisibility: "visible", + opacity: 0.7, + bounds: { + topLeft: [0, 0], + bottomRight: [720, 680] + } + } + ] +}; + +window.config = config;