Taster / 0,4s Problem

N 2. Thread, da es eine ganz andere Frage ist :slight_smile:

Beim FS20 Zeug gibt es den Wandschalter. Dieser hat 4 Tasten die man Prinzipiell auch im Toggle Modus verwenden kann. Also man drückt auf eine Taste und es sendet ein Signal… man drückt ein 2. mal und es schaltet aus.

Jedoch heisst es, das es damit ein Problem gibt. Wenn ich das „richtig“ verstanden habe, muss man die Taste innerhalb von 0,4s loslassen, damit es funktioniert, ansonsten könnte es sein das er 2 mal schaltet.

OK… das ist natürlich blöd.
Aber meine Frage ist nun, ob ich das nicht (wenn eh alles über den PC läuft) Softwaremäßig ausgeglichen bekomme. Im Prinzip müsste ich doch nur festlegen, das der Schalter nach betätigen für … naja… mindestens ne Sekunde (vielleicht auch 2) ignoriert wird.
Ein 2. Signal das vielleicht gesendet wird fällt dann einfach weg.

Müsste das nicht gehen?

Aus CESA-Computer Shop
Achtung ! Die Hand- und Wandsender ( FS20 S4A, FS20 S 4/8 und FS20 S 10/20 in der Ausführung -2 sind neu und haben einen Programmfehler !!!
So lange Sie diese Sender in der Form „linke Taste aus , rechte Taste ein“ einsetzen
und nicht den „Eintastenbetrieb“ benötigen sind diese Sender in Ordnung !
Im „Eintastenbetrieb“ haben diese Sender allerdings einen Fehler, so daß Sie in dieser
Betriebsart nicht eingesetzt werden können !)

Im EinTasterModus, auch genannt ‚Doppelte Kanalzahl-Modus‘ arbeiten die FS20 Sender mit ‚Swap‘ Funktion, was soviel heisst, er wechselt jedesmal seines Zustand beim erneuten Drücken. Hält man mehr als 0,4sek lang gedrückt, wechselt er in den DIM Modus.
Bei der ‚einfachen kanalzahl‘ oder ZweiTastenModus wird dem Schalter jedesmal ein klares True oder False mitgeteilt, jenachdem, ob mal eben die eine oder andere Taste drückt. Auch wieder, nach 0,4sek wird, je nach Taster auch hier, in den DIM UP oder DIM DOWN Modus geschaltet.

Mit IPS sollte man grundsächlich immer ZweiTastenModus benutzen, da hier die Software eindeutig erkennt, ob jetzt der ‚Aus‘ oder ‚Ein‘ Taster gedrückt wurde, und man kann dementsprechend seine Variablen setzen.

mfG Franz

Klar müsste das so gehen … ich hab aber schon seit 2 Monaten einen 2/4 Wandschalter im Toggle Betrieb dran … und es funzt auch ohne …
man muss der Frau nur sagen : „Kurz drücken!“

Bei mir funktioniert das immer auf anhieb. Problem ist auch nicht, das zweimal geschaltet wird, sondern ein längeres drücken die „Dimmer Code 17“ sendet … und nit getoggelt wird … heißt also … wenn du zu lange drückst passiert eher garnichts … als das es zweimal schaltet … :wink:

Ich möchte guyabano nur ungern wiedersprechen, aber wenn man wie ich „Szenarien“ schaltet und nicht „echte“ Devices macht der 4 Tasten Modus mehr Sinn… da reicht ein Toogle locker aus … da das Script nur einen „OnChange“ benötigt … und ich kann gleich 4 Szenarien im Flur schalten … bei mir z.B. „Alles an“, „Alles aus“, „Guten morgen“ und „Gute Nacht“.

Also… wenn ich das richtig verstehe ist das Problem behoben wenn ich IPS verwende und den Schalter nicht als Dimmer brauche?

Nicht behoben … aber verlagert … :wink:

das heißt, wie schon oben geschrieben …

drückst du länger als 0,4 Sek. wird es als Dimmer Befehl gewertet …

Kommt also drauf an, wie du die Auswertung programmierts… und den Event setzt … wenn du „nur“ eine Boolean mit OnChange nutzt … bekommt es die Schaltung < 0,4 Sek. nicht mit … fragst du bei Events aber auch noch den Dimmer Integer Wert ab … (ich glaub das war 17) … mit z.B. OnLimit … kannst du auch darauf reagieren … (8 Schaltmöglichkeiten??? 4x normal + 4x Dimmer Befehl ;-))

klingt logisch… ok vielen Dank. Damit ist die Sache aus der Welt :slight_smile:

Es wird einmal in ferner Zukunft… ein neues Modul geben Namens „FS20RX RC“ (RC=RemoteControl).

Das Modul behandelt dann alle Tasten einer Fernbedienung, so dass nicht für jede Taste eine Instanz erstellt werden muss (praktisch vorallem bei einer 20-Tasten Fernbedienung).

Desweiteren sendet es für jede Taste (egal ob doppelte oder einfache Kanalzahl) nur noch folgende Codes:

