mirror of
https://github.com/joBr99/nspanel-lovelace-ui.git
synced 2025-12-22 23:44:25 +01:00
Fix for Version 20
This commit is contained in:
@@ -62,16 +62,13 @@ var button2Page: PageEntities =
|
|||||||
export const config: Config = {
|
export const config: Config = {
|
||||||
panelRecvTopic: "mqtt.0.tele.WzDisplay.RESULT",
|
panelRecvTopic: "mqtt.0.tele.WzDisplay.RESULT",
|
||||||
panelSendTopic: "mqtt.0.cmnd.WzDisplay.CustomSend",
|
panelSendTopic: "mqtt.0.cmnd.WzDisplay.CustomSend",
|
||||||
leftEntity: "alias.0.Batterie.ACTUAL",
|
firstScreensaverEntity: { ScreensaverEntity: "alias.0.Wetter.HUMIDITY", ScreensaverEntityIcon: 26, ScreensaverEntityText: "Luft", ScreensaverEntityUnitText: "%" },
|
||||||
leftEntityIcon: 34,
|
secondScreensaverEntity: { ScreensaverEntity: "alias.0.Wetter.PRECIPITATION_CHANCE", ScreensaverEntityIcon: 19, ScreensaverEntityText: "Regen", ScreensaverEntityUnitText: "%" },
|
||||||
leftEntityText: "Batterie",
|
thirdScreensaverEntity: { ScreensaverEntity: "alias.0.Batterie.ACTUAL", ScreensaverEntityIcon: 34, ScreensaverEntityText: "Batterie", ScreensaverEntityUnitText: "%" },
|
||||||
leftEntityUnitText: "%",
|
fourthScreensaverEntity: { ScreensaverEntity: "alias.0.Pv.ACTUAL", ScreensaverEntityIcon: 32, ScreensaverEntityText: "PV", ScreensaverEntityUnitText: "W" },
|
||||||
rightEntity: "alias.0.Pv.ACTUAL",
|
|
||||||
rightEntityIcon: 32,
|
|
||||||
rightEntityText: "PV",
|
|
||||||
rightEntityUnitText: "W",
|
|
||||||
timeoutScreensaver: 15,
|
timeoutScreensaver: 15,
|
||||||
dimmode: 8,
|
dimmode: 8,
|
||||||
|
screenSaverDoubleClick: false,
|
||||||
locale: "de_DE",
|
locale: "de_DE",
|
||||||
timeFormat: "%H:%M",
|
timeFormat: "%H:%M",
|
||||||
dateFormat: "%A, %d. %B %Y",
|
dateFormat: "%A, %d. %B %Y",
|
||||||
@@ -104,15 +101,21 @@ schedule("0 * * * *", function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// Only monitor the extra nodes if one or both are present
|
// Only monitor the extra nodes if present
|
||||||
var updateArray: string[] = [];
|
var updateArray: string[] = [];
|
||||||
if (config.rightEntity !== null && existsState(config.rightEntity)) {
|
if (config.firstScreensaverEntity !== null && config.firstScreensaverEntity.ScreensaverEntity != null && existsState(config.firstScreensaverEntity.ScreensaverEntity)) {
|
||||||
updateArray.push(config.rightEntity)
|
updateArray.push(config.firstScreensaverEntity.ScreensaverEntity)
|
||||||
|
}
|
||||||
|
if (config.secondScreensaverEntity !== null && config.secondScreensaverEntity.ScreensaverEntity != null && existsState(config.secondScreensaverEntity.ScreensaverEntity)) {
|
||||||
|
updateArray.push(config.secondScreensaverEntity.ScreensaverEntity)
|
||||||
|
}
|
||||||
|
if (config.thirdScreensaverEntity !== null && config.thirdScreensaverEntity.ScreensaverEntity != null && existsState(config.thirdScreensaverEntity.ScreensaverEntity)) {
|
||||||
|
updateArray.push(config.thirdScreensaverEntity.ScreensaverEntity)
|
||||||
|
}
|
||||||
|
if (config.fourthScreensaverEntity !== null && config.fourthScreensaverEntity.ScreensaverEntity != null && existsState(config.fourthScreensaverEntity.ScreensaverEntity)) {
|
||||||
|
updateArray.push(config.fourthScreensaverEntity.ScreensaverEntity)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config.leftEntity !== null && existsState(config.leftEntity)) {
|
|
||||||
updateArray.push(config.leftEntity)
|
|
||||||
}
|
|
||||||
if (updateArray.length > 0) {
|
if (updateArray.length > 0) {
|
||||||
on(updateArray, function () {
|
on(updateArray, function () {
|
||||||
HandleScreensaverUpdate();
|
HandleScreensaverUpdate();
|
||||||
@@ -123,15 +126,7 @@ on({ id: config.panelRecvTopic }, function (obj) {
|
|||||||
var json = JSON.parse(obj.state.val);
|
var json = JSON.parse(obj.state.val);
|
||||||
|
|
||||||
var split = json.CustomRecv.split(",");
|
var split = json.CustomRecv.split(",");
|
||||||
if (split[1] == "pageOpenDetail") {
|
HandleMessage(split[0], split[1], parseInt(split[2]), split);
|
||||||
UnsubscribeWatcher();
|
|
||||||
let pageItem = config.pages[pageId].items.find(e => e.id === split[3]);
|
|
||||||
if (pageItem !== undefined)
|
|
||||||
SendToPanel(GenerateDetailPage(split[2], pageItem));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
HandleMessage(split[0], split[1], parseInt(split[2]), split);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -147,6 +142,20 @@ function SendToPanel(val: Payload | Payload[]): void {
|
|||||||
|
|
||||||
function HandleMessage(typ: string, method: string, page: number, words: Array<string>): void {
|
function HandleMessage(typ: string, method: string, page: number, words: Array<string>): void {
|
||||||
if (typ == "event") {
|
if (typ == "event") {
|
||||||
|
<<<<<<< HEAD
|
||||||
|
switch (method) {
|
||||||
|
case "startup":
|
||||||
|
UnsubscribeWatcher();
|
||||||
|
HandleStartupProcess();
|
||||||
|
pageId = 0;
|
||||||
|
GeneratePage(config.pages[0]);
|
||||||
|
break;
|
||||||
|
case "pageOpenDetail":
|
||||||
|
UnsubscribeWatcher();
|
||||||
|
let pageItem = config.pages[pageId].items.find(e => e.id === words[3]);
|
||||||
|
if (pageItem !== undefined)
|
||||||
|
SendToPanel(GenerateDetailPage(words[2], pageItem));
|
||||||
|
=======
|
||||||
|
|
||||||
switch (method) {
|
switch (method) {
|
||||||
case "pageOpen":
|
case "pageOpen":
|
||||||
@@ -160,6 +169,7 @@ function HandleMessage(typ: string, method: string, page: number, words: Array<s
|
|||||||
HandleStartupProcess();
|
HandleStartupProcess();
|
||||||
GeneratePage(config.pages[0]);
|
GeneratePage(config.pages[0]);
|
||||||
break;
|
break;
|
||||||
|
>>>>>>> 8a48ff35d408a7712a3052ee3cf8fc84e8b699c7
|
||||||
case "buttonPress2":
|
case "buttonPress2":
|
||||||
HandleButtonEvent(words);
|
HandleButtonEvent(words);
|
||||||
break;
|
break;
|
||||||
@@ -237,7 +247,7 @@ function SendTime(): void {
|
|||||||
function GenerateEntitiesPage(page: PageEntities): Payload[] {
|
function GenerateEntitiesPage(page: PageEntities): Payload[] {
|
||||||
var out_msgs: Array<Payload> = [];
|
var out_msgs: Array<Payload> = [];
|
||||||
out_msgs = [{ payload: "pageType,cardEntities" }, { payload: "entityUpdHeading," + page.heading }]
|
out_msgs = [{ payload: "pageType,cardEntities" }, { payload: "entityUpdHeading," + page.heading }]
|
||||||
out_msgs.push({ payload: GeneratePageElements(page.items, 4,page.useColor) });
|
out_msgs.push({ payload: GeneratePageElements(page.items, 4, page.useColor) });
|
||||||
return out_msgs
|
return out_msgs
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -318,14 +328,15 @@ function CreateEntity(pageItem: PageItem, placeId: number, useColors: boolean =
|
|||||||
|
|
||||||
case "blind":
|
case "blind":
|
||||||
type = "shutter"
|
type = "shutter"
|
||||||
iconId = pageItem.icon !== undefined ? pageItem.icon : 0;
|
iconId = pageItem.icon !== undefined ? pageItem.icon : 11;
|
||||||
iconColor = GetIconColor(pageItem, existsState(pageItem.id + ".ACTUAL") ? getState(pageItem.id + ".ACTUAL").val : true, useColors);
|
iconColor = GetIconColor(pageItem, existsState(pageItem.id + ".ACTUAL") ? getState(pageItem.id + ".ACTUAL").val : true, useColors);
|
||||||
return "," + type + "," + pageItem.id + "," + iconId + "," + iconColor + "," + name + ","
|
return "," + type + "," + pageItem.id + "," + iconId + "," + iconColor + "," + name + ","
|
||||||
|
|
||||||
case "info":
|
case "info":
|
||||||
case "value.temperature":
|
case "value.temperature":
|
||||||
|
case "thermostat":
|
||||||
type = "text";
|
type = "text";
|
||||||
iconId = pageItem.icon !== undefined ? pageItem.icon : 11;
|
iconId = pageItem.icon !== undefined ? pageItem.icon : o.common.role == "value.temperature" || o.common.role == "thermostat" ? 2 : 0;
|
||||||
let unit = "";
|
let unit = "";
|
||||||
var optVal = "0"
|
var optVal = "0"
|
||||||
if (existsState(pageItem.id + ".ON_ACTUAL")) {
|
if (existsState(pageItem.id + ".ON_ACTUAL")) {
|
||||||
@@ -433,12 +444,15 @@ function GenerateThermoPage(page: PageThermo): Payload[] {
|
|||||||
currentTemp = parseInt(getState(id + ".ACTUAL").val) * 10;
|
currentTemp = parseInt(getState(id + ".ACTUAL").val) * 10;
|
||||||
|
|
||||||
let destTemp = 0;
|
let destTemp = 0;
|
||||||
if (existsState(id + ".SET"))
|
if (existsState(id + ".SET")) {
|
||||||
destTemp = parseInt(getState(id + ".SET").val) * 10;
|
destTemp = getState(id + ".SET").val.toFixed(2) * 10;
|
||||||
|
log(id + ".SET " + destTemp)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
let status = ""
|
let status = ""
|
||||||
if (existsState(id + ".MODE"))
|
if (existsState(id + ".MODE"))
|
||||||
status = destTemp = getState(id + ".MODE").val;
|
status = getState(id + ".MODE").val;
|
||||||
let minTemp = 180
|
let minTemp = 180
|
||||||
let maxTemp = 300
|
let maxTemp = 300
|
||||||
let stepTemp = 5
|
let stepTemp = 5
|
||||||
@@ -460,7 +474,6 @@ function setIfExists(id: string, value: any, type: string | null = null): boolea
|
|||||||
else {
|
else {
|
||||||
let obj = getObject(id);
|
let obj = getObject(id);
|
||||||
if (existsState(id) && obj.common.type !== undefined && obj.common.type === type) {
|
if (existsState(id) && obj.common.type !== undefined && obj.common.type === type) {
|
||||||
log(id)
|
|
||||||
setState(id, value);
|
setState(id, value);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -479,6 +492,67 @@ function toggleState(id: string): boolean {
|
|||||||
|
|
||||||
function HandleButtonEvent(words): void {
|
function HandleButtonEvent(words): void {
|
||||||
let id = words[2]
|
let id = words[2]
|
||||||
|
<<<<<<< HEAD
|
||||||
|
let buttonAction = words[3];
|
||||||
|
|
||||||
|
switch (buttonAction) {
|
||||||
|
case "bNext":
|
||||||
|
var pageNum = ((pageId + 1) % config.pages.length);
|
||||||
|
pageId = Math.abs(pageNum);
|
||||||
|
UnsubscribeWatcher();
|
||||||
|
GeneratePage(config.pages[pageId]);
|
||||||
|
break;
|
||||||
|
case "bPrev":
|
||||||
|
var pageNum = ((pageId - 1) % config.pages.length);
|
||||||
|
pageId = Math.abs(pageNum);
|
||||||
|
UnsubscribeWatcher();
|
||||||
|
GeneratePage(config.pages[pageId]);
|
||||||
|
break;
|
||||||
|
case "bExit":
|
||||||
|
if (config.screenSaverDoubleClick) {
|
||||||
|
if (words[4] == 2)
|
||||||
|
GeneratePage(config.pages[pageId]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
GeneratePage(config.pages[pageId]);
|
||||||
|
break;
|
||||||
|
case "OnOff":
|
||||||
|
if (existsObject(id)) {
|
||||||
|
var action = false
|
||||||
|
if (words[4] == "1")
|
||||||
|
action = true
|
||||||
|
let o = getObject(id)
|
||||||
|
switch (o.common.role) {
|
||||||
|
case "light":
|
||||||
|
setIfExists(id + ".SET", action);
|
||||||
|
break;
|
||||||
|
case "dimmer":
|
||||||
|
setIfExists(id + ".ON_SET", action) ? true : setIfExists(id + ".ON_ACTUAL", action);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "up":
|
||||||
|
setIfExists(id + ".OPEN", true)
|
||||||
|
break;
|
||||||
|
case "stop":
|
||||||
|
setIfExists(id + ".STOP", true)
|
||||||
|
break;
|
||||||
|
case "down":
|
||||||
|
setIfExists(id + ".CLOSE", true)
|
||||||
|
break;
|
||||||
|
case "button":
|
||||||
|
toggleState(id + ".SET") ? true : toggleState(id + ".ON_SET")
|
||||||
|
break;
|
||||||
|
case "positionSlider":
|
||||||
|
case "brightnessSlider":
|
||||||
|
setIfExists(id + ".SET", parseInt(words[4])) ? true : setIfExists(id + ".ACTUAL", parseInt(words[4]));
|
||||||
|
break;
|
||||||
|
case "tempUpd":
|
||||||
|
setIfExists(id + ".SET", parseInt(words[4]) / 10)
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
=======
|
||||||
|
|
||||||
if (words[3] == "OnOff" && existsObject(id)) {
|
if (words[3] == "OnOff" && existsObject(id)) {
|
||||||
var action = false
|
var action = false
|
||||||
@@ -519,6 +593,7 @@ function HandleButtonEvent(words): void {
|
|||||||
// out_msgs.push({ payload: id, action: "turn_on", domain: "lightTemperature", temperature: parseInt(words[7]) })
|
// out_msgs.push({ payload: id, action: "turn_on", domain: "lightTemperature", temperature: parseInt(words[7]) })
|
||||||
if (words[3] == "tempUpd") {
|
if (words[3] == "tempUpd") {
|
||||||
setState(id + ".SET", parseInt(words[4]) / 10)
|
setState(id + ".SET", parseInt(words[4]) / 10)
|
||||||
|
>>>>>>> 8a48ff35d408a7712a3052ee3cf8fc84e8b699c7
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -617,33 +692,30 @@ function HandleScreensaverUpdate(): void {
|
|||||||
let temperature: string =
|
let temperature: string =
|
||||||
existsState(config.weatherEntity + ".ACTUAL") ? getState(config.weatherEntity + ".ACTUAL").val :
|
existsState(config.weatherEntity + ".ACTUAL") ? getState(config.weatherEntity + ".ACTUAL").val :
|
||||||
existsState(config.weatherEntity + ".TEMP") ? getState(config.weatherEntity + ".TEMP").val : "null";
|
existsState(config.weatherEntity + ".TEMP") ? getState(config.weatherEntity + ".TEMP").val : "null";
|
||||||
let humidity = getState(config.weatherEntity + ".HUMIDITY").val;
|
|
||||||
|
|
||||||
|
|
||||||
let payloadString =
|
let payloadString =
|
||||||
"weatherUpdate,?" + GetAccuWeatherIcon(parseInt(icon)) + "?"
|
"weatherUpdate,?" + GetAccuWeatherIcon(parseInt(icon)) + "?"
|
||||||
+ temperature + " " + config.temperatureUnit + "?26?"
|
+ temperature + " " + config.temperatureUnit + "?"
|
||||||
+ humidity + " %?";
|
|
||||||
|
|
||||||
if (existsState(config.leftEntity)) {
|
payloadString += GetScreenSaverEntityString(config.firstScreensaverEntity);
|
||||||
let u1 = getState(config.leftEntity).val;
|
payloadString += GetScreenSaverEntityString(config.secondScreensaverEntity);
|
||||||
payloadString += config.leftEntityText + "?" + config.leftEntityIcon + "?" + u1 + " " + config.leftEntityUnitText + "?";
|
payloadString += GetScreenSaverEntityString(config.thirdScreensaverEntity);
|
||||||
}
|
payloadString += GetScreenSaverEntityString(config.fourthScreensaverEntity);
|
||||||
else {
|
|
||||||
payloadString += "???";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (existsState(config.rightEntity)) {
|
|
||||||
let u2 = getState(config.rightEntity).val;
|
|
||||||
payloadString += config.rightEntityText + "?" + config.rightEntityIcon + "?" + u2 + " " + config.rightEntityUnitText;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
payloadString += "??";
|
|
||||||
}
|
|
||||||
SendToPanel(<Payload>{ payload: payloadString });
|
SendToPanel(<Payload>{ payload: payloadString });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function GetScreenSaverEntityString(configElement: ScreenSaverElement | null): string {
|
||||||
|
if (configElement != null && configElement.ScreensaverEntity != null && existsState(configElement.ScreensaverEntity)) {
|
||||||
|
let u1 = getState(configElement.ScreensaverEntity).val;
|
||||||
|
return configElement.ScreensaverEntityText + "?" + configElement.ScreensaverEntityIcon + "?" + u1 + " " + configElement.ScreensaverEntityUnitText + "?";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return "???";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function GetAccuWeatherIcon(icon: number): number {
|
function GetAccuWeatherIcon(icon: number): number {
|
||||||
switch (icon) {
|
switch (icon) {
|
||||||
case 24: // Ice
|
case 24: // Ice
|
||||||
@@ -794,15 +866,12 @@ type Config = {
|
|||||||
timeFormat: string,
|
timeFormat: string,
|
||||||
dateFormat: string,
|
dateFormat: string,
|
||||||
weatherEntity: string | null,
|
weatherEntity: string | null,
|
||||||
|
screenSaverDoubleClick: boolean,
|
||||||
temperatureUnit: string,
|
temperatureUnit: string,
|
||||||
leftEntity: string,
|
firstScreensaverEntity: ScreenSaverElement | null,
|
||||||
leftEntityIcon: number,
|
secondScreensaverEntity: ScreenSaverElement | null,
|
||||||
leftEntityText: string,
|
thirdScreensaverEntity: ScreenSaverElement | null,
|
||||||
leftEntityUnitText: string | null,
|
fourthScreensaverEntity: ScreenSaverElement | null,
|
||||||
rightEntity: string,
|
|
||||||
rightEntityIcon: number,
|
|
||||||
rightEntityText: string,
|
|
||||||
rightEntityUnitText: string | null,
|
|
||||||
defaultColor: RGB,
|
defaultColor: RGB,
|
||||||
defaultOnColor: RGB,
|
defaultOnColor: RGB,
|
||||||
defaultOffColor: RGB,
|
defaultOffColor: RGB,
|
||||||
@@ -810,3 +879,10 @@ type Config = {
|
|||||||
button1Page: (PageThermo | PageEntities | PageGrid | null),
|
button1Page: (PageThermo | PageEntities | PageGrid | null),
|
||||||
button2Page: (PageThermo | PageEntities | PageGrid | null),
|
button2Page: (PageThermo | PageEntities | PageGrid | null),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
type ScreenSaverElement = {
|
||||||
|
ScreensaverEntity: string | null,
|
||||||
|
ScreensaverEntityIcon: number | null,
|
||||||
|
ScreensaverEntityText: string | null,
|
||||||
|
ScreensaverEntityUnitText: string | null,
|
||||||
|
}
|
||||||
@@ -66,14 +66,12 @@ const BatteryEmpty: RGB = { red: 179, green: 45, blue: 25 }
|
|||||||
var config: Config = {
|
var config: Config = {
|
||||||
panelRecvTopic: "mqtt.0.tele.WzDisplay.RESULT", // This is the object where the panel send the data to.
|
panelRecvTopic: "mqtt.0.tele.WzDisplay.RESULT", // This is the object where the panel send the data to.
|
||||||
panelSendTopic: "mqtt.0.cmnd.WzDisplay.CustomSend", // This is the object where data is send to the panel.
|
panelSendTopic: "mqtt.0.cmnd.WzDisplay.CustomSend", // This is the object where data is send to the panel.
|
||||||
leftEntity: "alias.0.Batterie.ACTUAL", // This is a state will be displayed on the left side.
|
firstScreensaverEntity: { ScreensaverEntity: "alias.0.Wetter.HUMIDITY", ScreensaverEntityIcon: 26, ScreensaverEntityText: "Luft", ScreensaverEntityUnitText: "%" },
|
||||||
leftEntityIcon: 34, // This is a icon which will be displayed on the left side.
|
// Items which should be presented on the screensaver page
|
||||||
leftEntityText: "Batterie", // The label for the left side.
|
secondScreensaverEntity: { ScreensaverEntity: "alias.0.Wetter.PRECIPITATION_CHANCE", ScreensaverEntityIcon: 19, ScreensaverEntityText: "Regen", ScreensaverEntityUnitText: "%" },
|
||||||
leftEntityUnitText: "%", // The unit which will be appendon the left side.
|
thirdScreensaverEntity: { ScreensaverEntity: "alias.0.Batterie.ACTUAL", ScreensaverEntityIcon: 34, ScreensaverEntityText: "Batterie", ScreensaverEntityUnitText: "%" },
|
||||||
rightEntity: "alias.0.Pv.ACTUAL", // The same but for the right side.
|
fourthScreensaverEntity: { ScreensaverEntity: "alias.0.Pv.ACTUAL", ScreensaverEntityIcon: 32, ScreensaverEntityText: "PV", ScreensaverEntityUnitText: "W" },
|
||||||
rightEntityIcon: 32,
|
screenSaverDoubleClick: false, // Doubletouch needed for leaving screensaver.
|
||||||
rightEntityText: "PV",
|
|
||||||
rightEntityUnitText: "W",
|
|
||||||
timeoutScreensaver: 15, // Timeout for screensaver
|
timeoutScreensaver: 15, // Timeout for screensaver
|
||||||
dimmode: 8, // Display dim
|
dimmode: 8, // Display dim
|
||||||
locale: "de_DE", // not used right now
|
locale: "de_DE", // not used right now
|
||||||
@@ -84,6 +82,14 @@ var config: Config = {
|
|||||||
defaultOnColor: RGB, // Default on state color for items
|
defaultOnColor: RGB, // Default on state color for items
|
||||||
defaultOffColor: RGB, // Default off state color for page
|
defaultOffColor: RGB, // Default off state color for page
|
||||||
temperatureUnit: "°C", // Unit to append on temperature sensors
|
temperatureUnit: "°C", // Unit to append on temperature sensors
|
||||||
|
<<<<<<< HEAD
|
||||||
|
pages: [Wohnen, Strom,
|
||||||
|
{
|
||||||
|
"type": "cardThermo",
|
||||||
|
"heading": "Thermostat",
|
||||||
|
"useColor": true,
|
||||||
|
"items": [<PageItem>{ id: "alias.0.WzNsPanel" }]
|
||||||
|
=======
|
||||||
pages: [
|
pages: [
|
||||||
{
|
{
|
||||||
"type": "cardEntities", // card type (cardEntities, cardThermo)
|
"type": "cardEntities", // card type (cardEntities, cardThermo)
|
||||||
@@ -114,6 +120,7 @@ var config: Config = {
|
|||||||
"heading": "Thermostat",
|
"heading": "Thermostat",
|
||||||
"useColor": false, // should colors be enabled on this page, can be overridden in PageItem
|
"useColor": false, // should colors be enabled on this page, can be overridden in PageItem
|
||||||
"item": "alias.0.WzNsPanel" // Needs to be a thermostat in the device panel
|
"item": "alias.0.WzNsPanel" // Needs to be a thermostat in the device panel
|
||||||
|
>>>>>>> 8a48ff35d408a7712a3052ee3cf8fc84e8b699c7
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
button1Page: button1Page, // A cardEntities, cardThermo or nothing. This will be opened when pressing button1
|
button1Page: button1Page, // A cardEntities, cardThermo or nothing. This will be opened when pressing button1
|
||||||
|
|||||||
Reference in New Issue
Block a user