NEWS
Sonoff NSPanel
-
@a200 zu ioBroker und dem TypeScript Backend kann ich dir nix sagen
-
Wie sieht dein Alias aus? Switch bekommst du am schnellsten mit Alias "Steckdose" oder "Licht" hin
Manchmal Haken die Aliase. Dann einfach mal den Homatic Datenpunkt per Hand umschalten, dann zieht der Alias nach
-
Der Alias an sich funktioniert.
var Buero_Seite_1: PageEntities = { "type": "cardEntities", "heading": "Büro", "useColor": true, "items": [ <PageItem>{ id: "alias.0.NSPanel.Schalter.Keller_Drucker", icon: "switch", name: "Drucker", offColor: MSRed, onColor: MSGreen} ] };
Aber die Ansicht Büro bleibt leer. Zum Test habe ich die Ansicht umbenannt und den neuen Namen kann ich auf dem Panel sehen. Ansonsten aber alles leer.
Ist das: https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/README.md hier die einzige Doku dazu?
OK, Jetzt scheint es zu gehen
-
@a200 Ich weiß, die Datenpunkte kann man überall sehen, man denkt der Alias wäre intakt - aber existState kommt mit false zurück....
-
@armilar nur die Steuerung geht nicht. Muss ich im Alias noch die Ausgabe konvertieren? Also aus true -> 1 und aus false -> 0 machen, oder so was? Weil jetzt wird ein Schalter angezeigt, aber die Dose schaltet nicht.
event - buttonPress2 - alias.0.NSPanel.Schalter.Keller_Drucker - OnOff - 1 - PageId: 0
event - buttonPress2 - alias.0.NSPanel.Schalter.Keller_Drucker - OnOff - 0 - PageId: 0Also die Steuerung für Schalter und Rollladen werden angezeigt. Die Rolle muss nur richtig gesetzt werden. Aber aber sie haben keine Auswirkung auf die Geräte.
-
@a200 sagte in Sonoff NSPanel:
@armilar nur die Steuerung geht nicht. Muss ich im Alias noch die Ausgabe konvertieren? Also aus true -> 1 und aus false -> 0 machen, oder so was? Weil jetzt wird ein Schalter angezeigt, aber die Dose schaltet nicht.
event - buttonPress2 - alias.0.NSPanel.Schalter.Keller_Drucker - OnOff - 1 - PageId: 0
event - buttonPress2 - alias.0.NSPanel.Schalter.Keller_Drucker - OnOff - 0 - PageId: 0Also die Steuerung für Schalter und Rollladen werden angezeigt. Die Rolle muss nur richtig gesetzt werden. Aber aber sie haben keine Auswirkung auf die Geräte.
Bei mir funktioniert ein Schalter so, wie er funktionieren muss (false = aus und true = an) --> und das Gerät macht was es soll
Oder ist es bei dir eher Toggle? Zustandsänderungen über n-Geräte (Schalter, noch ein Schalter, Alexa ... und jeder Zustand verändert den Schalter? Dann wäre ein Button (Alias Taste) besser geeignet -
@armilar Meine Aliases haben keine .GET bzw. .SET Erweiterung. Deshalb habe ich den Code bisschen angepasst und die Zeilen 1188-1190 hinzugefügt. Damit funktioniert es bei mir auch. Ich muss mal schauen, wie ich das in den Griff bekomme. Ich glaube ich muss meine Aliases anders anlegen.
-
@a200 sagte in Sonoff NSPanel:
@armilar Meine Aliases haben keine .GET bzw. .SET Erweiterung. Deshalb habe ich den Code bisschen angepasst und die Zeilen 1188-1190 hinzugefügt. Damit funktioniert es bei mir auch. Ich muss mal schauen, wie ich das in den Griff bekomme. Ich glaube ich muss meine Aliases anders anlegen.
Muss auch nicht.
Switch case läuft ohne "break" durch...
Damit macht socket das gleiche wie light (auch ohne Code )
case "socket": case "light": setIfExists(id + ".SET", action); break;
Und welche Aliase wären das denn? Sind doch mittlerweile alle drin!
-
@armilar sagte in Sonoff NSPanel:
@a200 sagte in Sonoff NSPanel:
@armilar Meine Aliases haben keine .GET bzw. .SET Erweiterung. Deshalb habe ich den Code bisschen angepasst und die Zeilen 1188-1190 hinzugefügt. Damit funktioniert es bei mir auch. Ich muss mal schauen, wie ich das in den Griff bekomme. Ich glaube ich muss meine Aliases anders anlegen.
Muss auch nicht.
Switch case läuft ohne "break" durch...
Damit macht socket das gleiche wie light (auch ohne Code )
case "socket": case "light": setIfExists(id + ".SET", action); break;
Ja aber ich will nicht id + ".SET" sondern einfach nur id haben. Denn meine Datenpunkte haben weder GET noch SET.
Ich schreibe dann z.B. nach "alias.0.NSPanel.Schalter.Keller_Drucker" = "hm-rpc.0.OEQ2403914.1.STATE" und der Wert soll direkt in STATE geschrieben werden.
Alternativ sollte man Abfragen ob es SET/GET gibt. So ähnlich wie in der Zeile: 1352...if (o.common.role == "light" || o.common.role == "socket") { if (existsState(id + ".GET")) { val = getState(id + ".GET").val; RegisterDetailEntityWatcher(id + ".GET", pageItem, type); } else if (existsState(id + ".SET")) { val = getState(id + ".SET").val; RegisterDetailEntityWatcher(id + ".SET", pageItem, type); }
Aus meiner Sicht gehört da noch der dritter Fall else mit:
else if (existsState(id)) { val = getState(id).val; RegisterDetailEntityWatcher(id, pageItem, type); }
Das funktioniert bei mir.
Mich würde interessieren welches Geräte du steuerst und wie die DPe heißen. Ich vermute irgendwas mit .GET oder .SET am Ende.
-
@a200
Also du arbeitest in Wirklichkeit nicht mit einem Alias, denn der hat eigentlich immer ein .SET oder . ACTUAL, oder?Du möchtest für dich lieber mit den Datenpunkten arbeiten. Das macht nur bei der Anzahl an Varianten von Adaptern wenig sinn, denn dadurch wird dein Code schnell innerhalb der nächsten Wochen auf unübersichtliche 5000 Zeilen ansteigen. Ich würde mich an deiner Stelle mit dem Geräte-Manager oder Alias-Manager anfreunden und mir für das Panel Aliase bauen.
-
@armilar sagte in Sonoff NSPanel:
@a200
Also du arbeitest in Wirklichkeit nicht mit einem Alias, denn der hat eigentlich immer ein .SET oder . ACTUAL, oder?Du möchtest für dich lieber mit den Datenpunkten arbeiten. Das macht nur bei der Anzahl an Varianten von Adaptern wenig sinn, denn dadurch wird dein Code schnell innerhalb der nächsten Wochen auf unübersichtliche 5000 Zeilen ansteigen. Ich würde mich an deiner Stelle mit dem Geräte-Manager oder Alias-Manager anfreunden und mir für das Panel Aliase bauen.
Sagen wir mal so. Ich würde gerne korrekt mit den Aliases arbeiten, aber dass kann ich im Moment noch nicht. deshalb habe ich auch oben geschrieben "Ich glaube ich muss meine Aliases anders anlegen". Ich nutze den Alias Manager in IoB und das wahrscheinlich falsch bzw nicht ganz richtig.
So sieht im Moment mein Alias für die Homematic Steckdose:
{ "type": "state", "common": { "name": "KG. Büro Drucker.STATE", "role": "socket", "type": "boolean", "read": true, "write": true, "alias": { "id": "hm-rpc.0.OEQ2403914.1.STATE" } }, "_id": "alias.0.NSPanel.Schalter.Keller_Drucker", "native": {}, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1651854682051 }
Was muss ich ändern um die zusätzlichen States zu erhalten.
-
@a200 sagte in Sonoff NSPanel:
"name": "KG. Büro Drucker.STATE",
Keine Ahnung ob es wichtig ist, aber Leerzeichen und Umlaute sollte man tunlichst vermeiden.
-
@thomas-braun Ja, du hast Recht. Das ist nur ein Test. Wobei der Name sollte keine Probleme machen. Habe selbst das Problem gehabt, dass ein zweiter Umlaut in Bindings Probleme macht. Der erster nicht. Danke dir für den Hinweis.
-
@a200
geht finde ich mit dem Geräte-Manager meistens schneller..."+" drücken
In diesem Fall Steckdose auswählen und Namen vergeben
Aktor auswählen (Habe keine Homatic Schalter, daher Alternative aus Sonoff)
speichern, Alias fertig...
...mach das nicht so wissenschaftlich - ist nur ein Alias
P.S. Device-Manager heißt das Ding
-
https://github.com/joBr99/nspanel-lovelace-ui/commit/922baa41b41a0ba2c3ce2e4aded5810fba901e62
Das aktuelle Release benötigt die Beschriftungen im command, hab die auch mal beim ioBroker Skript hinzugefügt (ungetestet)
-
Guten Morgen an alle,
an und für sich habe ich mit Tasmota und IOBroker keine Probleme, aber dieses NSPanel schaft mich.
Außer Uhrzeit und Datum, ein paar Seiten mit Überschrift (die Ich ändern kann) funktioniert bei meinem NSPanel nichts.Mittlerweile kenne ich fast alle 466 Posts auswndig, und habe alle Anleitungen durchgearbeitet.
Ich vermute das es an meine Aliase scheitert. Wenn wer eine Idee hat, Screenshots kann ich bei fragen am Abend schicken. Danke im voraus, wheinz44 -
@wheinz44 Willkommen im Club der schweigenden Masse...
Ich habe vor 3 Monaten meine 2 NSPanels mit Tasmota geflasht und einige Tage versucht die ersten Anleitungen zu befolgen. Ich bin hierzu vermutlich zu b...
Diesen Post verfolge ich zwar mit Interesse, habe mir aber vorgenommen erst wieder einzusteigen wenn es einen Adapter oder eine "Dummy"-Anleitung gibt. Bei den Ergebnissen, die ich hier sehe fällt mir das Warten ganz schön schwer, da diese genau meinen Vorstellungen entsprechen. Bei meinem Programmierkenntnisstand weiß ich aber im Vorfeld, dass es im Moment nur Frust und keine Ergebnisse gibt.
Noch habe ich Hoffnung, dass eure grandiose "Forschungsarbeit" in absehbarer Zeit auch für Normaluser umsetzbar wird. -
@docgame sagte in Sonoff NSPanel:
Noch habe ich Hoffnung, dass eure grandiose "Forschungsarbeit" in absehbarer Zeit auch für Normaluser umsetzbar wird.
++ Ich leider auch
-
-
@wheinz44 sagte in Sonoff NSPanel:
Guten Morgen an alle,
an und für sich habe ich mit Tasmota und IOBroker keine Probleme, aber dieses NSPanel schaft mich.
Außer Uhrzeit und Datum, ein paar Seiten mit Überschrift (die Ich ändern kann) funktioniert bei meinem NSPanel nichts.Mittlerweile kenne ich fast alle 466 Posts auswndig, und habe alle Anleitungen durchgearbeitet.
Ich vermute das es an meine Aliase scheitert. Wenn wer eine Idee hat, Screenshots kann ich bei fragen am Abend schicken. Danke im voraus, wheinz44Mit welcher Version ist das Panel geflashed? Wir sind mit der Version 1.9.1 der TFT-Firmware angefangen. Die Skripte im Thread gehören jetzt zur Version ab 2.7.X. Da wurden die Trennzeichen (Delimiter) zum Panel nochmals ausgetauscht, so dass das erste Skript mit der ersten Version 1.9.1 nicht kompatibel ist. Und umgekehrt ein altes Skript nicht mehr zur aktuellen Firmware passt.
Meine Vermutung ist, dass die Firmware auf den neuesten Stand gebracht werden muss. Genauer kann ich das erst sagen, wenn du einen beim Blättern durch die Seiten kurz einen Screenshot aus der Tasmota-Konsole machst.
Als Voraussetzung sollte der letzte Code aus dem Thread und die neueste Version auf dem Panel installiert sein.Da die Uhrzeit übermittelt wird und die Seiten korrekt betitelt sind, läuft in der Kommunikation alles perfekt.
Also liegt es in der Tat am Alias oder der TFT-Version. Das Skript ist so aufgebaut, dass das Panel "komplett" ohne Programmierung konfiguriert und erweitert werden kann. D.h. jeder Schalter, Lampe, Dimmer, Slider, etc. "ist immer nur eine Zeile" im oberen Teil der Konfiguration. Mit dem Alias werden bereits alle Funktionen des zu steuernden Objektes bereitgestellt.
Zuerst würde ich mal die TFT-Version und den BerryDriver aktualisieren, damit wir sicher sind, das wirklich die letzte Firmware drauf ist. Dazu in der Tasmota-Konsole folgende Befehle ausführen (Könnte beliebig oft wiederholt werden, soll heißen - damit zerschießt man sich nichts):
http://nspanel.pky.eu/lui.tft
und
Backlog UpdateDriverVersion https://raw.githubusercontent.com/joBr99/nspanel-lovelace-ui/main/tasmota/autoexec.be
Jetzt sollte das Panel auf dem neuesten Stand sein.
Kommen wir jetzt zur Seiten-Konfiguration:
Beispiel:
var BeispielSeite: PageEntities = { "type": "cardEntities", "heading": "Beispiel Überschrift", "useColor": true, //"subPage": false, "items": [ <PageItem>{ id: "alias.0.NSPanel_1.MeineBeispielLampe"}, ] };
Das ist eine Beispielseite mit einer Lampe (Steuerelemente als synonym für Schalter, Lampe, Dimmer, Info, etc.):
- "BeispielSeite" - ist der Aufrufname der Seite im "Config-Block" unter den Steuerelementen - "funktioniert bei dir ja schon"
- "type" - kann folgende Werte annehmen: (cardEntities = 4 Steuerelemente untereinander, cardGrid = 2 x 3 Steuerelemente, cardMedia = Mediaplayer (Alexa, etc.), cardThermo (beliebiger Thermostat), und cardAlarm (Falls Alarmanlage vorhanden (funktional für heute/morgen geplant).
- "subPage" - ist hier auskommentiert, da es erst eine Funktion ist, die in dieser Woche erst in den Code kommt.
- "PageItem" - Hierzu "muss" ein funktionierender "Alias" angelegt werden (kommen wir später zu)
Der Rest ist in diesem Beispiel selbsterklärend und wenn der Alias funktioniert, so wird auch bereits im Panel ein Schalter mit einem Lampensymbol angezeigt. Voraussetzung ist, dass die Seite auch wie folgt im Config-Block erscheint:
Jetzt weitere Steuerelemente nach belieben hinzufügen, indem weitere Aliase "angelegt" werden. Und "jede Zeile" ist immer nur "ein Alias".
P.S.: Wenn ein Alias nicht gefunden werden kann, dann löscht das Skript dieses Steuerelement und es ist nicht auf der Seite im NSPanel zu sehen.
Achtung: Ein Datenpunkt ist "kein" Alias...
... "1" Alias nimmt "alle" relevanten Datenpunkte eines Objektes (z.B. MediaPlayer - Play, Pause, Stop, Volume, Title, etc.) auf. Daher benötigt dieses Skript immer nur eine Zeile pro Objekt und nicht alle einzelnen Datenpunkte.Kommen wir jetzt zum Alias:
Ich lege die Aliase mit dem Geräte-Manager an (für mich die eleganteste Form - Es gibt auch haufenweise Skripte im Forum, die z.T. funktionieren - zum Teil aber auch nicht. Daher nehmt den Manager für diese Aufgabe, wenn ihr noch keine Erfahrungen mit dem Alias habt). Als Alternative kann man auch den Alias-Manager benutzen, den ich persönlich aber für "Alias-Anfänger" als zu komplex und unübersichtlich erachte. Später, d.h. beim Mediaplayer-Alias ist er durch seine Auto-Erstellung im Vorteil, doch zunächst legt doch erst einmal die kleineren Aliase mit dem Geräte-Manager an.Wo finde ich den Geräte-Manager?
Der Geräte-Manager ist der Adapter unter "Geräte verwalten" (Siehe nachfolgendes Bild aus den Adaptern)!
Wenn der Adapter installiert ist, dann sollte er im ioBroker-Hauptmenü ebenfalls zu sehen sein. Ansonsten ganz unten im Menü auf bearbeiten gehen und anhaken.
Die Konfiguration im Geräte-Manager ist eigentlich ganz einfach und im Post vom 6.Mai 2022 - 21:51 beschrieben.
Wenn ihr einen Alias erzeugt habt, dann taucht er auch unter Obekte auf (Im folgenden Beispiel ein Dimmer mit 3 Tradfri-Lampen im DeConz-Zigbee Adapter). D.h. die Lampen sind einer DeConz-Licht-Gruppe zusammengefasst und können über den Datenpunkt "on" an- und ausgeschaltet werden. Des Weiteren über den Datenpunkt "level" in der Helligkeit (Brightness) gesteuert werden.
Wir legen jetzt Mal schnell einen Alias an, der beide Datenpunkte "on" und "level" der Lampe(n) zusammenfasst. Hierzu müssen wir analog der Beschreibung vom 6. Mai 2022 vorgehen, jetzt aber den Alias-Typ "Dimmer" wählen, den DeConz-Datenpunkt "on" in die Alias-Zeilen ON_SET und ON_ACTUAL eintragen und den DeConz-Datenpunkt "level" in die Zeilen ACTUAL und SET eintragen + speichern.
Wenn dieser Alias jetzt angelegt ist, dann sieht man im Panel einen Schalter mit einer Lampe und wenn man auf den Namen klickt, sieht man die Detailseite zur Steuerung der Helligkeit.
Ich hoffe es klappt und herzlich willkommen im Thread