„PRESS“ -> Taste (kurz) gedrückt
„HOLD“ -> Taste wird gehalten
„HOLDEND“ -> halten der Taste zuende

Gruss,
Olli

Na das sind ja mal wieder gute Nachrichten !!!

Da ich eine 10/20 FB, eine 4/8 FB und einen 2/4 WS bereibe, könnt ihr euch vielleicht vorstellen, wie meine Instanzen Liste aussieht … :wink:

Hmm, ich habe vier 20’er und sechs 4’er Fernbedienungen im Einsatz … ich denke ich kann mir vorstellen wie eine solche Instanzenliste aussieht :wink:

Hinweis: Bridging gibt’s bei dem neuen Modul nicht mehr und die Adressierung des Hauscodes für die einzelnen Tasten erfolgt nach einem bestimmten Schema.
Allerdings hat man aber die Möglichkeit alle Tasten einer FB mit einer einzigen String-Variablen zu handeln - das spart dann auch ein wenig Variablen-Anlege-Arbeit (VAA).

Aber das dauert noch ein wenig…

Gruss,
Olli

halt uns bitte auf dem Laufendem …

Bridging habe ich nich genutzt (bzw. Verstanden ;))

Wenn der Hauscode zu vergeben ist und die Tasten dann in „Reihe“ kommen (Adress Blöcke) ist das super …

ok, Nachtrag:

Klar, bei Szenarien braucht man das eher nicht, wenn damit ein Skript getriggert werden muss. In dem all widersprichst du mir schon nicht, sondern du hast recht.
Und klar auch, wenn du ein Schalter hast, wird bei einem DIMM Befehl nicht viel geschehen, der der Schalter ‚das eben einfach nicht kann‘. Der Befehl dazu wird aber gesendet und IPS kriegt es auch so mit !

Dann werde ich es eben mehr genau formulieren:

Im Falle, wo man Schalter/Dimmer unabhänig von IPS schalten will und IPS nur ‚lauschen‘ lässt, dann sollte man schon ‚Einzelkanal-Modus‘ benutzen. Die Variablen werden einfach klarer gesetzt.

mfG Franz

Dann werde ich es eben mehr genau formulieren:

Im Falle, wo man Schalter/Dimmer unabhänig von IPS schalten will und IPS nur ‚lauschen‘ lässt, dann sollte man schon ‚Einzelkanal-Modus‘ benutzen. Die Variablen werden einfach klarer gesetzt.

Hier gebe ich dir wieder uneingeschrenkt recht …

Ich habe deshalb einen 4 Kanal Wandschalter für die 4 „Hauptzenarien“, eine 8 Tasten Fernbedienung für alle Szenarien und eine 10/20 FB um die Devices auch ohne ipsymcon schalten zu können. (Notfallmodus)

Daher den WS und die 4/8 FB im 1 Tasten Modus (4 bzw 8 Kanal) und die Notfallfernbedienung im 2 Tasten Modus (also 10 Kanal) somit habe ich beide sinnvollen Möglichkeiten, wie von dir beschrieben, im Einsatz :smiley:

Hallo,

ich habe schon mehrfach hier im Forum eine Methode vorgestellt, das 0,4s-Problem zu umgehen. Hier also das ganze noch einmal als Rezept zum Nachkochen:

  1. In der RX-Instanz wird die Status-Variable Data für die Auswertung verwendet. Diese variable ist vom Typ Integer.
  2. Data wird als Trigger-Variable für das u.g. Skript eingesetzt.
  3. Wenn man nur den On/Off-Zustand benötigt, braucht man auch nur das niederwertigste Bit (LSB) auszuwerten. Eine UND-Verknüpfung mit dem Wert 1 liefert dieses Bit und filtert alle anderen aus.
$LSB = GetValueInteger("RC_Data") & 1; // LSB (Least Significant Bit) extrahieren
if ($LSB) // ergibt true bei LSB == 1, false bei  LSB == 0
  FS20_SwitchMode($InstanceID, true);
else
  FS20_SwitchMode($InstanceID, false);

oder kürzer:


  FS20_SwitchMode($InstanceID, GetValueInteger("RC_Data") & 1);

Mit dieser Methode spielt es keine Rolle, ob die Taste kürzer oder länger als 0,4s gedrückt wurde.

Gruß
HJH

Leider spielt es innerhalb eines FS20-Funk Betriebes eine Rolle ob der Taster kurz oder länger gedrückt wurde.

Folgende Annahme vorrausgesetzt:
Der Taster wird gedrückt um IPS zu triggern -> dadurch soll IPS einen oder mehere FS20-Aktoren via Funk ansteuern (z.B. für Lichtszenen).

Das Problem:
Wenn IPS nun fleissig seine Kommandos an die Aktoren sendet ohne zu überprüfen ob der FS20-Taster weiterhin gedrückt wird gibt es ein Funk-Chaos denn sowohl IPS sendet als auch der Taster sendet (wenn man den länger drückt dann sendet er weiter)… es kann nicht mehr sichergestellt werden das die Ziel-Aktoren ihre Befehle wirklich ‚verstehen‘ oder von den Funksignalen des Tasters ‚platt‘ gemacht werden.

