FHEM Forum

FHEM => Frontends => fronthem / smartVISU => Thema gestartet von: Hackstall am 01 Dezember 2025, 00:15:13

Titel: Smartvisu V3.2.2 -> V3.5 Update Fehler
Beitrag von: Hackstall am 01 Dezember 2025, 00:15:13
error: Unable to find template "lib.html" (looked into: /var/www/html/smartvisu/apps, /var/www/html/smartvisu/pages/Rosenstr.35, /var/www/html/smartvisu/dropins, /var/www/html/smartvisu/pages/base).
file: index.html
line: 15

Yes I have read the installation procedure but I still received the error as given above.

Can you please help out here.

Thanks Andreas
Titel: Aw: Smartvisu V3.2.2 -> V3.5 Update Fehler
Beitrag von: curiosus am 01 Dezember 2025, 09:54:08
here we go:

<svdir>/widgets/lib.html

/**
* -----------------------------------------------------------------------------
* @package     smartVISU
* @author      Martin Gleiß
* @copyright   2012 - 2024
* @license     GPL [http://www.gnu.de]
* -----------------------------------------------------------------------------
*/


/**
* the smartVISU-logo
*/
{% macro smartvisu(mode) %}

{% if mode == 'app' %}
<div class="app">
<div class="image">
<div class="smartvisu"><span class="smart"></span><br /><span class="visu">rHM</span></div>
</div>
</div>
{% else %}
<span class="smartvisu"><span class="smart"></span><span class="visu">rHM</span></span>
{% endif %}

{% endmacro %}


/**
* Check for new updates of smartVISU
*/
{% macro updatecheck( ) %}
{% if config_updatecheck %}
<script>
$('#index').on('pagecreate', function (event, ui) {
$.ajax({
dataType: 'json',
url: 'lib/base/check_update.php?local={{ config_version_full }}',
beforeSend: function(jqXHR, settings) { jqXHR.svProcess = 'Update Check'; },
success: function (data) {
if (data.update) {
notify.message('update', data.text, sv_lang['update']['local'] +': <b>' + data.local + '</b><br>' +
sv_lang['update']['remote'] +': <b>' + data.remote + '</b><br><br>' +
sv_lang['update']['visit'] + ' <a target="_blank" href="http://smartvisu.de">smartVISU.de</a> '+ sv_lang['templatechecker']['or'] +
' <a target="_blank" href="http://github.com/martin-gleiss/smartvisu">github</a> ' + sv_lang['update']['latest'] + '!<br><br>'+
'<a target="_blank" href="http://github.com/martin-gleiss/smartvisu/blob/master/changelog.md">' + sv_lang['update']['view'] + '</a><br><br>'+
sv_lang['update']['recheck'] + '. <br />');
}
}
})
.fail(notify.json);
});
</script>
{% else %}
<!-- Check for updates disabled in configuration -->
{% endif %}
{% endmacro %}


/**
* Widget to place an app-symbol
* If you write an app yourself, place a @title, @icon, @color tag in your
* header. These tags are used to display the symbol
*
* @param        the name of the app (located in pages/apps)
* @param        title of the app
*/
{% macro app(name, title) %}

{% set app = docu('apps/'~name~'.html') %}

<div class="app">
<a href="index.php?page={{ name }}">
<div class="image" style="background-color: #{{ app.color }};"><img src="{{ app.icon }}" alt="{{ app.name }}"></div>
<div>{{ title|default(app.title|e) }}</div>
</a>
</div>
{% endmacro %}

/**
* Widget to show websocket connection
*
*/
{% macro connection( ) %}
{% import "@widgets/basic.html" as basic %}
<span id="{{ page }}-connection"></span>
<script>
$('#{{ page }}-connection').html(io.socket.url);
if (io.server != undefined) {
if (io.server != '') { // if io.server already set write it directly
var connectString = 'smarthomeNG Websocket Server: '+ io.server + ', '+ sv_lang['system']['connected']+': '+ io.opentime.transUnit('short') +
'<br>Websocket URL:&nbsp;&nbsp;' + io.socket.url;
$('#{{ page }}-connection').html(connectString);
} else {
$(document).on('ioAlive', function(){   //else wait for ioAlive event and write then
if (io.server != '' ) {
var connectString = 'smarthomeNG Websocket Server: '+ io.server + ', '+ sv_lang['system']['connected'] + ': '+ io.opentime.transUnit('short') +
'<br>Websocket URL:&nbsp;&nbsp;' + io.socket.url;
$('#{{ page }}-connection').html(connectString);
}
})
}
}
</script>
{% endmacro %}

