/**
* generate an JSON for display Power-Card on NSPanel
* Source: https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Card-Definitionen-(Seiten)#cardpower-ab-ts-script-v341
* Version: 0.1 - L4rs
*/
schedule("* * * * *", function () {
// Definition der Datenpunkte für das JSON der POWER-Card und der anzuzeigenden Leistungswerte
var powerCardJson = "0_userdata.0.NSPanel.Energie.PowerCard",
pwr1 = Math.round(
getState("mqtt.0.SmartHome.Energie.PV.openDTU.114180710360.0.power").val
),
pwr2 = "",
pwr3 = "",
pwr4 = Math.round(getState("hm-rpc.0.MEQ0706303.1.POWER").val),
pwr5 = "",
pwr6 = 0,
pwrHome = Math.round(pwr4 - pwr1); // Berechnung des Energiefluss anstelle eines Datenpunktes
// Definition der Keys im JSON
var keys = ["id", "value", "unit", "icon", "iconColor", "speed"];
// Definition der "Kacheln"
var home = [0, pwrHome, "W", "home-lightning-bolt-outline", 0];
var item1 = [
1,
pwr1,
"W",
"solar-power-variant-outline",
3,
pwr1 > 0 ? -2 : 0,
];
var item2 = [2, pwr2, "", "", 0, ""];
var item3 = [3, pwr3, "", "", 0, ""];
var item4 = [4, pwr4, "W", "transmission-tower", 10, 10];
var item5 = [5, pwr5, "", "", 0, ""];
var item6 = [6, pwr6, "kW", "car-electric-outline", 5, 0];
/**
* JSON generieren und in den Datenpunkt schreiben,
*
* --- ab hier keine Änderungen mehr ---
*/
function func(tags, values) {
return Object.assign(
...tags.map((element, index) => ({ [element]: values[index] }))
);
}
setState(
powerCardJson,
JSON.stringify([
func(keys, home),
func(keys, item1),
func(keys, item2),
func(keys, item3),
func(keys, item4),
func(keys, item5),
func(keys, item6),
])
);
});