Ankündigung

Einklappen
Keine Ankündigung bisher.

KNX inkl. Geräte in openhabian konfigurieren

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

    #16
    Es ist tatsächlich gleichgültig, ob man per knx.things (nur die Dateiendung ist wichtig) oder über Paper UI Brigde und Things anlegt. Wichtig ist aber, dass man die richtigen Dinge einträgt
    Ein Device (oder in openHAB-Sprech Thing) hat keine Gruppenadresse, sondern eine physikalische Adresse. Man kann die beiden an der Schreibweise unterscheiden:
    Code:
    0.1.1 <- physikalische Adresse eines Devices
    1/1/1 <- Gruppenadresse
    Die physikalische Adresse ist hier schön beschrieben: https://support.knx.org/hc/de/articl...lische-Adresse und natürlich ist diese Adresse im gesamten knx-Bus einmalig, alle Devices innerhalb einer Linie unterscheiden sich nur im letzten Oktett voneinander.

    Unterhalb eines Thing kann man dann mehrere Channel anlegen, wobei die Priorität immer bei den Aktoren und Sensoren liegen sollte, sprich, zuerst definiere ich die Channel der Aktoren (Schalter, Dimmer, Rollläden, Heizung...) und Sensoren (Temperatur, Bewegung falls unabhängig von einem Schaltaktor...), danach definiere ich die Channel, zu denen es keine Hardware im Bussystem gibt, die den Hut aufhaben könnte.
    Zum Beispiel könnte man auf eine Uhr am knx-Bus verzichten, denn openHAB kann die Uhrzeit zur Verfügung stellen.
    Ich erstelle für diesen Fall ein virtuelles Thing (also eines, zu dem es keine echte Hardware gibt) - logischerweise ohne physikalische Adresse - mit lauter -control Channels, z.B. datetime-control. Auf diesem Channel kann openHAB dann die Uhrzeit (und/oder das Datum, je nach DPT) auf den Bus senden. Auch Szenen sind dafür Kandidaten, da es normalerweise kein Device gibt, welches sich merkt, welche Szene gerade aktiv ist.
    Code:
    Thing device Virtuell "virtuelle" @ "KNX" [
        ] {
        Type number-control   : scene1     "Lichtszene"   [ ga="17.001:3/0/0" ]
        Type datetime-control : wochenzeit "Zeit und Tag" [ ga="10.001:15/7/10" ]
        Type datetime-control : datum      "Datum"        [ ga="11.001:15/7/11" ]
        Type datetime-control : zeit       "Zeit"         [ ga="19.001:15/7/19" ]
        }
    Ich gebe hier immer die Schreibweise der knx.things Datei wieder, aber die Einträge können exakt so auch über Paper UI vorgenommen werden (Thing anlegen, anschließend unterhalb des Thing die Channel anlegen)
    Damit dann die Uhrzeit auf den Bus kommt, braucht es ein ntp-Thing (das kann man mehr oder weniger vollautomatisch hinzufügen lassen) und eine Verlinkung über ein Item:
    Code:
    DateTime Buszeit "Zeit und Tag" {channel="knx:device:bridge:Virtuell:wochenzeit",channel="ntp:ntp:home:dateTime"}
    Auch das Anlegen dieser Links kann man (solange man in der OH2-Welt bleibt) über Paper UI erledigen.

    Allerdings möchte ich an dieser Stelle ganz laut Werbung für VSCode machen. VSCode ist ein OpenSource Editor mit jeder Menge Plugins, über die man sich seine eigene Entwicklungsumgebung zusammenstellen kann. Eines dieser Plugins heißt openHAB 0.3.5, und das bietet allen Komfort, den man sich wünschen kann, inklusive Syntaxprüfung, Autocompletion, Kontextmenüs, interaktive Listen der Things, Channels und Items, automatischer Codeerzeugung (z.B. für alle Channels eines Things Items erzeugen), Links zur Online-Dokumentation, Codeschnipsel...
    Mit VSCode kann man nun sehr bequem den Code bearbeiten, wenn man sich an einige Regeln hält (es läuft darauf hinaus, Things und Items streng zu strukturieren und dies in den Dateien auch fortzuführen). Zum Beispiel ist es möglich mehrere Zeilen gleichzeitig zu bearbeiten! Man stelle sich vor, man hat 15 Items, die passenderweise untereinander in der gleichen items-Datei stehen, und möchte bei all diesen Items die gleiche Gruppe hinzufügen. Cursor in die erste Zeile, <strg>+<alt>+<shift> gedrückt halten, Cursor nach unten bewegen, Tasten loslassen, Cursor an die richtige Stelle bewegen, Gruppe einmal schreiben, <ESC> drücken, fertig.
    Das ist auch super, wenn man mehrere Geräte des selben Typs hat, die sich nur durch Details unterscheiden. Einmal den Definitionsblock anlegen, Kopieren, Details je Block anpassen, fertig.

    Solange es nur um ein oder zwei Items oder Things geht, ist Paper UI super, wenn das Projekt größer wird (und das wird es...) sind Textdateien wesentlich effizienter.

    Spätestens für die UI (Ausnahme HABmin) muss dann eh ein Editor her, da Sitemaps (notwendig für Classic/Basic UI, Habdroid und iOS Client) bisher nicht mit Paper UI erstellt werden können.

    VSCode bietet übrigens auch ein Plugin, um sich mit git zu verbinden, es gibt Leute, die darüber ihre Konfiguration samt automatischer Versionierung pflegen. Wenn man mit git vertraut ist ist das eine weitere super Funktion.
    Zuletzt geändert von udo1toni; 09.07.2018, 18:08.

    Kommentar


      #17
      Sehr ausführliche, verständliche Antwort! Ich konnte mir noch einige Tipps mitnehmen

      Kommentar

      Lädt...
      X