NEWS
SONOFF NSPanel mit Lovelace UI
-
ich habe die aktuelle Version installiert und die 5 Entity entfernt.
Ich erhalte jetzt beim Starten folgenden Error:javascript.0 (2358182) script.js.NSpanel.NSPanelTs_felix_ts1: TypeScript compilation failed: indicatorScreensaverEntity: [ ^ ERROR: Type '[{ ScreensaverEntity: string; ScreensaverEntityFactor: number; ScreensaverEntityDecimalPlaces: number; ScreensaverEntityIconOn: string; ScreensaverEntityIconOff: string; ScreensaverEntityText: string; ScreensaverEntityUnitText: string; ScreensaverEntityIconColor: { ...; }; }, { ...; }, { ...; }, { ...; }]' is not assignable to type 'indicatorScreensaverEntityType'. Type '[{ ScreensaverEntity: string; ScreensaverEntityFactor: number; ScreensaverEntityDecimalPlaces: number; ScreensaverEntityIconOn: string; ScreensaverEntityIconOff: string; ScreensaverEntityText: string; ScreensaverEntityUnitText: string; ScreensaverEntityIconColor: { ...; }; }, { ...; }, { ...; }, { ...; }]' is not assignable to type '[ScreenSaverElement, ScreenSaverElement, ScreenSaverElement, ScreenSaverElement, ScreenSaverElement]'. Source has 4 element(s) but target requires 5.
-
@rockplums
ok. Die Types hatte ich nicht angepasst, weil es halt 5 Felder gibt. Bin auch mit den Versionnummern durcheinander gekommen. Dachte die von dir verwendete Version hätte diese Types schon und bei inidicator wären weniger erlaubt.
Du kannst da anstatt eines ganzen Screensaver auch einfach undefined oder null rein schreiben.[ { ScreensaverEntity: '0_userdata.0.Gartentor.Toristoffen', ScreensaverEntityFactor: 1, ScreensaverEntityDecimalPlaces: 0, ScreensaverEntityIconOn: 'gate-alert', ScreensaverEntityIconOff: 'gate', ScreensaverEntityText: 'Tor', ScreensaverEntityUnitText: '', ScreensaverEntityIconColor: { 'val_min': 0, 'val_max': 1 } }, null ]
bei einer null oder undefined wird alles danach ignoriert. Muß mal gucken ob ich 0-5 mit Types hinbekomme
-
@ticaki sagte in SONOFF NSPanel mit Lovelace UI:
@rockplums
Muß mal gucken ob ich 0-5 mit Types hinbekommeJap geht, ohne das ich da alles Texten muß. Wenn @Armilar das absegnet pass ich die Types an, dass 0-5 Elemente erlaubt sind.
-
-
@armilar
Ich kanns mir nicht verkeifen... 9000 Zeilen Code - schreib mal ne zusammenfassung -
-
Gibt es da Überlegungen das in Klassen aufzuteilen und über export / import class das Ganze zu entzerren
Ja - gibt es - darum auch der aktuelle Aufwand der Types...
Gibt aber demnächst mehr Infos...
-
@armilar sehr gut. Die Klassen werden dann auf verschiedene Files verteilt?
-
Ist noch Designphase ...
-
@armilar macht ja nur Sinn, wenn es nicht wieder alles in einem File ist.
Ist ja auch eine Überlegung nur die Klassen einzubinden, die auch wirklich gebraucht werden. Wenn ich kein Soundsystem habe, brauche ich es auch nicht einbinden. Macht das System schlanker -
Sagen wir mal so - es wird viel einfacher für den User
-
@armilar Hi Armilar, vorab schonmal ein riesiges Lob für ein so schnellen Support für so "Exoten" wie das Bose System und vielen Dank fürs Kümmern.
Ich habe es eben probiert und die ersten Funktionen klappen bereits:Die Anzeige der Laufzeiten und der Titel funktioniert.
Die Auswahl der Playlist funktioniert ebenfalls. Könnte man hier evtl. statt Preset1-6 den Inhalt der Variablen: bosesoundtouch.0.presets.6.source anzeigen lassen?
Der Lautstärkeregler funktioniert auch.
Die Speakerliste wird angezeigt, da ich aber nur einen habe, kann ich keine Auswahl testen, ist aber vermutlich auch nicht nötig (nicht so wie das Sonos-System).Was aktuell nichts bewirkt ist die Tracksteuerung vor und zurück, Play bzw. Pause und der Powerbutton.
Beim Druck auf das Shuffle-Symbol kommt im Log folgendes:18:45:55.193 warn javascript.0 (9830) at HandleButtonEvent (script.js.common.Panel.Panel1_3_:8227:29) 18:45:55.194 warn javascript.0 (9830) at HandleMessage (script.js.common.Panel.Panel1_3_:4169:21) 18:45:55.194 warn javascript.0 (9830) at script.js.common.Panel.Panel1_3_:3898:21 18:45:55.194 warn javascript.0 (9830) at step (script.js.common.Panel.Panel1_3_:33:23) 18:45:55.195 warn javascript.0 (9830) at Object.next (script.js.common.Panel.Panel1_3_:14:53) 18:45:55.195 warn javascript.0 (9830) at script.js.common.Panel.Panel1_3_:8:71 18:45:55.196 warn javascript.0 (9830) at __awaiter (script.js.common.Panel.Panel1_3_:4:12) 18:45:55.196 warn javascript.0 (9830) at Object.<anonymous> (script.js.common.Panel.Panel1_3_:3861:67)
Beim der Repeat Funktion passiert sichtbar nichts. aber es folgt ebenfalls eine Info im Log:
18:49:17.286 info javascript.0 (9830) script.js.common.Panel.Panel1_3_: bosesoundtouch.0.
Soll ich noch etwas testen oder probieren?
Vielen Dank, Gruß Olli -
Könnte man hier evtl. statt Preset1-6 den Inhalt der Variablen: bosesoundtouch.0.presets.6.source anzeigen lassen?
Ich sehe mir den Rest nochmal an.
-
Du könntest ein paar kleine Test machen.
Es gibt unten einen Parameter
key
in den Adapter-ObjektenGib da mal bitte bei laufender Musik folgende Dinge ein und sage mir, was im Objektverzeichnis "nowPlaying" passiert:
- PLAY_PAUSE
- PREV_TRACK
- NEXT_TRACK
- REPEAT_ALL
- REPEAT_ONE
- REPEAT_OFF
- SHUFFLE_ON
- SHUFFLE_OFF
- STOP
- POWER
-
@armilar Hi, da funktionieren alle, bis auf die Shuffle Befehle; bei denen passiert augenscheinlich nichts.
Ich habe eben noch ein wenig gesucht und gesehen, dass man irgendwann schon mal die Möglichkeit geschaffen hat, die Sourcen von der Fernbedienung zu übergeben. Also TV, DVD, AUX etc. Dabei hast du auch schon geholfen; meinst du das könnte man auch auf dem Panel einbauen? Ich möchte nicht den Eindruck erwecken, jetzt nach dem kleinen Finger direkt die ganze Hand zu wollen, aber du machst das ja schon nahe an der Perfektion und das wäre dann perfekt. -
Super, dann nochmal den unteren Teil mit dieser DEV Version tauschen
https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/DEV/NSPanelTs.tsAUX kann ich finden, allerdings die anderen nicht. Wenn du mir sagst, wo es steht, das jemand das im ioBroker hinbekommen hat, dann baue ich das ebenfalls ein.
EDIT:
Kann es sein dass Shuffle nur bei bestimmten Sources reagiert?z.B. Spotify Playlist?
-
Guten Morgen allerseits
Ich hätte da noch ein Problem was bei mir erst nach dem Update von v4.3.3.24 auf v4.3.3.30 bzw 31 aufgetreten ist.
Ich nutze die AlarmCard um meine Alarmanlage vom NSPanel aus, ein- und auszuschalten, das funktioniert auch wunderbar, allerdings kann ich seit dem Update die popUpNotify - Meldung nicht mehr mit 'OK' bestätigen wenn die Alarmanalge erolgreich aktiviert oder deaktiviert wurde.
Das PopUpNotify kommt und wenn ich auf 'OK' klicke dann passiert gar nichts. Ich kann das Fenster dann nur noch mit 'X' schließen.Ich nutze für den Vorgang die Blockly's aus dem Wiki.
Hier mal die Fehlermeldung:
javascript.0 2024-01-07 08:45:31.075 warn script.js.NSPanel.NSPanelTS_1_v4_3_3_30: error at function HandleButtonEvent: Cannot read properties of undefined (reading 'id') javascript.0 2024-01-07 08:45:30.373 warn script.js.NSPanel.NSPanelTS_1_v4_3_3_30: error at function HandleButtonEvent: Cannot read properties of undefined (reading 'id') alarm.0 2024-01-07 08:45:27.266 info Scharf innen deaktiviert javascript.0 2024-01-07 08:45:27.237 warn script.js.NSPanel.NSPanelTS_1_v4_3_3_30: error at Trigger popupNotifyAction: internalName.includes is not a function javascript.0 2024-01-07 08:45:27.191 info script.js.NSPanel.Alarm_1: disarmed javascript.0 2024-01-07 08:45:27.061 info State value to set for "0_userdata.0.NSPanel.1.popupNotify.popupNotifyInternalName" has to be type "string" but received type "number" javascript.0 2024-01-07 08:45:25.734 warn at Object.<anonymous> (script.js.NSPanel.Alarm_1:90:11) javascript.0 2024-01-07 08:45:25.734 warn at PopupNotifyPage (script.js.NSPanel.Alarm_1:45:7) javascript.0 2024-01-07 08:45:25.734 warn at setStateDelayed (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1784:25) javascript.0 2024-01-07 08:45:25.734 warn at Object.setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1740:20) javascript.0 2024-01-07 08:45:25.733 warn You are assigning a number to the state "0_userdata.0.NSPanel.1.popupNotify.popupNotifyInternalName" which expects a string. Please fix your code to use a string or change the state type to number. This warning might become an error in future versions. javascript.0 2024-01-07 08:45:24.733 info script.js.NSPanel.Alarm_1: Logpunkt: Alarm AUS javascript.0 2024-01-07 08:45:24.430 info script.js.NSPanel.Alarm_1: pending javascript.0 2024-01-07 08:45:14.271 warn script.js.NSPanel.NSPanelTS_1_v4_3_3_30: error at function HandleButtonEvent: Cannot read properties of undefined (reading 'id') javascript.0 2024-01-07 08:45:12.375 warn script.js.NSPanel.NSPanelTS_1_v4_3_3_30: error at function HandleButtonEvent: Cannot read properties of undefined (reading 'id') javascript.0 2024-01-07 08:45:10.652 warn script.js.NSPanel.NSPanelTS_1_v4_3_3_30: error at Trigger popupNotifyAction: internalName.includes is not a function javascript.0 2024-01-07 08:45:10.594 info script.js.NSPanel.Alarm_1: armed javascript.0 2024-01-07 08:45:10.583 info State value to set for "0_userdata.0.NSPanel.1.popupNotify.popupNotifyInternalName" has to be type "string" but received type "number" javascript.0 2024-01-07 08:45:10.558 warn at Object.<anonymous> (script.js.NSPanel.Alarm_1:79:11) javascript.0 2024-01-07 08:45:10.558 warn at PopupNotifyPage (script.js.NSPanel.Alarm_1:45:7) javascript.0 2024-01-07 08:45:10.558 warn at setStateDelayed (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1784:25) javascript.0 2024-01-07 08:45:10.557 warn at Object.setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1740:20) javascript.0 2024-01-07 08:45:10.556 warn You are assigning a number to the state "0_userdata.0.NSPanel.1.popupNotify.popupNotifyInternalName" which expects a string. Please fix your code to use a string or change the state type to number. This warning might become an error in future versions.
wie gesagt vor dem v4.3.3.30 hat es einwandfrei funktioniert
-
@icebear sagte in SONOFF NSPanel mit Lovelace UI:
Ich nutze für den Vorgang die Blockly's aus dem Wiki.
welche?
Habe grad mal das popupNotify getestet und es funktioniert.
Nur am Rande: Hab's dann gleich mal mit der neuen Buzzer-Funktion ausprobiert und dort in den
0_userdata.0.NSPanel.1.popupNotify.popupNotifyBuzzer
die Sequenz5,6,5
eingetragen. Funktionierte auch...Etwas (wahrscheinlich das Blockly) schreibt bei dir eine Zahl in den Datenpunkt
0_userdata.0.NSPanel.1.popupNotify.popupNotifyInternalName
und das ist falsch... Das kann passieren, jedoch müsste es dann eine"1"
(also Text) sein. Daher kommen auch diese Warnungen.Sowohl das NSPanelTs.ts als auch NodeJS als auch der ioBroker werden immer restriktiver. Es kann also auch bei einem Adapter-Update passieren, dass Dinge die vorher okay waren auf einmal nicht mehr so wollen wie vorher.
Das popupNotify arbeitet bei mir wie erwartet, daher die Frage nach dem verwendeten Script...
Interessant wäre auch noch, was aus dem Tasmota (Konsole) kommt. Wenn du "Ok" oder was auch immer als Text in dem Button definiert ist drückst müsste die Info von Tasmota an das NSPanelTs.ts beim wegklicken in etwa so aussehen:
SmartHome/NSPanel_1/tele/RESULT = {"CustomRecv":"event,buttonPress2,Luftfeuchte,notifyAction,yes"}
Und genau das benötigt das NSPanel.ts um das popUp wieder zu schließen.
Über das "X" wird eine Standard Nachricht ausgelöst, die das Fenster schließt. Hätte dann aber keine Auswertung auf "no" oder "yes" für eine Weiterverarbeitung in deinem Blockly (falls vorhanden). Und würde auch bedeuten, dass kein
true
oderfalse
den Datenpunkt:0_userdata.0.NSPanel.1.popupNotify.popupNotifyAction
geschrieben wird. -
@ticaki
Ich glaube, ich habe den gleichen Fehler nach Umstellung auf die neue Version xx.33.
Ich nutze die beiden Symbole für die Taster und damit für die Steuerung von zwei Lampen. Für das Icon 1 habe ich die Anpassungen wie beschrieben vorgenommen, für Icon2 habe ich es erst einmal wie vorher gelassen.
Allerdings habe ich noch diverse Fehler im Log:mrIcon1ScreensaverEntity: { ScreensaverEntity: 'alias.0.Licht.Licht_Essbereich_Esstisch.ON', ScreensaverEntityFactor: 1, //Anpassung für neue Skript-Version 4.3.3.33 ScreensaverEntityDecimalPlaces: 0, //Anpassung für neue Skript-Version 4.3.3.33 ScreensaverEntityIconOn: 'lightbulb', ScreensaverEntityIconOff: 'lightbulb', ScreensaverEntityText: 'Esstisch', //Anpassung für neue Skript-Version 4.3.3.33 ScreensaverEntityUnitText: '', //Anpassung für neue Skript-Version 4.3.3.33 ScreensaverEntityOnColor: On, ScreensaverEntityOffColor: HMIOff }, mrIcon2ScreensaverEntity: { ScreensaverEntity: 'alias.0.Licht.Licht_Küche_Hochschränke.ON', ScreensaverEntityIconOn: 'lightbulb', ScreensaverEntityIconOff: 'lightbulb', ScreensaverEntityOnColor: On, ScreensaverEntityOffColor: HMIOff },
Log:
javascript.0 (365) script.js.common.Panels.PanelEG1_4_3_3_33: TypeScript compilation failed: ScreensaverEntityFactor: 1, ^ ERROR: Type '{ ScreensaverEntity: string; ScreensaverEntityFactor: number; ScreensaverEntityDecimalPlaces: number; ScreensaverEntityIconOn: string; ScreensaverEntityIconOff: string; ScreensaverEntityText: string; ScreensaverEntityUnitText: string; ScreensaverEntityOnColor: RGB; ScreensaverEntityOffColor: RGB; }' is not assignable to type 'ScreenSaverMRElement'. Object literal may only specify known properties, but 'ScreensaverEntityFactor' does not exist in type 'ScreenSaverMRElement'. Did you mean to write 'ScreensaverEntity'? mrIcon2ScreensaverEntity: { ^ ERROR: Type '{ ScreensaverEntity: string; ScreensaverEntityIconOn: string; ScreensaverEntityIconOff: string; ScreensaverEntityOnColor: RGB; ScreensaverEntityOffColor: RGB; }' is missing the following properties from type 'ScreenSaverMRElement': ScreensaverEntityValue, ScreensaverEntityValueDecimalPlace, ScreensaverEntityValueUnit
Wisst ihr, wo mein Fehler liegt?
-
@armilar said in SONOFF NSPanel mit Lovelace UI:
welche?
Ich dachte ich hätte die damals aus dem Wiki, naja hier mal ein Bild :
und ja, du hast recht im DP 0_userdata.0.NSPanel.1.popupNotify.popupNotifyInternalName
steht das drin, ich weiß aber momentan nich genau wo das herkommt