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

    Support Thread für das smartvisu Plugin

    Dieses ist ein neues Plugin, welches mit dem Release v1.8 von SmartHomeNG veröffentlicht wurde und die Integration mit der smartVISU darstellt.


    Es verfügt über folgende Features:
    • es kann mit Hilfe einiger Item Attribute Seiten für die smartVISU generieren
    • es kann Widgets, die in Plugins enthalten sind in die smartVISU installieren
    • zur Unterstützung des Widget Assistenten der smartVISU erstellt es eine aktuelle Liste der SmartHomeNG Items in der smartVISU

    Es stellt die Nachfolge de visu_websocket Plugins dar, welches nun veraltet (deprecated) ist und nicht mehr weiter entwickelt wird.


    Eine ausführliche Dokumentation des Plugins ist in der SmartHomeNG Dokumentation zu finden.
    Zuletzt geändert von Msinn; 15.01.2021, 20:06.
    Viele Grüße
    Martin

    There is no cloud. It's only someone else's computer.

    #2
    Mit dem heutigen Release steht das Plugin im master branch zur Verfügung.
    Viele Grüße
    Martin

    There is no cloud. It's only someone else's computer.

    Kommentar


      #3
      Hallo,

      ich habe nun auch das Update auf shng 1.8 und smartvisu 3 durchgeführt. Leider kommt es bei der Generierung der Pages zu folgendem Fehler

      Code:
      2021-01-30 15:45:42 ERROR plugins.smartvisu SmartVisuGenerator: Exception: 'img_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 260, 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 282, in create_menuentry
      > if menu_entry.get('img', '') == ''and menu_entry['img_set'] == False:
      > KeyError: 'img_set'
      Die items.yaml ist die selbe Datei wie vor dem Update (bis vor dem Update problemlos).

      Hier noch ein Bsp. aus meiner items.yaml

      Code:
      ...
      Buero:
           name: Büro
           sv_page: room
           sv_img: scene_office.svg
           sv_nav_aside: |
                {{ basic.print('tempegbueroist', 'Zentral.RaumTemperaturen.EGBuero', '%01,1f', '', [18,23], ['blue', 'green', '#f00']) }}
           sv_nav_aside2: |
                {{ basic.symbol('', 'Zentral.FensterKontakte.EGBueroFOffen', ['',''], ['fts_window_1w.svg','fts_window_1w_open.svg'], [1,0], '', ['green','red']) }}
           Licht:
                Decke:
                     Schalten:
                          type: bool
                         knx_dpt: 1
                         knx_listen: 3/1/3
                         knx_init: 3/1/3
                         knx_send: 3/1/0
                         visu_acl: rw
                     Dimmen:
                         type: num
                         knx_dpt: 5
                         knx_listen: 3/1/4
                         knx_init: 3/1/4
                         knx_send: 3/1/2
                         visu_acl: rw
      ...
      Hat vielleicht jemand eine Idee?

      Vielen Dank schon mal.
      Zuletzt geändert von stoner1801; 31.01.2021, 10:13.

      Kommentar


        #4
        Ein Schuss ins blaue: Mach aus den sv_nav_aside und sv_nav_aside2 mal normale Strings:

        Code:
             sv_nav_aside: "{{ basic.print('tempegbueroist', 'Zentral.RaumTemperaturen.EGBuero', '%01,1f', '', [18,23], ['blue', 'green', '#f00']) }}"
             sv_nav_aside2: "{{ basic.symbol('', 'Zentral.FensterKontakte.EGBueroFOffen', ['',''], ['fts_window_1w.svg','fts_window_1w_open.svg'], [1,0], '', ['green','red']) }}"
        Ansonsten: Bist Du auf v1.8.0 oder v1.8.1?
        Viele Grüße
        Martin

        There is no cloud. It's only someone else's computer.

        Kommentar


          #5
          folgendes Problem

          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
          Code:
           <div class="ui-li-aside">{{ basic.symbol('room.WC_EG.Fensterkontakt.Fenster.of fen', '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>
          item hat bis jetzt immer auf EG.WC. aufgelöst - seit neuestem löst es auber auf room.WC_EG. auf - dieses Item gibt es aber nicht

          shng 1.8.1
          smartvisu 3.0
          Zuletzt geändert von artner; 05.02.2021, 14:39.

          Kommentar


            #6
            Ok, das sieht aus, als würde der Item Name statt des Item Pathes aufgelöst. Muss ich mal rein schauen.

            Vorerst solltest Du das umgehen können, indem Du den Namen löschst.

            Und: Bitte in Zukunft mit richtiger Formatierung posten! So kann ich aus der von Dir geposteten Item Definition nicht sehen, ob da noch andere Probleme drin stecken.
            Viele Grüße
            Martin

            There is no cloud. It's only someone else's computer.

            Kommentar


              #7
              Zitat von artner Beitrag anzeigen
              folgendes Problem
              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
              Code:

              <div class="ui-li-aside">{{ basic.symbol('room.WC_EG.Fensterkontakt.Fenster.of fen', '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>
              item hat bis jetzt immer auf EG.WC. aufgelöst - seit neuestem löst es auber auf room.WC_EG. auf - dieses Item gibt es aber nicht
              artner Kannst Du mal die komplette Definition und die generierte Seite (alte Version aus visu_smartvisu und die neue Version aus smartvisu Plugin) schicken? Ich finde die Stelle nicht, wo der Unterschied liegen sollte, da die Generator Routine fast vollständig aus dem alten Plugin stammt
              Viele Grüße
              Martin

              There is no cloud. It's only someone else's computer.

              Kommentar


                #8
                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>

                Kommentar


                  #9
                  Ich konnte das Problem nun nachvollziehen. Im develop branch ist ein Update des Plugins, welches das Problem beseitigen sollte.
                  Viele Grüße
                  Martin

                  There is no cloud. It's only someone else's computer.

                  Kommentar


                    #10
                    Hat jetzt einwandfrei funktioniert - Vielen Dank

                    Kommentar


                      #11
                      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?

                      Kommentar


                        #12
                        Hier schon mal die Antwort zur Neuling Frage:

                        https://knx-user-forum.de/forum/supp...htig-einfügen
                        Viele Grüße
                        Martin

                        There is no cloud. It's only someone else's computer.

                        Kommentar


                          #13
                          MaRi Probier es nochmal mir der aktuellen Version aus dem develop Branch
                          Viele Grüße
                          Martin

                          There is no cloud. It's only someone else's computer.

                          Kommentar


                            #14
                            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

                            Kommentar


                              #15
                              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.
                              Viele Grüße
                              Martin

                              There is no cloud. It's only someone else's computer.

                              Kommentar

                              Lädt...
                              X