Ich nutze aktuell keine Seitengenerierung seitens des Plugins. Für die Masteritem Liste hatte ich bisher die Logik genutzt die auch in der SmartVISU Widget Dokumentation zu finden ist. Das die Liste auch vom Plugin erzeugt wird, hatte ich irgendwie noch nicht mitbekommen. Dann ist klar warum das Plugin Schreibzugriff haben will :-)
Ankündigung
Einklappen
Keine Ankündigung bisher.
Support Thread für das smartvisu Plugin
Einklappen
X
-
Ich kann ja durchaus das smartviru-Plugin nutzen, damit habe ich kein Problem. Aber es sollte eine Möglichkeit geben, es _nur_ für die default_acl-Einstellung zu nutzen, wenn ich die nirgendwo anders bekommen kann. Und alle anderen Funktionen brauche ich nicht.
Wenn ich drei Funktionen in einem Plugin bündele, wäre es aus meiner Sicht sinnvoll, die auch "einzeln" nutzen zu können.
Ich sage ja nichts gegen das Plugin, nur ist auch das Masteritemfile keine gottgegebene Notwendigkeit. Meine SV ist "fertig" und ich möchte sie nicht anders, als sie ist. Insofern benötige ich weder den SV-Seitengenerator noch ein Masteritemfile. Daher erschließt sich mir nicht, wieso man die Funktionalität, die zu einem Fehler führt, nicht abschalten kann.
@wvhn: wenn man die Funktionalität wenigstens abschalten _könnte_, wäre es ja gut. Aber es geht nicht, darum gibt es beim Start immer einen Fehler, dass er den Pfad oder die SV nicht gefunden hat...
(und ja, natürlich könnte ich das einfach rein- bzw. rausprogrammieren. Aber ich weiß nicht, ob sich jemand ggf. noch mehr dabei gedacht hat)
Kommentar
-
Zitat von Morg Beitrag anzeigenIm Prinzip bräuchte ich auch das Plugin nicht, wenn die visu_acl-Option anderweitig belegt werden kann.
Da das smartVISU Nutzdatenprotokoll einen Zugriff ohne Authentifizierung zulässt, wird es nur aktiviert, wenn es auch benötigt wird. Das tut das smartVISU Plugin.
Zitat von Morg Beitrag anzeigenAber es sollte eine Möglichkeit geben, es _nur_ für die default_acl-Einstellung zu nutzen, wenn ich die nirgendwo anders bekommen kann.
Viele Grüße
Martin
There is no cloud. It's only someone else's computer.
- Likes 1
Kommentar
-
wvhn Du solltest den Widget Assistant noch anpassen, damit er darauf hinweist, dass die Logik nur bei Verwendung des alten visu_smartvisu Plugins benötigt wird, da das neue smartvisu Plugin die Funktionalität mitbringt.Viele Grüße
Martin
There is no cloud. It's only someone else's computer.
Kommentar
-
Im develop ist jetzt die Version 1.8.3 des smartvisu Plugins. Dort gibt es den zusätzlichen Parameter create_masteritem_file. Wenn der Parameter auf False gesetzt wird, erfolgt keine Erzeugung der masteritem.json Datei.
Die Einstellung der Parameter wird jetzt auch im Webinterface angezeigt.
Viele Grüße
Martin
There is no cloud. It's only someone else's computer.
- Likes 1
Kommentar
-
Zitat von Msinn Beitrag anzeigenwvhn Du solltest den Widget Assistant noch anpassen, damit er darauf hinweist, dass die Logik nur bei Verwendung des alten visu_smartvisu Plugins benötigt wird, da das neue smartvisu Plugin die Funktionalität mitbringt.
Gruß
Wolfram
Kommentar
-
Also macht es doch Sinn ohne masteritem Datei leben zu wollen?! Wenn man sich ja Statische Seiten erstellt hat!?
Aber andersherum: Macht es Sinn das Plugin überhaupt zu verwenden? Wenn ich ja nur die Websocket Funktion benötige?
Wahrscheinlich nur um den default_acl Gobal und die visu_acl pro Item zu setzten (ist ja ein muss dann??) oder übernimmt das Plugin auf der websocket Seite noch andere Funktionen?
Kommentar
-
Zitat von TCr82 Beitrag anzeigenAlso macht es doch Sinn ohne masteritem Datei leben zu wollen?!
Zitat von TCr82 Beitrag anzeigenAber andersherum: Macht es Sinn das Plugin überhaupt zu verwenden? Wenn ich ja nur die Websocket Funktion benötige?Viele Grüße
Martin
There is no cloud. It's only someone else's computer.
Kommentar
-
Fast habe ich es geschafft, die gesamte VISU zu generieren.
ein paar Dinge sind mir noch aufgefallen, die ich gerne angepasst hätte:- das erste ist einfach
man kann im Plugin einstellen: visu_style: black.
wenn man im menu.html in die erste Zeile: data-dividertheme="a" einsetzt erscheinen die divider auch in black - Block-Größe
gäbe es noch eine Möglichkeit bei einzelnen Blöcken ( z.B. Blöcke mit plots ) : <div class="block" style="width:100%" > zu generieren.
dies müsste aber dann eine Block-Option sein, die man in den item Definitionen festlegt. - name
ich habe das Gefühl, dass bei bestimmtem Bedingungen in den items "name" nicht aufgelöst wird (in den widgets):
item.name funktioniert, aber item.Deckenlicht.name nicht.
hierzu könnte ich noch weiter testen und ein reproduzierbares Beispiel liefern.
Kommentar
- das erste ist einfach
-
Zitat von whe Beitrag anzeigen[*]name
ich habe das Gefühl, dass bei bestimmtem Bedingungen in den items "name" nicht aufgelöst wird (in den widgets):
item.name funktioniert, aber item.Deckenlicht.name nicht.
hierzu könnte ich noch weiter testen und ein reproduzierbares Beispiel liefern.[/LIST]
item.name geht bei mir auch nur in diesem Fall.
Bei anderen relativen Verweise wird nur das Item selbst aufgelöst und dann name angehängt.
Im Beispiel wird jeweils im Widget zweimal das selbe Item referenziert:
Code:Haus: OG: Bad: Licht: name: Beleuchtung remark: Alle Lichter # Visu sv_widget: "{{ basic.stateswitch('', '.Decke.schalten', 'icon', [0,1], ['light_light_dim_00.svg', 'light_light_dim_100.svg'], '.Decke.name') }} " Decke: name: Beleuchtung an der Decke remark: Beleuchtung an der Decke struct: struct_Schalten schalten: name: Schalten knx_send: 1/2/5 knx_cache: 1/2/15 sv_widget: "{{ basic.stateswitch('', 'item', 'icon', [0,1], ['light_light_dim_00.svg', 'light_light_dim_100.svg'], 'item.name') }} "
Code:<div data-role="collapsible" data-collapsed="false"> <h3>Beleuchtung</h3> {{ basic.stateswitch('', 'Haus.OG.Bad.Licht.Decke.schalten', 'icon', [0,1], ['light_light_dim_00.svg', 'light_light_dim_100.svg'], 'Haus.OG.Bad.Licht.Decke.name') }} </div>
Code:<div data-role="collapsible" data-collapsed="false"> <h3>Schalten</h3> {{ basic.stateswitch('', 'Haus.OG.Bad.Licht.Decke.schalten', 'icon', [0,1], ['light_light_dim_00.svg', 'light_light_dim_100.svg'], 'Schalten') }} </div>
Kommentar
-
Eben nochmal einen kurzen Blick in den Code geworfen, relevant dürfte für u.a. diese Zeile sein:
Code:widgets += self.parse_tpl(widgetblocktemplate, [('{{ visu_name }}', str(item)), ('{{ visu_img }}', img), ('{{ visu_widget }}', widget), ('item.name', str(item)), ("'item", "'" + item.property.path)])
Beziehungsweise die darin aufgerufene Funktion:
https://github.com/smarthomeNG/plugi...erator.py#L388
Kommentar
-
Die Zeile
Zitat von jzehnter Beitrag anzeigenwidgets += self.parse_tpl(widgetblocktemplate, [('{{ visu_name }}', str(item)), ('{{ visu_img }}', img), ('{{ visu_widget }}', widget), ('item.name', str(item)), ("'item", "'" + item.property.path)])
Bei der Verwendung von Item Pfaden (es müssen gar nicht relative Item Referenzen sein), gibt es diesen zu ersetzenden konstanten String item.name jedoch nicht.
Das Problem ist:
Dort steht ein beliebiger anderer String und das Plugin kann nicht entscheiden, ob der String selbst an das Widget übergeben werden soll, oder ob der String zuerst aufgelöst und dann an das Widget übergeben werden soll.
Um dem Plugin mitzuteilen, ob der String selbst, oder der aufgelöste String übergeben werden soll, müsste man eine Kennzeichnung einführen, an der die Entscheidung festgemacht werden kann. Evtl. könnte die oben erwähnte Trennung mit einem Doppelpunkt diese Kennzeichnung sein. Dabei wäre es auch sinnvoll, nicht nur auf den Namen, sondern auch auf andere Attribute zugreifen zu können.Viele Grüße
Martin
There is no cloud. It's only someone else's computer.
Kommentar
-
Danke für die Aufklärung.
Dann müsste man einen klaren "Trenner" zwischen dem Itempfad und dem Attribut festlegen.
Danach den aktuellen Hack für item.name ersetzen. Erst mögliche relative Referenzen - wie derzeit schon - auflösen und dann das definierte Attribut des vom (aufgelösten) Item abfragen.
Kommentar
-
Hallo,
wie in Gitter bereits kurz gechattet hier zwei Probleme, die ich mit der neuesten Version 1.9.2 habe:
1. Fehlermeldung im Log:
https://pastebin.com/x3RheP9M
Code:ERROR plugins.smartvisu SmartVisuGenerator: Exception: 'img_set' > Traceback (most recent call last): > File "/smarthomeng/plugins/smartvisu/__init__.py", line 135, in run > svgen = SmartVisuGenerator(self, self.visu_definition) > File "/smarthomeng/plugins/smartvisu/svgenerator.py", line 70, in __init__ > self.pages() > File "/smarthomeng/plugins/smartvisu/svgenerator.py", line 263, in pages > menu_entry = self.create_menuentry(menu=menu, entry_name=str(item), item_path=item.property.path, separator=separator, > File "/smarthomeng/plugins/smartvisu/svgenerator.py", line 287, in create_menuentry > if menu_entry.get('img', '') == ''and menu_entry['img_set'] == False: > KeyError: 'img_set'
Code:if menu_entry.get('img', '') == '' and menu_entry['img_set'] == False:
Code:if menu_entry.get('img', '') == '' and menu_entry.get('img_set', False) == False:
2. Seperator mit einem Raum
Nachdem ein Seperator kommt, wird der Menüpunkt für den kommenden Raum nicht generiert. Wenn mehrere Räume kommen, gibt es kein Problem.
Wäre gut, wenn mir jemand helfen könnte, das Problem ausfindig zu machen.
Beispiel Item:
Code:Raum: Treppenhaus: Seperator: name: Treppenhaus sv_page: seperator Treppenhaus: name: Treppenhaus sv_page: room sv_img: scene_stairs.svg Beleuchtung: name: Beleuchtung sv_widget: "{{ basic.flip('Treppenhaus.Beleuchtung', 'Raum.Treppenhaus.Treppenhaus.Beleuchtung','Ein','Aus') }}" type: bool knx_dpt: 1
You do not have permission to view this gallery.
This gallery has 2 photos.
Kommentar
-
Ich habe bei mir mal zwischen Bad und Schlafen einen Seperator eingefügt. Das sieht aus wie erwartet.
Capto_Capture 2022-07-09_10-50-04_AM.jpg
Das einzige was mir auffällt ist, dass Du dem Seperator den selben Namen gegeben hast wie dem Raum. Ändere mal einen der Namen.Viele Grüße
Martin
There is no cloud. It's only someone else's computer.
Kommentar
Kommentar