NEWS
Test Adapter NSPanel-lovelace-ui v1.x.x
-
ich schau mal übers WE rein und gib dir eine Rückinfo.
@TT-Tom Super, vielen Dank!
-
Hi zusammen,
ich bin jetzt schon vor längerem auf den Adapter gewechselt und hätte gehofft, das bei den Mediaplayern noch die Unterstützung für squeezeboxrpc integriert wird. Unter der alten Script-Version habe ich das genutzt und möchte es eben auch gerne weiterhin nutzen.
Wäre eine Integration einfach möglich?
Aktuell verwende ich den Adapter v1.0.0 mit TFT v5.1.1.
Vielen Danke schon mal im Voraus.
LG., Thomas@Thomas_ioB
Tom macht UI und ich mache das mit der squeezeboxrpc, da ich auch die anderen Mediaplayer eingebaut habe - bin gerade dran. Da ich squeezebox nocht nicht aktiv nutze, muss das jedoch von dir getestet werden - ich kann nur die Basics testen. -
Eine Branch zum Testen für Squeezerpcbox liegt bereit - ist ähnlich wie sonos umgesetzt - Favoriten, Playlisten, Titellisten werden automatisch ermittelt - Mulitroom Speaker Handling - Groupvolumen (aber da eher einfach +2% bei main gibt über all +2 auf das volumen - heißt solange man nicht an 0 oder 100 stößt bleibt das Verhältnis erhalten)
Bitte testen
https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/tree/feat/media-squeezebox
const pageMediaTest1: PageType = { type: 'cardMedia', heading: 'main', media: { id: 'squeezeboxrpc.0.Players.Familienzimmer', volumePresets: ['leise?2'], minValue: 0, maxValue: 25, }, uniqueName: 'main', items: [ ], scrollPresentation: 'arrow' }; -
unabhängig von den beiden sachen wir wir gerade im test haben:
1.2.0 (2026-10-11)
- (tt-tom17) fix: the item role
lockacceptssensor.lockas role of the ACTUAL state in addition tostate; before, an ACTUAL state withsensor.lockwas skipped and the item silently showed the SET state instead. The log now reports when a channel falls back to its alternate state (e.g. ACTUAL → SET) - (tt-tom17) admin: chart pages (column and line) can be created in the PageConfig tab like the other page types; the page gets its own editor with chart type, color, data source (script states or a history/sql/influxdb instance), range, factor, x-axis ticks and labels. The classic way (script page plus the
Page Charttab) keeps working, both share one code path in the adapter. The DB instance is stored in the short form (influxdb.0); the alive check accepts both forms. The history query now asks for averages (bar: one per hour, line: 5-minute grid) instead of raw values, the x-axis is computed from the time stamps, line values keep one decimal - (tt-tom17) fix: the line chart scales large values automatically — the panel prints a y-axis tick with at most two characters, so 152 W used to show up as "15"; values are now divided by 10, 100, … until the ticks fit and the y-axis label shows the factor (e.g.
W x10). The y-ticks use round 1-2-5 steps from the minimum to the maximum of the data; the former two extra ticks below the minimum are gone — the panel never showed them, but they forced the factor on a winter day (-5 … 3 °C ended up as°C x10) - (tt-tom17) admin: the timezone field of the panel setup sits in the same row and has the same width as the other fields again
- (tt-tom17) admin: light items with the roles rgbSingle, rgb, ct and hue get a
Mode listdialog in the item editor to configureinSel_Alias(a writable string state) andmodeList(one entry per line); items with the role select get the same dialog with the list only, they select through the channel's SET state and, without a list, the adapter uses its common.states. The dialog checks the state, warns about?in entries, about more than 48 entries and about lists longer than 900 characters, and can take the list from the state'scommon.states(a state with owncommon.statesis listed by the adapter directly from them, the mode list is only a fallback); theColor SettingsandMode listbuttons turn green once they hold data - (tt-tom17) fix: the popup of a select item with a configured mode list showed the raw value of ACTUAL (the index) as current mode instead of the list entry, so no entry was marked; the entry is looked up by index now,
label?valueentries by their value - (tt-tom17) fix: selecting an entry of a mode list configured for a select item wrote the index into the read-only ACTUAL state (Forbidden write attempts on a read-only state); the writeable SET state is used now, light items are unaffected because both point to inSel_Alias
- (tt-tom17) fix: the item role
-
Eine Branch zum Testen für Squeezerpcbox liegt bereit - ist ähnlich wie sonos umgesetzt - Favoriten, Playlisten, Titellisten werden automatisch ermittelt - Mulitroom Speaker Handling - Groupvolumen (aber da eher einfach +2% bei main gibt über all +2 auf das volumen - heißt solange man nicht an 0 oder 100 stößt bleibt das Verhältnis erhalten)
Bitte testen
https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/tree/feat/media-squeezebox
const pageMediaTest1: PageType = { type: 'cardMedia', heading: 'main', media: { id: 'squeezeboxrpc.0.Players.Familienzimmer', volumePresets: ['leise?2'], minValue: 0, maxValue: 25, }, uniqueName: 'main', items: [ ], scrollPresentation: 'arrow' };@ticaki
Hi, vielen Dank. Funktioniert prinzipiell schon sehr gut.
Nur kann es sein, dass der Volume-Slider nicht mehr geht? Also über Presets klappt es - aber wenn ich direkt am Slider oder den 2 Icons die Lautstärke ändern will, passiert nicht.
Hier mal meine Config - vielleicht stimmt ja auch da was noch nicht?const SqueezeboxRPC: PageType = { type: 'cardMedia', heading: 'Squeezebox Sauna', media: { id: 'squeezeboxrpc.0.Players.SqueezePlay_Sauna', volumePresets: ['leise?15','mittel?40','laut?70'], minValue: 0, maxValue: 100, deactivateDefaultItems: { playList: true, equalizer: true, crossfade: true, } }, uniqueName: 'SqueezeboxRPC', items: [ ], scrollPresentation: 'arrow' };LG., Thomas
-
@ticaki : hab´s gerade nochmal in der Sauna getestet. Da klappt der Slider und auch die Icons. Jetzt prüfe ich gerade den Unterschied zw. den 2 Panels: eines habe ich gestern noch auf Tasmota 15.6.0 gehoben, da wo es klappt ist noch auf 15.4.0.
Vielleicht macht das den Fehler aus.Nachtrag: hab Tasmota auf 15.4.0 runter gezogen, bringt aber auch nichts. Es scheint, wie wenn diese 4. von 5 Zeilen bei der cardMedia kaputt ist. Hardware-Defekt kann ich aber ausschließen - auf der "Service-Unlock" Seite klappen die Ziffern 7, 8 und 9 - diese befinden sich ja auf der selben Höhe wie der Slider.
Jetzt bin ich etwas ratlos dazu - aber es ist "nur" mein Entwickler-Panel. Somit erstmal nicht so schlimm.
Das wichtigste, SqueezeboxRPC funktioniert wieder. Danke dafür! -
schaue mal nach was in dem datenpunkt zum volumen steht - falls da keine Zahl drin ist, mir mitteilen und iene zahl rein schreiben. Ansonsten mal schauen ob der datenpunkt sich mit dem slider bewegt - kann ja sein das am andere ende was klemmt.
Außerdem adapter auf debug stellen - warten bis alles hochgefahren ist und dann den slider bewegen und die log ausgaben, die die bewegung produziert, hier posten.
EDIT: Hm wenn die Vorlagen gehen, liegt es nicht am server oder datenpunkt...
-
schaue mal nach was in dem datenpunkt zum volumen steht - falls da keine Zahl drin ist, mir mitteilen und iene zahl rein schreiben. Ansonsten mal schauen ob der datenpunkt sich mit dem slider bewegt - kann ja sein das am andere ende was klemmt.
Außerdem adapter auf debug stellen - warten bis alles hochgefahren ist und dann den slider bewegen und die log ausgaben, die die bewegung produziert, hier posten.
EDIT: Hm wenn die Vorlagen gehen, liegt es nicht am server oder datenpunkt...
@ticaki Also ich habe jetzt alles probiert: das Skript ist 1:1 vom funktionierenden Panel (natürlich mit angepasstem panelTopic)
NSPanel einmal komplett gelöscht und neu initialisiert, BerryTreiber und TFT neu installiert - hat leider alles nichts geholfen.
Debug-Ausgabe hätte ich aktiviert gehabt, jedoch kommen keine Ausgaben, weil sich der Slider ja gar nicht bewegt. Und auch die 2 Icons (Vol + und -) triggern keine Ausgabe. Es wirkt eben so, dass dieser Bereich keine Eingabe / keinen Touch erkennt. -
was steht im datenpunkt genau - vermutung ist der muss konvertiert werden und passt so nicht.
EDIT: ich hab nur nen sonos player und keinen plan was da sonst noch drin stehen kann, wenn das natürlich immer der gleiche player ist und nur das panel ist anders - em ja dann stehe ich auch auf dem schlauch.
-
1.3.0 (2026-10-13)
- (ticaki) cardMedia: support for the squeezeboxrpc adapter (Logitech Media Server) – media id
squeezeboxrpc.X.Players.<name>; speaker grid to sync other rooms (control follows the sync master), group volume changes every member by the same amount, 3-step shuffle, seek via logo, favorites, saved playlists (requested from the LMS) and current playlist - (ticaki) fix: a page
mainin the panel script was reported as coming from the global script configuration when the global configuration also has a pagemain(log message and colour in the admin navigation view); the page of the panel script was used, only its origin was wrong - (tt-tom17) admin: thermostat pages (
cardThermo2) can be created in the PageConfig tab like the other page types. The editor draws the page like the panel: tabs for up to eight heat circuits (an airCondition channel gives two), a click on the headline, the set temperature, the value lines or the mode text opens the settings of that spot (alias channel or single data points, headline, min/max/step, icons, colors, units, mode list, circuit icon), the nine slots around the ring (the ninth between - and +) show the real order of the panel - selector slots, the buttons the adapter generates from the alias, then the configured items, each bound to one heat circuit or to all (new fieldHeat circuitin the item dialog,filterof the script), with paging and thesortOrderof the slots. The admin page goes through the same code as the script page (PageThermo2.getPage), so the result on the panel is identical - (tt-tom17) fix: the MAINTAIN indicator of
cardThermo2was added twice to the page items
- (ticaki) cardMedia: support for the squeezeboxrpc adapter (Logitech Media Server) – media id
-
Hi, kann mir mal jemand erklären, wie ich den richtigen Wetteradapter nutzen kann, in meinem Fall brightsky?
Habe unter Wetter-Entity in den Global Settings brightsky.0 ausgewählt. Im Script wird aber nichts angepasst, es möchte pirate-weather nutzen, was natürlich zu fehlern führt (weil nicht vorhanden). Ich verstehe nicht, wie ich das einstellen kann. Danke vorab!Tasmota: v15.6.0
TFT: v5.1.1
Script: v0.21.1 -
Das ist auch etwas "durcheinander" - was im Skript eingestellt wird zählt - wenn da nix eingestellt ist gilt Admin. Da im Skript als Beispiel immer verschiedenen bottom items definiert waren. Gelten diese und die sind je nach installationszeitpunkt pirate-weather, accuweather oder brightsky - kein Plan - im aktuell Basisskript sollten die alle auskommentiert sein.
Vorgehen für dich:
schaue was bei bottom items / favorititems im Skript steht - kommentiere alle Wetter relevanten Einträge aus und schaue dann wie es auf dem panel aussieht.
-
Das ist auch etwas "durcheinander" - was im Skript eingestellt wird zählt - wenn da nix eingestellt ist gilt Admin. Da im Skript als Beispiel immer verschiedenen bottom items definiert waren. Gelten diese und die sind je nach installationszeitpunkt pirate-weather, accuweather oder brightsky - kein Plan - im aktuell Basisskript sollten die alle auskommentiert sein.
Vorgehen für dich:
schaue was bei bottom items / favorititems im Skript steht - kommentiere alle Wetter relevanten Einträge aus und schaue dann wie es auf dem panel aussieht.
-
OK, ChatGPT hat mir das Script überarbeitet, da im Script etliche Stellen angepasst werden mussten. Nun funktioniert es.
@tt-tom mit der Einstellung in den global settings hat es gerade nicht funktioniert, wie oben schon beschrieben.
-
-
OK, ChatGPT hat mir das Script überarbeitet, da im Script etliche Stellen angepasst werden mussten. Nun funktioniert es.
@tt-tom mit der Einstellung in den global settings hat es gerade nicht funktioniert, wie oben schon beschrieben.
Okay, dann hattest du im Script für jede Position eine Wetter Config gehabt und die hat die Einstellung überschrieben. Gehe ich da richtig?
Wenn der Screensaver im Admin fertig ist, sind wir glaube ich so weit, das wir das Script nur noch für Spezialfälle gebrauchen.
Hier ein kleiner Ausblick was grade in den Testumgebungen so läuft.

