NEWS
SONOFF NSPanel mit Lovelace UI (TypeScript Version)
-
Die nächste Version kommt wohl gleich ins latest wird dann im laufe des Tages verfügbar.
Es kommt sehr sehr sehr selten vor das man was an einem vorhandenen Skript ändern muß - nur ab und an muß das Skript updaten, wenn da die Version erhöht wurde (geht per klick) und dann angucken und neu an den adapter schicken - damit nix meckert (aber der Adapter meckert in 99,9% der Fälle nur das die Version falsch ist, ohne Konsequenzen.
Ah noch was - Expert immer an
Wenn du zu diesen Personen gehörst bitte etwas vorsichtig sein und den mal ausschalten - alles was im Admin bei Expert zusätzlich gezeigt wird ist entweder tatsächlich für experten oder experimentell oder entwicklerkram :)
Die nächste Version kommt wohl gleich ins latest wird dann im laufe des Tages verfügbar.
Es kommt sehr sehr sehr selten vor das man was an einem vorhandenen Skript ändern muß - nur ab und an muß das Skript updaten, wenn da die Version erhöht wurde (geht per klick) und dann angucken und neu an den adapter schicken - damit nix meckert (aber der Adapter meckert in 99,9% der Fälle nur das die Version falsch ist, ohne Konsequenzen.
Ah noch was - Expert immer an
Wenn du zu diesen Personen gehörst bitte etwas vorsichtig sein und den mal ausschalten - alles was im Admin bei Expert zusätzlich gezeigt wird ist entweder tatsächlich für experten oder experimentell oder entwicklerkram :)
Ahh ok, denke wenn es einmal eingerichtet ist wird es mit dem Adapter wirklich einfacher. Die Seiten Erstellung wird wieder spannend werden, aber wenn ich alles richtig verstanden habe bleiben die Aliase ja gleich. Das hieße dann ich müsste wirklich nur die Seiten neu erstellen. Und von Vorteil eine mqtt Instanz wäre auch weg, was dann der Adapter übernehmen würde. Die seiten selbst werden ja auch im Adapter erstellt, also ich brauche kein Script mehr in der Java Instanz?
-
Die nächste Version kommt wohl gleich ins latest wird dann im laufe des Tages verfügbar.
Es kommt sehr sehr sehr selten vor das man was an einem vorhandenen Skript ändern muß - nur ab und an muß das Skript updaten, wenn da die Version erhöht wurde (geht per klick) und dann angucken und neu an den adapter schicken - damit nix meckert (aber der Adapter meckert in 99,9% der Fälle nur das die Version falsch ist, ohne Konsequenzen.
Ah noch was - Expert immer an
Wenn du zu diesen Personen gehörst bitte etwas vorsichtig sein und den mal ausschalten - alles was im Admin bei Expert zusätzlich gezeigt wird ist entweder tatsächlich für experten oder experimentell oder entwicklerkram :)
Ahh ok, denke wenn es einmal eingerichtet ist wird es mit dem Adapter wirklich einfacher. Die Seiten Erstellung wird wieder spannend werden, aber wenn ich alles richtig verstanden habe bleiben die Aliase ja gleich. Das hieße dann ich müsste wirklich nur die Seiten neu erstellen. Und von Vorteil eine mqtt Instanz wäre auch weg, was dann der Adapter übernehmen würde. Die seiten selbst werden ja auch im Adapter erstellt, also ich brauche kein Script mehr in der Java Instanz?
hab hier geantwortet: https://forum.iobroker.net/post/1333651
-
okay, welchen Screensaver nutzt du?
Welche Felder genau, werden nichtaktualisiert?
gibt es Fehlermeldungen vom Script?schalte bitte im Panel den Debugmodus ein und sehe im Log nach folgendem Eintrag, der beginnt mit
HandleScreensaverUpdate payload: weatherUpdate~sollte immer zur vollen Minute erscheinen.
-
okay, welchen Screensaver nutzt du?
Welche Felder genau, werden nichtaktualisiert?
gibt es Fehlermeldungen vom Script?schalte bitte im Panel den Debugmodus ein und sehe im Log nach folgendem Eintrag, der beginnt mit
HandleScreensaverUpdate payload: weatherUpdate~sollte immer zur vollen Minute erscheinen.
Jetzt konnte ich eine aktualisierung am Display life sehen.
Meistens in der früh sieht man, das die Wetterdaten nicht passen (alle Wettersymbole inkl. Werte von der Wetterstation). Drückt man dann auf das Display, aktualisieren sich die Werte.
Nein ich habe keine Fehlermeldungen im Script12:41:43.664 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 97, Pld -99, Data 'color~0~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535' 12:41:43.712 NXP: payload sent = bytes('55BB6100636F6C6F727E307E36353533357E36353533357E36353533357E3635...') 12:41:43.724 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} 12:41:43.750 SRC: MQTT 12:41:43.751 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 161, Pld -99, Data 'weatherUpdate~~~~19017~~7.1 °C~~~~65168~Temperatur~9.1°C~~~~26095~Wind~1.4km/h~~~~26095~UV~0~~~~64333~Wolken~wechselhaft~~~~64333~Feuchte~99.0%~' 12:41:43.820 BRY: GC from 109293 to 55205 bytes, objects freed 842/660 (in 29 ms) - slots from 2028/2039 to 424/730 12:41:43.862 NXP: payload sent = bytes('55BBA100776561746865725570646174657E7E7EEE968F7E31393031377E7E37...') 12:41:43.872 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} 12:41:43.908 SRC: MQTT 12:41:43.909 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 35, Pld -99, Data 'statusUpdate~~17299~~17299~~~' 12:41:43.932 NXP: payload sent = bytes('55BB23007374617475735570646174657EEE8CB47E31373239397EEE8CB47E31...') 12:41:43.940 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} 12:41:43.971 SRC: MQTT 12:41:43.973 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 97, Pld -99, Data 'color~0~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535' 12:41:44.021 NXP: payload sent = bytes('55BB6100636F6C6F727E307E36353533357E36353533357E36353533357E3635...') 12:41:44.033 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} 12:41:44.061 SRC: MQTT 12:41:44.063 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 161, Pld -99, Data 'weatherUpdate~~~~19017~~7.1 °C~~~~65168~Temperatur~9.1°C~~~~26095~Wind~1.8km/h~~~~26095~UV~0~~~~64333~Wolken~wechselhaft~~~~64333~Feuchte~99.0%~' 12:41:44.136 NXP: payload sent = bytes('55BBA100776561746865725570646174657E7E7EEE968F7E31393031377E7E37...') 12:41:44.146 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} 12:41:44.179 SRC: MQTT 12:41:44.181 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 35, Pld -99, Data 'statusUpdate~~17299~~17299~~~' 12:41:44.225 BRY: GC from 110432 to 54949 bytes, objects freed 873/660 (in 30 ms) - slots from 2088/2116 to 424/730 12:41:44.237 NXP: payload sent = bytes('55BB23007374617475735570646174657EEE8CB47E31373239397EEE8CB47E31...') 12:41:44.250 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} 12:41:44.276 SRC: MQTT 12:41:44.278 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 97, Pld -99, Data 'color~0~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535' 12:41:44.325 NXP: payload sent = bytes('55BB6100636F6C6F727E307E36353533357E36353533357E36353533357E3635...') 12:41:44.337 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} 12:41:44.370 SRC: MQTT 12:41:44.372 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 161, Pld -99, Data 'weatherUpdate~~~~19017~~7.1 °C~~~~65168~Temperatur~9.1°C~~~~26095~Wind~1.8km/h~~~~26095~UV~0~~~~64333~Wolken~wechselhaft~~~~64333~Feuchte~99.0%~' 12:41:44.444 NXP: payload sent = bytes('55BBA100776561746865725570646174657E7E7EEE968F7E31393031377E7E37...') 12:41:44.457 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} 12:41:44.480 SRC: MQTT 12:41:44.482 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 35, Pld -99, Data 'statusUpdate~~17299~~17299~~~' 12:41:44.505 NXP: payload sent = bytes('55BB23007374617475735570646174657EEE8CB47E31373239397EEE8CB47E31...') 12:41:44.516 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} 12:41:44.536 SRC: MQTT 12:41:44.538 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 97, Pld -99, Data 'color~0~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535' 12:41:44.604 BRY: GC from 109933 to 55049 bytes, objects freed 865/659 (in 30 ms) - slots from 2071/2085 to 423/730 12:41:44.621 NXP: payload sent = bytes('55BB6100636F6C6F727E307E36353533357E36353533357E36353533357E3635...') 12:41:44.632 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} 12:41:45.068 WIF: Checking connection... 12:41:52.289 SRC: MQTT 12:41:52.291 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 156, Pld -99, Data 'weatherUpdate~~~~19017~~7.1 °C~~~~25407~Fr~6° 11°~~~~38066~Sa~5° 18°~~~~19017~So~7° 14°~~~~19017~Mo~7° 13°~~~~64333~Feuchte~99.0%' 12:41:52.367 NXP: payload sent = bytes('55BB9C00776561746865725570646174657E7E7EEE968F7E31393031377E7E37...') 12:41:52.377 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} 12:41:52.407 SRC: MQTT 12:41:52.409 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 35, Pld -99, Data 'statusUpdate~~17299~~17299~~~' 12:41:52.434 NXP: payload sent = bytes('55BB23007374617475735570646174657EEE8CB47E31373239397EEE8CB47E31...') 12:41:52.445 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} 12:41:52.470 SRC: MQTT 12:41:52.471 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 97, Pld -99, Data 'color~0~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535' 12:41:52.518 NXP: payload sent = bytes('55BB6100636F6C6F727E307E36353533357E36353533357E36353533357E3635...') 12:41:52.530 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} -
Jetzt konnte ich eine aktualisierung am Display life sehen.
Meistens in der früh sieht man, das die Wetterdaten nicht passen (alle Wettersymbole inkl. Werte von der Wetterstation). Drückt man dann auf das Display, aktualisieren sich die Werte.
Nein ich habe keine Fehlermeldungen im Script12:41:43.664 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 97, Pld -99, Data 'color~0~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535' 12:41:43.712 NXP: payload sent = bytes('55BB6100636F6C6F727E307E36353533357E36353533357E36353533357E3635...') 12:41:43.724 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} 12:41:43.750 SRC: MQTT 12:41:43.751 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 161, Pld -99, Data 'weatherUpdate~~~~19017~~7.1 °C~~~~65168~Temperatur~9.1°C~~~~26095~Wind~1.4km/h~~~~26095~UV~0~~~~64333~Wolken~wechselhaft~~~~64333~Feuchte~99.0%~' 12:41:43.820 BRY: GC from 109293 to 55205 bytes, objects freed 842/660 (in 29 ms) - slots from 2028/2039 to 424/730 12:41:43.862 NXP: payload sent = bytes('55BBA100776561746865725570646174657E7E7EEE968F7E31393031377E7E37...') 12:41:43.872 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} 12:41:43.908 SRC: MQTT 12:41:43.909 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 35, Pld -99, Data 'statusUpdate~~17299~~17299~~~' 12:41:43.932 NXP: payload sent = bytes('55BB23007374617475735570646174657EEE8CB47E31373239397EEE8CB47E31...') 12:41:43.940 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} 12:41:43.971 SRC: MQTT 12:41:43.973 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 97, Pld -99, Data 'color~0~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535' 12:41:44.021 NXP: payload sent = bytes('55BB6100636F6C6F727E307E36353533357E36353533357E36353533357E3635...') 12:41:44.033 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} 12:41:44.061 SRC: MQTT 12:41:44.063 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 161, Pld -99, Data 'weatherUpdate~~~~19017~~7.1 °C~~~~65168~Temperatur~9.1°C~~~~26095~Wind~1.8km/h~~~~26095~UV~0~~~~64333~Wolken~wechselhaft~~~~64333~Feuchte~99.0%~' 12:41:44.136 NXP: payload sent = bytes('55BBA100776561746865725570646174657E7E7EEE968F7E31393031377E7E37...') 12:41:44.146 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} 12:41:44.179 SRC: MQTT 12:41:44.181 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 35, Pld -99, Data 'statusUpdate~~17299~~17299~~~' 12:41:44.225 BRY: GC from 110432 to 54949 bytes, objects freed 873/660 (in 30 ms) - slots from 2088/2116 to 424/730 12:41:44.237 NXP: payload sent = bytes('55BB23007374617475735570646174657EEE8CB47E31373239397EEE8CB47E31...') 12:41:44.250 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} 12:41:44.276 SRC: MQTT 12:41:44.278 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 97, Pld -99, Data 'color~0~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535' 12:41:44.325 NXP: payload sent = bytes('55BB6100636F6C6F727E307E36353533357E36353533357E36353533357E3635...') 12:41:44.337 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} 12:41:44.370 SRC: MQTT 12:41:44.372 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 161, Pld -99, Data 'weatherUpdate~~~~19017~~7.1 °C~~~~65168~Temperatur~9.1°C~~~~26095~Wind~1.8km/h~~~~26095~UV~0~~~~64333~Wolken~wechselhaft~~~~64333~Feuchte~99.0%~' 12:41:44.444 NXP: payload sent = bytes('55BBA100776561746865725570646174657E7E7EEE968F7E31393031377E7E37...') 12:41:44.457 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} 12:41:44.480 SRC: MQTT 12:41:44.482 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 35, Pld -99, Data 'statusUpdate~~17299~~17299~~~' 12:41:44.505 NXP: payload sent = bytes('55BB23007374617475735570646174657EEE8CB47E31373239397EEE8CB47E31...') 12:41:44.516 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} 12:41:44.536 SRC: MQTT 12:41:44.538 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 97, Pld -99, Data 'color~0~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535' 12:41:44.604 BRY: GC from 109933 to 55049 bytes, objects freed 865/659 (in 30 ms) - slots from 2071/2085 to 423/730 12:41:44.621 NXP: payload sent = bytes('55BB6100636F6C6F727E307E36353533357E36353533357E36353533357E3635...') 12:41:44.632 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} 12:41:45.068 WIF: Checking connection... 12:41:52.289 SRC: MQTT 12:41:52.291 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 156, Pld -99, Data 'weatherUpdate~~~~19017~~7.1 °C~~~~25407~Fr~6° 11°~~~~38066~Sa~5° 18°~~~~19017~So~7° 14°~~~~19017~Mo~7° 13°~~~~64333~Feuchte~99.0%' 12:41:52.367 NXP: payload sent = bytes('55BB9C00776561746865725570646174657E7E7EEE968F7E31393031377E7E37...') 12:41:52.377 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} 12:41:52.407 SRC: MQTT 12:41:52.409 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 35, Pld -99, Data 'statusUpdate~~17299~~17299~~~' 12:41:52.434 NXP: payload sent = bytes('55BB23007374617475735570646174657EEE8CB47E31373239397EEE8CB47E31...') 12:41:52.445 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} 12:41:52.470 SRC: MQTT 12:41:52.471 CMD: Grp 0, Cmd 'CUSTOMSEND', Idx 1, Len 97, Pld -99, Data 'color~0~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535~65535' 12:41:52.518 NXP: payload sent = bytes('55BB6100636F6C6F727E307E36353533357E36353533357E36353533357E3635...') 12:41:52.530 MQT: stat/NS_Panel/RESULT = {"CustomSend":"Done"} -
@tt-tom Dass der Screensaver nach einiger Zeit >> passiven Betriebs << nicht mehr aktualisiert, ist auch bei mir öfter. Dann brauch ich nur einmal auf das Display zu tatschen und nach dem Timeout läuft wieder alles. Dafür (dagegen) habe ich schon ein Skript laufen, welches die NS-Panel früh Morgens neu starten soll. Ob das tatsächlich passiert, oder das NS-Panel den Befehl gar nicht bekommt, habe ich (noch) nicht verifiziert.
-
Ich brauche auch mal Hilfe, bitte, mit der cardMedia und meinem LMS:
let SqueezeboxRPC: PageType = { 'type': 'cardMedia', 'heading': 'Lyrion Media Server', 'items': [{ id: AliasPath + 'Media.PlayerSqueezeboxRPC', adapterPlayerInstance: 'squeezeboxrpc.0.', speakerList: ['Heartbeat_4', 'Squeezebox'], mediaDevice: 'Heartbeat_4', playList: ['Papas Liste'], colorMediaIcon: Green, colorMediaArtist: Yellow, colorMediaTitle: Yellow, alwaysOnDisplay: true, autoCreateALias: true }] };Die Aliase sehen gut aus:

