Ankündigung

Einklappen
Keine Ankündigung bisher.

Initiale item-Konfiguration - Beispiele für erstmaliges Setup

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

    Initiale item-Konfiguration - Beispiele für erstmaliges Setup

    Hallo Zusammen,

    zuerst mal herzlichen Dank für all eure Mühen und Arbeit.

    Ich habe mir gerade das PI Image geladen, und den Core sowie die Demo-Seiten der SV ans laufen bekommen.

    Ich hab jetzt schon etwas auf den einzelnen Doku Seiten herumgesucht, bin aber noch nicht wirklich dahintergekommen, wie ich die einzelnen ITems für meine Konfiguration definiere, und dann weiter nutze.

    Bis auf einzelne Ausschnitte (z.B. RTR-Beispiele, ...) habe ich noch keine wirkliche Auflistung bzw. ein How-To bzw. ein Beispiel gefunden, wie man Items from Scratch definiert. - Hab ich da etwas übersehen bzw. meine Nase nur noch nicht tief genug hineingesteckt?

    Gibt es eine Sammlung von Beispielen bzw. Pattern die den Einstieg erleichtern, und z.B. Grunlegend ein Item für ein Licht, eines für einen Dimmbaren Spot, das andere für RGB-LED's, usw darstellen?

    Vielleicht habt ihr diesbezüglich ja Tipps, wo ich noch suchen könnte, oder aber auch einfach mal eine Beispielkonfiguration finde, wie Ihr eure Items konfiguriert habt. Ich denke daraus kann man dann sicher auch schon etwas heraus-extrahieren.

    Vielleicht gelingt es mir ja auch als kompletter Einsteiger die Basics zusammenzuschreiben, und dann so zu dokumentieren, dass ihr diese vielleicht sogar ins WIKI übernehmen könnt.


    Viele Grüße
    Florian






    #2
    Hallo Florian,

    das sind ziemlich viele Fragen auf einmal. Ich versuche mal ein paar Hinweise und Beispiele zu geben.

    Das Rückrad von smarthomeNG bilden die Items. Jedes Item kann (muss aber nicht) bestimmte Eigenschaften haben. Eigenschaften sind z.B. welcher Datentyp ein Item ist oder wie das Item gelesen oder geschrieben werden kann. Wie welches Item gelesen und geschrieben werden kann, hängt von den installierten Plugins ab.

    Ein kleines Beispiel: Du möchtest eine Lampe über KNX ein- und ausschalten. Dazu brauchst du zwei Schritte:

    1. du installierst/aktivierst das KNX Plugin. Das geschieht in der datei etc/plugins.conf. Typischerweise sieht der entsprechende Eintrag dann so aus
    Code:
    [knx]
       class_name = KNX
       class_path = plugins.knx
       host = 127.0.0.1
    2. Du legst ein Item an, um die Lampe zu schalten. Hierzu legst du eine Datei (mit beliebigem Namen) im Verzeichnis /items an, welche auf die Endung .conf hört, z.B. die Datei /items/Lampen.conf. In dieser Datei legst du nun das Item an. Das geschieht einfach über die eckigen Klammern. Der Inhalt der Datei wäre also:
    Code:
    [Lampe]
    Das ist wenig spannend, denn die Lampe soll ja vielleicht an- und ausgeschalten werden. Der passende Datentyp wäre bool. Damit sieht die Item-Definition wie folgt aus:
    Code:
    [Lampe]
                        type = bool
    Nächster Schritt ist In dem Item anzgeben, dass es über das KNX Plugin verändert werden kann, bzw. Veränderungen am Item auf dem KNX gesendet werden sollen. D.h, das item muss entsprechend erweitert werden. Das sieht dann z.B. so aus:
    Code:
    [Lampe]
                        type = bool
                        knx_dpt = 1
                        knx_listen = 1/1/133
                        knx_send = 1/1/130
    Allerdings kann es jetzt ja sein, dass die Lampe auch dimmbar ist. Dazu musst du ein weiteres Item anlegen. Dazu brauchst du ein neues Item, welches dann so aussieht:
    Code:
    [LampeDimmen]
                        type = num
                        knx_dpt = 5
                        knx_listen = 1/1/134
                        knx_send = 1/1/132
    Allerdings würde das schnell unübersichtlich werden. Daher kann man Items auch schachteln. Items der obersten Ebene werden mit [] deklariert, items der zweiten Ebene mit [[]] items der dritten Ebene mit[[[]]] usw.

    Für das Beispiel mit der Lampe, welche über KNX gesteuert wird könnte man es also so gestalten:
    Code:
            [Lampe]
                    [[schalten]]
                        type = bool
                        knx_dpt = 1
                        knx_listen = 1/1/133
                        knx_send = 1/1/130
                    [[dimmen]]
                        type = num
                        knx_dpt = 5
                        knx_listen = 1/1/134
                        knx_send = 1/1/132

    Um den Überblick zu behalten, halte ich mich an folgendes Schema:
    Code:
    [Stockwerk]
       [[Raum]]
         [[[Gewerk]]]
            [[[[Ort]]]]
                 [[[[[Eigenschaft]]]]]
    Beispiel:
    Code:
    [EG]
        [[Bad]]
             [[[Licht]]]
                [[[[Decke]]]]
                    [[[[[schalten]]]]]
                        type = bool
                        knx_dpt = 1
                        knx_listen = 1/1/133
                        knx_send = 1/1/130
    Ein solches Schema hat den Vorteil, dass man mit *.*.Licht.*.schalten z.B. alle Lampen im Haus ein- oder ausschalten kann.

    Bislang ist das ganze aber immer noch langweilig. Du möchtest nämlich z.B. mittels der smartVisu ein Item verändern. Kein Problem, dazu muss das nur dem Item mitgeteilt werden. Dazu muss das Item nur das entsprechende Attribut bekommen. Im Beispiel mit der Lampe wäre das:
    Code:
            [Lampe]
                    [[schalten]]
                        type = bool
                        knx_dpt = 1
                        knx_listen = 1/1/133
                        knx_send = 1/1/130
                        visu_acl = rw
    Damit das funktioniert, muss das Websocket Plugin aktiviert sein. Hierzu in der /etc/plugin.conf foldenen Eintrag anlegen:
    Code:
    [visu]
        class_name = WebSocket
        class_path = plugins.visu_websocket
    Falls du jetzt auf die Idee kommst, die Lampe auch mittels Dash-Button zu schalten, muss das Item einfach noch um das Dash-Button Attribut erweitert werden:
    Code:
            [Lampe]
                    [[schalten]]
                        type = bool
                        knx_dpt = 1
                        knx_listen = 1/1/133
                        knx_send = 1/1/130
                        visu_acl = rw
                        dashbutton_mac =  AC:63:B0:02:CA:12
                        dashbutton_mode = 'flip'
    D.h. man kann die Lampe nun via KNX, SmartVisu oder Dashbutton ein- und ausschalten. Aber auch hier gilt: Funktioniert nur, wenn das dashbutton plugin in der /etc/plugin.conf aktiviert ist.

    Wie man die verschiedenen Plugins in der /etc/plugin.conf konfiguriert, steht in der Doku. Auch wie die Attribute in den Items gesetzt werdne müssen, ist für jedes Plugin in der Doku zu finden.

    Gruß, Daniel
    Zuletzt geändert von dafra; 11.11.2016, 22:13.

    Kommentar


      #3
      Hallo Daniel,

      Wow, herzlichen Dank für deine Mühen und die ausgezeichnete Erklärung

      Du hast mir wirklich sehr geholfen - sodass ich gerade eben das erste Licht schalten, bzw sogar schon die ersten LED's über die SV dimmen kann!
      den Dash-button finde ich auch interessant - davon hab ich bis dato noch gar nichts wahrgenommen, dass der auch umfunktioniert werden kann - soweit werde ich aber erstmal wohl nicht gehen - aber wer weiß, was noch kommt

      Morgen geht es dann vermutlich an die weitere Struktur sowie die ersten RTR-Gehversuche und Daten-Plots.

      Schönen Abend und schönes Wochenende wünsche ich dir.

      Viele Grüße
      Florian


      Kommentar


        #4
        Super Beitrag.
        Florian du hast ja zurecht sind die Dokumentation kritisiert. Vielleicht könntest du den Beitrag von oben ja in das smarthome-ng Wiki übertragen und zwar an der Stelle wo du zuerst gesucht hättest.

        Kommentar


          #5
          henfri ja wollte ich auch schon vorschlagen. notfall mach ich es, aber ich programmiere schon so viel und "vollbesetzt" sind wir derzeit in der hauptmannschaft auch nicht. ich versuche lieber endlich eine der DB schichten gemeinsam mit den entwicklern für die 1.3 bugfrei zu kriegen

          Kommentar


            #6
            Zitat von psilo Beitrag anzeigen
            henfri ja wollte ich auch schon vorschlagen. notfall mach ich es, aber ich programmiere schon so viel und "vollbesetzt" sind wir derzeit in der hauptmannschaft auch nicht. ich versuche lieber endlich eine der DB schichten gemeinsam mit den entwicklern für die 1.3 bugfrei zu kriegen
            Passt doch. So ergänzen wir uns alle gut!

            Kommentar


              #7
              So, die obigen Infos zur Erstkonfiguration von Daniel dafra habe ich unter Initiale_Item-Konfiguration mal ins wiki eingestellt.

              Kommentar


                #8
                Hallo bmx,
                ich habe mir erlaubt, in Initiale_Item-Konfiguration "*.*.Licht.*.schalten" zu editieren. Es fehlten die ersten Sterne, weil die Eingabe nicht als Code ausgeführt wurde. Leider habe ich viele Versuche benötigt, um es jetzt richtig zu Editieren. Ich weiß auch nicht, wie ich meine "Fehlversuche" nachträglich löschen kann.
                Gruß Hans

                Kommentar

                Lädt...
                X