hier die Vorläufige Doku dazu https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/blob/feat/screensaver-admin/doc/de/Screensaver-Admin.md -
-
@tt-tom geil. Das hat noch gefehlt.

wenn du mit testen möchtest, musst du diesen Branch installieren.
https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/tree/feat/screensaver-adminWenn ein Screensaver erstellt wird, überschreibt er automatisch die Config vom Script.
-
wenn du mit testen möchtest, musst du diesen Branch installieren.
https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/tree/feat/screensaver-adminWenn ein Screensaver erstellt wird, überschreibt er automatisch die Config vom Script.
wenn du mit testen möchtest, musst du diesen Branch installieren.
https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/tree/feat/screensaver-adminWenn ein Screensaver erstellt wird, überschreibt er automatisch die Config vom Script.
Gerne. Teste ich heute Abend.
-
Weils mir gerade aufgefallen ist, das ein bestimmtes Verhalten nicht dokumentiert ist (und ich das unnötigerweise gerade einbauen wollte) noch mal hier die erweiterten kommentare aus dem Skript:
Zusammengefasst: Zeigt den belegten Platz auf meinem raid in % an ausser er überschreiten die 98% dann die freien GB.
/** * Optional state ID that controls whether the ScreensaverEntity is visible. * * - The state must exist, otherwise the configuration is rejected. * - Without `ScreensaverEntityVisibleCondition` the value of this state is used directly * (truthy → shown, falsy → hidden). * - With `ScreensaverEntityVisibleCondition` the condition is evaluated against the value * of **this** state (`val` = value of `ScreensaverEntityEnabled`, not of `ScreensaverEntity`). * * Example: show the free space in GB only when the raid usage is above 98 %, * otherwise show the usage in % (second entity with the inverted condition): * ```ts * { * type: 'script', * ScreensaverEntityEnabled: '0_userdata.0.ZFS.pve4.ubs-raid1', // usage in % * ScreensaverEntityVisibleCondition: "!isNaN(val) && val > 98", * ScreensaverEntity: '0_userdata.0.ZFS.pve4.ubs-raid1_frei_gb', // displayed value * ScreensaverEntityUnitText: 'GB', * }, * { * type: 'script', * ScreensaverEntityVisibleCondition: "!(!isNaN(val) && val > 98)", * ScreensaverEntity: '0_userdata.0.ZFS.pve4.ubs-raid1', // val = this state * ScreensaverEntityUnitText: '%', * }, * ``` */ ScreensaverEntityEnabled?: string; /** * Optional condition that determines whether a ScreensaverEntity should be visible. * * - If `undefined`, the entity is always shown (`true`) — or, if `ScreensaverEntityEnabled` * is set, its state value decides. * - If provided, the adapter prepends `return` to the string and evaluates it. * `val` is the value of `ScreensaverEntityEnabled` if set, otherwise of `ScreensaverEntity`. * The result must be a boolean: * - `true` → the entity is shown. * - `false` → the entity is hidden. * * Example: * ```ts * ScreensaverEntityVisibleCondition: "val.length > 0 && val !== 'OFF'" * ``` */ ScreensaverEntityVisibleCondition?: string;Das gehört zu den ungewöhlichen Optionen die dem Skript vorbehalten bleiben. Denke ich :)
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