Ankündigung

Einklappen
Keine Ankündigung bisher.

Starthilfe nötig

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

    Starthilfe nötig

    Hallo,

    nachdem ich nun endlich die 1. Gehversuche erfolgreich hinter mich gebracht habe, stehe ich nun vor einem 2. Berg.

    Ich verstehe die .conf Dateien nicht wirklich. Hier im Forum finde ich Bruchstücke, die mir vielleicht weiter helfen würden, wenn ich bereits hinter dem 2. Berg wäre.

    smartVISU Kurzanleitung v2.7 habe ich durchgeklickert. Aber ich bekomme z.B. nicht mal hin, in einen Block 2 Schalter zu bekommen.

    Das hier z.B. funktioniert nicht:
    Code:
        [[Windfang]]
            name = Windfang
            sv_page = room
            sv_img = scene_corridor.png
            [[[light]]]
                [[[[ceiling]]]]
                    name = Deckenlicht
                    type = bool
                    visu_acl = rw
                    knx_dpt = 1
                    knx_init = 1/0/2
                    knx_listen = 1/0/2
                    knx_send = 1/0/2
                    sv_widget = {{ basic.switch('item', 'item', icon1~'light_ceiling_light.png', icon0~'light_ceiling_light.png') }} Deckenlicht
                [[[[wall]]]]
                    name = Wandlampe
                    type = bool
                    visu_acl = rw
                    knx_dpt = 1
                    knx_init = 1/0/1
                    knx_listen = 1/0/1
                    knx_send = 1/0/1
                    sv_widget = {{ basic.switch('item', 'item') }}
    Es wird in 2 Blöcken dargestellt. Rollläden habe ich auch noch nicht hinbekommen.
    Wo finde ich die richtige Starthilfe?

    Gruß
    Holger

    #2
    Deine conf verwendet den Autogenerator zum Erstellen der html-Seiten.
    In der Kurzanleitung wird bewußt darauf verzichtet auf diesen einzugehen. Steht auch so unter Einführung.
    Da ich diesen auch nicht verwende, kann ich Dir dazu auch nicht viel sagen.
    Aber
    Angenommen Deine *.conf sieht so aus:
    Code:
    [EG]
        [[Windfang]]
            [[[light]]]
                [[[[ceiling]]]]
                    name = Deckenlicht
                    type = bool
                    visu_acl = rw
                    knx_dpt = 1
                    knx_init = 1/0/2
                    knx_listen = 1/0/2
                    knx_send = 1/0/2
                [[[[wall]]]]
                    name = Wandlampe
                    type = bool
                    visu_acl = rw
                    knx_dpt = 1
                    knx_init = 1/0/1
                    knx_listen = 1/0/1
                    knx_send = 1/0/1
    sieht der dazugehörige html-Code z.B. so aus:
    Code:
       <div class="block">
       <div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">
          <div data-role="collapsible" data-collapsed="false">
              <h3>Windfang</h3>
                 <table width=100%>
                   <tr>
                     <td align=left>
                       {{ basic.switch('S1', 'EG.Windfang.light.ceiling', icon1~'light_ceiling_light.png', icon0~'light_ceiling_light.png') }} Decke
                     </td>
                     <td align=left>
                       {{ basic.switch('S2', 'EG.Windfang.light.wall', icon1~'light_wall_1.png', icon0~'light_wall_1.png') }} Wand
                     </td>
                   </tr>
                 </table> 
          </div>
        </div>
        </div>
    siehe:
    smartVISU Kurzanleitung v2.7

    den Beispiel-Code für eine komplette Seite findest Du unter
    smartVISU Kurzanleitung v2.7

    Kommentar


      #3
      Zitat von macflei Beitrag anzeigen
      Deine conf verwendet den Autogenerator zum Erstellen der html-Seiten.
      In der Kurzanleitung wird bewußt darauf verzichtet auf diesen einzugehen. Steht auch so unter Einführung.
      Heisst das, dass man redundant die .conf und den HTML-Code bearbeiten muss?

      Kommentar


        #4
        Zitat von HolgiM Beitrag anzeigen
        Heisst das, dass man redundant die .conf und den HTML-Code bearbeiten muss?
        Kann man, muß man aber nicht. Kommt eben darauf an wie einem die Autogen-Seiten gefallen. Dort wird eben jedes Widget in ein eigenes Fenster gepackt und die Fenster dann auf einer Seite aneinandergereiht.

        Als erstes würde ich mal das "Deckenlicht" hinter dem sv_widget weglassen, das kann nicht klappen.

        Ich persönlich finde das Autogen sehr hilfreich bei der Erstellung von Seiten, insb. wenn es erst einmal um die Funktionstests geht.

        Hierzu gehe ich folgendermaßen vor:
        1. Anlage der Items und des jeweilg gewünschten sv_widget (Wichtig: wenn man mehrere will muß man | als Verknüpfungszeichen verwenden, sprich nur ein sv_widget Aufruf pro item

        2. Das Ergebnis sieht man nach einem Durchpusten des smarthome.py im Verzeichnis pages/smarthome. Die Seiten in dem Verzeichnis werden pro Neustart immer neu generiert. Dort kann ich dann erst mal überhaupt testen, ob alles so tut wie es tun soll, ob Charts richtig generiert werden, Buttons funktionieren usw.

        3. Einmalige Anlage eines eigenen Projektes bzw. Projektverzeichnisses, dort kann man sich nun indiv. Vorlagen bspw. der anderen Beispiele als Basis hineinkopieren oder aber auch die Seiten aus dem smarthome-Verzeichnis als Basis hineinkopieren.

        4. Den durch den Autogen generierten HTML-Widget-Code kopiere ich mir in die Seiten meines Projektes, je nachdem was ich brauche.
        Zusammen mit der Verwendung von 'item' als Platzhalter für den Itemname spare ich mir eine enorme Tipparbeit und kann sauber in der items.conf mit Copy&Paste arbeiten. Wenn man dann noch weiß (Danke an Marcus für den Tipp) dass man hinter 'item' auch noch was anhängen kann (bspw. item_float wird dann zu EG.Wohnzimmer.Licht.schalten_float).

        5. Sobald ein Widget-Codeteil übernommen ist kommentiere ich die Zeile sv_widget mit einem # aus, so dass nach einem Neustart von smarthome.py dieses Widget nicht mehr generiert wird, ich aber andererseits bspw. nach einem Versionsupdate jederzeit durch Entfernung des # wieder meine Default-Autogen-Widgets erzeugen und testen kann.

        Vorteil m.E. an dieser Vorgehensseite: Die Mächtigkeit von Smarthome.py und SmartVisu schlägt nicht auf einmal auf einen herein. Man kann sich mit dem Autogen erst einmal an die Items.conf und die Basis herantasten ohne in die HTML einsteigen zu müssen. Man kann aber im nächsten Schritt zur Designveränderung, wie oben beschrieben, dann das Aussehen unter Zuhilfenahme der genialen KurzDoc, der Beispiele und nicht zu vergessen der GesamtDoku von Martin modifizieren.

        Für mich ein optimaler Zwischenweg der die Fehlersuche va. von Typos enorm vereinfacht, ich in hohem Maße Copy&Paste verwenden kann, schnell Ergebnisse produzieren kann und dennoch wenn gewünscht frei bin in der Wahl eines individuellen Designs.

        Ich hoffe dieses kleine eigene HowTo hiflt Dir etwas weiter.

        Cheers,
        Oliver

        Kommentar


          #5
          Ich bin genau so vorgegangen wie Oliver.

          Zuerst mal alle Seiten bzw. Widgets mittels Autogenerator erstellt. (/pages/smarthome).
          Dann einen neuen Ordner in /pages anlegen und die erste Seite aus /pages/smarthome kopiert.
          Auf der Configseite der Smartvisu ist dann das eigene Verzeichnis auszuwählen.
          Ab dann hat man den Vorteil das man nach einer Änderung der html Files smarthome nicht neu starten muss sondern nur speichern und die visu Seite neu Ladet. Das spart sehr viel Zeit.
          Nachdem ich alle Seiten bearbeitet habe habe ich noch die Navigation.html angepasst und mit der visu.css den background eingestellt.

          MfG rudi

          Kommentar


            #6
            Zitat von Sandman60 Beitrag anzeigen
            Hierzu gehe ich folgendermaßen vor:
            1. Anlage der Items und des jeweilg gewünschten sv_widget (Wichtig: wenn man mehrere will muß man | als Verknüpfungszeichen verwenden, sprich nur ein sv_widget Aufruf pro item
            Bekommt man so mehrere Schalter in einen Block oder geht das nur, indem man die HTLM-Datei editiert?

            Hast du mal ein Beispiel für so eine Verknüpfung mit |?

            Kommentar


              #7
              Zitat von HolgiM Beitrag anzeigen
              Bekommt man so mehrere Schalter in einen Block oder geht das nur, indem man die HTLM-Datei editiert?
              Der Autogen erzeugt pro Widget einen Block. Wenn man mehrere Widgets in einen Block setzen will ist Schritt 5+6 an der Reihe.

              Anfangs habe ich auch gleich alles direkt in einer Seite gemacht und auf den Autogen verzichtet, allerdings war dann im Falle eines Problems immer bei mir die Frage, liegt es an der HTML-Seite oder am Item. Mit dem Autogen kann ich sozusagen erst mal die Funktion sicherstellen und dann in ein Design meiner Wahl übernehmen. Die Ideen für das Design habe ich mir auch auf den zahlreichen Beispielseiten und der Onlinedokus geholt.

              Dadurch konnte ich meine "Hilfe es schaltet nicht Posts" auf Null reduzieren. Ist halt mehr Aufwand, allerdings fühle ich mich damit auch für die zukunft Updatesicher, denn wenn ein größeres Smarthome.py /SmartVisu Update mal ansteht kommentiere ich einfach meine sv_widgets wieder ein und kann meine Tests mit dem Autogen-Design durchführen.
              Ist halt eine Frage der Philosphie und des zus. Aufwand, aber gerade wenn man neu anfängt hilft es m.E. dadurch die Komplexität und Fehleranfälligkeit zu reduzieren.

              Zitat von HolgiM Beitrag anzeigen
              Hast du mal ein Beispiel für so eine Verknüpfung mit |?
              Ja, na klar. Bspw. wenn ich einen Wert sowohl als Float zur textuellen Darstellung haben will als auch in einem Plot. Sieht dann bspw. so bei mir aus für den Stromverbrauch:
              Code:
              sv_widget = {{ plot.period('item_PlotPeriod', 'item', 'avg', '24h') }} | {{ basic.float('item_Float', 'item', 'kW') }}
              Der Vorteil den ich sehe mit dem | ist, dass beide Einträge in der Items.conf eben bei der KNX-Konfig für bspw. dem Stromverbrauch sind.

              Cheers,
              Oliver

              Kommentar


                #8
                Zitat von Sandman60 Beitrag anzeigen
                Ja, na klar. Bspw. wenn ich einen Wert sowohl als Float zur textuellen Darstellung haben will als auch in einem Plot. Sieht dann bspw. so bei mir aus für den Stromverbrauch:
                Code:
                sv_widget = {{ plot.period('item_PlotPeriod', 'item', 'avg', '24h') }} | {{ basic.float('item_Float', 'item', 'kW') }}
                Der Vorteil den ich sehe mit dem | ist, dass beide Einträge in der Items.conf eben bei der KNX-Konfig für bspw. dem Stromverbrauch sind.
                Das ist also die Antwort auf mein fehlerhaftes?
                Code:
                sv_widget = {{ basic.switch('item', 'item', icon1~'light_ceiling_light.png', icon0~'light_ceiling_light.png') }} Deckenlicht

                Kommentar


                  #9
                  Zitat von HolgiM Beitrag anzeigen
                  Das ist also die Antwort auf mein fehlerhaftes?
                  Code:
                  sv_widget = {{ basic.switch('item', 'item', icon1~'light_ceiling_light.png', icon0~'light_ceiling_light.png') }} Deckenlicht
                  ??? Verstehe Deine Frage nicht.

                  Kommentar


                    #10
                    Zitat von Sandman60 Beitrag anzeigen
                    ??? Verstehe Deine Frage nicht.
                    Ich fasse kurz zusammen:

                    - Du hattest weiter oben bemerkt, dass ich das Wort Deckenlicht hinter dem sv_widget entfernen solle und das Pipezeichen kurz angedeutet.
                    - Daraufhin habe ich um ein Beispiel gebeten.
                    - Du hast ein Beispiel gegeben.
                    - Nun möchte ich wissen, ob man das so macht, wenn man das Wort Deckenlicht direkt hinter dem Icon haben möchte. Jedenfalls habe ich dein Beispiel so verstanden.

                    Kommentar


                      #11
                      Nein, das mit dem Deckenlicht klappt so nicht und das hatte ich auch so nicht geschrieben. Mit der Pipe kann man nur versch. widget-commands zusammenfassen. Deckenlicht ist kein Widgetcommand.
                      Dennoch wird das hinten angefügte Deckenlicht IMHO einen Fehler werfen, daher die Empfehlung das zu löschen.

                      BTW:
                      Ich fasse kurz zusammen:
                      Merkwürdiger Schreibstil unter dem Gesichtspunkt das Du etwas von anderen willst und nicht andere etwas von Dir. In Deinem Thread bittest Du um Starthilfe, daher meine ausführliche Ausführung. Von Dir kein Danke oder sonst was derartiges, daher ist bei mir hier EOL.

                      Kommentar


                        #12
                        Zitat von Sandman60 Beitrag anzeigen
                        Nein, das mit dem Deckenlicht klappt so nicht und das hatte ich auch so nicht geschrieben. Mit der Pipe kann man nur versch. widget-commands zusammenfassen. Deckenlicht ist kein Widgetcommand.
                        Dennoch wird das hinten angefügte Deckenlicht IMHO einen Fehler werfen, daher die Empfehlung das zu löschen.

                        BTW:
                        Ich fasse kurz zusammen:
                        Merkwürdiger Schreibstil unter dem Gesichtspunkt das Du etwas von anderen willst und nicht andere etwas von Dir. In Deinem Thread bittest Du um Starthilfe, daher meine ausführliche Ausführung. Von Dir kein Danke oder sonst was derartiges, daher ist bei mir hier EOL.
                        Schade,
                        dass du hier etwas dünnhäutig reagierst. Du hattest meine Frage nicht richtig verstanden und ich habe die Frage noch einmal anders mit der Zusammenfassung formuliert. Das mag vielleicht etwas kühl wirken. Ich bezeichne das als sachlich.

                        Ich hoffe, es wird jetzt nicht als Ironie aufgefasst, wenn ich allen Antwortern sage:
                        DANKE!

                        Kommentar

                        Lädt...
                        X