Kommunikationsobjekte Homeserver

Kommunikationsobjekte, sogenannte Gruppenadressen sind vielen ein Begriff aus der KNX Technik. Hier werden die Sensoren mit den Aktoren verbunden. 

 

Für viele ist das zuerst ein Hexenwerk. Hat man sich aber mit der ETS vertraut gemacht, ist es für die meisten Anwender kein Problem, diese Verbindungen ordentlich zu meistern.

 

Maximal können 65535 Adressen vergeben werden. Das reicht normal nicht nur für kleinere Gebäude sondern auch für ganze Liegenschaften oder auch Produktionsstätten aus. 

 

Man kann hier eine freie Adressstruktur wählen oder mit 2 oder 3 stufigen Gruppenadressen arbeiten. 

 

Der Homeserver geht hier noch einen ganzen Schritt weiter. 

Er kann sowohl auf die Gruppenadressen der ETS zugreifen, die man vorher importiert, aber auch eigene Adressen verwalten. 

 

Jedoch ist er nicht auf eine numerische Benennung bei der Anlage / Verwaltung intern angewiesen. Man kann zwar hier Adressen vergeben, jedoch geht das auch ohne diesen Schritt.

 

Das Gute hier ist: Es gibt kaum ein Limit. Grade für größere Projekte macht es hier Sinn, einen Homeserver einzusetzen.

 

Wie das funktioniert, wird in diesen Artikel behandelt. Ausserdem erzähl ich Euch in einem Zwischenartikel, wie mir der Homeserver da überhaupt geholfen hat und was der Einstieg in die KNX Welt war.