/**
* Button to send a timestamp to an item (for countdown docu page)
*
* @param {id} unique id for the widget. Mandatory in order to identify the button in a page with more than one button
* @param {item(num)} the item
*
* @Author: Wolfram v. Hülsen
*/
{% macro timestamp (id, item) %}
<button type="button" data-theme="a" data-inline="true" id="send_timestamp_{{ uid(page, id) }}" class="ui-midi">Trigger</button> Click to start
<script>
$('#send_timestamp_{{ uid(page, id) }} ').click(function() {
var now = +new Date();
io.write('{{ item }}', now );
});
</script>
{% endmacro %}

/**
* Extend a single block to full screen width
*
* @param {id=} unique id for the widget.
*
* @Author: bonze  (plot resize and icon management by Wolfram v. Hülsen)
*/
{% macro supersize ( id ) %}
{% set uid = uid(page, id) %}
{% import _self as lib %}
<span{% if not id is empty %} id="{{ uid(page, id) }}"{% endif %} >
<a>{{ lib.svgimg ('', 'control_centr_arrow_up_right.svg', 'supersize icon0 sizesmall') }}</a>
<a>{{ lib.svgimg ('', 'jquery_minus.svg', 'supersize icon0 sizebig', 'display:none;') }}</a>
</span>
<script>
$(".supersize").closest("div").on("collapsiblecreate", function (event, ui){
var element = $(this);
if (element.parent().attr("data-iconpos") == "right")
element.collapsible({iconpos: "none"});
});

$(".supersize").click(function (e) {
e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
var element = $(this).closest("div");
var previousWidth = parseFloat(element.css('width').replace('px',''));
var previousHeight = parseFloat(element.find('.ui-collapsible-content').css('height').replace('px',''));

if (!element.hasClass('overlay')){
$(".mask").css('display','block');
element.addClass("overlay").show();
element.collapsible('expand');
element.find("h3").addClass("ui-corner-all");
element.find(".supersize.sizesmall").hide();
element.find(".supersize.sizebig").show();
element.find(".supersize").attr("data-ypos", Math.round(window.scrollY));
element.find('.highcharts-root').addClass('supersized');
$.mobile.silentScroll(0);
}else{
$(".mask").css('display','none');
element.removeClass("overlay");
element.find("h3").removeClass("ui-corner-all");
element.find(".supersize.sizebig").hide();
element.find(".supersize.sizesmall").show();
element.find('.highcharts-root').removeClass('supersized');
var previousPosition = element.find(".supersize").attr("data-ypos")*1;
$.mobile.silentScroll(previousPosition);
}
var actualWidth = parseInt(element.css('width').replace('px',''));
var sizeFactor = actualWidth / previousWidth;
element.find('.ui-collapsible-content').css('height', previousHeight * sizeFactor)
.find('.plot').each(function() {
var actualPlotHeight = parseFloat($(this).css('height').replace('px',''));
$(this).css('height', actualPlotHeight * sizeFactor);
$(this).highcharts().setSize(null, null);
}).end()
.find('[data-widget="device.uzsutable"] .highcharts-root').css('max-height', sizeFactor < 1 ? '' : 400*sizeFactor+"px");
});
</script>
{% endmacro %}

/**
* Embed an svg icon into html DOM in order to make it styleable.   
  icon must be available in ./icons/ws or ./dropins/icons/ws. Otherwise use &lt;img src=... with icon path and name
*
* @param {text=} optional id for the icon
* @param {text} icon name e.g. 'myicon' or 'myicon.svg'
* @param {text=} CSS classes for the icon (optional, default='')
* @param {text=} styling options in CSS notation (optional, default='')
*
* @Author: Wolfram v. Hülsen
*/
{% macro svgimg ( id, pic, iconclass, styleoptions ) %}
{% set pic = localize_svg(pic) %}
<svg class="icon {{ iconclass }}" {% if not id is empty %} id="{{ uid(page, id) }}"{% endif %} {{ (styleoptions is not empty ? 'style ="' ~ styleoptions ~'"' : '')|raw }} role="img" aria-label="{{ pic|split('/')|last|split('.')[0:-1]|join('.') }}"
{{ source( pic )|split('<svg')[1]|replace( {'stroke="#fff"':'', 'fill="#fff"':'', 'stroke="#FFF"':'', 'fill="#FFF"':''} )|raw }}
{% endmacro %}

good luck
Klaus
Titel: Aw: Smartvisu V3.2.2 -> V3.5 Update Fehler
Beitrag von: wvhn am 04 Dezember 2025, 01:04:25
Moin Andreas,