Aber was passiert, ist, dass auf dem NSPanel folgendes erscheint:
Hot Pink (Seiten-Überschrift)
Say so
Doja CatUnd alle paar Sekunden blitzt das auf:
Hot Pink
Say so (1:23|3:57)
Hot Pink|Doja CatDie Überschrift sollte doch "Lyrion Media Server" sein und die Zeit durchgängig angezeigt werden?
-
Ich brauche auch mal Hilfe, bitte, mit der cardMedia und meinem LMS:
let SqueezeboxRPC: PageType = { 'type': 'cardMedia', 'heading': 'Lyrion Media Server', 'items': [{ id: AliasPath + 'Media.PlayerSqueezeboxRPC', adapterPlayerInstance: 'squeezeboxrpc.0.', speakerList: ['Heartbeat_4', 'Squeezebox'], mediaDevice: 'Heartbeat_4', playList: ['Papas Liste'], colorMediaIcon: Green, colorMediaArtist: Yellow, colorMediaTitle: Yellow, alwaysOnDisplay: true, autoCreateALias: true }] };Die Aliase sehen gut aus:

Aber was passiert, ist, dass auf dem NSPanel folgendes erscheint:
Hot Pink (Seiten-Überschrift)
Say so
Doja CatUnd alle paar Sekunden blitzt das auf:
Hot Pink
Say so (1:23|3:57)
Hot Pink|Doja CatDie Überschrift sollte doch "Lyrion Media Server" sein und die Zeit durchgängig angezeigt werden?
Der Rest lässt sich steuern? Ist das nur das Thema mit der Überschrift?
Ich sags mal so: "Works as Designed"
in der function generateMediaPage passiert folgendes. Im oberen Teil wird der Datenpunkt .ALBUM zugewiesen
let name = getState(id + '.ALBUM').val;
Ist die Länge 0, dann zeige den Player wie in der Variable definiert an. Wenn nicht, dann läuft ein Song und die Titelzeile zeigt diesen (auf 16 Zeichen begrenzt) ebenfalls an.
if (name.length == 0) { name = page.heading; } else if (name.length > 16) { name = name.slice(0, 16) + '...'; }Sollte da ein anderes merkwürdiges Verhalten sein, dann müssten wir uns das im Detail ansehen. Dazu wäre dann mindestens mal ein Bild oder Video hilfreich.
VG
Kurze Ergänzung: Was in den Datenpunkten ALBUM, TITEL, ARTIST steht, dass hat mit dem Skript nichts zu tun. Der DLNA-Server nimmt die Informationen aus den MP3-Infos und reicht sie entsprechend weiter. Jedoch sieht das zumindest in den Datenpunkten zu diesem Song richtig aus.
-
Hallo Zusammen
Ich habe ein Problem beim Flashen der Nexion v5.1.1.tft Version.
Habe in der Console den folgenden Befehl eingetragen und erhalte die Fehlermeldung:FlashNextionAdv0 http://nspanel.de/nspanel-v5.1.1.tftBRY: Exception> 'type_error' - unsupported operand type(s) for <: 'nil' and 'int'Ganzer Log:
18:54:00.417 CMD: FlashNextionAdv0 http://nspanel.de/nspanel-v5.1.1.tft 18:54:00.431 MQT: SmartHome/NSPanel_1/stat/RESULT = {"FlashNextionAdv":"Done"} 18:54:00.477 FLH: host: nspanel.de, port: 80, get: /nspanel-v5.1.1.tft 18:54:02.498 MQT: SmartHome/NSPanel_1/stat/RESULT = {"T1":0,"T2":0,"T3":0,"T4":0,"T5":0,"T6":0,"T7":0,"T8":0} 18:54:02.513 MQT: SmartHome/NSPanel_1/stat/RESULT = {"Rule3":{"State":"OFF","Once":"OFF","StopOnError":"OFF","Length":0,"Free":511,"Rules":""}} 18:54:02.571 FLH: Send (High Speed) flash start 18:54:02.953 BRY: Exception> 'type_error' - unsupported operand type(s) for <: 'nil' and 'int' 18:54:22.448 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}TSScript Version: v5.5.1.7
Project tasmota: - NSPanel Version 15.0.1(release-nspanel)-3_1_3(2025-06-14T10:37:18)
Berry: 10
Nexion: Installed TFT Firmware: 59 / v5.0.2Hat jemand eine Idee?
Danke
Grüße -
Hallo Zusammen
Ich habe ein Problem beim Flashen der Nexion v5.1.1.tft Version.
Habe in der Console den folgenden Befehl eingetragen und erhalte die Fehlermeldung:FlashNextionAdv0 http://nspanel.de/nspanel-v5.1.1.tftBRY: Exception> 'type_error' - unsupported operand type(s) for <: 'nil' and 'int'Ganzer Log:
18:54:00.417 CMD: FlashNextionAdv0 http://nspanel.de/nspanel-v5.1.1.tft 18:54:00.431 MQT: SmartHome/NSPanel_1/stat/RESULT = {"FlashNextionAdv":"Done"} 18:54:00.477 FLH: host: nspanel.de, port: 80, get: /nspanel-v5.1.1.tft 18:54:02.498 MQT: SmartHome/NSPanel_1/stat/RESULT = {"T1":0,"T2":0,"T3":0,"T4":0,"T5":0,"T6":0,"T7":0,"T8":0} 18:54:02.513 MQT: SmartHome/NSPanel_1/stat/RESULT = {"Rule3":{"State":"OFF","Once":"OFF","StopOnError":"OFF","Length":0,"Free":511,"Rules":""}} 18:54:02.571 FLH: Send (High Speed) flash start 18:54:02.953 BRY: Exception> 'type_error' - unsupported operand type(s) for <: 'nil' and 'int' 18:54:22.448 MQT: SmartHome/NSPanel_1/stat/RESULT = {"CustomSend":"Done"}TSScript Version: v5.5.1.7
Project tasmota: - NSPanel Version 15.0.1(release-nspanel)-3_1_3(2025-06-14T10:37:18)
Berry: 10
Nexion: Installed TFT Firmware: 59 / v5.0.2Hat jemand eine Idee?
Danke
Grüße -
Hallo Armilar
vielen Dank für die super schnelle Antwort.
Ich habe gerade das Script noch einmal weiter bearbeitet und plötzlich poppte eine Anzeige am Diplay auf, ob die TFT Version aktualisiert werden soll. Dann habe ich es in der Console erneut versucht und plötzlich funktionierte das Update.
Ich hatte eigentlich auch vorher mindestens 10-15 Minuten gewartet ohne Änderungen (war zu Abend Essen).
Danke
Grüße
Powerich -
Der Rest lässt sich steuern? Ist das nur das Thema mit der Überschrift?
Ich sags mal so: "Works as Designed"
in der function generateMediaPage passiert folgendes. Im oberen Teil wird der Datenpunkt .ALBUM zugewiesen
let name = getState(id + '.ALBUM').val;
Ist die Länge 0, dann zeige den Player wie in der Variable definiert an. Wenn nicht, dann läuft ein Song und die Titelzeile zeigt diesen (auf 16 Zeichen begrenzt) ebenfalls an.
if (name.length == 0) { name = page.heading; } else if (name.length > 16) { name = name.slice(0, 16) + '...'; }Sollte da ein anderes merkwürdiges Verhalten sein, dann müssten wir uns das im Detail ansehen. Dazu wäre dann mindestens mal ein Bild oder Video hilfreich.
VG
Kurze Ergänzung: Was in den Datenpunkten ALBUM, TITEL, ARTIST steht, dass hat mit dem Skript nichts zu tun. Der DLNA-Server nimmt die Informationen aus den MP3-Infos und reicht sie entsprechend weiter. Jedoch sieht das zumindest in den Datenpunkten zu diesem Song richtig aus.
@Armilar 20260423_215025(1).mp4
Songdaten:
Titel: No Roots
Artist: Amy Macdonald
Album: A Curious ThingAm ehesten irritiert mich, dass nur so ca. alle 10 Sekunden die Laufzeit aufblitzt. Aber augenscheinlich auch nur dann, wenn der Songtitel kurz ist. Gerade lief ein Lied namens "Borne on The FM Waves of The Heart" - das war mit "..." abgekürzt und die Laufzeitangabe blitzte nicht einmal auf.
Hilft das?
-
@Armilar 20260423_215025(1).mp4
Songdaten:
Titel: No Roots
Artist: Amy Macdonald
Album: A Curious ThingAm ehesten irritiert mich, dass nur so ca. alle 10 Sekunden die Laufzeit aufblitzt. Aber augenscheinlich auch nur dann, wenn der Songtitel kurz ist. Gerade lief ein Lied namens "Borne on The FM Waves of The Heart" - das war mit "..." abgekürzt und die Laufzeitangabe blitzte nicht einmal auf.
Hilft das?
Nicht wirklich. Ich könnte es nicht mal nachstellen, da ich den DLNA selbst nicht nutze.Veränderungen werden nach Aktualisierung des Adapters gesendet. Das wiederum wird in Timer-Einstellungen der squeezebox.0 Instanz hinterlegt sein.Meinst du mit "aufblitzen" diese Aktualisierungen?Okay versatnden (Hab dein MP4 oben nicht sofort entdeckt).
Kann ich mir ansehen. Da wird kurz ein kompletter String mit Zeiten gesendet und kurzdarauf einer ohne... Das müsste man finden können...

