//21.102021 14:30 /* ----------------------- Variablen ------------------------------------------------- dpList Datenpunkt für IconList Widget (Typ: Zeichenkette (String)) dpSortMode Datenpunkt für Sortieren (Typ: Zeichenkette (String)) dpFilterMode Datenpunkt für Filter (Typ: Zeichenkette (String)) sprache Sprache für formatierung letzte Änderung formatierungLastChange Formatierung letzte Änderung -> siehe momentjs library farbeGeraetOnline Status Bar Farbe wenn Geräte online ist farbeGeraetOffline Status Bar Farbe wenn Geräte offline ist sortResetAfter Sortierung nach X Sekunden auf sortReset zurücksetzen (0=deaktiviert) sortReset Sortierung auf die zurückgesetzt werden soll filterResetAfter Filter nach X Sekunden zurücksetzen (0=deaktiviert) all_items Ein Array welches alle Geräte beinhaltet, unterteilt noch nach Etagen lichtGesamt Anzahl aller Lampen lichtAn Anzahl der Eingeschalteten Lampen bshPfad 1 Teil des Datenpunktes ------------------------- Arry Struktur ---------------------------------------------- 0 rest des Datenpunktes 1 Etage 2 Raum 3 Angezeigte Überschrift 4 Sensortyp --------------------------------------------------------------------------------------------*/ const moment = require("moment"); // Skript Einstellungen ************************************************************************************************************************************************* let dpList = '0_userdata.0.vis.Status.Licht.jsonList'; let dpSortMode = '0_userdata.0.vis.Status.Licht.sortMode'; let dpFilterMode = '0_userdata.0.vis.Status.Licht.filterMode'; let sprache = 'de'; let formatierungLastChange = "ddd DD.MM - HH:mm"; let farbeGeraetOnline = 'green'; let farbeGeraetOffline = 'FireBrick'; let sortResetAfter = 120; let sortReset = 'name' let filterResetAfter = 120; let all_items = new Array (); let lichtGesamt = 0; let lichtAn = 0; let bshPfad = "bshb.0.hdm:HomeMaticIP:"; //KG let kg_licht_keller = [ bshPfad + '3014F711A000191BB85AFD8C.PowerSwitch.switchState', 'KG', 'Keller', 'Keller', 'Bosch Lichtschalter' ]; all_items[0] = new Array( kg_licht_keller ); //EG let eg_licht_toilette = [ bshPfad + '3014F711A000191BB85AFCE6.PowerSwitch.switchState', 'EG', 'Toilette', 'Toilette', 'Bosch Lichtschalter' ]; let eg_licht_flur = [ bshPfad + '3014F711A0001918785A0B84.PowerSwitch.switchState', 'EG', 'Flur unten', 'Flur unten', 'Bosch Lichtschalter' ]; let eg_nachtlicht_flur = [ 'govee.0.DD:C5:A4:C1:38:43:44:86.powerState', 'EG', 'Flur unten', 'Flur unten LED-Strip Nachtlicht', 'Govee RGB-Strip' ]; let eg_licht_schlafzimmer = [ bshPfad + '3014F711A000191BB85AFE2B.PowerSwitch.switchState', 'EG', 'Schlafzimmer', 'Schlafzimmer', 'Bosch Lichtschalter' ]; let eg_licht_brigitte_min = [ 'ham.0.Brigitte-Min.Switch.On', 'EG', 'Schlafzimmer', 'Brigitte Min', 'Shelly 1 Licht' ]; let eg_licht_brigitte_max = [ 'ham.0.Brigitte-Max.Switch.On', 'EG', 'Schlafzimmer', 'Brigitte Max', 'Shelly 1 Licht' ]; let eg_licht_walter_min = [ 'ham.0.Walter-Min.Switch.On', 'EG', 'Schlafzimmer', 'Walter Min', 'Shelly 1 Licht' ]; let eg_licht_walter_max = [ 'ham.0.Walter-Max.Switch.On', 'EG', 'Schlafzimmer', 'Walter Max', 'Shelly 1 Licht' ]; let eg_licht_kueche_min = [ 'ham.0.Kueche-Min.Switch.On', 'EG', 'Küche', 'Decke Min', 'Shelly 1 Licht' ]; let eg_licht_kueche_max = [ 'ham.0.Kueche-Max.Switch.On', 'EG', 'Küche', 'Decke Max', 'Shelly 1 Licht' ]; let eg_licht_sitze = [ 'ham.0.Sitze.Lightbulb.On', 'EG', 'Wohnzimmer', 'LED-Strip Sitze', 'Govee RGB-Strip' ]; let eg_licht_Terrasse = [ 'ham.0.Terrasse.Lightbulb.On', 'EG', 'Wohnzimmer', 'LED-Strip Terrasse', 'Govee RGB-Strip' ]; let eg_licht_tv_backlight = [ 'ham.0.TV-Backlight.Lightbulb.On', 'EG', 'Wohnzimmer', 'LED-Strip TV-Backlight', 'Govee RGB-Strip' ]; all_items[1] = new Array( eg_licht_toilette, eg_licht_flur, eg_nachtlicht_flur, eg_licht_schlafzimmer, eg_licht_brigitte_min, eg_licht_brigitte_max, eg_licht_walter_min, eg_licht_walter_max, eg_licht_kueche_min, eg_licht_kueche_max, eg_licht_sitze, eg_licht_Terrasse, eg_licht_tv_backlight ); //OG let og_licht_flur = [ bshPfad + '3014F711A0001918785A0940.PowerSwitch.switchState', 'OG', 'Flur', 'Flur oben', 'Bosch Lichtschalter' ]; let og_licht_bad = [ bshPfad + '3014F711A000191BB85AFE01.PowerSwitch.switchState', 'OG', 'Badezimmer', 'Badezimmer', 'Bosch Lichtschalter' ]; let og_licht_buero_tuer = [ 'ham.0.Buero-Tuer.Switch.On', 'OG', 'Büro', 'Büro Tür', 'Shelly 1 Licht' ]; all_items[2] = new Array( og_licht_flur, og_licht_bad, og_licht_buero_tuer ); // ********************************************************************************************************************************************************************** // Fomate für moment Lib moment.locale(sprache); // auf Änderungen der Sortieung hören on({ id: dpSortMode, change: 'any' }, lichtStatus); on({ id: dpSortMode, change: 'any' }, resetSort); // auf Änderungen der Filter hören on({ id: dpFilterMode, change: 'any' }, lichtStatus); on({ id: dpFilterMode, change: 'any' }, resetFilter); // auf Änderung SwitchState hören on('bshb.0.hdm:HomeMaticIP:3014F711A0001918785A0940.PowerSwitch.switchState', lichtStatus); on('bshb.0.hdm:HomeMaticIP:3014F711A0001918785A0B84.PowerSwitch.switchState', lichtStatus); on('bshb.0.hdm:HomeMaticIP:3014F711A000191BB85AFCE6.PowerSwitch.switchState', lichtStatus); on('bshb.0.hdm:HomeMaticIP:3014F711A000191BB85AFD8C.PowerSwitch.switchState', lichtStatus); on('bshb.0.hdm:HomeMaticIP:3014F711A000191BB85AFE01.PowerSwitch.switchState', lichtStatus); on('bshb.0.hdm:HomeMaticIP:3014F711A000191BB85AFE2B.PowerSwitch.switchState', lichtStatus); on('ham.0.Buero-Tuer.Switch.On', lichtStatus); on('ham.0.Brigitte-Max.Switch.On', lichtStatus); on('ham.0.Brigitte-Min.Switch.On', lichtStatus); on('ham.0.Kueche-Max.Switch.On', lichtStatus); on('ham.0.Kueche-Min.Switch.On', lichtStatus); on('ham.0.Walter-Max.Switch.On', lichtStatus); on('ham.0.Walter-Min.Switch.On', lichtStatus); on('ham.0.Walter-Min.Switch.On', lichtStatus); on('ham.0.Sitze.Lightbulb.On', lichtStatus); on('ham.0.TV-Backlight.Lightbulb.On', lichtStatus); on('ham.0.Terrasse.Switch.On', lichtStatus); on('govee.0.DD:C5:A4:C1:38:43:44:86.powerState', lichtStatus); function istJsonDP() { if (!existsState('0_userdata.0.vis.Status.Licht.jsonList')) { createState('0_userdata.0.vis.Status.Licht.jsonList', {'name': 'Json List', 'type':'string', 'read':true, 'write':true, 'role':'state', 'def': ''}); createState('0_userdata.0.vis.Status.Licht.sortMode', {'name': 'Sortierung', 'type':'string', 'read':true, 'write':true, 'role':'state', 'def': ''}); createState('0_userdata.0.vis.Status.Licht.filterMode', {'name': 'Filterung', 'type':'string', 'read':true, 'write':true, 'role':'state', 'def': ''}); }; }; function lichtStatus() { istJsonDP(); lichtAn = 0; lichtGesamt = 0; try { let deviceList = []; for (var i = 0; i <= all_items.length - 1; i++) { var etageArray = all_items[i]; etageArray.forEach(function(element) { let buttonLink = ''; let onLine = true; let image; let AnAus = getState(element[0]).val; let listType = 'text'; let imageColor = 'red'; let etage = element[1]; let raum = element[2]; let sensor = element[4]; let statusBarColor = farbeGeraetOffline; let status = 2; if (onLine === true) { statusBarColor = farbeGeraetOnline; status = 1; }; statusBarColor = farbeGeraetOnline; lichtGesamt ++; if ((AnAus == 'ON') || (AnAus == 'on') || (AnAus == true)) { image = '/icons-icons8/others/color/Light On.png'; lichtAn ++; } else if ((AnAus == 'OFF') || (AnAus == 'off') || (AnAus == false)) { image = '/icons-icons8/others/color/Light Off.png'; }; let subText = `