Obige Abbildung zeigt die internen Kommunikationsobjekte (KO's) im Experten des Homeservers


Vorgeschichte

Als ich mein Haus 2006 fertig gestellt hatte, stand ich vor der Problematik, das ich die KNX Installation nicht programmieren konnte. Abgesehen davon, das ich mir einen neuen Elektriker suchen musste, weil der vorige Elektriker Mist gebaut hatte, war am Anfang erst eine Rekonstruktion der Anlage nötig, da der alte Elektriker das Projekt "verschlampt" hatte.

 

Worst Case. Also erstmal die Geräte rekonstruieren. Dies führte mein neuer Elektriker durch. Zu der Zeit kam der Homeserver 3 raus, und ich wollte das Gerät einsetzen, um möglichst einfach das Haus mit meinem Handy bedienen zu können. Also besorgte ich mir den Homeserver, musste mir aber alle Schritte mit der mitgelieferten Software, dem Experten und der Hilfe des Experten selbst beibringen.

 

Da ich wie gesagt selbst keine Ahnung von der ETS hatte, und diese auch nicht einfach so mal schnell erlernen konnte, erklärte ich meinem Elektriker die Situation.

Er schlug mir damals vor, in der ETS Gruppenadressen anzulegen, die ich dann einfach im Homeserver importieren kann, die jedoch keinem Gerät zugeordnet sind.

 

Über diese Platzhalter, sogenannte Dummys konnte ich dann die Schalthandlungen abbilden, die ich für nötig erachtete. 

 

Grade die internen Kommunikationsobjekte im Homeserver nutzte ich dabei sehr und das war auch eine gute Schule. Später brachte mir mein Elektriker die ETS bei und war somit mein erster KNX Teacher. Hierfür nochmals ein dickes Dankeschön! Mittlerweile programmier ich schon über 10 Jahre in der ETS, bin zertifiziert und gehe die Projekte heute mit anderen Sichtweisen an.

 

Klar kann man den Homeserver mit seinen Kommunikationsobjekten so weit trimmen, das man im Prinzip mit einer minimal eingesetzten ETS arbeitet. Doch nehme ich davon in kleineren bis mittleren Objekten Abstand. Eine Installation sollte zuerst ohne Server funktionieren und dann um einen ergänzt werden, wenn das gewünscht ist.



Kommunikationsobjekte Arbeitsweise

Wie interne Kommunikationsobjekte angelegt und benutzt werden, habe ich schon grob im Hauptartikel des Homeservers gezeigt. Hier gehe ich darauf näher ein, befasse mich aber zuerst mit ein paar kurzen Beispielen der Anlage und Vorbereitendes Denken, was später im Artikel erklärt wird.

 

Wenn wir die Oberfläche der Kommunikationsobjekte aufrufen, ergibt sich die schon oben gezeigte Hauptansicht, welche 3 Reiter aufzeigt:

 

INTERN, KNX, SUCHE

 

Wechselt man vom Reiter INTERN auf KNX, so erscheint das ausgegraute Feld Importieren klickbar. Hiermit lassen sich aus der ETS, nach erfolgreichen Export die Kommunikationsobjekte der ETS einlesen. Diese stehen dann im Reiter KNX zur Verfügung.

 

Ich springe hier gleich mal zu einer Lampengruppe im Hobbyraum/Büro im Keller und markiere den Wert, wie im untenstehenden Bild aufgezeigt.

Wir sehen hier den markierten Helligkeitswert und darunter liegend den Datentyp. Obwohl er hier ein 8 Bit Wert ist / DPT 5.001, kann man hier im Reiter den Wert verändern. Zum Beispiel in RTR Status. Manchmal muss man zu solchen Mitteln greifen. Ich möchte das hier nur aufgezeigt haben und greife es gleich wieder auf.

 

Ich kann hier auch gleich einen INIT WERT hinterlegen. Jedesmal wenn der Server startet, kann hier ein Initialwert / Startwert vorgegeben werden. 

 

Mit Minimal und Maximal-Wert begrenzt man den Wertbereich.

 

Mit Schrittgröße und Liste stelle ich das Verhalten der Gruppenadresse unabhängig von der ETS ein. Hier kann ich zum Beispiel die Schrittgrößen der Dimmstufen der Lampe einstellen, zum Beispiel nur 20%, dann direkt 50% beim nächsten Dimmen u.s.w.

 

Solche Dinge sind in der ETS nur schwer, manchmal je nach verwendeten Gerät gar nicht zu bewerkstelligen.


Springen wir hier kurz zurück zum Feld Kommunikationsobjekt rematent speichern. Es ist hier möglich, den letzten Zustand des Objekts in den Speicher des Homeservers zu laden. Dies geschieht, wenn der Homeserver neu startet. Bei aktivierter Box schreibt er entweder in seinen internen Speicher oder auf einen ausgelagerten Speicher wie einem FTP Server die Daten, und liest sie beim Starten wieder aus. Wenn der Server nicht über eine unterbrechungsfreie Stromversorgung läuft, sind diese Daten allerdings verloren. Grade bei kritischen Systemen, wo man auf diese Daten angewiesen ist, empfiehlt es sich, eine USV einzusetzen. Das betrifft auch den entsprechenden FTP Speicher, es sei denn, man hat diesen im Internet ausgelagert, wovon ich allerdings abrate.

Ein weiteres Feld, was hier im Zusammenhang steht ist die Box "beim Starten abfragen". Hier versucht der Server beim Neustart das Kommunikationsobjekt auszulesen. Nehmen wir mal an, Eure Beschattung speichert im Aktor die Werte der Beschattung. Beim Neustart kann man diese dann auslesen. Ziel ist es hier, das die nachgelagerte Visualisierung dann die exakten Werte hat. Das macht auch Sinn bei Prozessen, wenn zum Beispiel Geräte sicher gesteuert werden müssen. 

 

Allerdings sei hier bemerkt, das der Homeserver beim Starten das Objekt ausliest, und wenn dieses ausgefallen ist, verzögert sich der Start. Bei vielen Objekten kann das dann eine Ewigkeit dauern. Also überlegt, was Ihr hier anklickt und ob Ihr den Objektwert beim Start braucht.



Interne Kommunikationsobjekte

Wechseln wir nun vom Reiter KNX (KO's) zu Intern (KO's). Hier richten wir zuerst einmal den Blick auf die Übersicht der schon vorhandenen KO's, die uns zu Verfügung stehen. Diese sieht man dann in der Liste weiter unterhalb, wie in untenstehenden Bild aufgezeigt.

 

Wir sehen uns den Ordner SYSTEM näher an. Dieser beherbergt viele relevanten Dinge, und sollte in der Regel nicht angetastet werden.

 

Hier werden Dinge wie das TKS Gateway hinterlegt als auch Urlaubskalender und einzelne diverse Gruppenadressen, die der Server benötigt. Diese werden bei Übertragung des Projektes in den Server immer auf's neue hier geschrieben und beim Starten gelesen.

 

Wichtig hier ist zum Beispiel das Objekt: 

 

SYSTEM (nach Start immer 1). 

 

Wir klicken nun mal auf dieses 1 Bit Objekt.

Wir sehen das der Init Wert hier bei frisch aufgesetzten Server auf 0 steht. Für spätere Logikblätter, die einhergehen mit dem Startverhalten des Servers, erinnert Euch bitte immer an dieses Objekt. 

 

Es kann zum Beispiel sein, das Ihr irgendwie eine Beschattungssequenz installiert habt, und dieses Objekt auf 1 statt 0 gesetzt habt. Dann fahren bei Neustart die Beschattungsobjekte immer wieder auf eine Stellung, die Ihr nicht wollt. 

 

Mir ist mal so was passiert, als ich eine spezielle Sequenz für die Putzfrau angelegt hatte. Jedesmal wenn der Server neu startete, hat er ne Logik angetriggert und alle Raffstores sind hoch gefahren. 

 

Ihr seht weiter, das hier das Kommunikationsobjekt 

 

100/0/1 hinterlegt ist. Ich lasse diesen Bereich so, damit wir übersichtlich weiter arbeiten können. Doch was hat es damit auf sich?


Wie ich schon erwähnt habe, kann der Homeserver die internen Kommunikationsobjekte selbst verwalten. Man kann bei der Anlage der Kommunikationsobjekte das Feld Gruppenadresse leer lassen. Man kann allerdings hier auch Gruppenadressen vergeben. 

 

Hier kann man selbst Werte eintragen und diese dann in der KNX Installation mitbenutzen, oder man vergibt Gruppenadressen automatisch mit dem Experten. Hierfür wechselt man in die obere Taskleiste, klickt dort auf EXTRAS und klickt im Dropdown Menü auf Gruppenadressen vergeben.

 

Der Server nummeriert dann selbständig diese Adressen durch. Das Gleiche funktioniert auch umgekehrt. Man kann die Adressen auch wieder entfernen. Auf die Arbeitsweise des Homeservers hat das zuerst keinen Einfluss; übernimmt man diese Gruppenadressen aber in eine Bestehende ETS, um zum Beispiel errechnete Werte auf ein Display anzeigen zu lassen, muss man diese wiederum neu zuordnen.

In früheren Versionen des Homeservers musste man sich sogenannter Dummies bedienen, um diese Werte dann in die ETS zu bringen. 

 

Mit Aufkommen der IP Kommunikation mit Hilfe der IP Router ist dies nicht mehr nötig, erfordert allerdings etwas Einarbeitungszeit.

 

Ich rate Euch sowohl die Hilfe des IP Routers, als auch die Hilfe des Experten hierfür zu Rate zu ziehen. 

 

Ich werde in einem weiteren Artikel hierauf detaillierter eingehen, fahre hier allerdings mit der Anlage von internen Objekten fort um Euch die weitere Vorgehensweise zu beschreiben, die ich mir antrainiert habe.

 

Weiter gehts hierfür mit dem nächsten Abschnitt.



Anlage von Ordnern und Objekten in einem Beispiel

Wenn Ihr bei späteren Arbeiten mit dem Homeserver diese Kommunikationsobjekte einsetzen musst, ist es von Vorteil, eine gewisse Struktur zu wahren.

 

Aus anderen Beispielen auf meiner Website, wie zum Beispiel den Gruppenadressen in der ETS, verwende ich zum einen die Zahl 0 die ich sehr bedacht einsetze. Ebenso arbeite ich in vielen Fällen mit Platzhaltern in der ETS. Das ist hier in den Internen KO's nicht anders.

 

Zuerst wollen wir eine ordentliche Ordnerstruktur. Hierfür klickt Ihr mit der Rechten Maustaste direkt auf das Haus mit den Internen Objekten. Über das Kontextmenü legt Ihr einen Testordner an. 

Anschließend klickt Ihr wiederum mit der rechten Maustaste auf diesen Testordner, und legt einen Ordner EINGANG an. Nun legt Ihr auch einen Ordner AUSGANG nach dem selben Schema an.

 

Ihr könnt jetzt endweder weitermachen, und mit dem gleichen Schema ebenso Gruppenadressen hier für eingehende und ausgehende Objekte anlegen, die Ihr später zum Beispiel für den Logikeditor weiterbenutzt. Doch dazu gleich mehr. Solltet Ihr nun erstmal das Fenster schließen wollen vergeßt nicht, einmal im Hauptmenü zwischenzuspeichern. 

 

Wird das vergessen ist Eure bisher geleistete Arbeit futsch. Das gilt übrigens auch für die Gruppenadressen, die Ihr hier anlegen wolltet.


Gruppenadressen anlegen

Nun kommen wir zu dem, was ich vorhin schon angesprochen hatte. Die Anlage der internen Gruppenadressen mit etwas System.

 

Hierzu geht einfach mal auf den Eingangsordner, den wir angelegt haben. Wiederum mit einem Rechtsklick legt Ihr nun ein KO an. Nehmt einfach mal das was vorgegeben ist: einen 1 Bit Wert. Legt gleich 3 KO's mit ein Bit dann an. Benennt diese aber unterschiedlich.

Genauso verfährt Ihr nun im Ausgangsordner. Legt auch hier 3 KO Objekte mit 1 Bit an und benennt diese unterschiedlich.

 

Habt Ihr das abgeschlossen, speichert mal ruhig ab. Anschließend habt Ihr folgende Situation: Es wird alphabetisch und numerisch sortiert. 

 

Das ist in einem gewissen Maße ein Problem, welches gleich wie folgt erklärt und gelöst wird.


Sortierung

Die numerische und alphabetische Sortierung mag zwar auf den ersten Blick nicht problematisch erscheinen, doch tut sie es, wenn man intensiv mit den KO's arbeitet. 

 

Gerade im Fall eines Fehlers muss man sonst ewig suchen, und im Falle eines folgenden großen Logikbaustein's oder Logiken, die sich über mehrere Logikblätter erstrecken, ist eine Nachverfolgung des Objekts sehr aufwändig und schwehr. 

 

Ich gehe ich folgend vor. Ich benenne das Objekt, wenn es zum Beispiel zum Eingang eines Logikbausteins geführt wird, mit E01 oder größer:

 

Ein Beispiel: 

 

  • E01   LIZENZTEXT
  • E02   START/STOPP
  • E03   RESET
  • E04   UMGERECHNETER WINDWERT

Für die Ausgangsobjekte nehme ich dann

 

  • A01    AKTIVE LIZENZ
  • A02    STATUS PLAYER
  • A03    STATUS RESET
  • A04    WERT UMGERECHNET

Wenn Ihr so verfährt, hab Ihr weniger Arbeit bei den Verknüpfungen und weniger Arbeit beim Suchen, wenn eventuell mal ein Fehler eingeschlichen ist.

 

Wenn ich zum Beispiel aus dem Ausgangsergebnis den Wert wiederum für einen anderen Logikbaustein vielleicht sogar auf einem weiteren Logikblatt verwende, lege ich hier einen zusätzlichen Ausgangsordner an, und schreibe in die Beschreibung des Logikblatt's auch rein, wie es sich mit den Eingangswerten verhält / wo diese herkommen.

 

Dann fällt die suche einfacher. Doch zuerst schauen wir uns doch mal die Übersicht im TESTORDNER / EINGANG / AUSGANG an.


Ihr seht, mit der Vorgehensweise habt Ihr direkt mal mehr Ordnung und dann fällt es auch einfacher zu Arbeiten. Im unteren Bild nehme ich gleich nochmals das ebige Thema der Ordner unter Ordner Struktur auf; beispielsweise an einem Ausgangsordner und warum ich das so mache.

 

Vorher möchte ich Euch allerdings eine "hübsche" Funktion ans Herz legen: Kopieren. Jetzt habt Ihr Euch so Eingang und Ausgangsordner angelegt und müsstet ja wiederum Ordner und Objekte neu anlegen. 

 

Was für ne sch.... Arbeit. Stellt Euch vor, Ihr habt hier einen Logikbaustein wie der große Sonos Baustein, und müsst schon wieder alle Kommunikationsobjekte anlegen, benennen, und auch noch schauen, ob die Werte passen.

Zugegeben...am Anfang hab ich das so gemacht, wie ich noch nicht mit allen Funktionen vertraut war....

 

Ihr könnt das nun einfacher machen. Klickt hierzu mal auf den Ausgangsordner mit der rechten Maustaste. Kopiert diesen mit dem Kontextmenü. Dann geht Ihr wiederum mit der rechten Maustaste auf den übergeordneten Ordner und wählt dort Einfügen aus. Anschließend könnt Ihr erneut mit der rechten Maustaste den Ordner umbenennen.

 

Das spart hier jede Menge Zeit. Ich gehe bei der Anlage der Kommunikationsobjekte auch noch nen Schritt weiter, den ich Euch nach der unteren Bildergalerie vorstelle.


Mit Systematik die KO's anlegen und einen Masterordner verwenden

Wenn man sich im späteren Verlauf mit Logik beschäftigt, kommt man um Logikbausteine meist nicht herum. Bei kleineren Logikbausteinen ist es einfach, die Benennung der Eingangs und Ausgangsobjekte zu machen, sofern diese nicht aus der ETS als externe Gruppenadressen kommen. 

 

Jedoch bin ich da sehr pedantisch.

 

Ich habe eben schon mal die Hilfe angesprochen. Wenn Ihr im Logikeditor ein neues Logikblatt anlegt und anschließend einen neuen Logikbaustein auf das leere Blatt zieht, könnt Ihr Euch hierzu mit einem Rechtsklick auf den Logikbaustein die Hilfe anzeigen lassen. Dies ist ein Schritt, den ich ständig vornehme. Manchmal drucke ich mir die Hilfe auch aus.

 

In den meisten Logikbausteinen ist in der Hilfe hinterlegt, welche Art von Kommunikationsobjekten ein Logikbaustein benötigt und zur Verfügung stellt. Hier wird erörtert, ob es sich um einen 1 Bit Wert, 1 Byte Wert, einen 14 Byte Text oder was anderes handelt.

Genau nach diesem Schema fertige ich die Eingangs und Ausgangsordner mit den KO's an. Kontrolliere jeweils immer, ob die Art des Objekts stimmt, und vergesse nicht, diese auch mit E01 oder A01 zu versehen. 

 

Anschließend spiele ich mit dem Logikbaustein, verbinde die Objekte und teste zuerst alles durch. Wenn alles richtig funktioniert löse ich die Verbindungen wieder, benenne den obersten Ordner als MASTERORDNER um, und kopiere mir diesen mit allen Unterordnern und darin enthaltenen KO's direkt aus der oberen Ebene. So hab ich mir die Arbeit gespart und kann zu einem späteren Zeitpunkt die Ordner wiederum kopieren...oder auch Dinge einfügen, wenn sich der Logikbaustein verändert hat. Eine Fehlersuche ist hier viel übersichtlicher.

 

Auch hier gilt, sorgfältig und mit Bedacht arbeiten. Wenn ich die Objekte wiederum anlege, lege ich auch hier ALLE Objekte an. Ob ich diese später auch alle verwende, spielt keine Rolle. Wenn sich was ändert ist man dankbar es so gemacht zu haben.



Nicht genutzte KO's

Nehmen wir mal an, Ihr habt nen Logkbaustein, der 2 oder 3 Werte aus der ETS braucht, lege ich also trotzdem nach der Hilfe des Logikbausteins sämtliche Objekte zuerst an. 

 

Ich muss diese ja nicht dann verwenden, habe aber trotzdem den Platzhalter, sollte sich was später wiederum ändern, oder ich von einem anderen Logikblatt drauf zugreifen will.

 

Es macht wohl für Euch momentan keinen Sinn...aber vertraut mir. In der späteren Arbeit mit dem Logikeditor werdet Ihr mehr als oft auf dieses Problemchen stoßen. 

Zwei Funktionen möchte ich Euch noch zeigen, und dann ist mal gut für heute. 

 

Zuerst kurz erklärt, könnt Ihr mit dem Rechtsklick auf einen Ordner oder gar einen übergeordneten Ordner diverse Aktionen ausführen. Eine davon ist die Schnellzuweisung. Hier könnt Ihr unglaublich viele Dinge anstellen, wie zum Beispiel die Art der KO's verändern, aber auch die Schrittgrößen etc. Das geht hierüber zwar sehr schnell, jedoch Vorsicht, weil damit ALLE Objekte umgeändert werden.



Weitere Dinge sind zum Beispiel der Rematentspeicher in dem Ihr Beispielsweise bei Werten von Fensterbeschattung direkt alle mit dem passenden Häkchen ausführen könnt. Das spar Euch sauviel Arbeit!!!

 

Ebenso lassen sich auch Endpunkte etc. global einstellen.

Ein weiteres Thema ist die Möglichkeit, Gruppenadressen von der ETS als interne Objekte umzuwandeln. Ich persönlich hab so was noch nicht gemacht, und sehe auch davon ab. In den KNX Objekten könnt Ihr das mit einem Rechtklick machen.

 

Doch mahne ich hier zu Vorsicht!

 

Weitere Funktionen sind auch die Suche. Die erleichtert einiges an Recherche. Probiert es mal aus.

 



Ansonsten war's das nun mit den IKO's. Weiter geht es dann mit der Logik und was man damit alles anstellen kann. Ich hoffe, Ihr arbeitet nun schön strukturiert.