Eltako FTS12

Hallo,

hier mal mein erstes Modul. Ich denke nachdem es ganz gut klappt wohl noch eines für den FSB14 machen.
Hinweis: Ich habe noch keinen Langzeittest gemacht. Finde die PHP Sachen irgendwie langsam. Ein natives Modul wäre sicher schneller.

https://github.com/captmajac/FTS12

Worum geht es: Das Eltako FTS12 Tastermodul im RS485 Bus

Die Tastendrücke sind über einen FGW14 für IPS erkennbar. Dieses Modul habe ich gemacht da ich ursprünglich vor hatte die komplette Störung über IPS zu machen (also aller Taster). Davon bin ich aber weg.
Dennoch gibt es potential weil ich so ggf. belegte oder nicht belegte Schalter mit einer Doppelfunktion (langer und kurzer Tastendruck) belegen kann. Beispiel Garagenlicht=kurz Garagentor fahren=lang

FTS12

Eltako IPS Modul für FTS12 Aktor (Inspiriert von WLSource/SymconEnoceanModul)

Das Eltakto Tastermodul ist von IPS nicht unterstützt. Dieses Modul soll den Tasterstatus als Bool Statusvariablen ausgeben und eine festlegbare unterscheidung zwischen einem kurzen und langem Tastendruck

Variablen

Pressed - Ist true solange der Taster festgehalten wird
PressedShort - Wird nach dem loslassen des Tasters auf true gesetzt wenn der Tastendruck kurz (<2 Sek.) war. PressedLong ist dann false. Der Status true bleibt auch stehen bis zum nächsten Tastendruck.
PressedLong - Wird true gesetzt wenn der Tastendruck lang (>2 Sek.) war. PressedShort ist dann false. Der Status true bleibt auch stehen bis zum nächsten Tastendruck.

Konfiguration

Instanz ist unter Eltakto Geräten mit dem Namen FTS12 zu finden

Enocean Gateway auswählen

Parameter setzen DeviceID (Hex) - Ist die Enocean Geräteadresse in Hexadecimal ohne führende Nullen Data0 (Hex) - Ist eine Eltako FTS Spezialität. Es gibt einen Doppelwippen Eingang bei dem eine Geräte Adresse zwei Taster abbildet. Diese können nur durch das Datenbyte0 unterschieden werden. Im Standard ist dies immer Hex=70. die zweite Doppelwippe kann dann auch Hex=50 sein

Offen

Ausgabe Dauer bzw. konfiguration des Tastendrucks
Automatisches Suchen von Tastern
Prüfen ob es auch für FTS14 Geräte geht

Das kannst du beschleunigen.
Verarbeite im ReceiveData nicht immer alles was vom Gateway kommt, sondern setzte im ApplyChanges einen ReceiveFilter auf die DeviceID.
Dann sparst du auch die Abfrage auf diese ID, da du nur noch Daten im ReceiveData bekommst welcher auch deiner ID entsprechen.
Außerdem spart es PHP-Slots und somit Rechenleistung, weil IPS vorher alles rausfiltert.
SetReceiveDataFilter — IP-Symcon :: Automatisierungssoftware
Michael

meinst so?

$this->SetReceiveDataFilter(".*\"DeviceID\":".hexdec($this->ReadPropertyString("DeviceID")).".*");

dann eingebaut…Danke für den Tipp.

Schaut gut aus.

Michael

Hab mal nen Modulupdate s. Post#1 gemacht. Ist ja nicht nur für FTS12 sondern alle die Sensoren die das Eltako Tastertelegramm senden.

Da ich bei eigenen Modulen die Suche vermisse. Habe ich ein Suchdialog eingebaut. Auch in der Konfiguration auf DropList umgestellt um alles etwas komfortabler zu machen. Unterschied zum PTM ist das ich wie bei Homematic einen kurzen und Langen Tastendruck eingebaut hatte.

Wer Lust hat kann den Suchdialog ja raus kopieren oder das Generic Modul als Oberklasse (so macht es das FTS12) benutzen für eigene Module. Durch ein merge der form.json ist nicht viel Unterschied zur sonstigen Modulentwicklung.

Hallo mäc,

sehr coole Idee mit der Suchfunktion! Habe ich mir gerade im Detail angeguckt.
Ein Optimierungspunkt ist mir aufgefallen:
Wenn Du den Suchprozess abbrichst und nichts veränderst, dann wird der Datenfilter nicht wieder aktiviert.

Viele Grüße
Jürgen

Du meinst den Standard „Schliessen“ Button?
Ja da scheint man nicht dran zu kommen und ausblenden geht auch nicht…
Man muss eigentlich immer über den „Apply Selected“ gehen. Daher kam der Tipp mit dem Timer.

Wenn der Button „Apply Selected“ gedrückt wurde, wird ja über die fuction SetSelectedModul dann IPS_ApplyChanges in der Parent aufgerufen und der Filter gesetzt :confused: Aber ich check das nochmal.

Aber in der Tat fällt mir gerade auf.

  • Wenn der Timer abgelaufen ist, dann wird IPS_ApplyChanges nicht mehr aufgerufen.Das passt also nicht.:banghead:

ansonsten einfach im SearchModules unter else den Filter wieder setzen.

Jürgen

Jep. Danke damit wird es auch beim Timer Ende mit aufgerufen.:wink: