Ankündigung

Einklappen
Keine Ankündigung bisher.

Support Thread für das smartvisu Plugin

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Msinn
    antwortet
    Zitat von TCr82 Beitrag anzeigen
    Denn es war vorher der Item "Pfad"?
    Nein. es war immer die ID (und die ID ist der Name des Items. Nur wenn kein Name definiert ist, ist die ID der Pfad)

    Bisher spielte es allerdings keine Rolle wenn eine ID doppelt verwendet wurde, da der Item Baum rein sequentiell abgearbeitet wurde und eine ID auch doppelt vorkommen durfte. Es wurden einfach nacheinander zwei (oder mehr) Navigationseinträge mit der selben ID generiert.

    Aus der sequentiellen Abarbeitung entstanden eine Reihe von Problemen für die Reihenfolge der Einträge in der Navigation, so dass mehrfach der Wunsch an mich herangetragen wurde, dass zu ändern.

    Zur Beseitigung der aufgetretenen Probleme wird
    • eine extra Konfigurationsdatei eingeführt, die unter anderem das Festlegen der Navigationsreihenfolge unabhängig von der Reihenfolge im Item-Tree ermöglicht.
    • Die Möglichkeit geschaffen, Widgets aus verschiedenen Teilbäumen des Item-Trees in eine Visu Seite zu generieren.

    Einen Kommentar schreiben:


  • TCr82
    antwortet
    Die item.id() wurde da ja auch vorher immer verwendet, wenn man sich den alten Code ansieht:

    https://github.com/smarthomeNG/plugi...init__.py#L334

    Da w
    urde ja immer {{ visu_page }} mit item.id() ersetzt.

    Genau so wie dass der Name der Datei war:

    self.write_parseresult(item.id()+'.html', r)
    Zuletzt geändert von TCr82; 14.04.2021, 09:39.

    Einen Kommentar schreiben:


  • TCr82
    antwortet
    vielleicht habe ich mich falsch Ausgedrückt, mit "so wie es vorher war". Denn es war vorher der Item "Pfad"?

    Also
    Code:
    haus.eg.wohnzimmer
    ist ja nicht gleich
    Code:
    haus.og.wohnzimmer
    Was aber bei mir auch die ID ist, wenn man sich den folgenden Code betrachtet:

    Code:
    item = sh.haus.eg.wohnzimmer
    logger.error(item.id())
    In dem Beispiel, bekommt wenn man wenn man nach der id() des Items frägt ja auch der Pfad raus.

    Und das war doch vorher auch so?! und das ist doch eindeutig?

    EDIT: Um es nochmal aus Item.yaml sicht zu verdeutlichen was ich meine:

    Code:
    haus:
        eg:
            wohnzimmer:
                sv_page: room
        og:
            wohnzimmer:
                sv_page: room
    Oder war es nicht vorher so?
    Zuletzt geändert von TCr82; 14.04.2021, 09:15.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Die Item ID ist eben nicht eindeutig! Wenn Dunzwei Itmes den selben Namen gibst, haben sie die selbe Item Id.

    Solange die Visu Definitionen einer Seite nicht aus mehren unterschidliche Teilen des Item Baums stammen durften, fiel das nur nicht auf.

    Einen Kommentar schreiben:


  • TCr82
    antwortet
    Zitat von Msinn Beitrag anzeigen
    Im Moment geht das noch nicht anders. Dadurch, dass die Visu Definitionen mit dem aktuellen Plugin aus verschiedenen Teilbäumen des Item Trees stammen dürfen, kann die Visu Definition über den Raum Namen nicht eindeutig einer Seite zugeordnet werden.
    was meinst du damit? Kannst du zum besseren Verständnis ein Beispiel nennen?

    Zitat von Msinn Beitrag anzeigen
    Dafür ist eine eindeutige Id eines Navigationseintrages notwendig, die noch nicht durchgängig implementiert ist. Bisher ist der Raum Name die eindeutige Id.

    Das wird vollständig (zusammen mit einer Konfigurationsdatei, in der die Navigation der Visu unabhängig von der Reihenfolge im Item Tree festgelegt werden kann) erst mit SmartHomeNG v1.9 kommen.
    Was sprach eigentlich dagegen bei der Item-ID zu bleiben (wie beim alten Plugin)? Die ist doch eindeutig?
    Zuletzt geändert von TCr82; 11.04.2021, 22:14.

    Einen Kommentar schreiben:


  • frankc
    antwortet
    Hallo,

    bei der Autogenerierung der Seiten bekomme ich einen Fehler. Ich verwende keine zusaetzliche Konfiguration der Navigation ueber die Datei "../etc/visu.yaml". D.h. die Datei ist leer.

    smarthomeNG: v1.8.2
    smartVISU: v3.0.1
    Plugin smartvisu: v1.8.2

    Code:
    Traceback (most recent call last):
      File "/usr/local/smarthome/plugins/smartvisu/__init__.py", line 134, in run
        svgen = SmartVisuGenerator(self, self.visu_definition)
      File "/usr/local/smarthome/plugins/smartvisu/svgenerator.py", line 70, in __init__
        self.pages()
      File "/usr/local/smarthome/plugins/smartvisu/svgenerator.py", line 264, in pages
        img_name=self.get_attribute('sv_img', item), nav_aside=nav_aside, nav_aside2=nav_aside2)
      File "/usr/local/smarthome/plugins/smartvisu/svgenerator.py", line 286, in create_menuentry
        if menu_entry.get('img', '') == ''and menu_entry['img_set'] == False:
    KeyError: 'img_set'
    Wenn ich in der "svgenerator.py" in der Zeile 286
    Code:
    if menu_entry.get('img', '') == ''and menu_entry['img_set'] == False:
    durch
    Code:
    if menu_entry.get('img', '') == ''and menu_entry.get('img_set', False) == False:
    ersetze, werden die Seiten generiert und es gibt keine Fehler mehr im Log.

    Einen Kommentar schreiben:


  • MaRi
    antwortet
    Danke für die Info. Ist auch kein großes Problem.
    Jetzt heißt der Flur im EG halt Entree

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Im Moment geht das noch nicht anders. Dadurch, dass die Visu Definitionen mit dem aktuellen Plugin aus verschiedenen Teilbäumen des Item Trees stammen dürfen, kann die Visu Definition über den Raum Namen nicht eindeutig einer Seite zugeordnet werden.

    Dafür ist eine eindeutige Id eines Navigationseintrages notwendig, die noch nicht durchgängig implementiert ist. Bisher ist der Raum Name die eindeutige Id.

    Das wird vollständig (zusammen mit einer Konfigurationsdatei, in der die Navigation der Visu unabhängig von der Reihenfolge im Item Tree festgelegt werden kann) erst mit SmartHomeNG v1.9 kommen.

    Einen Kommentar schreiben:


  • MaRi
    antwortet
    Danke Martin

    Habe keinen Fehler mehr im Log, aber der 2.Flur ist nicht in meiner Navigationsleiste Habe nur die svgenerator.py ausgetauscht...

    Gruß
    Markus

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    MaRi Probier es nochmal mir der aktuellen Version aus dem develop Branch

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Hier schon mal die Antwort zur Neuling Frage:

    https://knx-user-forum.de/forum/supp...htig-einfügen

    Einen Kommentar schreiben:


  • MaRi
    antwortet
    Hallo,

    ich habe bei mir auch einen Key Error und habe auch schon auf den Develop Branch upgedatet. Jedoch besteht das Problem immer noch

    2021-02-19 13:49:01 ERROR plugins.smartvisu SmartVisuGenerator: Exception: 'nav_aside_set'
    > Traceback (most recent call last):
    > File "/usr/local/smarthome/plugins/smartvisu/__init__.py", line 134, in run
    > svgen = SmartVisuGenerator(self, self.visu_definition)
    > File "/usr/local/smarthome/plugins/smartvisu/svgenerator.py", line 70, in __init__
    > self.pages()
    > File "/usr/local/smarthome/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 "/usr/local/smarthome/plugins/smartvisu/svgenerator.py", line 290, in create_menuentry
    > if menu_entry.get('nav_aside', '') == ''and menu_entry['nav_aside_set'] == False:
    > KeyError: 'nav_aside_set'

    Der Fehler scheint dadurch zu kommen, dass ich im EG und im OG einen Raum mit namen Flur habe. Wenn ich 2 unterschiedliche Namen verwende it der Fehler weg.
    In der altern Version hatte ich dieses Problem nicht. Ist es beabsichtigt, dass die Raum Namen jetzt unique sein müssen?
    Hier teile meiner Items:

    EG:
    name: EG
    sv_page: seperator
    Flur:
    name: Flur
    sv_page: room
    sv_img: scene_hall_alternat.svg
    ...
    OG:
    name: OG
    sv_page: seperator
    Flur:
    name: Flur
    sv_page: room
    sv_img: scene_corridor.svg

    PS: Neuling Frage: Wie erzeuge ich die Code Fenster?

    Einen Kommentar schreiben:


  • artner
    antwortet
    Hat jetzt einwandfrei funktioniert - Vielen Dank

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Ich konnte das Problem nun nachvollziehen. Im develop branch ist ein Update des Plugins, welches das Problem beseitigen sollte.

    Einen Kommentar schreiben:


  • artner
    antwortet
    Code:
    EG:
        WC:
           name: WC EG
           sv_page: room
           sv_nav_aside: "{{ basic.symbol('item.Fensterkontakt.Fenster.offen', 'item.Fensterkontakt.Fenster.offen', '', 'fts_window_1w_open.svg', '', '', '#f00') }} {{ basic.symbol('item.Fensterkontakt.Fenster.gekippt' , 'item.Fensterkontakt.Fenster.gekippt', '', 'fts_window_1w_tilt.svg', '', '', '#fa3') }} {{ basic.print('item.Temperatur', 'item.Temperatur', '°') }}"
          sv_img: scene_toilet_alternat.svg
    
    
    ...
    
    
          struct: sensoren
          Temperatur:
             knx_cache: 6/2/10
          Helligkeit:
             knx_cache: 6/2/11
    
          Fensterkontakt:
             Fenster:
                struct: fensterkontakt
                offen:
                   knx_cache: 6/2/50
                geschlossen:
                   knx_cache: 6/2/51
                gekippt:
                   knx_cache: 6/2/55
    ergibt jetzt rooms.menu.html

    HTML-Code:
    <ul data-role="listview" data-dividertheme="c">
    
    <li data-role="list-divider">Erdgeschoss</li><li data-icon="false">
    <a href="index.php?page=room.Bad_EG">
    <img class="icon" src="{{ icon0 }}scene_shower.svg" />
    
    <h3>Bad EG</h3>
    <div class="ui-li-aside">{{ basic.symbol('room.Bad_EG.Fensterkontakt.Fenster.o ffen', 'room.Bad_EG.Fensterkontakt.Fenster.offen', '', 'fts_window_1w_open.svg', '', '', '#f00') }} {{ basic.symbol('room.Bad_EG.Fensterkontakt.Fenster.g ekippt', 'room.Bad_EG.Fensterkontakt.Fenster.gekippt', '', 'fts_window_1w_tilt.svg', '', '', '#fa3') }} {{ basic.print('room.Bad_EG.Temperatur', 'room.Bad_EG.Temperatur', '°') }}<br/></div>
    </a>
    </li>
    
    <li data-icon="false">
    <a href="index.php?page=room.Vorraum">
    <img class="icon" src="{{ icon0 }}scene_corridor.svg" />
    
    <h3>Vorraum</h3>
    <div class="ui-li-aside">{{ basic.symbol('room.Vorraum.Fensterkontakt.Haustuer .offen', 'room.Vorraum.Fensterkontakt.Haustuer.offen', '', 'fts_frontdoor.svg', '', '', '#f00') }} {{ basic.print('room.Vorraum.Temperatur', 'room.Vorraum.Temperatur', '°') }}<br/></div>
    </a>
    </li>
    
    <li data-icon="false">
    <a href="index.php?page=room.WC_EG">
    <img class="icon" src="{{ icon0 }}scene_toilet_alternat.svg" />
    
    <h3>WC EG</h3>
    <div class="ui-li-aside">{{ basic.symbol('room.WC_EG.Fensterkontakt.Fenster.offen', 'room.WC_EG.Fensterkontakt.Fenster.offen', '', 'fts_window_1w_open.svg', '', '', '#f00') }} {{ basic.symbol('room.WC_EG.Fensterkontakt.Fenster.ge kippt', 'room.WC_EG.Fensterkontakt.Fenster.gekippt', '', 'fts_window_1w_tilt.svg', '', '', '#fa3') }} {{ basic.print('room.WC_EG.Temperatur', 'room.WC_EG.Temperatur', '°') }}<br/></div>
    </a>
    </li>
    
    ...
    
    
    
    </ul>

    alter Code: rooms_nav.html


    HTML-Code:
    <ul data-role="listview" data-dividertheme="c">
    
    <li data-role="list-divider">Erdgeschoss</li><li data-icon="false">
    <a href="index.php?page=EG.Bad">
    <img class="icon" src="{{ icon0 }}scene_shower.svg" />
    
    <h3>Bad EG</h3>
    <div class="ui-li-aside">{{ basic.symbol('EG.Bad.Fensterkontakt.Fenster.offen' , 'EG.Bad.Fensterkontakt.Fenster.offen', '', 'fts_window_1w_open.svg', '', '', '#f00') }} {{ basic.symbol('EG.Bad.Fensterkontakt.Fenster.gekipp t', 'EG.Bad.Fensterkontakt.Fenster.gekippt', '', 'fts_window_1w_tilt.svg', '', '', '#fa3') }} {{ basic.print('EG.Bad.Temperatur', 'EG.Bad.Temperatur', '°') }}<br/></div>
    </a>
    </li>
    
    <li data-icon="false">
    <a href="index.php?page=EG.Gang">
    <img class="icon" src="{{ icon0 }}scene_corridor.svg" />
    
    <h3>Vorraum</h3>
    <div class="ui-li-aside">{{ basic.symbol('EG.Gang.Fensterkontakt.Haustuer.offe n', 'EG.Gang.Fensterkontakt.Haustuer.offen', '', 'fts_frontdoor.svg', '', '', '#f00') }} {{ basic.print('EG.Gang.Temperatur', 'EG.Gang.Temperatur', '°') }}<br/></div>
    </a>
    </li>
    
    <li data-icon="false">
    <a href="index.php?page=EG.WC">
    <img class="icon" src="{{ icon0 }}scene_toilet_alternat.svg" />
    
    <h3>WC EG</h3>
    <div class="ui-li-aside">{{ basic.symbol('EG.WC.Fensterkontakt.Fenster.offen', 'EG.WC.Fensterkontakt.Fenster.offen', '', 'fts_window_1w_open.svg', '', '', '#f00') }} {{ basic.symbol('EG.WC.Fensterkontakt.Fenster.gekippt ', 'EG.WC.Fensterkontakt.Fenster.gekippt', '', 'fts_window_1w_tilt.svg', '', '', '#fa3') }} {{ basic.print('EG.WC.Temperatur', 'EG.WC.Temperatur', '°') }}<br/></div>
    </a>
    </li>
    
    ...
    
    
    
    </ul>

    Einen Kommentar schreiben:

Lädt...
X