das Problem ist in den Release Notes (https://knx-user-forum.de/forum/supportforen/smartvisu/1999078-release-smartvisu-v3-5#post1999097) für v3.5 unter "Wichtig !!! für den Umstieg" beschrieben und hier (https://knx-user-forum.de/forum/supportforen/smartvisu/1920060-handlungsbedarf-ma%C3%9Fnahmen-gegen-seitenladefehler-ab-v3-4-a-v3-5) genau erklärt.

Der Import von Widgets wird schon seit v2.9 automatisch gemacht, so dass man in den eigenen Seiten keine Import-Anweisungen mehr braucht. Lediglich in eigenen Widgets muss man die verwendeten Widgets noch explizit importieren. Zusätzlich wurde für die Widgets in v3.3 ein Namespace "@widgets" eingeführt. Der Namespace legt die Ordner fest, in denen nach einem zu importierenden Widget gesucht wird. Dieser Suchpfad ist jetzt unabhängig von dem Pfad, in dem Visu-Seiten gesucht werden. Grund für dies Maßnahme war, dass Anwender bei der Vergabe der Seitennamen immer mal wieder Namen verwendet haben, die für die Widgets reserviert waren, z.B. "multimedia.html". Die alte Methode war 2 Jahre deprecated und wurde in v3.5 abgeschaltet.

Die von Dir gepostete Fehlermeldung besagt, dass das Widget "lib.html" im falschen Pfad gesucht wurde. Du mussst also in Deiner ./pages/Rosenstr.35/index.html nach der Import-Anweisung für lib.html suchen und diese löschen:
{% import "lib.html" as lib %}Ebenso alle anderen Widget-Importe, die noch in Deinen Visu-Seiten vorhanden sind.

Gruß
Wolfram
Titel: Aw: Smartvisu V3.2.2 -> V3.5 Update Fehler
Beitrag von: Hackstall am 04 Dezember 2025, 09:53:51
Ok danke
Habe ich nun gemacht und prinzipiell funktioniert es nun auch aber ein paar Effekte sehe ich dennoch die ich mit 3.2.2 nicht hatte.

1) Der Template chaecker ist nicht mehr anwählbar.
2) Auf dem Handy muss ich nun manchmal die Menüs auswählen und 2 mal den Menü-Button drücken  (auf drm pc funktioniert es)
3) auf dem PC erscheinen manche Icons der Menü Steuerung riesig (nicht bei allen Menüs und nur auf dem PC und nicht auf dem Handy)

Was kann ich tun.

Danke
Titel: Aw: Smartvisu V3.2.2 -> V3.5 Update Fehler
Beitrag von: wvhn am 04 Dezember 2025, 11:59:50
zu den einzelnen Punkten:
Du kannst mir auch per PN einen Link auf eine Dropbox o.ä. mit Deiner gesamten smartVISU-Installation schicken. Dann lasse ich die bei mir mal laufen.

Gruß
Wolfram 
Titel: Aw: Smartvisu V3.2.2 -> V3.5 Update Fehler
Beitrag von: wvhn am 05 Dezember 2025, 01:54:56
Moin Andreas,

zu Punkt 2 habe ich noch einige Tests durchgeführt. Bei meinem iPad tritt dieser Effekt in allen Versionen seit v2.9 auf. Wenn man einen Menüpunkt anklickt, während die Widgets für Wetter, Uhr, Kalender und Telefonliste noch aufgebaut werden, dann wird der Click-Event unterdrückt, der den Link zu der angewählten Raumseite auslösen soll. Das passiert tief im System und ich habe noch keine Idee, wie man das verhindern kann.

Dass dies in höheren SV-Versionen häufiger aufzutreten scheint, liegt vlt. daran, dass die Widgets mehr Funktionen haben und dadurch etwas länger brauchen. Wenn ich warte, bis die Widgets fertig aufgebaut sind, tritt das Problem nicht auf.

Ist das bei Dir auch so?
Titel: Aw: Smartvisu V3.2.2 -> V3.5 Update Fehler
Beitrag von: Hackstall am 06 Dezember 2025, 11:56:09
Problem 1 + 3 scheinen sich in Luft aufgelöst zu haben.
Keine Ahnung aber jetzt kann ich Template checker aufrufen und die Icons sind auch ok.

Nur dieser Doppelklick nervt wirklich.

Der notwendige Dopoelklick ist nur auf dem Handy notwendig und nicht auf dem PC.

Gruß Andreas
Titel: Aw: Smartvisu V3.2.2 -> V3.5 Update Fehler
Beitrag von: wvhn am 06 Dezember 2025, 15:31:37
Moin Andreas,

1 und 3 waren dann wahrscheinlich vom Browser-Cache verursacht. Lösche mal auf dem Handy die Website-Daten. Vielleicht verschwindet 2 dann auch noch.

Wenn Du schreibst, dass das Problem nervt, ist es ja nicht das sporadische Auftreten, wie ich es beschrieben habe, oder?

