Projekteinstellungen - Verteiltes ProjektEin Projekt kann auf mehreren Steuerungen laufen. Jede Steuerung führt dabei nur die Programmseiten aus, die ihr zugeordnet sind. So lässt sich zum Beispiel die Heizung eines Nebengebäudes auf der dortigen Steuerung ausführen - fällt die Hauptsteuerung aus, arbeitet sie selbstständig weiter.
Es bleibt ein Projekt. Es wird in eine Steuerung eingespielt und von dort an die übrigen weitergegeben. Die APP verbindet sich mit einer beliebigen Steuerung und zeigt und bedient die gesamte Anlage.
Enthält ein Projekt keine Steuerungsliste, läuft es wie bisher auf einer einzelnen Steuerung. Bestehende Projekte sind nicht betroffen.
In der Tabelle wird jede beteiligte Steuerung eingetragen:
Jede Steuerung im Verbund trägt eine Nummer von 1 bis 16. Diese Nummer ist der eigentliche Bezug im Projekt - nicht die Adresse. Die Adresse sagt nur, wo die Steuerung erreichbar ist; die Nummer sagt, wer sie ist. Zieht eine Steuerung in ein anderes Netz um, ändert sich ihre Adresse - die Zuordnung „Seite X läuft auf Steuerung 2“ bleibt davon unberührt.
An drei Stellen wird mit dieser Nummer gearbeitet:
Die Zahl 0 hat nur eine einzige Bedeutung: ein Gerät, dem noch keine Nummer zugewiesen wurde. An der Programmseite kommt sie nicht vor. Ein Bestandsprojekt trägt an jeder Seite noch die 0 - beim Anlegen der Steuerungsliste wird daraus die Nummer der Hauptsteuerung, so dass überall steht, was gilt.
Eine Steuerung, die keine Nummer gesetzt bekommen hat, führt in einem verteilten Projekt nichts aus. Das ist die sichere und nicht die bequeme Wahl: liefe sie ersatzweise als Hauptsteuerung an, gäbe es zwei davon und jeder Befehl würde doppelt ausgeführt.
Die Steuerungen verbinden sich untereinander nach einer festen Regel: jede ruft nur die Nummern an, die höher sind als ihre eigene. Damit entsteht zwischen je zwei Steuerungen genau eine Verbindung, ohne dass dazu etwas eingestellt werden muss.
Diese Regel hat eine Folge, die weiter unten bei der Backup Steuerung wichtig wird: die Steuerung mit der niedrigsten Nummer wird von keiner anderen angerufen. Sie ruft selbst an.
Die Zuordnung erfolgt in den Eigenschaften der Programmseite unter Ausführende Steuerung.
Eine Seite läuft immer auf genau einer Steuerung. Alle anderen legen die Bausteine dieser Seite gar nicht erst an. Würde dieselbe Logik mehrfach laufen, würden sich die Steuerungen gegenseitig die Ausgänge überschreiben.
Dadurch bekommt auch jede Steuerung ihre eigene KNX Schnittstelle: der Baustein KNX Schnittstelle wird einfach auf eine Seite der jeweiligen Steuerung gelegt. Dasselbe gilt für Modbus, MQTT und alle anderen gerätegebundenen Bausteine.
Eine Seite, die von der gerade verbundenen Steuerung nicht ausgeführt wird, ist im Editor erkennbar: links oben steht ein Hinweis mit der zuständigen Steuerung, die Bausteintitel sind rot und die Verbindungslinien werden nicht grün dargestellt.
Auch bei den Aufzeichnungen wird je Eintrag ausgewählt, welche Steuerung aufzeichnet.
Aufgezeichnet wird richtig, egal wo Sie verbunden sind. Die Werte werden im Verbund abgeglichen; die zuständige Steuerung sieht den Wert also auch dann, wenn er auf einer anderen Steuerung entstanden ist.
Angesehen werden können sie aber nur dort. Die aufgezeichneten Daten liegen in der Datenbank der Steuerung, die aufzeichnet, und werden nur von dieser herausgegeben. Studio und APP fragen immer die Steuerung, mit der sie gerade verbunden sind. Um einen Verlauf zu sehen, muss man sich also mit der Steuerung verbinden, die ihn aufzeichnet. Dasselbe gilt für das Löschen von Daten und für den Telegrammmonitor.
Betroffen sind auch die Bausteine, die selbst aufzeichnen - etwa Block Statistik oder der Energiemonitor. Sie liegen auf einer Programmseite, laufen auf deren Steuerung und legen ihre Daten dort ab.
Das ist bei der Projektierung zu entscheiden:
In der Spalte Steuerung der Aufzeichnungsliste ist jederzeit zu sehen, wer welchen Eintrag schreibt.
Eine gezeichnete Verbindung zwischen zwei Funktionsbausteinen ist keine Variable, sondern ein Draht innerhalb des Programms. Er entsteht erst, wenn beide Bausteine auf derselben Steuerung angelegt werden.
Jede Steuerung legt aber nur die Bausteine der Seiten an, die ihr zugeordnet sind. Verbindet ein Draht zwei Seiten, die auf verschiedenen Steuerungen laufen, fehlt auf jeder Seite das andere Ende - die Verbindung gibt es dann auf keiner der beiden Steuerungen. Sie wird nicht gemeldet und fällt im Betrieb erst dadurch auf, dass ein Wert nicht ankommt.
Gezeichnete Verbindungen über Steuerungsgrenzen hinweg sind deshalb nicht möglich. Innerhalb einer Steuerung - also zwischen Seiten, die dieselbe Steuerung ausführt - sind sie wie gewohnt erlaubt, auch seitenübergreifend.
Verwenden Sie statt dessen eine interne Variable: legen Sie eine Adresse an, verknüpfen Sie den Ausgang des einen Bausteins und den Eingang des anderen damit und entfernen Sie die gezeichnete Verbindung. Der Wert einer internen Variablen wird zwischen allen Steuerungen des Verbunds abgeglichen und kommt damit auch auf der anderen Steuerung an.
Das hat einen zweiten Vorteil: eine Variable ist in der Adressliste auffindbar. Wo ein Wert herkommt und wohin er geht, ist damit ohne Suche über mehrere Seiten hinweg erkennbar.
Jede Steuerung braucht ihre eigene Nummer. Sie steht auf dem Gerät und nicht im Projekt - sonst wäre ein Gerätetausch ein Projektumbau. Verbinden Sie sich dazu mit der betreffenden Steuerung, tragen Sie die Nummer im Feld Diese Steuerung ist Nummer ein und bestätigen Sie mit Nummer setzen. Das Programm der Steuerung wird daraufhin neu aufgebaut.
Eine Steuerung ohne Nummer führt in einem verteilten Projekt nichts aus und meldet das entsprechend. Das ist die sichere und nicht die bequeme Wahl: liefe sie ersatzweise als Hauptsteuerung an, gäbe es zwei davon und jeder Befehl würde doppelt ausgeführt.
Bequemer geht es über die Liste selbst: jede Zeile hat einen Knopf Nummer.... Er öffnet ein Menü mit Nummer x setzen, Nummer löschen und Nummer löschen und aus dem Verbund entfernen. Die Anfrage läuft über die Steuerung, mit der das Studio gerade verbunden ist, und wird von dort an die betreffende Steuerung weitergereicht - Sie müssen sich also nicht mehr zu jeder Steuerung einzeln verbinden. Ist eine Steuerung gerade nicht erreichbar, bleiben die Punkte sichtbar, aber gesperrt.
Soll eine Steuerung den Verbund verlassen, nehmen Sie ihr die Nummer und entfernen Sie ihren Eintrag aus der Liste. Programmseiten, die auf sie gezeigt haben, werden dabei auf die Hauptsteuerung umgestellt - sonst würde sie keine Steuerung mehr ausführen.
Das Projekt wird wie gewohnt in eine Steuerung eingespielt. Diese gibt es anschließend selbsttätig an alle übrigen weiter.
Jede Übertragung zählt den Projektstand um eins hoch. Alle Steuerungen eines Projektes müssen dieselbe Zahl zeigen. Eine kleinere Zahl bedeutet, dass diese Steuerung beim Einspielen nicht erreichbar war - sie erkennt das beim nächsten Verbinden selbst und holt sich das Projekt nach.
Die Spalte Verteilung zeigt das Ergebnis: übernommen, war schon aktuell, nicht erreichbar oder fehlgeschlagen. Das ist keine Selbstauskunft der Steuerung, sondern wird am gemeldeten Projektstand geprüft.
Wird die Adresse einer Steuerung geändert, muss sie unter der neuen Adresse auch erreichbar sein - sonst kommt das Projekt dort nicht an und diese eine Steuerung muss von Hand beschrieben werden.
Die Steuerungen tauschen ihre internen Variablen untereinander aus. Damit kann sich die APP mit einer beliebigen Steuerung verbinden und trotzdem die gesamte Anlage anzeigen.
Auch die Einstellungen der Bedienelemente - Schaltzeiten, Sollwerte, Anwesenheitssimulation - gelten auf allen Steuerungen gemeinsam. Wird eine Uhr in der APP verstellt, ist es gleichgültig, mit welcher Steuerung die APP verbunden ist: die Änderung kommt dort an, wo der Baustein läuft, und steht danach auf jeder Steuerung. War eine Steuerung während der Änderung nicht erreichbar, holt sie den neueren Stand beim nächsten Verbinden nach. Voraussetzung dafür ist, dass die Uhren der Steuerungen halbwegs gleich gehen (Zeitserver).
Betriebsdaten des ausführenden Bausteins - Zählerstände, Laufzeiten, Min- und Max-Werte, Anmeldedaten von Diensten - bleiben bewusst auf ihrer Steuerung.
Überwacht wird jede Steuerung des Verbunds, und die Zeiten stehen fest - es gibt dafür nichts einzustellen. Eine Steuerung, deren Ausfall niemandem auffallen muss, gehört nicht in den Verbund.
| Was | Zeit |
|---|---|
| Abstand der Lebenszeichen | 10 Sekunden |
| Anzeige „nicht erreichbar“ | nach 2 fehlenden Lebenszeichen (20 Sekunden) |
| Meldung des Ausfalls | nach 6 fehlenden Lebenszeichen (60 Sekunden) |
Jede Steuerung schickt ihren Partnern also alle 10 Sekunden ein Lebenszeichen. Bleibt es zweimal aus, steht in der Spalte Zustand bereits „nicht erreichbar“ - gemeldet wird aber erst, wenn sechs Prüfungen nacheinander ohne Lebenszeichen bleiben. Ein Neustart oder eine kurze Netzstörung löst damit keine Meldung aus.
Bricht die Verbindung sauber ab, ist das sofort in der Spalte Zustand zu sehen. Die 60 Sekunden bis zur Meldung gelten trotzdem - gezählt wird ab dem letzten Lebenszeichen, nicht ab dem Abbruch. Kommt die Steuerung vorher zurück, wird nichts gemeldet.
Gemeldet wird immer von der erreichbaren Steuerung mit der niedrigsten Nummer; fällt diese selbst aus, übernimmt die nächste. Der Meldungstext nennt deshalb immer die meldende Steuerung.
Die Meldung läuft über die Meldezentrale des Projektes - dort gelten wie gewohnt Empfänger, Priorität, Ruhezeiten und Eskalationsgruppen. Ist keine Meldezentrale vorhanden, geht sie direkt als E-Mail und Push an die hier eingetragenen Empfänger. Mit Probemeldung lässt sich der Weg prüfen, ohne eine Steuerung abzuschalten.
Im Programm steht der Baustein Verteiltes Projekt Status zur Verfügung. Er meldet je Steuerung, ob sie verbunden ist, ihren Zustand und die Sekunden seit der letzten Meldung - damit kann das Programm selbst reagieren, etwa eine Funktion sperren oder eine Sammelstörung setzen.
Wird eine Steuerung ersetzt, ist die Reihenfolge:
Danach ist es im Verbund und zieht künftige Projektstände selbst nach.
Dazu wird ihre Zeile aus der Liste entfernt. Die übrigen Steuerungen rufen sie danach nicht mehr an, überwachen sie nicht mehr und gleichen keine Werte mehr mit ihr ab. Programmseiten, die auf diese Steuerung zeigen, werden dabei auf die Hauptsteuerung umgestellt.
Vergessen kann man das nicht. Zeigt eine Programmseite oder eine Aufzeichnung auf eine Nummer, die in der Liste nicht (mehr) steht, führt sie die Hauptsteuerung aus. Geprüft wird das bei jedem Programmaufbau, nicht nur beim Entfernen im Dialog - also auch dann, wenn die Liste auf einem anderen Weg geändert wurde. Die Steuerung schreibt dabei eine Zeile ins Protokoll, und im Studio steht der Hinweis oben auf der betroffenen Seite. Beim nächsten Übernehmen im Dialog werden die Zuordnungen dauerhaft richtiggestellt.
Der Rückfall auf die Hauptsteuerung ist die sichere Wahl: ohne ihn liefe der betroffene Teil auf keiner Steuerung - und zwar lautlos.
Was mit dem Gerät selbst geschieht, hängt vom Ziel ab: soll es künftig wieder allein die ganze Anlage fahren, spielen Sie ihm ein Projekt ohne Steuerungsliste ein. Lässt man es dagegen mit dem alten Projekt und seiner alten Nummer weiterlaufen, führt es weiterhin „seine“ Seiten aus - dann aber unbemerkt und ohne Abgleich.
Beide verbinden Steuerungen, lösen aber verschiedene Aufgaben:
Zwischen denselben zwei Steuerungen wird nur eines von beiden verwendet. Sind Verbund und Brücke gleichzeitig eingerichtet, entsteht ein Kreis: der Verbund reicht einen Wert zur Partnersteuerung, die Brücke reicht ihn zurück, und beide Wege erkennen einander nicht - jeder kennzeichnet weitergereichte Telegramme auf seine eigene Art. Ein einziges Telegramm kann so dauerhaft zwischen beiden Steuerungen kreisen.
Beides nebeneinander im selben Projekt ist dagegen unbedenklich, solange die Brücke zu einer Steuerung führt, die nicht zum Verbund gehört. Der Verbund darf also durchaus eine Fremdanlage per Brücke anbinden.
Beide Konzepte ergänzen sich und lösen verschiedene Probleme.
Die Verteilung selbst ist bereits eine Absicherung. Fällt eine Steuerung aus, laufen die übrigen weiter - jede führt ihre eigenen Seiten aus und hängt dabei nicht an der ausgefallenen. Was fehlt, sind allein die Funktionen jener einen Steuerung.
Die Backup Steuerung füllt genau diese Lücke: sie sichert eine bestimmte Steuerung ab und übernimmt deren Aufgaben, wenn diese ausfällt. Sie bekommt dazu dieselbe Nummer wie die Steuerung, die sie absichert.
Im Standby tritt sie dem Verbund nicht bei. Das ist notwendig: würden sich beide unter derselben Nummer anmelden, wüsste eine Partnersteuerung nicht mehr, welche der beiden gemeint ist - und eine Antwort könnte bei der stummen Backup Steuerung landen statt bei der aktiven. Übernimmt sie, tritt sie von selbst bei.
Bei der Übernahme behält die Backup Steuerung ihre eigene IP-Adresse. In der Steuerungsliste steht aber die Adresse der abgesicherten Steuerung - und die antwortet nicht mehr.
Solange die abgesicherte Steuerung die niedrigste Nummer hat, fällt das nicht ins Gewicht: sie wird von keiner anderen angerufen, sondern ruft selbst an. Die Backup Steuerung baut die Verbindungen also von ihrer eigenen Adresse aus auf, und die Partner nehmen sie an ihrer Nummer an. Der Verbund fügt sich von selbst wieder zusammen.
Würde dagegen eine Steuerung mit höherer Nummer abgesichert, würden die Steuerungen mit kleinerer Nummer weiterhin die alte, nicht mehr erreichbare Adresse anrufen und die Übernahme nie finden.
Deshalb gilt derzeit: die Backup Steuerung sichert die Steuerung mit der niedrigsten Nummer ab. Vergeben Sie der Hauptsteuerung, zu der sich die Anwender verbinden, die Nummer 1 - dann ist diese Bedingung erfüllt.
Für die APP und das Studio ändert sich dadurch nichts: dort werden für Haupt- und Backup Steuerung wie gewohnt zwei getrennte Verbindungen angelegt, und der Anwender wechselt bei einem Ausfall auf die zweite.
Auf allen beteiligten Steuerungen muss dieselbe Softwareversion laufen.