Ankündigung

Einklappen
Keine Ankündigung bisher.

Unterstützung von smartVISU Widgets in smarthomeNG für Plugin Entwickler

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

    Unterstützung von smartVISU Widgets in smarthomeNG für Plugin Entwickler

    Hi,

    ich habe eine überarbeitete Version des visu-Plugins erstellt. Diese Version erlaubt es Entwicklern von Plugins mit dem Plugin auch Widgets für die smartVISU mit auszuliefern. Diese Widgets werden durch das visu-Plugin in die smartVISU installiert und stehen ohne weitere Konfiguration zur Nutzung zur Verfügung.

    Plugins können mehrere Klassen von Widgets ausliefern. Jede Klasse besteht mindestens aus einer html-Datei. Optional können noch eine Javascript- und eine css-Datei hinzukommen.

    Die Dateien müssen der folgenden Namenskonvention folgen:

    Code:
        widget_<Klasse>.<Datei-Typ>
    Um die Widget-Klasse xyz zu implementieren, müssten die Dateien folglich:
    Code:
        widget_xyz.html
    und optional
    Code:
        widget_xyz.js
        widget_xyz.css
    Das visu Plugin erzeugt in der smartVISU das Statement
    Code:
        {% import "widget_xyz.html" as xyz %}
    und sorgt für den Include der Javascript- und css-Dateien.

    Die in xyz definierten Widgets können in den Pages direkt durch {{ xyz.<wdiget>( ... ) }} genutzt werden.

    Um die Widgets mit dem Plugin auszuliefern, speichert er Plugin Autor das Widget oder die Widgets in einem Unterverzeichnis des Plugin Verzeichnisses. Da Verzeichnis muss den Namen sv_widgets tragen.

    Beim Start von smarthome.py wird das Plugin in die smartVISU installiert (incl. import-Statement) und steht sowohl Erstellern von Seiten, als auch Nutzern der smarthome.py Page-Generator Funktion über sv_widget = zur Verfügung.

    Weitergehende Informationen sind in der Datei README_for_developpers.md des visu Plugins zu finden.


    Der Entwickler sollte in der Datei README.md seines Plugins einen Abschnitt smartVISU Widgets anlegen und die Nutzung der Widgets dort dokumentieren. (Am besten mit einem Screenshot, damit Anwender vorab eine Vorstellung vom Widget bekommen.)

    Der Pull Request für die Version, welche Javascript & css unterstützt ist gestellt. Nach erfolgtem Merge poste ich ein Update.
    Zuletzt geändert von Msinn; 24.04.2016, 12:41. Grund: Anpassung an neue Version
    Viele Grüße
    Martin

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

    #2
    Top. Danke!

    Kommentar


      #3
      Werde es am Wochenende für das AVM Widget mal versuchen..

      Kommentar


        #4
        So,

        der Pull Request in den Develop-Branch ist raus.
        Viele Grüße
        Martin

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

        Kommentar


          #5
          Finde ich gut !

          Michel

          Martin : kannst Du mir einen PR auf das Github bei mir stellen, wie Du die Gestaltung vorbereitet hast. dann kann ich auf dieser Basis künftig weiter arbeiten...
          Zuletzt geändert von Orion; 19.04.2016, 07:23.

          Kommentar


            #6
            @Orion: Ich habe Dir den Pull request eingestellt.
            Viele Grüße
            Martin

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

            Kommentar


              #7
              Danke, bislang bei mir im Repo nichts angekommen...

              Kommentar


                #8
                Bei mir laufen im Log jetzt solche dinge rein?! Sicher dass er False richtig auswertet?

                Code:
                2016-04-19  18:43:43 ERROR    visu         Could not find header file: False/tpl/header.html
                2016-04-19  18:43:43 WARNING  visu         Could not find directory: False/temp
                2016-04-19  18:43:43 INFO     visu         install_widgets; Installing to False
                2016-04-19  18:43:43 INFO     visu         install_widgets: Installing from /volume1/python/smarthome
                2016-04-19  18:43:43 WARNING  visu         Could not find temp directory: False/temp

                Kommentar


                  #9
                  schreib mal NO rein, in dem Code ist ein Fehler drin.
                  Code:
                  if isinstance(handle_widgets, str) and handle_widgets.upper() in ['FALSE', 'NO']:
                      self._handle_widgets = False

                  Kommentar


                    #10
                    @psilo: Anscheinend nicht. Aber warum sprichst Du von mir in der dritten Person?

                    Deshalb ist es auch ein Pull Request ins Develop gewesen. Es sind, wie Du herausgefunden hast, nicht alle Fehlerkonditionen abgefangen (Hole ich nach).

                    Die Meldung bekommst Du vorerst weg, wenn Du in der plugin.conf das Attribut smartvisu_dir entweder gar nicht konfigurierst oder so konfigurierst dass es auf das smartVISU Verzeichnis zeigt. (Die False Auswertung geht übrigens auf mknx zurück, ich hatte mich allerdings darauf verlassen, dass der Wert bei Nichtkonfiguration bool False ist).

                    Viele Grüße
                    Martin

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

                    Kommentar


                      #11
                      @cmalo: Du hast eine False Auswertung von mir erwischt. Die funktioniert. Das, was bei psilo den Fehler schmeißt ist, dass psilo in der plugin.conf smartvisu_dir = False konfiguriert hat, und das nicht richtig ausgewertet wird. Wenn smartvisu_dir nicht konfiguriet wied, wirt es in der __init__ Methode mit boolean False vorbelegt. Wenn es konfiguriert ist, wird es im Moment immer als String interpretiert.
                      Viele Grüße
                      Martin

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

                      Kommentar


                        #12
                        @Orion: Ich habe den PR hierhin abgesetzt:
                        You do not have permission to view this gallery.
                        This gallery has 1 photos.
                        Viele Grüße
                        Martin

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

                        Kommentar


                          #13
                          Pull Request für den Bug Fix des 'False' Bugs gestellt.
                          Viele Grüße
                          Martin

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

                          Kommentar


                            #14
                            @orion: Sorry, dass Du um hue Repository noch einen neunen Branch developNG aufgemacht hattest, habe ich übersehen. Den habe ich gerade eben erst gefunden.
                            Viele Grüße
                            Martin

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

                            Kommentar


                              #15
                              Die neue Version des visu Plugins (Unterstütung von Widgets mit Javascript & css) ist im develop Branch von smarthomeNG angekommen. Hinweise finden sich im 1. Post dieses Threads.
                              Viele Grüße
                              Martin

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

                              Kommentar

                              Lädt...
                              X