NEWS
Test Widget json template
-
Der Dokumentation wurde ein neuer usecase zum Adapter iobroker.public-transport hinzugefügt:
https://github.com/oweitman/ioBroker.vis-jsontemplate#more-use-cases
https://forum.iobroker.net/topic/84201/test-adapter-public-transport-v0.1.x-github-npm/4?_=1776781580240 -
Neue Version 4.4.2
Diese Version behebt ein Problem aus Version 4.4.0, welche sich leider schon in stable befindet.
Das widget wird ggfs. falsch formatiert.
Wer nur stable verwenden will muss zunächst auf 4.3 zurück oder diese Version aus Beta installieren. In ca 14 Tagen wird diese Version dann nach stable gebracht.Info zur Version 4.4.2
leider habe ich feststellen müssen, das eine Änderung zur repochecker Regel zu fs/node:fs und path/node:path das laden der eingebundenen Bibliothek ejs zerstört hat.
Daher funktioniert in 4.4.2 das vis1 widget nicht.
Dazu kommt gleich eine neue Version -
Die Dokumentation wurde mit dem use case simple gauge erweitert

https://github.com/oweitman/ioBroker.vis-jsontemplate/blob/main/documentation/usecase-simplegauge.md
der im Rahmend des threads
https://forum.iobroker.net/topic/84481/ich-frag-jetzt-einfach-mal-suche-slider-oder-gauge/12?_=1778106594527
entstanden ist -
Die Dokumentation wurde um einen use case github issues und PRs erweitert.
Damit kann man sich unter vis1/2 seine (oder auche von anderen repos) PRs und Issues anzeigen lassen. Ein kostenloser api key von github wird empfohlen, da ansonsten die Anzahl der requests recht gering ist.
-
Neue Version 4.4.4
- Aufgrund einer Inkonsistenz zwischen den vis1- und vis2-Widgets
werden nun sowohlwidgetidals auchwidgetIDan das Template übergeben.
- Aufgrund einer Inkonsistenz zwischen den vis1- und vis2-Widgets
-
hast du das template direkt in das feld kopiert?
am besten den editor öffnen und dort reinkopieren.
leider schluckt vis-2 dort alle neue zeile zeichen.hast du das template direkt in das feld kopiert?
Nein
am besten den editor öffnen und dort reinkopieren.
Auf das Bleistifftsymbol und dann dort rein kopiert
Edit:
web.0 2026-07-22 17:41:12.001 error Invalid pattern on subscribe: The pattern "css: "unknown", icon: "↔", label: "Unknown"" is not a valid ID pattern web.0 2026-07-22 17:41:12.001 error Invalid pattern on subscribe: The pattern "css: "incoming", icon: "↙", label: "Incoming"" is not a valid ID pattern web.0 2026-07-22 17:41:12.000 error Invalid pattern on subscribe: The pattern "css: "outgoing", icon: "↗", label: "Outgoing"" is not a valid ID pattern web.0 2026-07-22 17:39:52.563 info ==> Connected system.user.admin from 192.168.178.20 web.0 2026-07-22 17:39:50.061 info <== Disconnect system.user.admin from 192.168.178.20 -
hast du das template direkt in das feld kopiert?
Nein
am besten den editor öffnen und dort reinkopieren.
Auf das Bleistifftsymbol und dann dort rein kopiert
Edit:
web.0 2026-07-22 17:41:12.001 error Invalid pattern on subscribe: The pattern "css: "unknown", icon: "↔", label: "Unknown"" is not a valid ID pattern web.0 2026-07-22 17:41:12.001 error Invalid pattern on subscribe: The pattern "css: "incoming", icon: "↙", label: "Incoming"" is not a valid ID pattern web.0 2026-07-22 17:41:12.000 error Invalid pattern on subscribe: The pattern "css: "outgoing", icon: "↗", label: "Outgoing"" is not a valid ID pattern web.0 2026-07-22 17:39:52.563 info ==> Connected system.user.admin from 192.168.178.20 web.0 2026-07-22 17:39:50.061 info <== Disconnect system.user.admin from 192.168.178.20so habe das template aktualisiert
https://github.com/oweitman/ioBroker.vis-jsontemplate/blob/main/documentation/usecase-fritzbox-call-list.mdda hat es mir bei einer suchen und ersetzen aktion das template zerhauen.
daher sind die ganzen css anweisungen ins leere gelaufen -
so habe das template aktualisiert
https://github.com/oweitman/ioBroker.vis-jsontemplate/blob/main/documentation/usecase-fritzbox-call-list.mdda hat es mir bei einer suchen und ersetzen aktion das template zerhauen.
daher sind die ganzen css anweisungen ins leere gelaufen@OliverIO
guten Abend.
Irgendwie habe ich noch Probleme mit dem Widget.
Du hast die Code schon mal überflogen (https://forum.iobroker.net/topic/85005/google-kalender-ics-für-material-design-mini-kalender/36?_=1784739347983)Ich habe folgendes Problem bei beiden Widget.
Wenn mein Wand Tablet Display aktiviert, zagt er meistens diese Meldung im Widget.

Habe ich das Widget falsch konfiguriert?

-
@OliverIO
guten Abend.
Irgendwie habe ich noch Probleme mit dem Widget.
Du hast die Code schon mal überflogen (https://forum.iobroker.net/topic/85005/google-kalender-ics-für-material-design-mini-kalender/36?_=1784739347983)Ich habe folgendes Problem bei beiden Widget.
Wenn mein Wand Tablet Display aktiviert, zagt er meistens diese Meldung im Widget.

Habe ich das Widget falsch konfiguriert?

@Eduard77
Das kann ich bestätigen, das Widget verliert anscheinend die Einstellungen. -
@sigi234
Ich bräuchte testdaten.
Am besten Inhalt von m1
Habe das Script nicht im Einsatz
Ist sicher das der Datenpunkt sich nicht leert?Die Einstellung Datenpunkt [1] braucht man nicht.
Man könntenamnanfang auch mal nochbein
<% console.log(data) %>
Eintragen. Dann werden die Daten bei jeder Aktualisierung im Browser log ausgegeben.
-
@sigi234
Ich bräuchte testdaten.
Am besten Inhalt von m1
Habe das Script nicht im Einsatz
Ist sicher das der Datenpunkt sich nicht leert?Die Einstellung Datenpunkt [1] braucht man nicht.
Man könntenamnanfang auch mal nochbein
<% console.log(data) %>
Eintragen. Dann werden die Daten bei jeder Aktualisierung im Browser log ausgegeben.
Am besten Inhalt von m1
[{"img":"http://192.168.178.20:8082/vis-2.0/main2/graue_tonne.png","zeit":"23.07.2026 - 23.07.2026","ereignis":" Abfuhrtermin Altpapier (ROT): Abfuhrtermin Altpapier","ort":""},{"img":"http://192.168.178.20:8082/vis-2.0/main2/present.png","zeit":"25.07.2026 - 25.07.2026","ereignis":"xxxxx Geburtstag: 1945","ort":""},{"img":"http://192.168.178.20:8082/vis-2.0/main2/info_black.png","zeit":"25.07.2026 14:30 - 17:30","ereignis":"Pretty Woman - Das Musical","ort":"Großer Saal"},{"img":"http://192.168.178.20:8082/vis-2.0/main2/graue_tonne.png","zeit":"30.07.2026 - 30.07.2026","ereignis":" Abfuhrtermin Altpapier (ROT): Abfuhrtermin Altpapier","ort":""},{"img":"http://192.168.178.20:8082/vis-2.0/main2/present.png","zeit":"30.07.2026 - 30.07.2026","ereignis":"xxxxxxxx: 1965","ort":""},{"img":"http://192.168.178.20:8082/vis-2.0/main2/present.png","zeit":"01.08.2026 - 01.08.2026","ereignis":"xxxxxxxxxx: 1964","ort":""},{"img":"http://192.168.178.20:8082/vis-2.0/main2/graue_tonne.png","zeit":"03.08.2026 - 03.08.2026","ereignis":" Abfuhrtermin Restmüll (GRAU): Abfuhrtermin Restmüll","ort":""},{"img":"http://192.168.178.20:8082/vis-2.0/main2/graue_tonne.png","zeit":"03.08.2026 - 03.08.2026","ereignis":" Abfuhrtermin Biotonne (GRUEN): Abfuhrtermin Biotonne","ort":""},{"img":"http://192.168.178.20:8082/vis-2.0/main2/graue_tonne.png","zeit":"06.08.2026 - 06.08.2026","ereignis":" Abfuhrtermin Altpapier (ROT): Abfuhrtermin Altpapier","ort":""},{"img":"http://192.168.178.20:8082/vis-2.0/main2/graue_tonne.png","zeit":"13.08.2026 - 13.08.2026","ereignis":" Abfuhrtermin Altpapier (ROT): Abfuhrtermin Altpapier","ort":""},{"img":"http://192.168.178.20:8082/vis-2.0/main2/graue_tonne.png","zeit":"17.08.2026 - 17.08.2026","ereignis":" Abfuhrtermin Restmüll (GRAU): Abfuhrtermin Restmüll","ort":""},{"img":"http://192.168.178.20:8082/vis-2.0/main2/graue_tonne.png","zeit":"17.08.2026 - 17.08.2026","ereignis":" Abfuhrtermin Biotonne (GRUEN): Abfuhrtermin Biotonne","ort":""},{"img":"http://192.168.178.20:8082/vis-2.0/main2/graue_tonne.png","zeit":"18.08.2026 - 18.08.2026","ereignis":" Abfuhrtermin gelber Sack: Abfuhrtermin Wertstofftonne / gelber Sack","ort":""},{"img":"http://192.168.178.20:8082/vis-2.0/main2/graue_tonne.png","zeit":"20.08.2026 - 20.08.2026","ereignis":" Abfuhrtermin Altpapier (ROT): Abfuhrtermin Altpapier","ort":""}]avascript.0 2026-07-22 20:56:02.059 info script.js.Test.Kalender: registered 1 subscription, 1 schedule, 0 messages, 0 logs and 0 file subscriptions javascript.0 2026-07-22 20:56:02.047 info script.js.Test.Kalender: start JavaScript (Javascript/js) javascript.0 2026-07-22 20:56:02.040 info script.js.Test.Kalender: Stopping scriptEdit :
Vis neu gestartet leer:
-
@sigi234
Ich bräuchte testdaten.
Am besten Inhalt von m1
Habe das Script nicht im Einsatz
Ist sicher das der Datenpunkt sich nicht leert?Die Einstellung Datenpunkt [1] braucht man nicht.
Man könntenamnanfang auch mal nochbein
<% console.log(data) %>
Eintragen. Dann werden die Daten bei jeder Aktualisierung im Browser log ausgegeben.
DP ist nicht leer.
[{"img":"http://192.168.178.5:8082/vis-2.0/VIS2-Samsung/Bilder/Mama.png","zeit":"22.07.2026 - 22.07.2026","ereignis":"Physio 16:20","ort":""},{"img":"http://192.168.178.5:8082/vis-2.0/VIS2-Samsung/Bilder/Papa.png","zeit":"24.07.2026 08:00 - 17:00","ereignis":"Citroen Inspektion Termin","ort":""},{"img":"http://192.168.178.5:8082/vis-2.0/VIS2-Samsung/Bilder/Papa.png","zeit":"25.07.2026 - 25.07.2026","ereignis":"xxxxxx und xxx Hochzeitstag","ort":""},{"img":"http://192.168.178.5:8082/vis-2.0/VIS2-Samsung/Bilder/Papa.png","zeit":"28.07.2026 - 28.07.2026","ereignis":"Geburtstag. xxxx","ort":""},{"img":"http://192.168.178.5:8082/vis-2.0/VIS2-Samsung/Bilder/Mama.png","zeit":"29.07.2026 - 29.07.2026","ereignis":"Physio 16:20","ort":""}]
-
Am besten Inhalt von m1
[{"img":"http://192.168.178.20:8082/vis-2.0/main2/graue_tonne.png","zeit":"23.07.2026 - 23.07.2026","ereignis":" Abfuhrtermin Altpapier (ROT): Abfuhrtermin Altpapier","ort":""},{"img":"http://192.168.178.20:8082/vis-2.0/main2/present.png","zeit":"25.07.2026 - 25.07.2026","ereignis":"xxxxx Geburtstag: 1945","ort":""},{"img":"http://192.168.178.20:8082/vis-2.0/main2/info_black.png","zeit":"25.07.2026 14:30 - 17:30","ereignis":"Pretty Woman - Das Musical","ort":"Großer Saal"},{"img":"http://192.168.178.20:8082/vis-2.0/main2/graue_tonne.png","zeit":"30.07.2026 - 30.07.2026","ereignis":" Abfuhrtermin Altpapier (ROT): Abfuhrtermin Altpapier","ort":""},{"img":"http://192.168.178.20:8082/vis-2.0/main2/present.png","zeit":"30.07.2026 - 30.07.2026","ereignis":"xxxxxxxx: 1965","ort":""},{"img":"http://192.168.178.20:8082/vis-2.0/main2/present.png","zeit":"01.08.2026 - 01.08.2026","ereignis":"xxxxxxxxxx: 1964","ort":""},{"img":"http://192.168.178.20:8082/vis-2.0/main2/graue_tonne.png","zeit":"03.08.2026 - 03.08.2026","ereignis":" Abfuhrtermin Restmüll (GRAU): Abfuhrtermin Restmüll","ort":""},{"img":"http://192.168.178.20:8082/vis-2.0/main2/graue_tonne.png","zeit":"03.08.2026 - 03.08.2026","ereignis":" Abfuhrtermin Biotonne (GRUEN): Abfuhrtermin Biotonne","ort":""},{"img":"http://192.168.178.20:8082/vis-2.0/main2/graue_tonne.png","zeit":"06.08.2026 - 06.08.2026","ereignis":" Abfuhrtermin Altpapier (ROT): Abfuhrtermin Altpapier","ort":""},{"img":"http://192.168.178.20:8082/vis-2.0/main2/graue_tonne.png","zeit":"13.08.2026 - 13.08.2026","ereignis":" Abfuhrtermin Altpapier (ROT): Abfuhrtermin Altpapier","ort":""},{"img":"http://192.168.178.20:8082/vis-2.0/main2/graue_tonne.png","zeit":"17.08.2026 - 17.08.2026","ereignis":" Abfuhrtermin Restmüll (GRAU): Abfuhrtermin Restmüll","ort":""},{"img":"http://192.168.178.20:8082/vis-2.0/main2/graue_tonne.png","zeit":"17.08.2026 - 17.08.2026","ereignis":" Abfuhrtermin Biotonne (GRUEN): Abfuhrtermin Biotonne","ort":""},{"img":"http://192.168.178.20:8082/vis-2.0/main2/graue_tonne.png","zeit":"18.08.2026 - 18.08.2026","ereignis":" Abfuhrtermin gelber Sack: Abfuhrtermin Wertstofftonne / gelber Sack","ort":""},{"img":"http://192.168.178.20:8082/vis-2.0/main2/graue_tonne.png","zeit":"20.08.2026 - 20.08.2026","ereignis":" Abfuhrtermin Altpapier (ROT): Abfuhrtermin Altpapier","ort":""}]avascript.0 2026-07-22 20:56:02.059 info script.js.Test.Kalender: registered 1 subscription, 1 schedule, 0 messages, 0 logs and 0 file subscriptions javascript.0 2026-07-22 20:56:02.047 info script.js.Test.Kalender: start JavaScript (Javascript/js) javascript.0 2026-07-22 20:56:02.040 info script.js.Test.Kalender: Stopping scriptEdit :
Vis neu gestartet leer:
ok fehler ist gefunden.
durch automatisierte dependabots sind aktualisierungen rein gekommen,
die mit vis2 nicht mehr kompatibel sind.
das konnte ich beheben (zumindest lokal)sobald die version auf npm verfügbar ist, gebe ich das bekannt.
dadurch gab es keine aktualisierungen im runtime mode von vis2.
allerdings hat das 2. template ein problem. da passt der code nicht zu den datenin einem item kommen folgende daten
{ "img": "http://192.168.178.20:8082/vis-2.0/main2/graue_tonne.png", "zeit": "23.07.2026 - 23.07.2026", "ereignis": " Abfuhrtermin Altpapier (ROT): Abfuhrtermin Altpapier", "ort": "" }im template
wird aber nach diesen daten gefragtvar rawName = item.name || ''; var title = rawName; var details = '';im weiteren verlauf wird dann titel und details noch speziell behandelt.
wenn item.name in den daten nicht existieren, dann wird es nichts.Ist das eine neuere Version des templates? In den bisherigen konnte ich "Keine Einträge vorhanden" nicht finden.
-
Neue Version 4.4.5
- paket versionen für das vis-2 widget mussten zurück gesetzt werden, da dadurch das widget nicht mehr richtig funktioniert haben.
Wer schnell testen will und der Adapter im beta repo noch nicht auftaucht
kann über den expertenmodus/katzenknopf laden
-
ok fehler ist gefunden.
durch automatisierte dependabots sind aktualisierungen rein gekommen,
die mit vis2 nicht mehr kompatibel sind.
das konnte ich beheben (zumindest lokal)sobald die version auf npm verfügbar ist, gebe ich das bekannt.
dadurch gab es keine aktualisierungen im runtime mode von vis2.
allerdings hat das 2. template ein problem. da passt der code nicht zu den datenin einem item kommen folgende daten
{ "img": "http://192.168.178.20:8082/vis-2.0/main2/graue_tonne.png", "zeit": "23.07.2026 - 23.07.2026", "ereignis": " Abfuhrtermin Altpapier (ROT): Abfuhrtermin Altpapier", "ort": "" }im template
wird aber nach diesen daten gefragtvar rawName = item.name || ''; var title = rawName; var details = '';im weiteren verlauf wird dann titel und details noch speziell behandelt.
wenn item.name in den daten nicht existieren, dann wird es nichts.Ist das eine neuere Version des templates? In den bisherigen konnte ich "Keine Einträge vorhanden" nicht finden.
Ist das eine neuere Version des templates?
<% console.log(data) %> <style> .mini-calendar-container { display: flex; flex-direction: column; gap: 8px; font-family: Arial, sans-serif; width: 100%; box-sizing: border-box; padding: 5px; } .mini-calendar-item { display: flex; align-items: center; gap: 12px; padding: 8px 12px; border-radius: 6px; background: rgba(255, 255, 255, 0.12); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); color: #ffffff; } .mini-calendar-img { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; flex-shrink: 0; border: 1px solid rgba(255, 255, 255, 0.3); } .mini-calendar-content { display: flex; flex-direction: column; flex-grow: 1; } .mini-calendar-time { font-size: 0.8em; opacity: 0.85; font-weight: bold; color: #dddddd; } .mini-calendar-event { font-size: 0.95em; font-weight: 600; } .mini-calendar-ort { font-size: 0.8em; opacity: 0.7; font-style: italic; } </style> <div class="mini-calendar-container"> <% var items = []; var rawData = (typeof data !== 'undefined' && data) ? data : ((typeof dp1 !== 'undefined' && dp1) ? dp1 : ((typeof val !== 'undefined' && val) ? val : null)); try { if (typeof rawData === 'string') { items = JSON.parse(rawData); } else if (Array.isArray(rawData)) { items = rawData; } } catch(e) { items = []; } if (Array.isArray(items) && items.length > 0) { for (var i = 0; i < items.length; i++) { var item = items[i]; if (!item) continue; var imgUrl = item.img || ''; var zeit = item.zeit || ''; var ereignis = item.ereignis || ''; var ort = item.ort || ''; %> <div class="mini-calendar-item"> <% if (imgUrl) { %> <img class="mini-calendar-img" src="<%= imgUrl %>" alt="User"> <% } %> <div class="mini-calendar-content"> <div class="mini-calendar-time"><%= zeit %></div> <div class="mini-calendar-event"><%= ereignis %></div> <% if (ort) { %> <div class="mini-calendar-ort">📍 <%= ort %></div> <% } %> </div> </div> <% } } else { %> <div style="color: white; opacity: 0.7; padding: 5px; font-size: 0.9em;">Keine Einträge vorhanden</div> <% } %> </div>
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
