NEWS
SONOFF NSPanel mit Lovelace UI
-
Hallo zusammen. Ich war jetzt einige Zeit in Thema NS Panel nicht aktiv und freue mich jetzt hier auch über die Neuordnung. Mein Panel läuft noch mit dem TS Script
TypeScript v3.1.0.1 und mit etwas Bastelei habe ich es jetzt auf das TypeScript v3.4.0.5 gebracht.
Was aber nicht geht bzw. wohl so geändert wurde ist der Bereich de Screensavers.
Im Alten Script konnte man das Accuweather nutzen oder die Datenpunkte indiv. anzeigen.
Dafür musste man im alten Script var weatherForecast = false setzen.Diese Variable finde ich so nicht im neuen Script. Deshalb habe ich bei den vier *ScreensaverEntity Fehlermelmdungen
Wie kann man in dem neuen Script die Screensaver Icons indiv. darstellen?
-
@vocaris sagte in SONOFF NSPanel mit Lovelace UI:
Hallo zusammen. Ich war jetzt einige Zeit in Thema NS Panel nicht aktiv und freue mich jetzt hier auch über die Neuordnung. Mein Panel läuft noch mit dem TS Script
TypeScript v3.1.0.1 und mit etwas Bastelei habe ich es jetzt auf das TypeScript v3.4.0.5 gebracht.
Was aber nicht geht bzw. wohl so geändert wurde ist der Bereich de Screensavers.
Im Alten Script konnte man das Accuweather nutzen oder die Datenpunkte indiv. anzeigen.
Dafür musste man im alten Script var weatherForecast = false setzen.Diese Variable finde ich so nicht im neuen Script. Deshalb habe ich bei den vier *ScreensaverEntity Fehlermelmdungen
Wie kann man in dem neuen Script die Screensaver Icons indiv. darstellen?
Die Variable weatherForecast ist immer noch die gleiche. Musst aber nichts mehr machen, weil die nicht mehr im Skript, sondern über die Datenpunkte gesteuert wird.
Die Screensaver-Entities sind auch noch die selben. Haben aber einen weiteren Parameter (siehe Doku)
Dennoch kannst du nicht einfach deine alte Config so übernehmen (weitere Inhalte), sondern musst sie entsprechend erweitern oder deine Inhalte aus dem alten Skript in die neue Config übernehmen:
https://github.com/joBr99/nspanel-lovelace-ui/wiki/ioBroker-Config-Screensaver
-
Im Wiki im Bereich FAQ-&-Anleitungen bei 2.) Alarm Page habt Ihr einen Fehler in dem kleinen Blockly Scripts. Dort wird die Variable ArlamPIN verwendet. Das Wort Alarm ist falsch geschrieben. Dann hat das Script ein Problem den Wert zu schreiben etc.
Zudem habe ich verstanden, dass der PIN beim Setzen den Alarms gesetzt wird und nur mit diesem deaktiviert werden kann. Also man vergibt ggf. immer einen neuen PIN beim Setzen.
Ich möchte aber einen PIN im Datenpunkt definieren, der dann bei Aktivieren und deaktivieren geprüft wird. Also ein einheitlicher Alarm PIN. Kann man das auch realisieren.
Der PIN im Datenpunkt wird nach der Deaktivierung immer wieder auf 0000 gesetzt. -
@vocaris
Hi Vocaris,wenn Du mal in der Wiki beim Punkt 2 nach unten Scrollst, dort habe ich genau Dein Szenario abgebildet "Erweitertes Blockly mit popupNotify Page:". Lies Dir mal diesen letzten Abschnitt durch. Das Blockly ist ganz am Ende.
Bzgl. des Fehlers: Kannst Dur mir das mal mit einem Screenshot zeigen? Ich finde es nämlich nicht
LG
-
@kuckuckmann sagte in SONOFF NSPanel mit Lovelace UI:
@vocaris
Hi Vocaris,wenn Du mal in der Wiki beim Punkt 2 nach unten Scrollst, dort habe ich genau Dein Szenario abgebildet "Erweitertes Blockly mit popupNotify Page:". Lies Dir mal diesen letzten Abschnitt durch. Das Blockly ist ganz am Ende.
Bzgl. des Fehlers: Kannst Dur mir das mal mit einem Screenshot zeigen? Ich finde es nämlich nicht
LG
Habe auch ein Weilchen gebraucht...
- Zeile
-
@armilar
Aber wieso ist da ein Fehler? -
@armilar Yeep. Wollte es gerade posten. Aber @Armilar war schon schneller. Yeep da ist der Fehler.
Zudem auch im gleiche Script:@Kuckuckmann ich habe das untere Script im Einsatz und habe die falschen Variablen gegen AlarmPIN getauscht. Aber das mit der PIN klappt nicht. Wenn ich im Panel die PIN 1234 eingebe und z.B. Vollschuttz betätige, dann setzte das Script im Datenpunkt AlarmPIN den Wert 1234 rein und macht als Pop Up die Meldung, dass der Pin falsch war. Der DP wird also durch das Script immer geschrieben. Das Script solle aber doch die Eingabe am Panel gegen den Wert im DP AlarmPIN prüfen.
-
@kuckuckmann Die Variable dort heißt ArlamPIN und müsste AlarmPIN heißen.
-
@vocaris sagte in SONOFF NSPanel mit Lovelace UI:
@kuckuckmann Die Variable dort heißt ArlamPIN und müsste AlarmPIN heißen.
Würd ich jetzt nicht gerade überbewerten. Ich kann meine Variablen ja benennen wie es mir beliebt
-
@vocaris
Ich glaube, genau da liegt Dein Verständnis Problem, in Bezug auf den Abgleich.ArlamPIN referenziert auf einen von mir Angelegten Datenpunkt (0_userdata.0.NSPanelOwn.Alarm_PIN), der die PIN beinhaltet. Das ist nicht die PIN unter 0_userdata.0.NSPanel.Alarm.AlarmPin.
Natürlich wird, wenn Alarm scharf geschaltet wird, die PIN nochmal unter dem 0_userdata.0.NSPanel.Alarm.AlarmPin hinterlegt.
Ich hoffe jetzt wird es etwas klarer und es ist maximal ein Typo, spielt aber keine Rolle
-
@kuckuckmann sagte in SONOFF NSPanel mit Lovelace UI:
@vocaris
Ich glaube, genau da liegt Dein Verständnis Problem, in Bezug auf den Abgleich.ArlamPIN referenziert auf einen von mir Angelegten Datenpunkt (0_userdata.0.NSPanelOwn.Alarm_PIN), der die PIN beinhaltet. Das ist nicht die PIN unter 0_userdata.0.NSPanel.Alarm.AlarmPin.
Natürlich wird, wenn Alarm scharf geschaltet wird, die PIN nochmal unter dem 0_userdata.0.NSPanel.Alarm.AlarmPin hinterlegt.
Ich hoffe jetzt wird es etwas klarer und es ist maximal ein Typo, spielt aber keine Rolle
OK. Jetzt hängst du mich ab. Also ich versuche lediglich die Inhalte des Wikis zu lesen und sie so umzusetzen wie sie da stehen und ich es natürlich verstehe.
Das mit der Variblenname ist korrekt, er wurde ja auch durchgehend so verwendet. Er hätte ja auch "XYZ" heißen können. Aber durch das Script (oder wenn man es selber macht) wird folgender DP angelegt 0_userdata.0.NSPanel.Alarm.AlarmPin
Weiterhin schreibst du, dass die Variable ArlamPIN auf einen anderen DP nämlich den 0_userdata.0.NSPanelOwn.Alarm_PIN referenziert. Und das passt IMHO nicht.
In der Blocklyanleitung wurde geschrieben:
"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."
@kuckuckmann sagte in SONOFF NSPanel mit Lovelace UI:@vocaris
Ich glaube, genau da liegt Dein Verständnis Problem, in Bezug auf den Abgleich.ArlamPIN referenziert auf einen von mir Angelegten Datenpunkt (0_userdata.0.NSPanelOwn.Alarm_PIN), der die PIN beinhaltet. Das ist nicht die PIN unter 0_userdata.0.NSPanel.Alarm.AlarmPin.
Natürlich wird, wenn Alarm scharf geschaltet wird, die PIN nochmal unter dem 0_userdata.0.NSPanel.Alarm.AlarmPin hinterlegt.
Ich hoffe jetzt wird es etwas klarer und es ist maximal ein Typo, spielt aber keine Rolle
OK. Jetzt hängst du mich ab. Also ich versuche lediglich die Inhalte des Wikis zu lesen und sie so umzusetzen wie sie da stehen und ich es natürlich verstehe.
Das mit der Variblenname ist korrekt, er wurde ja auch durchgehend so verwendet. Er hätte ja auch "XYZ" heißen können. Aber durch das Script (oder wenn man es selber macht) wird folgender DP angelegt 0_userdata.0.NSPanel.Alarm.AlarmPin
Weiterhin schreibst du, dass die Variable ArlamPIN auf einen anderen DP nämlich den 0_userdata.0.NSPanelOwn.Alarm_PIN referenziert. Und das passt IMHO nicht.
In der Blocklyanleitung wurde geschrieben:"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."
Also habe ich "vom Objekt ID" zum DP 0_userdata.0.NSPanel.Alarm.AlarmPin geleitet.
Es steht nirgendwo, dass man neben dem AlarmPin einen weiteren DP Alarm_PIN erstellen soll.
Auch im Screnn Shot der die DP in der FAQ zeigt ist ein solcher DP nicht zu sehen. -
@vocaris
Danke für den Hinweis, ich werde die FAQ an der Stelle eindeutiger formulieren.
Aber überleg mal, es macht doch in diese Richtung Sinn, dass wenn ich die PIN vergleichen will, sie in einem anderen Datenpunkt stehen muss (zumindest in meinen Gedankengängen ), denn unter 0_userdata.0.NSPanel.Alarm.AlarmPin wird der Wert ja bei der Aktivierung überschrieben. Gegend diesen Datenpunkt kannst du ja nicht vergleichen.PS: Wiki wurde angepasst
-
@kuckuckmann sagte in SONOFF NSPanel mit Lovelace UI:
@vocaris
Danke für den Hinweis, ich werde die FAQ an der Stelle eindeutiger formulieren.
Aber überleg mal, es macht doch in diese Richtung Sinn, dass wenn ich die PIN vergleichen will, sie in einem anderen Datenpunkt stehen muss (zumindest in meinen Gedankengängen ), denn unter 0_userdata.0.NSPanel.Alarm.AlarmPin wird der Wert ja bei der Aktivierung überschrieben. Gegend diesen Datenpunkt kannst du ja nicht vergleichen.PS: Wiki wurde angepasst
Also nochmal. Das ist keine Kritik. Ich war im alten Thread ja auch ein Freund eines Wikis für User, die nicht Programmierer sind und nicht unbedingt in der Logik eines Scriptes denken. Da ich im Job u.a. Anleitungen/Handbücher sowie Fachkonzepte für OrgProgs erstelle. Ein "normaler" User handelt so wie es in der Anleitung steht. Und hier kommt keiner auf die Idee diesen zusätzlichen DP zu erstellen. Dieser wird ja auch nicht durch das Script neu erstellt. Dem User sollte in der Anleitung also gesagt werden, dass er diese DP zusätzlich anlegen muss und das er diesen dann mit der Variable AlarmPIN verknüpfen muss.
Weiter ist mir aufgefallen, dass ggf. der Weg diesen "Own PIN" als Var zu nutzen ggf. nicht so toll ist. Wieso?
Wenn der User die PIN im DP "OWN PIN" ändert, dann hat diese Änderung keine Auswirkung. Das passiert erst, wenn das Script gestoppt und neu gestartet wird. Denn der alte Wert des DP bleibt ja in der VAR AlarmPIN bestehen. Das weiß ein "normaler" User ggf. auch nicht. Es gibt ja auch die Möglichkeit den DP Inhalte onthefly anzufragen. Dann darf man nicht mit einer VAR arbeiten. VAR sind für den Codierer natürlich einfacher und oft sehr sinnvoll. In dem Fall einer PIN hätte ich es nicht gemacht. Hat mich bei der Fehlersuche jetzt viel Zeit gekostet -
@vocaris sagte in SONOFF NSPanel mit Lovelace UI:
Also nochmal. Das ist keine Kritik. Ich war im alten Thread ja auch ein Freund eines Wikis für User, die nicht Programmierer sind und nicht unbedingt in der Logik eines Scriptes denken. Da ich im Job u.a. Anleitungen/Handbücher sowie Fachkonzepte für OrgProgs erstelle. Ein "normaler" User handelt so wie es in der Anleitung steht. Und hier kommt keiner auf die Idee diesen zusätzlichen DP zu erstellen. Dieser wird ja auch nicht durch das Script neu erstellt. Dem User sollte in der Anleitung also gesagt werden, dass er diese DP zusätzlich anlegen muss und das er diesen dann mit der Variable AlarmPIN verknüpfen muss.
Alles gut, ich finde das Feedback vollkommen in Ordnung. Das ganze hier ist Community work, ergo kann jeder was dazu beitragen, damit es insgesammt stimmig und rund ist.
Weiter ist mir aufgefallen, dass ggf. der Weg diesen "Own PIN" als Var zu nutzen ggf. nicht so toll ist. Wieso?
Wenn der User die PIN im DP "OWN PIN" ändert, dann hat diese Änderung keine Auswirkung. Das passiert erst, wenn das Script gestoppt und neu gestartet wird. Denn der alte Wert des DP bleibt ja in der VAR AlarmPIN bestehen. Das weiß ein "normaler" User ggf. auch nicht. Es gibt ja auch die Möglichkeit den DP Inhalte onthefly anzufragen. Dann darf man nicht mit einer VAR arbeiten. VAR sind für den Codierer natürlich einfacher und oft sehr sinnvoll. In dem Fall einer PIN hätte ich es nicht gemacht. Hat mich bei der Fehlersuche jetzt viel Zeit gekostetIch habe einen Hinweis ergänzt, bei Änderungen das Skript neu zu starten ^^
Ich bin froh, dass das Skript so funktioniert -
Rückmeldung zur FAQ 4.) Abfallkalender
Ich habe Problem bei der Farbcodierung. Im Text steht: Farbcodierungen im Dezimalsystem.
Für mich bedeutet das RGB also weiß 255255255 und schwarz 000. Geld wäre demnach 2552550 geht aber nicht. Und grün wäre 02550. Geht auch nicht. Führende Nullen werden gelöscht im DP.
Kann mir jemand die Farbcodierung näher bringen?Und welche Rolle spielt der Zusatzadapter von Matthias. Der ist in der Anleitung erwähnt ist aber aus meiner Sicht im weiteren Verlauf nicht integriert
-
@vocaris
Das Dezimalsystem entspricht nicht dem RGB System. Es ist ähnlich, aber nicht gleich. Leider habe ich auch noch keinen vernünftigen Rechner gefunden, dafür. @joBr99 hat mal erwähnt, es gäbe eine Funktion dafür im Skript (oder so), aber damit habe ich mich noch nicht beschäftigt.Der Adapter von @haus-automatisierung ist eine nette Ergänzung, da er auch für VIZ ein Dashlet bereitstellt, um das Ganze auch im VIZ gut visualisieren zu können. Es ging mir bei der Erwähnung aber nur darum, dass man eine vernünftige gemeinsame Basis hat, auf der man die Beschreibung aufbaut - es geht um die Einrichtung des ICal Adapters, etc. und dafür ist das Video eine tolle Ergänzung.
-
@kuckuckmann sagte in SONOFF NSPanel mit Lovelace UI:
@vocaris
Das Dezimalsystem entspricht nicht dem RGB System. Es ist ähnlich, aber nicht gleich. Leider habe ich auch noch keinen vernünftigen Rechner gefunden, dafür. @joBr99 hat mal erwähnt, es gäbe eine Funktion dafür im Skript (oder so), aber damit habe ich mich noch nicht beschäftigt.Der Adapter von @haus-automatisierung ist eine nette Ergänzung, da er auch für VIZ ein Dashlet bereitstellt, um das Ganze auch im VIZ gut visualisieren zu können. Es ging mir bei der Erwähnung aber nur darum, dass man eine vernünftige gemeinsame Basis hat, auf der man die Beschreibung aufbaut - es geht um die Einrichtung des ICal Adapters, etc. und dafür ist das Video eine tolle Ergänzung.
Das TS-Script benutzt so manche Umrechnung von Farben aller Art. Die von euch benötigte ist aber diese Funktion und es stimmt - es ist nicht "decimal", sondern "decimal 565"
Siehe auch https://nextion.tech/instruction-set/#s5
function rgb_dec565(rgb: RGB): number { return ((Math.floor(rgb.red / 255 * 31) << 11) | (Math.floor(rgb.green / 255 * 63) << 5) | (Math.floor(rgb.blue / 255 * 31))); }
Für alle die mit dem Coding nicht klarkommen - habe ich es mal in ein Blockly geschoben. Ihr könnt es nach belieben verformen, verändern oder sonst etwas machen. Es wird aber in diesem Fall nur aus rot, grün und blau eine dec565 erzeugen (als Warnung im Log)
Farbe aussuchen in z.B. https://www.rapidtables.com/web/color/RGB_Color.html, dann die Decimal Code
R,G,B in die Variablen red, green, blue übertragen (Hier im Beispiel für weiß - 255 255 255).Ergebnis
16-bit 565 Colors are in decimal values from 0 to 65535
-
Hallo und guten Abend, ich bin seit drei Tagen stolzer Besitzer eines NSPanels und habe es aufgrund des tollen Video und des super Wikis geschafft das Panel mit dem Screensaver aufzusetzen, bisher allerdings noch ohne Seiten.
Nun möchte ich gerne schauen, wie ich das NSPanel bei mir einsetzen kann. Als erste Seite möchte ich gerne die Thermostat Seite erstellen.
Hier zu meiner Frage, kann man das NSPanel anstelle eines Thermostaten im Haus einsetzen, es würde ja hervorragend an den höheren Platz über den normalen Schaltern an die Wand passen? Und wenn ja wie definiere ich dann einen Thermostat Alias? Hier stehe ich gerade irgendwie auf dem Schlauch. Ich möchte das Panel gerne zusammen mit einer Homematic IP Fussbodenheizung mit motorischen Ventilen (beides noch nicht vorhanden) und Adapter heatingcontrol einsetzen . Welches Gerät muss ich bspw. beim Alias unter Set einsetzen?
Falls ich hier die Frage am falschen Ort im Forum gestellt habe bitte ich dies zu entshuldigen.
Danke für Eure Hinweise.Gruß Elluminatus
-
@elluminatus sagte in SONOFF NSPanel mit Lovelace UI:
Hallo und guten Abend, ich bin seit drei Tagen stolzer Besitzer eines NSPanels und habe es aufgrund des tollen Video und des super Wikis geschafft das Panel mit dem Screensaver aufzusetzen, bisher allerdings noch ohne Seiten.
Nun möchte ich gerne schauen, wie ich das NSPanel bei mir einsetzen kann. Als erste Seite möchte ich gerne die Thermostat Seite erstellen.
Hier zu meiner Frage, kann man das NSPanel anstelle eines Thermostaten im Haus einsetzen, es würde ja hervorragend an den höheren Platz über den normalen Schaltern an die Wand passen? Und wenn ja wie definiere ich dann einen Thermostat Alias? Hier stehe ich gerade irgendwie auf dem Schlauch. Ich möchte das Panel gerne zusammen mit einer Homematic IP Fussbodenheizung mit motorischen Ventilen (beides noch nicht vorhanden) und Adapter heatingcontrol einsetzen . Welches Gerät muss ich bspw. beim Alias unter Set einsetzen?
Falls ich hier die Frage am falschen Ort im Forum gestellt habe bitte ich dies zu entshuldigen.
Danke für Eure Hinweise.Gruß Elluminatus
Hallo @Elluminatus ,
also ich habe bei mir auch HM Themostate im Hause. Dieses sind per CCU mit dem zuständigen HKV verbunden und steuert dort dann die Motoren.
Du kannst jedes Themostat auch in das NS Panel einbinden..ABER... es ersetzt dir nicht das physische HM Thermostat. Das wird du benötigen.- der Thermo. soll ja die jeweilige Raumthemperatur messen und entsprechend agieren. Wenn du alle Stellmotoren mit der Refrenzthemperatur des Raums schaltes in dem das NSP ist wäre dir nicht geholfen.
- du brauchst ja zum Erstellen eines Alias für das NSP ein "Gerät". Dafür musst du jedes HM Thermostat in den ioB bringen. In dem Fall via des HM Adapters.
Wenn wir die Basis haben, dann kannst du folgendes machen: - Grid für dein NSP. Bei mir ist es eine Subpage der Hauspteiste Buero
//Subpage 1 von Buero var Buero_Thermostat: PageThermo = { "type": "cardThermo", "heading": "Thermostat Büro", "useColor": true, "subPage": true, "parent": Buero, "items": [ <PageItem>{ id: "alias.0.NS-Panel.Buero.Thermostat", minValue: 100, maxValue: 300 }] };
Wenn es bei dir eine Hauptseite sein soll, dann bei subpage: false eingeben und bei parent: undefined
Den Alias muss du natürlich ersetzen.
Zum Alias:
Du erstellst dir einen Alias mit der Auswahl Thermostat.
Für die einzelnen Punkte verzweigst du dann zum entsprechenden Thermostat in deinem HM RPC Adapter.
Hier mal ein kl. Einblick, wie ein Thermostat im HM RPC Adapter angezeigt wird.
So kannst du dir dann von jedem Thermo. die Daten im NSP anzeigen lassen und ggf. abändern.
Aber um das zu realisieren benötigst du erst einmal die HM Hardware sowie dessen Einbindung via RPC Adapter in den ioB. Ergo braucht du eine CCU oder eine Raspberrymatic. Letzteres setze ich ein. Die HM Geräte können ja auch ohne CCU miteinander kommunizieren (Direktverbindung). Aber dann kannst du sie nicht via ioB ansprechen.
Ich hoffe ich konnte dir insoweit helfen. -
Frage zum Thema "Multibutton" und einer Anzeige auf dem NSP.
Mittels des Blockys zum Multibutton und dem setoption73 1 in der NSP Konsole kann ich den multiblen "Klicks" im Blockly nun eine "Event" zuordnen. Gleichzeitig kann ich mit aktivierter Rule2 1 weiterhin dem einfachen Klick auf den Buttons z.B. den Aufruf einer Gridseite im Script zuordnen (Dann sollte man im Blockly den Klick auf den Button 1x auch kein Event zuordnen).
Bekommt man es denn hin, dass wenn ich mittels Blockly ein Event ausgeführt wird, ich zu diesem Event eine Notifikation auf das NSP ausgeben kann? z.B. habe ich auf einen Doppelklick Button 1 die Raumreinigung meines Wischroboters gelegt. Ich würden nun gerne nach dem Klicken auf dem NSP ein Pop Up anzeigen mit eine Info " Die Reinigung der Küche wurde gestartet".
Geht das und wenn ja wie.
Dem Grunde kann man so ja via Blockly jedes Script um diesen Funktionsschnippsel erweitern, wenn man auf dem NSP etwas anzeigen möchte.
Danke....
PS: Kann den Tread nicht löschen. Also bzgl. des Screensavers habe ich einfach eine Blockly Teil aus Kapitel 3.) der FAQ in das Blockly der Multibuttons eingebaut. Immer wenn ich eine Gerät des ButtonX ansteuere packe die die Befüllung des Screensaver DP mit rein ink. der Löschung der Inhalte nach z.B. 10 Sekunden.
Bzgl. PopUp Notification schaue ich mal ob das auch geht.