Gruß
Wolfram
Titel: Aw: Smartvisu V3.2.2 -> V3.5 Update Fehler
Beitrag von: Hackstall am 07 Dezember 2025, 13:11:29
Danke für Deine Antwort:

Habe auf dem Handy gesamten Verlauf gelöscht.
Webseitendaten löschen =?

Ja das Problem ist immer da und nicht nur sporadisch.

Will nicht unfreundlich sein aber es nervt schon ein wenig, zumal es auf dem PC nicht auftritt.
Vielleicht findest Du ja einen Workaround. Danke schon mal im Voraus

Gruss Andreas
Titel: Aw: Smartvisu V3.2.2 -> V3.5 Update Fehler
Beitrag von: wvhn am 07 Dezember 2025, 16:44:37
Moin Andreas,

Das Release ist über ein Jahr alt und bisher hat niemand ein solches Verhalten berichtet. Bei dem Problem muss es sich also um einen speziellen Effekt Deiner persönlichen Installation handeln. Deshalb die Bitte / das Angebot, die kompletten Dateien inkl. der eigenen Seiten als Dropbox-Link per PN zu schicken. Dann kann ich Deine Visu komplett bei mir laufen lassen und das Problem lokalisieren.


Gruß
Wolfram
Titel: Aw: Smartvisu V3.2.2 -> V3.5 Update Fehler
Beitrag von: Hackstall am 08 Dezember 2025, 20:52:05
Oh das verstehe ich aber nicht.
Du hast doch selber gesagt, dass du das Problem auf dem IPad hast (siehe 3 Posts zuvor)

Ich habe nun auch noch ein bisschen herumprobiert.

1) Auf dem PC gibt es das Problem nicht.
2) Auf meinem IPhone 16 Pro Max unter Safari tritt es immer auf.
3) Auf meinem IPhone tritt es anscheinend nicht unter Firefox auf.
4) Ich habe den Eindruck dass es nach dem letzten Update von iOS gekommen ist.

Somit Safari Problem?
Haben andere auch das Problem?


Titel: Aw: Smartvisu V3.2.2 -> V3.5 Update Fehler
Beitrag von: Hackstall am 08 Dezember 2025, 21:00:12
Oh das verstehe ich aber nicht.
Du hast doch selber gesagt, dass du das Problem auf dem IPad hast (siehe 3 Posts zuvor)

Ich habe nun auch noch ein bisschen herumprobiert.

1) Auf dem PC gibt es das Problem nicht.
2) Auf meinem IPhone 16 Pro Max unter Safari tritt es immer auf.
3) Auf meinem IPhone tritt es anscheinend nicht unter Firefox auf.
4) Ich habe den Eindruck dass es nach dem letzten Update von iOS gekommen ist.

Somit Safari Problem?
Haben andere auch das Problem?


Titel: Aw: Smartvisu V3.2.2 -> V3.5 Update Fehler
Beitrag von: wvhn am 09 Dezember 2025, 00:43:49
Ich denke, jetzt müssen wir die Dinge ein bisschen sortieren.

Titel: Aw: Smartvisu V3.2.2 -> V3.5 Update Fehler
Beitrag von: Hackstall am 09 Dezember 2025, 20:36:02
Hallo nochmals danke für Deine Antwort.
wie gesagt ich möchte nicht unhöflich erscheinen. Keine Kritik an SMARTVISU.

Ich denke der 2te Punkt klingt interessant und ja (hier war ich wohl etwas lückenhaft in meiner Fehlerbeschreibung) ich muss immer 2 mal auf meinen MenueButton drücken damit Daten erscheinen. Das Menue wird immer aufgebaut jedoch ohne Daten und Kurven.

Du sagtest : Falls das bei Dir so ist, solltest Du diese Einträge beseitigen.
Sorry was meinst Du hier genau welche Einträge?

Danke Gruss Andreas
Titel: Aw: Smartvisu V3.2.2 -> V3.5 Update Fehler
Beitrag von: wvhn am 09 Dezember 2025, 21:33:12
Gemeint sind die Menüeinträge im Raummenü (rooms_menu.html oder navigaton.html - je nachdem, wie Du die Datei genannt hast). Wenn hier in den <a>-tags der Zusatz `data-ajax="false"` steht, dann zwingst Du die Visu dazu, jede Seite komplett neu zu laden, einschließlich Neustart des Websocket. Wenn der Websocket eh schon Probleme macht, verschlimmert das das Verhalten.
Also die `data-ajax="false"`einfach löschen, sofern vorhanden.

Das wird das Problem zwar entschärfen, aber nicht grundsätzlich lösen. Gelöst werden kann das nur durch ein iOS-Update, das den Fehler korrigiert.

Gruß
Wolfram