Hallo,
die nun folgende Frage ist so grundlegend dass sie mir fast unangenehm ist. Ich versichere zudem, zuvor eine größere Anzahl Posts zu diesem Thema gelesen zu haben (das finden geeigneter Suchbegriffe ist allerdings schon mal gar nicht so einfach).
Es geht darum, wie ihr die sehr allgemeine Problematik des Steuerns von FS20-Aktoren mittels FS20-Sendern unter Benutzung von IPS realisiert.
Mir fallen ja zunächst einmal zwei grundlegende Ansätze ein, die beide ihre Vor- und Nachteile haben. Entweder kann man die Sender und Aktoren direkt aufeinander programmieren und hoffen, dass IPS seinerseits alle Statusänderungen mitbekommt. Die andere Möglichkeit besteht darin, dass die Sender lediglich IPS veranlassen, Steuerbefehle an die Aktoren zu senden.
Vorteile des direkten Aufeinanderprogrammierens sind wohl:
-angenehmeres, weil schnelleres Schaltgefühl, Dimmfunktionen etc. sind problemlos machbar
-Datenkollisionen zwischen dem Sender und den Signalen der FHZ werden vermieden
-Die Anlage funktioniert auch bei Serverausfall bzw. wenn die FHZ nicht mehr mitspielt
Vorteile des Weges über IPS sind:
-IPS weiß jederzeit zumindest über den Sollstatus der Aktoren bescheid. Bei Touchpanels etc. schon wichtig. Solange keine „lebenserhaltenden“ Systeme gesteuert werden, fällt eine nicht korrekt geschaltete Lampe nicht übermäßig ins Gewicht bzw auf den Wecker.
-Komplexere Lichtszenen und Makros sind umsetzbar. Die Programmierung von lokalen und globalen Masteradressen entfällt, zumal diese auch keine echte Szenensteuerung zulässt.
-Das Ändern der Konfiguration kann bequem softwareseitig erfolgen, die Aktoren und Sender brauchen jeweils nur eine eindeutige Adresse.
Aus verschiedenen Gründen habe ich mich selbst für den zweiten Ansatz entschieden. Allerdings mache ich die Erfahrung, dass dieser nicht unproblematisch ist. Das Hauptproblem stellen nicht ankommende Befehle aufgrund von Kollisionen dar.
Beispiel: Ein Wandschalter soll bei kurzem Tastendruck eine Lichtszene und bei längerem eine andere Lichtszene starten. Es wird also ein Makro gestartet, welches die entsprechenden Steuerbefehle an die Dimmer sendet. Leider sendet aber der Wandtaster bei längerer Betätigung kontinuierlich, so lange er betätigt wird. Man muss ihn also exakt lang genug, aber man darf ihn nicht zu lange betätigen. Sonst sendet die FHZ nämlich bereits die verknüpften Steuerbefehle, so dass Wandschalter und FHZ gegeneinander „anschreien“ und der Steuerbefehl an den Dimmer geht verloren.
Ich habe, um dieses Problem zu vermeiden, verschiedene Ansätze erwogen:
-
Zeitverzögertes Senden der Steuerbefehle durch IPS
Vorteil: nach ca. 2 Sekunden wird der Schalter höchstwahrscheinlich schon losgelassen sein.
Nachteil: Es fehlt die unmittelbare Quittierung des empfangenen Schaltbefehls. Man ist sich nicht sicher, ob dieser von der FHZ empfangen wurde. -
Wiederholen der Steuerbefehle nach Zeitverzögerung
Vorteil: vergleichbar mit dem ersten Ansatz, allerdings kommen in der Regel auch aus der ersten Sendung die meisten Befehle erfolgreich an, so dass man zumindest weiß, dass etwas passiert, auch wenn mitunter einige Aktoren erst nach zwei Sekunden „nachziehen“.
Nachteil: Das zögerliche Nachrücken einzelner Aktoren sieht zumindest etwas wackelig aus. -
Periodisches Senden aller Ist-Zustände
Vorteil: über einen gewissen Zeitraum ist mit großer Wahrscheinlichkeit gewährleistet, dass alle Zustände richtig empfangen wurden.
Nachteile: Bei zu kurzen Intervallen kann es zu Problemen mit der FHZ-Sendezeitbegrenzung kommen. Auch wirkt das plötzliche Zu- oder Abschalten einzelner Aktoren nach längeren Zeitspannen arg ungelenk.
Es ergibt sich aber neben dem unschönen „Nachrücken“ der übergangenen Aktoren noch ein weiterer unschöner Effekt. Ich habe die Dimmerzustände über einzelne Integer-Variablen herausgeführt. Diese lösen über Onchange Makros aus, so dass (nur) bei Änderungen der Variablenwerte die Dimmaktoren entsprechend per Sendebefehl angesprochen werden. Das bedeutet leider, dass im Falle eines nicht empfangenen Befehls das nochmalige Auslösen einer Lichtszene keinen Effekt hat, da sich die Variablenwerte ja nicht ändern. Man muss dann also stets einmal eine andere Lichtszene starten, in welcher die betroffene Leuchte einen anderen Wert hat.
Ich würde mich freuen, falls jemand sich zu dieser Problematik äußert. Ich würde vor Allem gern erfahren, wie andere diese sehr grundsätzlichen Problemstellungen für sich gelöst haben.
Gruß
Clemens