Ankündigung

Einklappen
Keine Ankündigung bisher.

Suche Beispiele für knx.things

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

    Suche Beispiele für knx.things

    Hallo zusammen!

    ich bin auf der Suche nach Beispielen aus der Praxis für einen sinnvollen Aufbau der knx.things. Wie habt ihr das strukturiert? Wie bzw. nach welchem Schema benennt ihr eure Devices? Nach welchem Schema benennt ihr die Channels dieser Devices usw.?

    Toll wäre es, wenn ihr eure knx.things oder zumindest Teile daraus hier vorstellen könntet.

    Würde mich freuen.

    Vielen Dank und Gruß
    thoern


    #2
    Ich habe meine knx Installation auf Things-Seite nach Devices getrennt definiert.
    Das entspricht weitgehend der Doku. Da ich meine GA auch mit System aufgebaut habe, konnte ich beim Anlegen große Teile durch Copy&Paste und anschließenden minimalen Änderungen erreichen. Beispiel:
    Code:
     Thing device hagerDim1_1_6 "DimmerBlock 2" @ "KNX" [
          address="1.1.6",
          fetch=false,
          pingInterval=600,
          readInterval=0
        ] {
              Type dimmer : ch1 "Eltern Sterne" [ switch="8/5/10",position="5.001:8/5/12+<8/5/17" ]
              Type dimmer : ch2 "Küche Decke" [ switch="4/5/0" ,position="5.001:4/5/2+<4/5/7" ]
            //Type dimmer : ch3 "Dimmer 3" [ switch="3/5/10",position="3/5/12+<3/5/17" ]
      }
    Es handelt sich um einen Hager Dimmaktor mit 3 Kanälen.

    Meine GA sind nach folgendem Schema angelegt: <Raum>/Funktion/Nummer(von KO abgeleitet)
    Die Küche hat beispielsweise die 4, Dimmer sind als Funktion 5 angelegt und ich habe in der Küche nur einen Dimmer. Damit hat der Dimmer die GA 4/5/0 für Ein/Aus, 4/5/2 für Absolutwert setzen und 4/5/7 für Absolutwert Status. Im Thing steht also

    Damit ergibt sich als Item:
    Code:
     Dimmer KuecheDecke "Küche Decke" (GLights,GDimmer) {channel="knx:device:bridge:hagerDim1_1_6:ch2",autoupdate="false"}
    Das habe ich so komplett durchgezogen. Things bilden die Hardware nach, Items abstrahieren sie.

    Kommentar


      #3
      Vielen Dank für dein Beispiel. Baue meine Konfig gerade auf und mache das nahezu genauso wie du. Eine Sisyphus-Arbeit ist das mit den ganzen Things und Channels.

      Kommentar


        #4
        Ich habe nur 1 Thing, im dem alle Channels drin sind. Es gibt keinen Mehrwert, wenn man alle Geräte als Things anlegt.

        Kommentar


          #5
          Zitat von crazyfx Beitrag anzeigen
          Es gibt keinen Mehrwert, wenn man alle Geräte als Things anlegt.
          Das ist aber schon Ansichtssache. Ich sehe bei mir den online Status jedes Devices. Die Channel sind hierarchisch geordnet, abgestuft nach Systemen, Bussen, Devices und deren Channel, das ist mir das bisschen Mehrarbeit wert.

          Obwohl ich das schon an anderer Stelle erwähnt habe: Mit VSCode und dem Plugin für openHAB, ist es wirklich angenehm, die Konfiguration über Textdateien zu erstellen. gleichartige Sequenzen der Konfiguration lassen sich bequem kopieren, gezieltes mehrzeiliges Bearbeiten der Einträge, aber vor allem das automatisierte massenhafte Anlegen zugehöriger Items und Einträge in der Sitemap oder auch die Codesnippets in den Rules machen die Arbeit wirklich einfacher.

          Die Konfiguration ist durch die Things umfangreicher geworden, aber dadurch ist die Trennung zwischen Hardware und Software auch klarer.

          Kommentar


            #6
            Hallo zusammen,

            ich habe meine Things pro Raum aufgebaut. Das sieht dann z.B. so aus:
            Code:
            Thing device EG_Kueche [
            fetch=true,
            pingInterval=300,
            readInterval=3600
            ] {
            Type switch : EG_Kueche_Schrank "Light" [ ga="1/1/3+<1/4/3" ]
            Type switch : EG_Kueche_Band "Light" [ ga="1/1/1+<1/4/1" ]
            Type dimmer : EG_Kueche_Insel "Dimmer" [ switch="1/1/0+<1/4/0", position="1/3/0", increaseDecrease="1/2/0" ]
            Type rollershutter : EG_Kueche_RL1 "Shade" [ upDown="2/2/1", stopMove="2/1/1", position="2/4/1+<2/5/1" ]
            Type rollershutter : EG_Kueche_RL2 "Shade" [ upDown="2/2/2", stopMove="2/1/2", position="2/4/2+<2/5/2" ]
            }
            Thing device EG_EZ [
            fetch=true,
            pingInterval=300,
            readInterval=3600
            ] {
            Type dimmer : EG_EZ_Lampe "Light" [ switch="1/1/4+<1/4/4", position="1/3/4+<1/5/4", increaseDecrease="1/2/4" ]
            Type rollershutter : EG_EZ_Rollo "Shade" [ upDown="2/2/3", stopMove="2/1/3", position="2/4/3+<2/5/3" ]
            }
            Die passenden Items sehen dann so aus:
            Code:
            // Küche
            Switch EG_Kueche_Schrank "Küchenschrank" (gKueche) ["Lighting"] { channel="knx:device:bridge:EG_Kueche:EG_Kueche_Schrank" }
            Switch EG_Kueche_Band "Küchenband" (gKueche) ["Lighting"] { channel="knx:device:bridge:EG_Kueche:EG_Kueche_Band" }
            Dimmer EG_Kueche_Insel "Küche [%d %%]" (gKueche) ["Lighting"] { channel="knx:device:bridge:EG_Kueche:EG_Kueche_Insel" }
            Rollershutter EG_Kueche_RL1 "Küche Rollladen [%d %%]" ["Lighting"] { channel="knx:device:bridge:EG_Kueche:EG_Kueche_RL1" }
            Rollershutter EG_Kueche_RL2 "Küchentür Rollladen [%d %%]" ["Lighting"] { channel="knx:device:bridge:EG_Kueche:EG_Kueche_RL2" }
            // Esszimmer
            Dimmer EG_EZ_Lampe "Esszimmer [%d %%]" (gEZ) ["Lighting"] { channel="knx:device:bridge:EG_EZ:EG_EZ_Lampe" }
            Rollershutter EG_EZ_Rollo "Esszimmer Rollladen [%d %%]" ["Lighting"] { channel="knx:device:bridge:EG_EZ:EG_EZ_Rollo" }

            Kommentar


              #7
              Allerdings kannst und solltest Du die Parameter fetch und pingInterval weg lassen, da sie ohnehin ignoriert werden (address nicht gesetzt)

              Kommentar


                #8
                Hallo zusammen,
                Ich glaube ich stehe auf dem Schlauch oder habe noch ein grundsätzliches Vertständnisproblem.

                Meine things Datei sieht so aus:
                Bridge knx:ip:bridge [
                ipAddress="192.168.178.99",
                portNumber=3671,
                localIp="192.168.178.21",
                type="TUNNEL",
                readingPause=50,
                responseTimeout=10,
                readRetriesLimit=3,
                autoReconnectPeriod=1,
                localSourceAddr="0.0.0"
                ]
                {
                Thing device generic [
                address="0.0.0",
                fetch=false,
                pingInterval=300,
                readInterval=3600
                ] {
                Typeswitch: light_buero "light_buero" [ ga="3/1/0" ]
                Typeswitch: light_esszimmer "light_esszimmer" [ ga="2/1/1" ]
                }
                }

                Und meine items so:
                Switch light_buero "Büro"<light> { channel="knx:device:bridge:generic:light_buero" }
                Switch light_esszimmer "Esszimmer"<light> { channel="knx:device:bridge:generic:light_esszimmer" }


                Jetzt hab ich leider das folgende Problem:
                Wenn ich das Esszimmer Licht über die Openhab App einschalte, dann geht das Esszimmer Licht und auch das Büro Licht an.
                Wenn ich das Büro Licht einschalte dann geht nur das Büro Licht an und das ist auch gut so.

                Warum gehen in meinem Fall das Esszimmer und das Büro Licht gleichzeitig an?

                Danke schon mal für einen Hinweis.


                Kommentar


                  #9
                  Sorry für die Verwirrung.... mein Problem was nach einem Neustart plötzlich verschwunden.
                  Funktioniert alles ohne Probleme.

                  Kommentar


                    #10
                    Hallo zusammen,

                    bitte noch einmal für Dummies wie mich.

                    welche Vorteile habe ich, wenn ich die Things alle manuell anlege und dann trotzdem noch items benötige? Das ist doch dann doppelt??
                    OK, ich habe auch einige Things (z.B. Gardena Binding) die aber von den Bindings auch gefunden wurden und ich diese halt manuell angelegt habe um einen besseren Überblick zu behalten.

                    aber warum Things und Items??

                    viele Grüße,
                    Jörg

                    Kommentar


                      #11
                      Die Things sind eine Abstraktionsschicht innerhalb openHAB.

                      Früher musstest Du Hardware über die openhab.cfg definieren, oft gab es keine Möglichkeit, ein Binding mehrfach zu verwenden, da dies explizit vorgesehen sein musste.
                      Anschließend musstest Du Hardwareinformationen in die Items konfigurieren.

                      Jetzt wird die Hardware im Thing definiert (eine Bridge ist auch nur ein Thing), jedes Binding kann beliebig oft verwendet werden, die Abstraktion geschieht im Thing. Es bleiben also nur noch Channel, die auf die Items abgebildet werden müssen.

                      Das mag für den Anwender erst mal wie unnötige Zusatzarbeit aussehen, aus Programmierersicht wird damit aber vieles leichter, und an einigen Stellen werden Dinge erst möglich, z.B. Autokonfiguration und Autodiscovery wären ohne Things gar nicht möglich.

                      Verwende zum bearbeiten der Textdateien VSCode, der nimmt Dir 90% der Arbeit ab (z.B. kann man mit 3 Klicks für alle Channel eines Things auf einen Schlag Items erzeugen - und das Ergebnis ist besser als man es sich erhoffen würde).

                      Kommentar

                      Lädt...
                      X