Vielleichthat es damit zu tun, dass der Interpret aus dem MP3 ohne Inhalt (=undefined) ist.
Ich sehe mir das an...
-
@armilar Das sind die Metadaten:

-
@armilar Das sind die Metadaten:

Suche mal für einen Test nach:
if (v2Adapter == 'squeezeboxrpc' && author.length == 0) {und ersetze den durch
if (v2Adapter == 'squeezeboxrpc' && author.length > 0) { -
Suche mal für einen Test nach:
if (v2Adapter == 'squeezeboxrpc' && author.length == 0) {und ersetze den durch
if (v2Adapter == 'squeezeboxrpc' && author.length > 0) {und ersetze den durch
Die Zeitanzeige ist jetzt permanent da, das hat geklappt. Jetzt ist die Frage, was das "undefined|A Curious Thing" soll. (Und dass das Album in der Überschrift und im "Text" angezeigt wird, ist echt gewollt? Beim Lyrion Media Server wäre mir persönlich der Name des Players lieber.
Nachtrag:
let lmstracklist = JSON.parse(getState([page.items[0].adapterPlayerInstance, 'Players.', page.items[0].mediaDevice, '.Playlist'].join('')).val); ... author = lmstracklist[currentIndex].Artist + '|' + lmstracklist[currentIndex].Album;Hm.
{ index: 5, id: 26429, url: 'file:///music/Alben/Amy%20Macdonald%20-%20A%20Curious%20Thing/03%20Amy%20Macdonald%20-%20No%20Roots.mp3', title: 'No Roots', ArtworkUrl: 'http://localhost:9900/music/0ee7d819/cover.jpg', Type: 'mp3', Bitrate: '205kb/s VBR', Duration: 270.24, Album: 'A Curious Thing' }"Artist" gibt es da nicht. Fix:
author = author + '|' + lmstracklist[currentIndex].Album;Jetzt ist es umgekehrt, jetzt fliegt der Text alle 10 Sekunden mal weg und da steht dann für einen Moment nur "No Roots".
-
und ersetze den durch
Die Zeitanzeige ist jetzt permanent da, das hat geklappt. Jetzt ist die Frage, was das "undefined|A Curious Thing" soll. (Und dass das Album in der Überschrift und im "Text" angezeigt wird, ist echt gewollt? Beim Lyrion Media Server wäre mir persönlich der Name des Players lieber.
Nachtrag:
let lmstracklist = JSON.parse(getState([page.items[0].adapterPlayerInstance, 'Players.', page.items[0].mediaDevice, '.Playlist'].join('')).val); ... author = lmstracklist[currentIndex].Artist + '|' + lmstracklist[currentIndex].Album;Hm.
{ index: 5, id: 26429, url: 'file:///music/Alben/Amy%20Macdonald%20-%20A%20Curious%20Thing/03%20Amy%20Macdonald%20-%20No%20Roots.mp3', title: 'No Roots', ArtworkUrl: 'http://localhost:9900/music/0ee7d819/cover.jpg', Type: 'mp3', Bitrate: '205kb/s VBR', Duration: 270.24, Album: 'A Curious Thing' }"Artist" gibt es da nicht. Fix:
author = author + '|' + lmstracklist[currentIndex].Album;Jetzt ist es umgekehrt, jetzt fliegt der Text alle 10 Sekunden mal weg und da steht dann für einen Moment nur "No Roots".
{
index: 5,
id: 26429,
url: 'file:///music/Alben/Amy%20Macdonald%20-%20A%20Curious%20Thing/03%20Amy%20Macdonald%20-%20No%20Roots.mp3',
title: 'No Roots',
ArtworkUrl: 'http://localhost:9900/music/0ee7d819/cover.jpg',
Type: 'mp3',
Bitrate: '205kb/s VBR',
Duration: 270.24,
Album: 'A Curious Thing'
}Das liegt wahrscheinlich an deinem MP3-File. Bei mir funktioniert es. Übrigens alles...
Artist ist auch dabei. Sieht auch alles gut aus und wackelt und blitzt nix... Habe mir dann doch noch einen Logitech Media Server zum testen installiert.
{
index: 12,
id: 42,
url: 'file:///C:/Users/jbakk/Music/Corrs,%20The/1999%20-%20MTV%20Unplugged/13%20-%20The%20Corrs%20-%20So%20Young%20-%20EMG%20-%20x.mp3',
title: 'So Young',
ArtworkUrl: 'http://192.168.1.223:9000/music/5c0fd3c0/cover.jpg',
Type: 'mp3',
Bitrate: '192kb/s CBR',
Duration: '293.72',
Artist: 'The Corrs',
Album: 'Unplugged'
},Edit: Das mit der Überschrift ist in allen Playern durchgehend so. Allerdings kann man mit relativ wenig Aufwand einen zusätzlichen neuen Parameter machen, der das verhindert und den Player anzeigt.
-
und ersetze den durch
Die Zeitanzeige ist jetzt permanent da, das hat geklappt. Jetzt ist die Frage, was das "undefined|A Curious Thing" soll. (Und dass das Album in der Überschrift und im "Text" angezeigt wird, ist echt gewollt? Beim Lyrion Media Server wäre mir persönlich der Name des Players lieber.
Nachtrag:
let lmstracklist = JSON.parse(getState([page.items[0].adapterPlayerInstance, 'Players.', page.items[0].mediaDevice, '.Playlist'].join('')).val); ... author = lmstracklist[currentIndex].Artist + '|' + lmstracklist[currentIndex].Album;Hm.
{ index: 5, id: 26429, url: 'file:///music/Alben/Amy%20Macdonald%20-%20A%20Curious%20Thing/03%20Amy%20Macdonald%20-%20No%20Roots.mp3', title: 'No Roots', ArtworkUrl: 'http://localhost:9900/music/0ee7d819/cover.jpg', Type: 'mp3', Bitrate: '205kb/s VBR', Duration: 270.24, Album: 'A Curious Thing' }"Artist" gibt es da nicht. Fix:
author = author + '|' + lmstracklist[currentIndex].Album;Jetzt ist es umgekehrt, jetzt fliegt der Text alle 10 Sekunden mal weg und da steht dann für einen Moment nur "No Roots".
Falls dann sonst alles Okay ist (Artist kommt ja nicht aus deinen MP3-Tags (ID3-Tags) mit - also ist undefined ja sogar korrekt), kannst du die DEV Version (Unterer Teil) nehmen.
https://github.com/joBr99/nspanel-lovelace-ui/blob/main/ioBroker/DEV/NSPanelTs.ts
Unten ist ein neuer Parameter "showOnlyPlayerHeadline: true", der dann die Heading-Angabe in der Variable nicht mehr mit dem Album überschreibt.
let SqueezeboxRPC: PageType = { 'type': 'cardMedia', 'heading': 'SqueezeboxRPC', 'hiddenByTrigger': true, 'items': [ { id: AliasPath + 'Media.PlayerSqueezeboxRPC2', adapterPlayerInstance: 'squeezeboxrpc.0.', speakerList: ['SqueezePlay'], mediaDevice: 'SqueezePlay', playList: ['Playlist'], colorMediaIcon: Green, colorMediaArtist: Yellow, colorMediaTitle: Yellow, alwaysOnDisplay: true, autoCreateALias : true, showOnlyPlayerHeadline: true } ] };Änderungen: https://github.com/joBr99/nspanel-lovelace-ui/commit/edf78e775c0a1b5d665558b52c0b5a7c7abb494c
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden

