FS20 via IPS - Wie macht ihr das?

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:

  1. 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.

  2. 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.

  3. 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

Hallo Clemens,

kurz und bündig,

einfach schalten :slight_smile:

für deine Problematik sind hier schon genug Antworten im Forum.

Ich weiss, Standart Antwort, aber suchen ist immer noch die beste Methode und fürt dann meistens auch zum Erfolg.

Ansonsten, fragen.

Hmm, ich weiß nicht so recht… einfach schalten, wie ist das gemeint? Nicht dimmen? Direkt die Adressen aufeinander patchen? Daraus werde ich jetzt leider nicht schlau.

Ich habe wie gesagt schon einiges durchgelesen hier im Forum, aber irgendwie keinen Thread gefunden, der sich ausführlich mit dieser Thematik auseinandersetzt. Immer bloß einzelne Problemstellungen. Ich hoffe ein wenig darauf, dass man mal eine „richtige“ Lösung oder zumindest eine brauchbare Empfehlung erarbeiten kann, was in welchen Szenarien sinnvoll ist. Dass bei Person X der Befehl für Aktor Y manchmal nicht ankommt ist nicht uninteressant, aber eben nur ein Einzelfall, von dem man selten auf ein Prinzip schließen kann. Man kennt ja die speziellen Gegebenheiten nicht genau.

Und was das ansonsten Fragen betrifft, genau, das tue ich hiermit. Also, micht würden einfach mal EInschätzungen und Erfahrungen anderer Benutzer interessieren, die über konkrete Einzelfälle hinausgehen. Mehr so in der Art „ich benutze FS20 seit einem Jahr und habe nach einigem Herumprobieren die und die Lösung gefunden, um die Zuverlässigkeit zu maximieren“.

Auch wenn das den Alteingesessenen trivial erscheint, aber für Einsteiger ist es hochinteressant. Und alle Suchfunktionen dieser Welt ersetzen keinen Dialog.

Also ich persönlich habe ne Mischung aus beidem. Also zu einen alle Lampen etc direkt wobei IPS nur mithorcht.

Für Macros also Lichtszenen wie du es nennst, nehm ich dann unbelegte Tasten. Verwende ich aber kaum. An sich brauch ich fast nur „alles an“ was ich dann auch über ne Masteradresse gelöst habe. Von daher hab ich jetzt auch noch nicht so das Kollisionsproblem von dem du sprichst wahrgenommen. Ich würde folgende Ansätze mal überlegen

  • Absenden deines Profiles, sobald 0,5 Sek (naja evtl noch weniger also die länge zischen 2 Impulsen + ein bischen :wink: ) nix mehr vom Taster kam (somit Zeitnah und ohne Überscheidung)
  • Ich glaub es gibt ja auch die möglichkeit das IPS Sycronisiert (brigdeing)… also den Zustand hinterhersendet. Das würde ich für solche Macrofunctionen auf jeden fall deaktivieren (sonst hat man ja noch mehr auffm Äther)

Zum 1ten Punkt siehe auch hier

Gruß,
Anti

Hi Anti,
und wie machst du es, dass IPS die Masteradresse mitschreibt? Soweit ich das als Anfänger mitbekommen hab, kann ich mittels Befehl den Status der Aktoren ja nicht mehr ändern. Bin grad genau an dem gleichen Denkansatz
Gruß
Kai

Hallo,

musst einfach für die Masteradresse auch ein Empfangsteil anlegen mit Statusvariable. Da on change dann script, was die anderen Statusvars auch setzt. Hmm zumindest bei IPS 1 , evtl gehts ja jetzt eleganter aber ich hab mich noch nciht wirklich viel mit IPS 2.0 beschäftigt, weil das dumme ist: Es tut ja alles :wink:

Gruß,
Anti

Hi Anti,
so wie ich das bei anderen gelesen hab funzt genau das nicht mehr bei der 2.0, da du den Status nichtmehr via Script ändern kannst. So hab ich es zumindest gelesen, und häng momentan selber an dem Thema fest. Denn Funksmog erzeugen und alle nochmal nachstellen ist auch nicht die Lösung, da kommts echt zu Fehlschaltungen.
Gruß
Kai

Also ich hab die Zustandsänderungen sowieso immer per script und über onchange auf der Data Variable gemacht, sprich beim device lass ich die zustandsvar leer. Vielleicht hilft dir das ja weiter :wink:

Gruß,
Jan

hiho,
heißt, du setzt den Schaltzustand nur auf true oder auf false?
Und das funzt in der V2 noch?

Sorry, bin PHP Neuling deshalb vielleicht bissl doofe Frage.
Meine Programmierung war vor 15 Jahren noch schulisch unter DOS
Pascal 7.0, C+, SPS, Assembler…anderer Film wie heute *gg

Gruß

Kai