Deswegen ist es besser zu überprüfen ob die entsprechende FS20-Taste auch wieder losgelassen wurde um erst dann Funk-Befehle auf die Reise durch die Wohnung zu schicken. Das kann man auch mit PHP realisieren - ist aber lästig. Genau das wird durch „FS20RX RC“ ebenfalls gehandelt werden.

Gruss,
Olli

PS: mit EnOcean ist das anders - die machen kein ‚Dauersenden‘

Hallo Olli,

ich benutze das beschriebene Verfahren seit über einem Jahr und es funktioniert einwandfrei.

Es ist damit auf jeden Fall sichergestellt, dass IPS korrekt reagiert.

Dass es dabei zu Funk-Kollisionen kommen kann, ist ein FS20-bedingtes Problem. Im Allgemeinen ist es aber so, dass spätestens beim Loslassen der letzte vom Handsender ausgesandte Befehl zum Erfolg führt. Schließlich hat das Skript immer das „letzte“ Wort. Eine Kollision kann dann nur noch mit anderen FS20 Komponenten auftreten.

Es ist also gar nicht nötig dem Problem mit erhöhtem Skript-Aufwand zu begegnen, da es sich ganz von sebst löst.

Gruß
HJH

Hmm, vieleicht habe ich mich nicht verständlich ausgedrückt…

  • Taster wird gedrückt und festgehalten (zum Beispiel 3 Sekunden)
  • IPS registriert das sofort und startet ein Skript um 10 FS20-Dimmer in der Helligkeit zu setzen (Lichtszene)
  • das Senden der (ersten) Dimmerwerte kollidiert mit dem noch sendenden (weil festgehaltenen) Taster
    -> Ergebnis: die ersten Dimmerwerte werden ggf. (je nach Aufstellungsort des Empfängers, des Tasters und der FHZ) überlagert von dem noch sendenden Taster

Das Problem tritt besonders dann auf wenn man die FS20-Taster so verwendet, dass zusätzliche Funktionen beim längeren festhalten einer Taste möglich sind. Dadurch sind mit einem 4’er Taster 8 Funktionen in IPS unterscheidbar.

Hallo Olli,

das sollte TimW aber nicht davon abhalten, das Verfahren für simple Schaltvorgänge zu verwenden, so wie ich es auch tue.

Ohnehin sollte man Systeme (nach Möglichkeit) immer nur dafür verwenden, wofür sie geeignet sind. Das FS20-System ist für komplexe Szenarien offensichtlich nicht sonderlich gut geeignet.

Aber das weißt Du sicherlich besser, da Du doch mit DMX bereits ein exzellentes Steuerungssystem im Einsatz hast. :slight_smile:

Gruß
HJH

jup mir gehts hauptsächlich darum den Wandschalter mit 4 Schaltmöglichkeiten zu nutzen da die Dinger halt einfach teuer sind :wink:
Dabei halt als einfach 1/0 schalter und nich als dimmer.

Das einzige was mich etwas verplüfft ist, das bei deiner Maskierung der Integer Zahl nicht berücksichtigt wird, dass das letzte bit auch 0 sein könnte.
Mir fällt da spontan die Zahl 2 ein :wink:

Hallo TimW,

der Fall wird sehrwohl berücksichtigt (steht im Kommentar).

Nach der UND-Verknüpfung bleibt das LSB übrig. Dieses kann, da es eine binäre Einheit ist, nur genau zwei diskrete Zustände einnehmen: 0 oder 1.

In der If-Abfrage wird die 0 als false und die 1 als true interpretiert.

Die Befehle ON und DimUP besitzen beide eine 1 als LSB.
Die Befehle OFF und DimDN besitzen beide eine 0 als LSB.

Du siehst, dass beide Fälle korrekt behandelt werden.

Gruß
HJH

Ich hab jetzt ein anderes Problem der selben Art.

Da ich mir gerne mehrere Meinungen einhole, habe ich im f20-forum auch die Wandtasterfrage gestellt und bekam folgende Antwort:

nein das Wandtaster Problem und übrigens
auch beim FS20 S4/8 und FS20 S10/20

ist ein Software-Problem im Chip der Sender !!!

Siehe Beschreibung im Shop

d.h. alle 3 Wandsender sind derzeit nicht ( die ersten 2 Paare
der Tasten ) im Eintastenmodus betreibbar !!!

Lösung ist derzeit nicht in Aussicht !!!

Wer also den Eintastenmodus braucht kauft derzeit nicht
Sonst ist der Sender OK und hat auch nicht mehr das
Batterieproblem !!!

Das ergibt für mich aber überhaupt kein Sinn. Entweder es sendet ein Signal beim betätigen oder es tut das nicht.
Wenn es allerdings der Fall ist, muss ja wohl die Software die Änderung Interpretieren unabhängig von irgendeinem Chip innerhalb des Tasters.