diff --git a/new/Changelog.md b/new/Changelog.md new file mode 100644 index 0000000..41ebf7b --- /dev/null +++ b/new/Changelog.md @@ -0,0 +1,667 @@ +**ioBroker Changelog (TypeScript)** +# v4.4.0.11 + +![v44011](https://github.com/user-attachments/assets/d20662c0-238d-4c68-bbc4-dee348af3548) + + +[Forum Link](https://forum.iobroker.net/post/1222270) +**** + +# v4.4.0.5 + +![v4405](https://github.com/user-attachments/assets/d91b155d-35c5-4cfb-866e-221a5ca44c82) + +[Forum Link](https://forum.iobroker.net/post/1202535) +**** + +# v4.4.0.4 + +![v4404](https://github.com/user-attachments/assets/1c2e7e5d-277e-4a14-9a66-e6059fc5e824) + +[Forum Link](https://forum.iobroker.net/post/1201018) +**** + +# v4.4.0 + +Wechsel auf TFT 4.4.0 und Tasmota 14.0.0 +**** + +# v4.3.3.43 + +![v43343](https://github.com/user-attachments/assets/9d0a3a13-9e2a-44f3-9967-39ca4c857614) + + +[Forum Link](https://forum.iobroker.net/post/1127919) +**** + +# v4.3.3.40 + +![v43340](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/963a0dfd-7ab8-4880-8206-c3ddca395656) + +[Forum Link](https://forum.iobroker.net/post/1124745) +**** + +# v4.3.3.39 + +v4.3.3.39 + +[Forum Link](https://forum.iobroker.net/post/1121353) +**** + +# v4.3.3.38 + +![v43338](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/216aa36c-c2f5-4371-b272-fea8ac0c02c7) + +[Forum Link](https://forum.iobroker.net/post/1116411) +**** + +# v4.3.3.36 + +![v43336](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/f5bdf96f-6c14-40bc-ae96-0373851504b9) + +[Forum Link](https://forum.iobroker.net/post/1112980) +**** + +# v4.3.3.33 + +![v43333](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/0941467c-47ae-4fa7-bf25-d19f48c0694f) + + +[Forum Link](https://forum.iobroker.net/post/1107313) +**** + + +# v4.3.3.31 + +![v43331](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/da283111-150c-4ae0-a9c1-81b9f6fb0431) + +[Forum Link](https://forum.iobroker.net/post/1106161) +**** + +# v4.3.3.30 + +![v43330](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/b5baeaf3-f804-4844-92da-0f07e8eb4614) + +[Forum Link](https://forum.iobroker.net/post/1105617) +**** + +# v4.3.3.28 + +![v43328](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/626fc5ad-cfbf-46b4-8b32-fc263911ee93) + +[Forum Link](https://forum.iobroker.net/post/1104167) +**** + +# v4.3.3.27 + +![v43327](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/b662a622-f1c1-4212-8c9b-a27a97784071) + +[Forum Link](https://forum.iobroker.net/post/1102353) +**** + +# v4.3.3.25 + +![v43325](https://github.com/joBr99/nspanel-lovelace-ui/assets/102996011/326a2a6e-5a8d-4b8c-ab06-1fa16381bf48) + +[Forum Link](https://forum.iobroker.net/post/1098754) +**** + +# v4.3.3.24 (Hotfix) + +![v43324](https://github.com/joBr99/nspanel-lovelace-ui/assets/102996011/6d126909-a2ef-4683-8b4a-c850cd2a3335) + +[Forum Link](https://forum.iobroker.net/post/1096707) +**** + +# v4.3.3.23 + +![v43323](https://github.com/joBr99/nspanel-lovelace-ui/assets/102996011/2ee4cd33-4814-4212-b344-44d3c153ed48) + +[Forum Link](https://forum.iobroker.net/post/1096164) +**** + +# v4.3.3.22 + +![v43322](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/5d272138-4d4c-4c44-b118-adf7ff32cceb) + + +[Forum Link](https://forum.iobroker.net/post/1095383) +**** + +# v4.3.3.21 + +![v43321](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/db60fa68-9d52-4fa7-aeed-3f7e44a3bdc2) + + +**** + +# v4.3.3.20 + +![v43320](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/88c7fd60-df6e-44c2-a0ab-9c27c0b48aaf) + + +[Forum Link](https://forum.iobroker.net/post/1092494) +**** + +# v4.3.3.19 + +![v43319](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/f1530777-33c7-4d7b-b514-f91be08ddb82) + + +[Forum Link](https://forum.iobroker.net/post/1091873) +**** + + +# v4.3.3.18 + +![v43318](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/c0e5191c-fa6e-467c-985f-744201f1bf16) + + +[Forum Link](https://forum.iobroker.net/post/1091438) +**** + +# v4.3.3.17 + +![v43317](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/99f3fe78-8425-42ca-b658-93c0b04ff184) +![NSPanel](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/15bb9318-5097-4f81-a7b5-6b2431b85f27) + +[Wiki Link](https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-%E2%80%90-cardMedia-%E2%80%90-Der-SONOS-Player) +[Forum Link](https://forum.iobroker.net/post/1090546) +**** + +# v4.3.3.16 + +![v43316](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/dffd837a-59ed-4c0f-a199-e8a088f44b23) + +[Forum Link](https://forum.iobroker.net/post/1089353) +**** + +# v4.3.3.15 + +![v43315](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/991e3ef0-e6f8-44b2-882c-ea11eb33c06e) + +[Forum Link](https://forum.iobroker.net/post/1088675) +**** + +# v4.3.3.14 + +![v43314](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/255eea39-411f-426b-917a-5d9e551e9a73) + +[Forum Link](https://forum.iobroker.net/post/1087343) +**** + +# v4.3.3.13 + +![V43313](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/89251a3d-e53c-44f2-8c9d-266e0818c976) + +[Forum Link](https://forum.iobroker.net/post/1086744) +**** + +# v4.3.3.12 + +![V43312](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/8712797e-f437-4e6b-a221-8bde555a9167) + +[Forum Link](https://forum.iobroker.net/post/1086380) +**** + +# v4.3.3.11 + +![V43311](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/7b330c91-b629-4480-aaac-3f2e8c60452e) + +[Forum Link](https://forum.iobroker.net/post/1086380) +**** + +# v4.3.3.10 + +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/102996011/c60b36af-a39f-4f38-911b-80b4225206cd) + +[Forum Link](https://forum.iobroker.net/post/1085163) + +### Achtung Breaking Changes. +> Konstanten aus dem oberen Teil sind doppelt, wenn ausschließlich nur der untere Teil ausgetauscht wird! +**Bitte unbedingt nach der Update-Anleitung vorgehen:** +https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Starthilfe-FAQ#hilfe-bei-update--upgrade + +**** + +# v4.3.3.9 + +  | - 18.11.2023 - v4.3.3.6 Add autoCreateALias to PageAlarm +  | - 20.11.2023 - v4.3.3.6 Add actionStringArray to PageAlarm +  | - 20.11.2023 - v4.3.3.6 Add Multilingualism to cardAlarm (39 languages) +  | - 20.11.2023 - v4.3.3.7 Add Multilingualism to cardMedia (39 languages) +  | - 20.11.2023 - v4.3.3.8 Add Method dayjs (Multilingualism) +  | - 20.11.2023 - v4.3.3.9 Add ScreensaverEntityOnColor, ...OffColor, ...OnText, ...OffText + +[Forum Link](https://forum.iobroker.net/post/1083729) +**** + +# v4.3.3.5 +![1700223821684-0fe40ec2-e9e4-4505-855f-6684703d9885-image](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/65c4b641-3775-4f7c-a591-d1bd16dfe316) + +[Forum Link](https://forum.iobroker.net/post/1081945) +**** + +# v4.3.3.3 +![1699866147196-24b160ce-2408-490d-abb3-13bf895fdbf9-image](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/c1f6bc9c-0dfd-4cd7-9ea2-994f949dfa04) + +* v4.3.3.2 Add autoCreateALias to cardUnlock +* v4.3.3.2 Change NodeJS to at least v18.X.X +* v4.3.3.3 if setOption = false, do not create autoAlias (Functional/Servicemenu) and Datapoints + +[Forum Link](https://forum.iobroker.net/post/1079701) +**** + +# v4.3.3.1 +Bildschirmfoto 2023-11-12 um 15 49 46 + +[Forum Link](https://forum.iobroker.net/post/1079227) +**** + +# v4.3.2.1 +![1698692791078-91fe4d4d-e8d5-46ee-a241-52e7a95c5d11-image](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/f5cc3702-0984-4e28-bdc8-3f9ce762bbed) + +[Forum Link](https://forum.iobroker.net/post/1070661) +**** + +# v4.3.1.6 +![1697706281650-fe09ab24-9edc-4164-9123-95b87b4f1ab0-image](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/e88005ca-1f6c-4158-8469-4c7f3311d3bd) + +[Forum Link](https://forum.iobroker.net/post/1063274) +**** + +# v4.3.1.5 +Bildschirmfoto 2023-10-13 um 12 06 32 + +[Forum Link](https://forum.iobroker.net/post/1059690) +**** + +# v4.3.1.4 +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/f7db2ef3-3fe7-4ed6-af54-8a70c5bf7569) + +*** + +# v4.3.1.2/v4.3.1.3 +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/102996011/09dcf039-fbd1-494d-9c90-93d682ba2a31) + +[Forum Link](https://forum.iobroker.net/post/1049432) +*** + +# v4.3.1.1 +![1694951180030-bce68a5b-3f4f-451c-a64c-351743ed1645-image](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/d47e165a-60fc-4623-aac3-b4f320728b51) + +[Forum Link](https://forum.iobroker.net/post/1045086) +*** + +# v4.2.1.6 +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/37ec01be-060d-4d0b-b86c-71cb7098faf2) + +*** + +# v4.2.1.5 +image + +[Forum Link](https://forum.iobroker.net/post/1039117) +*** + +# v4.2.1.4 +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/24d81ccf-60eb-40c3-93e6-2cecd8e3f69c) + +[Forum Link](https://forum.iobroker.net/post/1038290) +*** + +# v4.2.1.3 +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/67f9935a-801d-4dd4-9fbf-c2eaa058fe1f) + +[Forum Link](https://forum.iobroker.net/post/1035344) +*** + +# v4.2.1.2 +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/ef1ef63d-b1a6-48ae-a053-5b5e063011e7) + +[Forum Link](https://forum.iobroker.net/post/1034341) +*** + +# v4.2.1.1 +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/937d19f2-b0cc-4d4d-95d3-6a2d476d443a) + +[Forum Link](https://forum.iobroker.net/post/1033818) +*** + +# v4.2.0.2 +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/2b915899-d1da-4dc8-aaba-d8683079dcfb) + +[Forum Link](https://forum.iobroker.net/post/1033498) +*** + +# v4.2.0.1 +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/decce552-f2cd-4e1a-bd22-fb8c2fb3e7b1) + +[Forum Link](https://forum.iobroker.net/post/1033227) +*** + +# v4.2.0 +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/124a9d8f-0f49-4bfe-9fe5-bb94be5242d3) + +[Forum Link](https://forum.iobroker.net/post/1033017) +*** + +# v4.1.4.4 +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/48c51925-565c-4ddd-9388-1623e250bb4a) + +[Forum Link](https://forum.iobroker.net/post/1029669) +*** + +# v4.1.4.2 +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/bbdd17b3-16a2-4dad-ba28-b303a0a9540d) + +[Forum Link](https://forum.iobroker.net/post/1028914) +*** + +# v4.1.4.1 +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/ab396fcc-7c74-45be-ab46-4198265f81fc) + +[Forum Link](https://forum.iobroker.net/post/1028713) +*** + +# v4.1.4 +![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/102996011/d46d49e5-748a-4708-a971-581effb86bf1) + + +# v4.0.5.5 + +Die Funktion CreateEntity wurde erweitert um die Rolle "timeTable", damit besteht die Möglichkeit Daten vom [Adapter "Fahrplan"](https://github.com/gaudes/ioBroker.fahrplan) zu visualisieren. Zusätzlich wird dieses [externe Script](https://github.com/tt-tom17/MyScripts/tree/main/Sonoff_NSPanel) benötigt. Weitere Infos [hier](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker---FAQ-&-Anleitungen#22-fahrplananzeiger). + +# v4.0.5.1 + +![228012141-a440d45b-d9ab-422d-8c61-68a4c8826914](https://user-images.githubusercontent.com/101348966/228247263-426bcd08-f65a-48f1-aac9-2a87c6f5f308.png) + +[Erweiterte Konfigurationsmöglichkeiten der Hardwaretasten](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker---FAQ-&-Anleitungen#anleitungen) - von bembelstemmer +Fix iconColor by 100% Brightness +Fix Funktion GeneratePowerPage inkl. DemoModus [Powercard](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Card-Definitionen-(Seiten)#cardpower-ab-ts-script-v341) (einfach leeres pageItem übergeben) +Fix colorTempSlider Arbeitsweise(seitenverkehrt) korrigiert +Debug - Error - Log - Meldungen angepasst + +Eine Licht von Typ **rgbSingle** benötigt nicht mehr den Datenpunkt **.TEMPERATURE** im Alias. + +Upgrade TFT 50 / 4.0.5 +Die [Status Icon](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Config-Screensaver#erweiterung-der-relaystatus-icons-ab-v390) über den Hardware + + +# v4.0.3 + +![1677525629878-9b7597a5-3d3d-43d5-b0c7-a4d42d8eac7f-image](https://user-images.githubusercontent.com/101348966/224631987-e3808582-0de8-4baf-a548-5d595dd47b5f.png) + +Änderungen in der Config + +aus + +`export const config: Config = {` + +wird + +`export const config = {` + + +und die **firstScreensaverEntity - fourthScreensaverentity** existieren nicht mehr. Erstatz dafür ist das Array **bottomScreensaverEntity**. Die ersten 4 bottomScreensaverEntity werden auch im Standard-Screensaver genutzt. + +Des weiteren ist der Erweiterte Screensaver enthalten: + +![1677526152660-837094a5-44e0-4c7c-9251-9e02dc80346c-image](https://user-images.githubusercontent.com/101348966/224631169-f4bb07c2-3d8a-4341-8f0d-8e5e5394abd7.png) + +Zur Konfiguration des Screensavers bitte die Wiki berücksichtigen: +[Screensaver Wiki](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Config-Screensaver#entity-status-icons-ab-v400) + +Für alle User mit kleinen Hackern zuhause gibt es jetzt die cardUnlock: +![1677526345821-df037f8b-91cd-418e-aeac-6a54e4e16915-image](https://user-images.githubusercontent.com/101348966/224632179-f73b2526-df53-4f52-b71b-be155b874bf8.png) +Siehe auch: [CradUnlock Wiki](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Card-Definitionen-(Seiten)#cardunlock-ab-v400) + +Ansonsen gab es diverse Erweiterungen und Minor-Bugfixes: +* Eine überarbeitete und erweiterte **Squeezebox** und diverse Optimierungen von [@bembelstemmer](https://forum.iobroker.net/uid/55112) +* Ein Mode - Fix für die cardThermo und dynamische Icons im Advanced Screensaver von [@Gargano](https://forum.iobroker.net/uid/2916) + +**Kurze Upgrade Empfehlung:** +* TypeScript anlegen und die Version https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/ioBroker/NsPanelTs_without_Examples.ts hinein kopieren +* altes Script deaktivieren (Fallback) +* Konfiguration anhand der Variablen aus dem anderen Script übernehmen (Achtung Config hat einen veränderten Aufbau und kann nicht 1:1 übernommen werden, siehe oben!) +* Erweiterungen für Advanced Screensaver aus Wiki oder NSPanel.ts (Script mit Beispielen) migrieren +* FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v4.0.3.tft in der Tasmota Console ausführen + +**Hinweis** +Es erforderlich sein kann, die vom TS-Script automatisch angelegten 0_userdata.0.NSPanel.X Verzeichnisse und Auto-Aliase zu löschen und neu anlegen zu lassen. + + +# v3.9.0 + +![image](https://user-images.githubusercontent.com/102996011/215470528-f4a9581a-9973-49a9-b472-3153d91f2c89.png) + +**Achtung Breaking Changes:** + +``` +FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v3.9.0.tft +``` + +Im oberen Konfigurationsbereich sind diverse Änderungen entstanden. Die einfachste Methode für ein Upgrade ist auf ein TS-Script ohne Beispiele aufzusetzten: https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/NsPanelTs_without_Examples.ts . + +Das vorhandene bereits TS-Script sollte deaktiviert werden, dienst als Fallbacklösung und zum kopieren der Migrationsanteile (vorhandene Seitendefinitionen, etc.): + +* Benutzer- /Panelspezifische Anpassungen vornehmen + + * Zeile 213: NEU: bevorzugte Tasmota-Version auswählen + * Zeile 217: NSPanel- Pfad anpassen + * Zeile 618: MQTT-Pfad anpassen + * Zeile 619: MQTT-Pfad anpassen + * Zeile 658: MQTT-Pfad anpassen + * Zeile 666: MQTT-Pfad anpassen + +* TS-Script aktivieren und starten (Neue Datenpunkte und Aliase werden erstellt) + +* Wenn keine Fehler vorhanden sein sollten, dann danach die vorhandenen Seiten-Variablen und benutzerspezifische Farbkonstanten nachziehen. + +* Zum Schluss Anpassungen in den neuen Parametern der Screensaver-Entities im Config-Teil vornehmen. + +*** + +# v3.8.3 + +![image](https://user-images.githubusercontent.com/102996011/212193107-c2e88e5d-43d0-4727-bacf-38d13d9e2dcd.png) + +**Achtung Breaking Changes:** + +``` +FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v3.8.3.tft +``` + +**Diese Release beinhaltet:** +* neue Funktionen des Volumio-Media-Players +* die Vorbereitung für die carLCharts (Linien Diagramme siehe Vorschau unten) +* Funktionen für den "echten Taster" (Mono-Button) +* Hotfix für die farbigen Licht-Typen (Funktion Off) +* Das €-Zeichen in Strings +* Individuelle Navigations-Icons bei parent/prev/next/home + +**Update-Anleitung (von v3.8.1 ausgehend):** +* Unteren Teil (ab hier keine Änderungen...) komplett ersetzen. +* In den Variablen muss eine Änderung vorgenommen werden + * die 1 Zeile der Variable jeder Seite muss von: + ``` + let Test_Licht1: PageEntities = + ``` + in + ``` + let Test_Licht1 = + ``` + geändert werden. + also: + + let `Variablenname` = <`Seitentyp`> + + **Dadurch ergeben sich folgende Vorteile:** + + Es müssen nicht mehr alle Seitenparameter angegeben werden, wie z.B.: + + ``` + let CardPowerExample = + { + 'type': 'cardPower', + 'heading': 'cardPower Emulator', + 'items': [ + { id: 'alias.0.NSPanel_1.Power.PowerCard' }, + ] + }; + ``` + d.h. alle optionalen Seitenparameter mit `undefined` oder `false` können entfallen. + + Zusätzlich können weitere Typen verwendet werden: + + ``` + + let CardPowerExample = + { + 'type': 'cardPower', + 'heading': 'cardPower Emulator', + 'useColor': true oder false + 'subPage': true oder false + 'parent': undefined oder Page + 'parentIcon': undefined oder Icon als String, z.B. 'alert' + 'prev': undefined oder 'Page' + 'prevIcon': undefined oder Icon als String + 'next': undefined oder 'Page' + 'nextIcon': undefined oder Icon als String + 'home': undefined oder 'Page' + 'homeIcon': undefined oder Icon als String + 'items': [ + { id: 'alias.0.NSPanel_1.Power.PowerCard' }, + ] + }; + ``` + +Das TS-Script findet ihr hier: +https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/NsPanelTs.ts + +Mit v3.9.0 kommt demnächst die carLChart hinzu (aktuell noch nicht in der stable TFT): +![image](https://user-images.githubusercontent.com/102996011/212189531-103e384a-d403-4ed1-a99f-fa3d29c72523.png) + + +*** + +# v3.8.1 + +![image](https://user-images.githubusercontent.com/102996011/212193039-2a5503b6-cb25-4110-af76-90d9e2b1d8f3.png) + +**Achtung Breaking Changes:** +Um die Menüstruktur derart zu flexibilisieren, mussten in die Seitendeklaration weitere Parameter eingeführt werden. Es ist daher zwingend erforderlich, folgende Erweiterung je Seite vorzunehmen ( **prev**, **next**, **home** ) : + +``` +let Test_Licht1: PageEntities = +{ + 'type': 'cardEntities', + 'heading': 'Color Aliase 1', + 'useColor': true, + 'subPage': false, + 'parent': undefined, + 'prev': undefined, //Neu - bitte in jede Seite einfügen + 'next': undefined, //Neu - bitte in jede Seite einfügen + 'home': undefined, //Neu - bitte in jede Seite einfügen + 'items': [ + { ... } + ] +}; +``` + +Was kann man mit der neuen Navigation anstellen? : +@TT-Tom hat eine **ausführliche Anleitung** geschrieben :+1: . Ihr findet Sie in der gestern noch erweiterten Wiki: +https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Navigation +![image](https://user-images.githubusercontent.com/102996011/212190944-abfe4a8f-d31c-4dde-aa25-5c49718277dc.png) + +Im oberen Teil des Skriptes sind zwei Konstanten enthalten. +``` +const tasmota_web_admin_user: string = 'admin'; // ändern, falls der User im Tasmota vor dem Kompilieren umbenannt wurde (Standard Tasmota: admin) +const tasmota_web_admin_password: string = ''; // setzten, falls "Web Admin Password" in Tasmote vergeben +``` +Bitte nicht vergessen, diese bei der Erweiterung zu berücksichtigen. Wer möchte, kann im Tasmota dann ein Kennwort für den Web Admin vergeben. +![image](https://user-images.githubusercontent.com/102996011/212191091-cd3cff39-1e81-45e0-aac8-84d72ac7a6fb.png) + +Darüber hinaus hat @egal den **Volumio-Player** implementiert :+1: +Dieser ist ebenfalls in der Wiki enthalten. +https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Card-Definitionen-(Seiten)#cardmedia-v20-ab-release-v370 + +** Ansonsten wie immer den unteren Teil komplett ersetzten. ** + +Um die neuen Funktionen nutzen zu können, muss ein: +``` +FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v3.8.1.tft +``` +durchgeführt werden. + +Sollte der BerryDriver noch nicht auf Version 8 sein, dann vorher: +``` +Backlog UpdateDriverVersion https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/tasmota/autoexec.be; Restart 1 +``` +durchführen... + + +*** + +# v3.7.3.1 + +![image](https://user-images.githubusercontent.com/102996011/212192718-d7f8ca7b-5bc5-4fc4-ba1f-a81028da1f50.png) + +**Hotfix** + +Unteren Teil ersetzen: +https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/ioBroker/NsPanelTs.ts + +Das TS-Script legt 2 neue Datenpunkte an: +![image](https://user-images.githubusercontent.com/102996011/212191694-4f80f1e8-f6b6-4fe4-aad1-efb71afb0182.png) + + +In Weekday oder Month short eintragen. Dann sollte es ein kurzes Datumsformat geben. + +EDIT: Funktioniert natürlich auch mit der eu Version. Nur da ist es nicht wirklich erforderlich... + + +*** + +# v3.7.3.0 + +![image](https://user-images.githubusercontent.com/102996011/212191982-f4ad562f-3451-4427-bd6d-01c10bfe70b4.png) + + +*** + +# v3.7.0 + +![image](https://user-images.githubusercontent.com/102996011/212192231-a9052edf-3d16-44a5-be10-6a01a6639b12.png) + +Es gibt ein paar Änderungen im oberen Teil des Scriptes (Bitte entsprechend einfügen): + +Neue Konstanten: +``` +const weatherAdapterInstance: string = 'accuweather.0.'; //Möglich 'accuweather.0.' oder 'daswetter.0.' +const weatherScreensaverTempMinMax: string = 'MinMax'; // Mögliche Werte: 'Min', 'Max' oder 'MinMax' +... +const HMIOn: RGB = { red: 3, green: 169, blue: 244 }; // Blau-On +``` + +Bitte folgende Parameter (Zeilen) aus der Config löschen: + ``` + dimmode: 20, + active: 100, //Standard-Brightness TFT + ... + timeFormat: '%H:%M', // currently not used + dateFormat: '%A, %d. %B %Y', // currently not used +``` + +Die Aliase für die cardMedia haben jetzt Repeat und Shuffle als zusätzliche Datenpunkte. Den alten bei alexa2, spotify-premium oder sonos einfach löschen. Das Script wird die wieder neu anlegen. + +Version mit Beispielen: +https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/NsPanelTs.ts + +Version ohne Beispiele: +https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/NsPanelTs_without_Examples.ts + +``` +FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v3.7.0.tft +``` + diff --git a/new/Home.md b/new/Home.md new file mode 100644 index 0000000..1eecb1c --- /dev/null +++ b/new/Home.md @@ -0,0 +1,21 @@ +# SONOFF NSPanel Wiki für den ioBroker (Lovelace UI) +## Herzlich willkommen! + +![image](https://user-images.githubusercontent.com/102996011/215601019-1e10bacd-8f7f-49a0-8bbf-ab7a38b58743.png) + +Hier findest Du die Dokumentation des lovelace-ui für das Sonoff NSPanel, wenn Du als Hausautomatisierungssystem den ioBroker verwendest. +Die Wiki ist untergliedert in verschiedene Bereiche und sie erfüllt nicht den Anspruch der Vollständigkeit. + +Ergänzungen sind jederzeit willkommen. + + +The main documentation for NSPanel Lovelace UI (only Home Assistant) is here: https://docs.nspanel.pky.eu/ + +LG +Die Crew + +![image](https://user-images.githubusercontent.com/102996011/191578765-fca188e1-6b16-4a8f-8e10-63224d2145c2.png) +![image](https://user-images.githubusercontent.com/102996011/194638928-726efb42-5a21-4a98-826d-aede7b726836.png) + + + diff --git a/new/NSPanel-cardtypen.md b/new/NSPanel-cardtypen.md deleted file mode 100644 index 6484bb3..0000000 --- a/new/NSPanel-cardtypen.md +++ /dev/null @@ -1,657 +0,0 @@ -# Einleitung -Hier werden alle Spezialseiten beschrieben mit ihren Parametern, Scripten und Hinweisen. - -## Verszeichnis - - - -## Alarm Page - -* **Voraussetzung**: -Konfigurationsskript **NsPanelTs.ts** mindestens in der Version: _Version 4.3.3.9_ - -* **Im IoBroker** -Im IoBroker wird unter **0_userdata.0.NSPanel.Alarm** die Datenpunkte **AlarmPin**, **AlarmState**, **AlarmType**, **PANEL** und **PIN_Failed** benötigt. Diese werden i.d.R. generisch erzeugt, wenn im PageItem der Parameter `autoCreateALias: true` gesetzt ist. Sobald der Code der Alarm Page das erste Mal geladen wird, werden die Datenpunkte angelegt. - - -![Bildschirmfoto 2023-04-25 um 10 11 30](https://user-images.githubusercontent.com/101348966/234215552-92739704-bf84-4792-bccb-f130ec111fd4.png) - - Bei Aktivierung oder Deaktivierung der Alarmanlage wechselt der Status in **arming** oder **pending**. Im Falle einer PIN Falscheingabe gibt es nun auch **triggered**. Da die Verarbeitung der Alarmlogik außerhalb des Skriptes stattfindet, müssen die Datenpunkte auch entsprechend durch das externe Skript weiter getaktet werden - - -* **Aliase**: -Die vier Datenpunkte **AlarmPin**, **AlarmState**, **AlarmType** und **Pin_Failed** werden in einem Alias vom Typ Feueralarm im Gerätemanager oder Alias Adapter angelegt und dieser Alias wird dann im Konfigurationsskript auf der Alarm-Page verwendet. -Diese werden, mit dem Parameter `autoCreateALias: true` auch automatisch angelegt. - - ![image](https://user-images.githubusercontent.com/99131208/188514578-43f08178-b8f0-4d09-8e76-02cbe55d5557.png) - - Alias-Typ Feueralarm: - ACTUAL = 0_userdata.0.NSXXXX.Alarm.AlarmState - PIN = 0_userdata.0.NSXXXX.Alarm.PIN - TYPE = 0_userdata.0.NSXXXX.Alarm.AlarmType - PANEL = 0_userdata.0.NSXXXX.Alarm.PANEL - PIN_Failed = 0_userdata.0.NSXXXX.Alarm.PIN_Failed - - Falls ein Wert im Alias nicht vorhanden ist, dann separat hinzufügen - -* **Konfigurationsskript** -**Allgemeine Einstellung**: -Es gibt eine Konstante, die den Pfad definiert, in dem der Ordner Alarm angelgt wird. Default ist **0_userdata.0.NSPanel.** - -```typescript -const NSPanel_Alarm_Path = '0_userdata.0.NSPanel.'; -//Neuer Pfad für gemeinsame Nutzung durch mehrere Panels -``` - -**Page Type**: Die Alarmfunktion kann nur auf einer **PageAlarm** verwendet werden - -**Beispiel**: - ```typescript - let Alarmseite: PageType = - { - "type": "cardAlarm", - "heading": "Alarm", - "subPage": false, - "items": [ - { id: 'alias.0.NSPanel.Alarm', - actionStringArray: ['Vollschutz','Zuhause','Nacht','Besuch','Ausschalten'], - autoCreateALias: true } - ] - } - ``` - -**Parameter:** -* id -> Pfad zum Alias Datenpunkt -* actionStringArray -> Möglichkeit eigene Texte zu definieren für die Schutzzustände A1 bis A4 und Text für Deaktivierung - Wenn das Array nicht definiert wird, ziehen die Standardtexte in der eingestellten Sprache. -* autoCreateALias -> bei True werden alle Datenpunkte durch das Script angelegt - - -**Blockly Testskript** -Nachfolgend ein kurzes Emulationsskript für die Weiterverarbeitung. Diese Logik sollte auch in dein eigenes externes Alarm-Skript übernommen werden. - - ![image](https://user-images.githubusercontent.com/99131208/188735860-880e0a81-407e-454e-b7d2-05cf8f57acfb.png) - - - [Zum Blocky](https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/Blockly/Alarm_Page_Testskript.xml) - (Bild & Blockly by @Armilar) - - - Test-Blockly starten: - - Alarm-Code in die cardAlarm eingeben --> Schutz auswählen --> aktiviert - Alarm-Code in die cardAlarm eingeben --> Deaktivieren --> deaktiviert - -**Ablauf**: -1. Ablauf Alarm Aktivierung: -PIN eingeben und dann Alarm-Modus (Vollschutz, Zuhause, Nacht oder Besuch) auswählen. Im Datenpunkt AlarmType wird das als A1, A2, A3 oder A4 interpretiert und kann extern weiterverarbeitet werden. - -![image](https://user-images.githubusercontent.com/99131208/188736479-e56f574b-5ab3-442b-90d1-384672779ec9.png) - -Das Panel wechselt in den Status (AlarmState) "arming" (Icon = gelbes blinkendes Schild/Keine Tastatur) - -![image](https://user-images.githubusercontent.com/99131208/188736544-3a3e7e12-b28d-476a-bb97-3b2e9a1cc1e0.png) - -Wenn durch das externe Skript (oder Emulator) der Status "armed" in den Datenpunkt AlarmState eingetragen wird (vorausgesetzt das externe Skript findet z.B, keine offenen Fenster) wird das Icon rot: - -![image](https://user-images.githubusercontent.com/99131208/188736580-0a8c8a8d-5c6c-40d5-ab64-a305a05da70e.png) - -Der AlarmType ist jetzt D1, die Tastatur ist wieder eingeblendet und die card Alarm bereit für die Deaktivierung. - -2. Ablauf Alarm Deaktivierung: -PIN-Eingabe zur Deaktivierung und Bestätigung durch den Button "Deaktivieren". - -![image](https://user-images.githubusercontent.com/99131208/188736732-324c0cb7-f638-4bf7-80cb-b5b631bc1360.png) - -Das Panel vergleicht jetzt den Aktivierungs-PIN mit dem Deaktivierungs-PIN. Stimmen die PIN's überein, dann wird der AlarmState auf "pending" gesetzt. - -![image](https://user-images.githubusercontent.com/99131208/188736794-73d106c4-263a-4e4b-9b41-cb53ca1e457f.png) - -Das externe Alarm-Skript macht seine restlichen Aufgaben und setzt dann den Status auf "disarmed" - -![image](https://user-images.githubusercontent.com/99131208/188736826-ba9c0373-248e-4762-8b11-c5c66d540d8a.png) - -Sollte der Pin nicht übereinstimmen, so setzt das Panel den AlarmState "triggered" (Icon blinkt) - -![image](https://user-images.githubusercontent.com/99131208/188736871-5d91b8b3-83bf-435b-9346-07c419aee21c.png) - - -**Neues**: -Neu ist in diesem Zusammenhang der Alias "PIN_Failed" (state/number) -Das TS-Skript zählt die missglückten Anmeldeversuche und trägt sie hier ein. Könnte man also auch für einen Trigger mit Meldung an Telegram nutzen. Außerdem wird bei Fehlerhaften PIN-Eingaben der Datenpunkt AlarmState auf "triggered" gesetzt. Im Panel sieht das dann so aus (das Icon blinkt): - -![image](https://user-images.githubusercontent.com/99131208/188736871-5d91b8b3-83bf-435b-9346-07c419aee21c.png) - -Status "triggered": -Durch das externe Skript (alternativ der Alarm-Emulator) kann ein Status "triggered" gesetzt werden. -Zum Beispiel wenn der Alarm ausgelöst wurde, Die Deaktivierung der cardAlarm funktioniert somit auch bei dem Status "triggered". - -**Erweitertes Blockly mit popupNotify Page**: -Voraussetzung: Ein neuer Datepunkt mit einer vodefinierten PIN. -Definieren der Basiseinstellungen in der gleichnamigen Funktion: - -![image](https://user-images.githubusercontent.com/99131208/188738657-6e322211-b5d8-4528-9623-747813c5780f.png) - - Es gibt fünf Basiseinstellungen: -* Datenpunkt AlarmPIN: Hier muss der Pfad zu dem Datenpunkt konfiguriert werden, der die original PIN enthält. Gegen diese wird bei der Eingabe vom Skript verglichen. **Wichtig**: Dieser Datenpunkt muss manuell im ioBroker erzeugt werden. Es handelt sich **nicht** um den Datenpunkt **0_userdata.0.NSPanel.Alarm.AlarmPin** **!!!** -* Anzahl_NSPanles: Die Anzahl der NSPanels, die mit dem ioBroker verbunden sind -* Notifay_OnOff: Soll es eine Information mit der **popupNotify Page** geben? wahr=an und falsch=aus. -* Notify_Interaktion: An einem Panel wird eine Eigabe gemacht, manipulation versucht o.ä. Wer soll eine **popupNotify Page** erhalten? jeweils=nur das Panel an dem gerade eine Eingabe erfolgt oder global=alle angeschlossenen Panels -* Notify_Event: Ein Alarm wird ausgelöst, wer soll mit einer **popupNotify Page** informiert werden? jeweils=nur das Panel an dem gerade eine Eingabe erfolgt oder global=alle angeschlossenen Panels - -**Hinweis**: Wenn Ihr eine Anpassung am Skript oder an einem Datenpunkt vornehmet, startet bitte das Skript einmal neu. - -[Zum Blockly](https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/Blockly/Alarm_Page_Erweitertes_Skript_mit_PopupNotifyPage.xml) - -**Hinweis Verknüpfung mit Alarm - Adapter**: -es gibt im Forum ein [Post](https://forum.iobroker.net/post/987357) @danny_v1, wo ein Blockly vorgestellt wird, welches eine Verbindung zum Alarm-Adapter herstellt. - -*** - -# cardUnlock (ab v4.3.3) - -Die cardUnlock dient der Absicherung spezieller Seiten, die vor unbefugtem Zugriff (ggfs. Service Pages) geschützt werden sollen: -![image](https://user-images.githubusercontent.com/102996011/221621287-55987efd-143b-4ad0-b7bb-d35d58436b12.png) - -> Bei Benutzung der cardUnlock wird die Zielseite aus dem Page-Array herausgenommen. Die Target-Page sollte nicht als Top-Level-Page, sondern als Subpage definiert sein. - -im Datenpunkt **0_userdata.0.NSPanel.Unlock.UnlockPin** kann eine PIN vergeben werden. Default wird diese PIN als **0000** definiert. - -Erstellung des Alias: -Die cardUnlock wird ab Version `4.3.3.3` mit einem Alias vom Gerätetyp `Feueralarm` automatisch erstellt. Die Erstellung des Alias und der zugehörigen Datenpunkte erfolgt, `sobald die cardUnlock erstmals eingebunden und aufgerufen` wird. - -Unter 0_userdata.0... werden folgende Datenpunkte automatisch angelegt: -![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/102996011/46f63c7c-154e-4c47-8caa-41bed30bcf70) -Die angelegte PIN-Nummer lässt sich unter "Wert" von "0000" in (siehe Beispiel) z.B. "1234" ändern. - -Unter alias.0... wird folgender Alias automatisch angelegt: -![image](https://github.com/joBr99/nspanel-lovelace-ui/assets/102996011/39313dbb-3561-4f73-8352-63995ae7b8be) - -**Beispiel der Seitenerstellung:** (im Service-Menü enthalten) -```typescript -//Level 0 (if service pages are used with cardUnlock) -let Unlock_Service: PageType = -{ - 'type': 'cardUnlock', - 'heading': 'Service Pages', - 'useColor': true, - 'items': [{ id: 'alias.0.NSPanel.Unlock', - targetPage: 'NSPanel_Service_SubPage', - autoCreateALias: true } - ] -}; -``` - -siehe auch: -* https://github.com/joBr99/nspanel-lovelace-ui/wiki/NSPanel-Service-Men%C3%BC - -Da die cardUnlock innerhalb eines "Smart Home" nur einmal erforderlich sein sollte, teilt sie die Datenpunkte mit allen weiteren NSPanels im Haus. Es ist darüber hinaus jedoch auch möglich, `weitere Seiten` über die `cardUnlock` nach dem gleichen Schema vor unbefugten Zugriffen mit dem vergebenen `PIN` zu schützen. - -Hierzu muss lediglich eine weitere `Page` vom Typ `cardUnlock` definiert werden und das Ziel `targetPage` auf eine `vorhandene subPage` zeigen: -```typescript -let UnlockPage: PageType = -{ - 'type': 'cardUnlock', - 'heading': 'Titel der Page', - 'useColor': true, - 'items': [{ id: 'alias.0.NSPanel.Unlock', - targetPage: 'Eine_weitere_Subpage', - autoCreateALias: true } - ] -}; -``` -*** - - -# cardQR -![image](https://user-images.githubusercontent.com/102996011/190121115-436dc34d-3a89-4809-a3c6-2c6132938fd1.png) - -Ab Version v4.3.3.11 können die Datenpunkte in 0_userdata.0. und alias.0. automatisch vom Script erstellt werden. Dazu muss dem PageItem zusätzlich der Parameter **autoCreateALias: true** mitgegeben werden. Dann wird beim ersten Aufruf die Datenpunkte erstellt und ihr müsst nur noch die Daten vom WLAN unter 0_userdata.0.... anpassen. - -Ihr könnt den Weg auch selber gehen und macht hier einfach weiter. - -* **ioBroker:** -Legt Euch unter **0_userdata.0.** einen neuen Datenpunkt vom Typ String an. Dieser Datenpunkt erhält die Daten aus dem sich der QR Code erstellt. Außerdem werden SSID und das Passwort separat auf der Page angezeigt. - -Bsp.: WIFI:**T**:WPA;**S**:Test-Guest-SSID;**P**:guest-accecess;**H**:; - -T = Verschlüsselung -S = SSID -P = Password -H = Hidden (nur erforderlich wenn euer Wlan versteckt ist) - - -```typescript -let Seitenname: PageType = -{ - "type": "cardQR", - "heading": "Deine Überschrift", - "useColor": true, - "items": [{ id: "alias.0.NSPanel.Guest_Wifi" }] // Beispiel -}; -``` - -**zusätzliche Parameter:** -```typescript -hidePassword: true, -autoCreateALias: true -``` -* **Zusatzfunktion** -Es gibt die Möglichkeit auf der QR-Page anstelle des Password ein Schalter einzublenden, mit diesem könnte man das WLAN ein/ausschalten. -Dazu muss unter dem Alias noch ein Datenpunkt (SWITCH) angelegt werden vom Typ boolean. Diesen könnt ihr dann mit eurem WLAN-Schalter verknüpfen. -image -so sieht die QR-Page mit Schalter aus. - -![1703254338815-qrmitaus](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/fdd51064-ca5b-4cf0-bc16-f5a391720929) -![1703254356774-qrmitein](https://github.com/joBr99/nspanel-lovelace-ui/assets/101348966/9253e6a7-c747-473c-9452-54b474e1c202) - - -* **Bekannte Probleme** -Der QR Code funktioniert auf manchen Android Geräten nicht. - -*** - -# cardThermo - -(Erstellung der Alias und "PageItem" siehe [hier](https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-ALIAS-Definitionen#Thermostat-cardThermo-channel-thermostat) - -> Für Thermostat und Klimaanlage (Unterschied im zu erstellenden Alias) - -![image](https://user-images.githubusercontent.com/102996011/204626750-bbeffe48-c9cd-44bf-8dfd-b90c6c3b7422.png) - - -![image](https://user-images.githubusercontent.com/102996011/204623942-ca5a1e74-23f7-4b10-a65a-d2397ab67c72.png) - -![image](https://user-images.githubusercontent.com/102996011/204626323-a5df2e57-378f-4939-8a45-1a83277e23a2.png) - -![image](https://user-images.githubusercontent.com/102996011/204627014-03173d87-22ba-44fb-b07c-40b7be6366ac.png) - -*** - -# cardPower (ab TS-Script v.3.4.1) - -![Nextion_Editor_9AYbpowjZS](https://user-images.githubusercontent.com/102996011/194641145-660e1218-f559-4f25-83ca-984cc677e0d8.gif) - -Beispiel: Erstellung des "PageItem" und Alias vom Typ "Info" - -ohne `alwaysOnDisplay` Parameter (Nach dem Öffnen wird der Screensaver nach eingestellter Zeit aufgeschaltet): -```typescript -let CardPower: PageType = -{ - 'type': 'cardPower', - 'heading': 'Energiefluss', - 'items': [ - { id: 'alias.0.NSPanel.cardPower' } - ] -}; -``` - -mit `alwaysOnDisplay` Parameter (Die Seite fällt nicht in den Screensaver-Mode, bis auf eine andere Seite navigiert wird) -```typescript -let CardPower: PageType = -{ - 'type': 'cardPower', - 'heading': 'Energiefluss', - 'items': [ - { id: 'alias.0.NSPanel.cardPower', - alwaysOnDisplay: true } - ] -}; -``` - -Oder im Demo-Modus ohne Alias -```typescript -let CardPowerExample: PageType = -{ - 'type': 'cardPower', - 'heading': 'Energiefluss', - 'items': [ - { } - ] -}; -``` - - -**Parameter:** -Es gibt nur einen einzigen externen Datenpunkt (anzulegen in **0_userdata.0.**), auf den ein Alias vom Typ "**Info**" zugreift. Dieser muss mit einem JSON-Objekt in nachfolgender Struktur befüllt werden. Der Alias-Datenpunkt "**ACTUAL**" sollte hierbei auf diesen neuen Datenpunkt in "**0_userdata.0.**) gebunden sein. - -```json -[ - { - "id": 0, - "value": 13, - "unit": "kW", - "icon": "emoticon-happy-outline", - "iconColor": 0 - }, - { - "id": 1, - "value": 3, - "unit": "kW", - "icon": "battery-charging-60", - "iconColor": 10, - "speed": 30 - }, - { - "id": 2, - "value": 4.7, - "unit": "kW", - "icon": "solar-power-variant", - "iconColor": 3, - "speed": -20 - }, - { - "id": 3, - "value": 4.3, - "unit": "kW", - "icon": "wind-turbine", - "iconColor": 1, - "speed": -30 - }, - { - "id": 4, - "value": 3.4, - "unit": "kW", - "icon": "shape", - "iconColor": 10, - "speed": 30 - }, - { - "id": 5, - "value": 0.1, - "unit": "kW", - "icon": "transmission-tower", - "iconColor": 0, - "speed": 20 - }, - { - "id": 6, - "value": 2.5, - "unit": "kW", - "icon": "car", - "iconColor": 5, - "speed": 20 - } -] -``` -_iconColor_ kann einen Wert von 0-10 annehmen und entspricht der ColorScale Grün -> Gelb -> Rot -_speed_ kann positive und negative Werte annehmen, wobei positive Werte den Punkt vom Haus weggehen lassen und negative Werte zum Haus -**cardPower Emulator (Blockly)** - -[Zum Blockly](https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/Blockly/CardPower_Emulator_Skript.xml) - -**Kurze Anleitung:** -Der Code dient nur der Orientierung und stellt keine Lösung für die eigene Visualisierung dar. Somit soll z.B. der Aufbau des JSON-Objektes verdeutlicht werden. - -Für dieses Beispiel sind in 0_userdata für die 6 Werte in der cardPower entsprechende Datenpunkte (number) manuell angelegt worden: -![image](https://user-images.githubusercontent.com/102996011/194373014-3dfc240c-ce7a-42ca-8d95-925b0a01b19f.png) - -Im oberen Teil des Blocklys wird lediglich eine Emulation auf 4 von 6 Datenpunkten je Minute erzeugt. Bei Produktivnutzung sollte dieses Codeobjekt gelöscht (deaktiviert) werden. - -![image](https://user-images.githubusercontent.com/102996011/194373795-e3d5e889-10fd-48e6-8a51-cc56c9eadc35.png) - -**Produktivnutzung:** - -Die Datenpunkte zu den entsprechenden Piktogrammen (id's) sollten mit den jeweiligen eigenen Adapter-Datenpunkten ersetzt werden. Im Beispiel werden folgende Datenpunkte zugewiesen: - -1 - Batteriespeicher (Einspeisung/Bezug) -2 - Photovoltaik Ertrag -3 - Windenergieanlage Ertrag -4 - Sämtliche aktiven Verbraucher des Hauses -5 - Energielieferant (Netz-Einspeisung/Netz-Bezug) -6 - Ladestation Verbrauch (E-Car) - -Für eine abweichende Darstellung ist das JSON entsprechend zu befüllen. Wenn eine Entität nicht visualisiert werden soll, so sollte in allen Werten zur id ein leerer String **""** übergeben werden. Beispiel: - -```json - { - "id": 3, - "value": "", - "unit": "", - "icon": "", - "iconColor": "", - "speed": "" - }, -``` - -> Das Skript stellt nur eine exemplarische Möglichkeit der Befüllung dar. Es kann frei definiert und auf eigene Bedürfnisse angepasst werden, soll aber keine finale Lösung für jede Smart Home Situation abbilden! -> Ebenso kann die Erstellung des JSON natürlich auch über JavaScript oder TypeScript erfolgen. - -Ein kleines einfaches Javascript von @l4rs, für die erzeugung des JSON-String. - -```typescript -/** -* 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 = "", // Batterie - pwr2 = Math.round(getState("mqtt.0.SmartHome.Energie.PV.openDTU.114180710360.0.power").val), // Solar - pwr3 = "", // Wind - pwr4 = "", // Verbraucher - pwr5 = Math.round(getState("hm-rpc.0.MEQ0706303.1.POWER").val), // Stromnetz - pwr6 = 0, // Auto - pwrHome = Math.round(pwr5 - pwr2); // Berechnung des Energiefluss anstelle eines Datenpunktes - - // Definition der Keys im JSON - var keys = ["id", "value", "unit", "icon", "iconColor", "speed"]; - - // Definition der "Kacheln", inkl. StandardIcon. Es können alle Icon aus dem Iconmapping genutzt werden. - // Kacheln die nicht genutzt werden sollen, müssen wie z.b. item1 formatiert sein - var home = [0, pwrHome, "W", "home-lightning-bolt-outline", 0]; // Icon home - var item1 = [1, pwr1, "", "", 0, ""]; // Icon battery-charging-60 - var item2 = [2, pwr2, "W", "solar-power-variant-outline", 3, pwr2 > 0 ? -2 : 0]; // Icon solar-power-variant - var item3 = [3, pwr3, "", "", 0, ""]; // Icon wind-turbine - var item4 = [4, pwr4, "", "", 0, ""]; // Icon shape - var item5 = [5, pwr5, "W", "transmission-tower", 10, 10]; // Icon transmission-tower - var item6 = [6, pwr6, "kW", "car-electric-outline", 5, 0]; // Icon car - -``` -[Zum Script CardPower.js](https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/Blockly/CardPower.js) - -**Hinweis:** Aktuell erfolgt die Animation gleicher Speed Werte bei der US-P Firmware durch die geänderte Orientierung in umgekehrter Reihenfolge. - -*** - -# cardChart (ab TS-Script v.3.7.0) - -> ab Release v3.7.0 - -![image](https://user-images.githubusercontent.com/102996011/204631969-dfd8b8e9-09d0-45c2-a243-5e047f09ab05.png) - -> Für das unten abgebildete Blockly-Script wurden die Werte eines Datenpunktes "sonoff.0.DZG_DWSB20_2H.DZG_Leistung_Aktuell" in einer Influx 2.0 Datenbank gespeichert. - -Es wird für das Skript ein Datenpunkt (hier im Beispiel "0_userdata.0.Test.cardChart.txt") benötigt, um das Chart für die cardChart aufzubereiten. - -**Alias-Erstellung:** -Es wird lediglich ein Alias vom Gerätetyp "Info" benötigt: -![image](https://user-images.githubusercontent.com/102996011/209008594-36da27fb-cde2-4964-bcd8-3b406f4656cb.png) - -**PageItem Beispiel:** -```typescript -let CardChartExample: PageType = -{ - "type": "cardChart", - "heading": "Stromzähler L1+L2+L3", - "useColor": true, - "items": [{ - id: 'alias.0.NSPanel_1.cardChart', - yAxis: 'Leistung [kW]', - yAxisTicks: [2,4,6,8,10,2,4,6,8,20,2], // leave empty for automatic calculation of the y-axis - onColor: Yellow - }] -}; -``` - -![image](https://user-images.githubusercontent.com/102996011/209009144-1b82e7df-1a58-412a-a304-14a5cf987a4c.png) - -## **Blockly für Influx 2.0** -![image](https://user-images.githubusercontent.com/102996011/209006326-c8036709-2235-4ef8-aa14-00798e09fce7.png) - -[Zum Blockly](https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/Blockly/CardChart.xml) - -## **Javascript für History Adapter** -```typescript -var sourceDP = 'alias.0.Wohnzimmer.Heizung.ACTUAL'; -var targetDP = '0_userdata.0.Test.chartTest'; -var rangeHours = 24; -var maxXAchsisTicks = 6; -var historyInstance = 'history.0'; - -on({id: sourceDP, change: "any"}, async function (obj) { - sendTo(historyInstance, 'getHistory', { - id: sourceDP, - options: { - start: Date.now() - (60 * 60 * 1000 * rangeHours), - end: Date.now(), - count: rangeHours, - limit: rangeHours, - aggregate: 'average' - } - }, function (result) { -... - -``` - -[Link zum Script CardChart_History.js](https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/Blockly/CardChart_History.js) - - -*** - -# cardLChart (Line Charts ab TS-Script v.3.9.0) - -> ab TS-Script Release v3.9.0 - -![image](https://user-images.githubusercontent.com/102996011/212094993-b78f6a38-aab7-43fd-a6c7-fa4add274b75.png) - -**Seitendefinition** - -> Der Alias unter der PageItem.id ist ein Alias vom Gerätetyp: **Info** - -* type: Für Liniendiagramme muss der Seiten-Typ "cardLChart" sein. -* id: Es wird ein Alias vom Gerätetyp "Info" erstellt, der auf den erzeugenden Datenpunkt des unten aufgeführten Beispiel-Scriptes zeigt. -* yAxis: Bezeichner der Y-Achse -* onColor: Farbe des Graphen - -```typescript -let CardLChartExample: PageType = -{ - "type": "cardLChart", - "heading": "Büro Temperatur", - "useColor": true, - 'items': [{ - id: 'alias.0.Haus.Erdgeschoss.Buero.Charts.Temperatur', - yAxis: 'Temperatur [°C]', - onColor: Yellow - }] -}; -``` - -Erklärung zum nachfolgenden Beispiel-TS-Script: - -> **Wichtiger Hinweis und Voraussetzungen:** ->Für das Beispiel muss der InfluxDB Adapter installiert sein. Ebenfalls sollte über einen Zeitraum X bereits Sensordaten an eine Infux 2.X DB übertragen worden sein, welche jetzt zum Abruf bereit stehen! - -Zu definieren ist der Pfad für den Datenpunkt (im Beispiel 0.userdata.0.NSPanel.Influx2NSPanel.buero_temperature) in den das u.a. TS-Script die aufbereiteten Daten für das NSPanel schreiben kann. Für das Beispiel wurde ein Datenpunkt (deconz.0.Sensors.65.temperature) aus dem DeConz-Adapter mit einem Zigbee-Temperatursensor gewählt. - -**Bei Bedarf kann das Query angepasst werden:** -Es ist darauf zu achten, die Anzahl an Werten aus der Datenbank möglichst gering zu halten. Im nachfolgenden Beispiel wurden diese nochmals aggregiert. Die Summe an Zeichen für das Payload an die HMI des NSPanels ist begrenzt. Falls zu viele Werte verarbeitet werden, wird der Payload von der HMI gekürzt und die folge wäre eine schwarze Seite resultierend aus einem Fehlerzustand. - -## **TypeScript für Influx2** -```typescript -const Debug = false; - -const NSPanel_Path = '0_userdata.0.NSPanel.1.'; -const Path = NSPanel_Path + 'Influx2NSPanel.cardLChart.'; -const InfluxInstance = 'influxdb.1'; -const influxDbBucket = 'iobroker'; -const numberOfHoursAgo = 24; -const xAxisTicksEveryM = 60; -const xAxisLabelEveryM = 240; - -// this records holds all sensors and their corresponding states which act as the data source for the charts -// add all sensors which are to be displayed in this script, there is no need to use multiple scripts -const sensors : Record = {}; -/* ↓ Id of the sensor ↓ Id of the data source for the charts */ -sensors['deconz.0.Sensors.65.temperature'] = Path + 'buero_temperature'; -sensors['deconz.0.Sensors.65.humidity'] = Path + 'buero_luftfeuchte'; - -// create data source for NsPanel on script startup -Object.keys(sensors).forEach(async x => { - await generateDateAsync(x, sensors[x]); -}); - -// then listen to the sensors and update the data source states accordingly -on({ id: Object.keys(sensors), change: 'any' }, async function (obj) { - if (!obj.id) { - return; - } - - await generateDateAsync(obj.id, sensors[obj.id]); -}); - -async function generateDateAsync(sensorId: string, dataPointId: string) { - const query =[ - 'from(bucket: "' + influxDbBucket + '")', - '|> range(start: -' + numberOfHoursAgo + 'h)', - '|> filter(fn: (r) => r["_measurement"] == "' + sensorId + '")', - '|> filter(fn: (r) => r["_field"] == "value")', - '|> drop(columns: ["from", "ack", "q"])', - '|> aggregateWindow(every: 1h, fn: last, createEmpty: false)', - '|> map(fn: (r) => ({ r with _rtime: int(v: r._time) - int(v: r._start)}))', - '|> yield(name: "_result")'].join(''); - - if (Debug) console.log('Query: ' + query); - - const result : any = await sendToAsync(InfluxInstance, 'query', query); - if (result.error) { - console.error(result.error); - return; - } -... - -``` - -[Link zum Script CardLChart_Influx2.js](https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/Blockly/CradLChart_Influx2.js) - -## **Javascript für History adapter** -```javascript -const sourceDP = 'alias.0.Wohnzimmer.Heizung.ACTUAL'; -const targetDP = '0_userdata.0.Test.chartTest'; -const numberOfHoursAgo = 24; // Period of time in hours which shall be visualized -const xAxisTicksEveryM = 60; // Time after x axis gets a tick in minutes -const xAxisLabelEveryM = 240; // Time after x axis is labeled in minutes -const historyInstance = 'history.0'; - -const Debug = false; -const maxX = 1420; -const limitMeasurements = 35; - -createState(targetDP, "", { - name: 'SensorGrid', - desc: 'Sensor Values [~