EnOcean Telegramm

Begonnen von TEnOcean, 15 April 2013, 23:16:55

Vorheriges Thema - Nächstes Thema

TEnOcean

Hallo,

ich versuche gerade einen Eltako FRS12 anzusteuern. Ist bei mir auf Universalschalter eingestellt, da wir auch physikalische Tastsschalter haben. Damit kann man nicht mehr einfach über Funk an- oder ausschalten, sondern nur toggle.

Ich versuche gerade einen Fenster-Kontakt FTK zu simulieren, um damit vielleicht aus- und anschalten zu können. Leider funktioniert es über FHEM im Standard-Setup nicht vollumfänglich, da man keine ORG=6 Telegramme senden kann (nur ORG-05 wenn ich es richtig sehe). Und Eltako FTK sende EEP 06-00-01.

Um hier weiterzukommen fehlen mir einige grundsätzliche Informationen. Vielleicht kann mir hier jemand weiterhelfen. Der Aufbau des Datentelegramms ist klar.
Aber was muss vor dem Datentelegramm stehen?

Thorsten

klaus.schauer

Auf die Schnelle habe ich mal eine Ergänzung erstellt:

} elsif ($st eq "contact") {
      # 1BS Telegram
      # Single Input Contact (EEP D5-00-01)
      my $setCmd;      
      if($cmd eq "teach") {
        $setCmd = 0;
      } elsif ($cmd eq "closed") {
        $setCmd = 9;
      } elsif ($cmd eq "open") {
        $setCmd = 8;
      } else {
        return "Unknown argument " . $cmd . ", choose one of open closed teach";
      }    
      IOWrite ($hash, "00070001", sprintf ("D5%02X%s00", $setCmd, $subDef));
      Log $ll2, "EnOcean: set $name $cmd";
   

Befehle lassen sich absenden und werden protokolliert. Ob es allerdings wirklich funktioniert, habe ich in der Kürze der Zeit nicht testen können.

Wer möchte, kann sich den Code in die Routine Sub EnOcean_Set($@) der 10_EnOcean.pm einbauen, am besten vor

} else {
    # Rocker Switch, simulate a PTM200 switch module
      # separate first and second action

 

TEnOcean


Super - danke. Werde ich ausprobieren und dann berichten.

Nun habe ich gleich noch eine Frage: Gibt es eine Möglichkeit mit FHEM die Repeater-Funktionalität des TCM 310 einzuschalten? Habe ich in der Referenz nicht gefunden.

klaus.schauer

Zitat von: TEnOcean schrieb am Di, 16 April 2013 22:05Super - danke. Werde ich ausprobieren und dann berichten.

Nun habe ich gleich noch eine Frage: Gibt es eine Möglichkeit mit FHEM die Repeater-Funktionalität des TCM 310 einzuschalten? Habe ich in der Referenz nicht gefunden.

Eine entsprechende Logik ist mir im Hardware-Programmmodul 10_TCM.pm bisher nicht aufgefallen. Vielleicht muss man "nur" den TCM 310 Chip entsprechend parameterisieren.

TEnOcean

Den obigen Code zum Schalten eins "contact" war bei mir erfolgreich. Ich musste nur noch ein Zeile im Code einfügen:

...
# Single Input Contact (EEP D5-00-01)
my $subDef = AttrVal($name, "subDef", "$hash->{DEF}");
my $setCmd;
if($cmd eq "teach") {
....

Damit konnte ich dann meinen FSR12 definiert anschalten, aber nicht ausschalten. Ich habe das jetzt so gelöst, dass ich zunächst definiert anschalte und dann toggle. Ist nicht ganz schön, weil das Licht beim Ausschalten kurz angeht, wenn es schon aus war. Aber was anderes ist mit jetzt nicht eingefallen. Hier die Zusammenfassung der Lösung:

Ausgangssituation:
  • Aktor: FSR12-12V
  • Physikalische Tastschalter, d.h. oberer Funktionsdrehschalter ist auf ES-UT eingestellt
  • Mittels FHEM soll es möglich sein definiert ein- und auszuschalten

Lösung:
  • FSR12-Einstellungen: oberer Drehschalter auf ES-UT, mittlerer Drehschalter auf AUTO 1, unterer Drehschalter auf AUTO
  • Eingelernt sind die Schalter FSR12_Feld2_27_1 und FTK12_Feld2_27_1
  • Auszug aus dem fhem.cfg (ohne log-Files):

#
# Definition Sender
#
define FSR12_Feld2_27_1 EnOcean FFC75D01
attr FSR12_Feld2_27_1 eventMap B0:on/off
attr FSR12_Feld2_27_1 manufID 00D
attr FSR12_Feld2_27_1 room Thorsten
attr FSR12_Feld2_27_1 subType switch
attr FSR12_Feld2_27_1 webCmd on/off
#
define FTK_Feld2_27_1 EnOcean FFC75D04
attr FTK_Feld2_27_1 room Thorsten
attr FTK_Feld2_27_1 subType contact
attr FTK_Feld2_27_1 webCmd open:closed:teach
#
# Schalter
#
define Thorsten1 dummy
attr Thorsten1 eventMap B0:on/off A0:on AI:off
attr Thorsten1 room Thorsten
attr Thorsten1 webCmd on/off:on:off
#
define Thorsten1_on notify Thorsten1 {if (Value("Thorsten1") eq "on") {fhem("set FTK_Feld2_27_1 closed")}}
define Thorsten1_off notify Thorsten1 {if (Value("Thorsten1") eq "off") {fhem("set FTK_Feld2_27_1 closed;; set FSR12_Feld2_27_1 on/off")}}
define Thorsten1_toggle notify Thorsten1 {if (Value("Thorsten1") eq "on/off") {fhem("set FSR12_Feld2_27_1 on/off")}}

klaus.schauer

Zitat von: TEnOcean schrieb am Sa, 20 April 2013 12:31Den obigen Code zum Schalten eins "contact" war bei mir erfolgreich. Ich musste nur noch ein Zeile im Code einfügen:

...
# Single Input Contact (EEP D5-00-01)
my $subDef = AttrVal($name, "subDef", "$hash->{DEF}");
my $setCmd;
if($cmd eq "teach") {
....

Damit konnte ich dann meinen FSR12 definiert anschalten, aber nicht ausschalten. Ich habe das jetzt so gelöst, dass ich zunächst definiert anschalte und dann toggle. Ist nicht ganz schön, weil das Licht beim Ausschalten kurz angeht, wenn es schon aus war. Aber was anderes ist mit jetzt nicht eingefallen. Hier die Zusammenfassung der Lösung:

Ausgangssituation:
  • Aktor: FSR12-12V
  • Physikalische Tastschalter, d.h. oberer Funktionsdrehschalter ist auf ES-UT eingestellt
  • Mittels FHEM soll es möglich sein definiert ein- und auszuschalten

Lösung:
  • FSR12-Einstellungen: oberer Drehschalter auf ES-UT, mittlerer Drehschalter auf AUTO 1, unterer Drehschalter auf AUTO
  • Eingelernt sind die Schalter FSR12_Feld2_27_1 und FTK12_Feld2_27_1
  • Auszug aus dem fhem.cfg (ohne log-Files):

#
# Definition Sender
#
define FSR12_Feld2_27_1 EnOcean FFC75D01
attr FSR12_Feld2_27_1 eventMap B0:on/off
attr FSR12_Feld2_27_1 manufID 00D
attr FSR12_Feld2_27_1 room Thorsten
attr FSR12_Feld2_27_1 subType switch
attr FSR12_Feld2_27_1 webCmd on/off
#
define FTK_Feld2_27_1 EnOcean FFC75D04
attr FTK_Feld2_27_1 room Thorsten
attr FTK_Feld2_27_1 subType contact
attr FTK_Feld2_27_1 webCmd open:closed:teach
#
# Schalter
#
define Thorsten1 dummy
attr Thorsten1 eventMap B0:on/off A0:on AI:off
attr Thorsten1 room Thorsten
attr Thorsten1 webCmd on/off:on:off
#
define Thorsten1_on notify Thorsten1 {if (Value("Thorsten1") eq "on") {fhem("set FTK_Feld2_27_1 closed")}}
define Thorsten1_off notify Thorsten1 {if (Value("Thorsten1") eq "off") {fhem("set FTK_Feld2_27_1 closed;; set FSR12_Feld2_27_1 on/off")}}
define Thorsten1_toggle notify Thorsten1 {if (Value("Thorsten1") eq "on/off") {fhem("set FSR12_Feld2_27_1 on/off")}}

Ich habe inzwischen mit einem FSR14 getestet. An- und Ausschalten ist uneingeschränkt möglich. Ich habe allerdings nur einen "contact" angelernt. Je nach Einstellung reagiert der FSR14 bei mehreren gleichzeitig angelernten Kontakten unterschiedlich, z. B. "aus" nur wenn alle Kontakte geöffnet.

TEnOcean


Mit dem FRS12 funktioniert bei mir nur das Einschalten, auch wenn ich nur einen "contact" eingelernt habe.

Was mir aber noch gelungen ist, ist es die Repeaterfunktionalität des TCM einzuschalten, indem ich in 00_TCM.pm eine Zeile eingefügt habe.

my %sets310 = (
  "pairForSec"   => { cmd=>"AB18", arg=>"\\d+" },
  "idbase"       => { cmd=>"07", arg=>"FF[8-9A-F][0-9A-F]{5}" },
  "repeater"       => { cmd=>"09", arg=>"0[0-1]0[0-2]" },
# The following 3 does not seem to work / dont get an answer
#  "sleep"        => { cmd=>"01", arg=>"00[0-9A-F]{6}" },
#  "reset"        => { cmd=>"02" },
#  "bist"         => { cmd=>"06", BIST_Result=>"1,1", },
);


"set EUL repeater 0000" schaltet den Repeater aus
"set EUL repeater 0101" schaltet den Repeater ein (1-Level)
"set EUL repeater 0102" schaltet den Repeater ein (2-Level)

Was ich aber noch suche ist ein Möglichkeit, einen FAH60 zu simulieren. Ich kann ihn zwar definieren, aber dann nur die Bits A0,AI,... setzen, nicht einen beliebigen Helligkeitswert oder ein teach-Telegramm.

klaus.schauer

Zitat von: TEnOcean schrieb am So, 21 April 2013 20:03Mit dem FRS12 funktioniert bei mir nur das Einschalten, auch wenn ich nur einen "contact" eingelernt habe.

Was mir aber noch gelungen ist, ist es die Repeaterfunktionalität des TCM einzuschalten, indem ich in 00_TCM.pm eine Zeile eingefügt habe.

my %sets310 = (
  "pairForSec"   => { cmd=>"AB18", arg=>"\\d+" },
  "idbase"       => { cmd=>"07", arg=>"FF[8-9A-F][0-9A-F]{5}" },
  "repeater"       => { cmd=>"09", arg=>"0[0-1]0[0-2]" },
# The following 3 does not seem to work / dont get an answer
#  "sleep"        => { cmd=>"01", arg=>"00[0-9A-F]{6}" },
#  "reset"        => { cmd=>"02" },
#  "bist"         => { cmd=>"06", BIST_Result=>"1,1", },
);


"set EUL repeater 0000" schaltet den Repeater aus
"set EUL repeater 0101" schaltet den Repeater ein (1-Level)
"set EUL repeater 0102" schaltet den Repeater ein (2-Level)

Wird der Befehl fehlerfrei angenommen und kommt eine entsprechende Quittungsmeldung zurück? Ich hatte mich letztlich als erstes mit der Abfrage des Repeaterstatus beschäftigt. Leider bin ich nicht weitergekommen, da als Rückmeldung ein Fehler gemeldet wurde: Timeout reading answer ... Ich wollte deshalb erst einmal klären, ob es bekannte Probleme gibt, die Firmware die Funktionen nur teilweise unterstützt oder vielleicht zu aktualisieren wäre.

klaus.schauer

Zitat von: TEnOcean schrieb am So, 21 April 2013 20:03Was ich aber noch suche ist ein Möglichkeit, einen FAH60 zu simulieren. Ich kann ihn zwar definieren, aber dann nur die Bits A0,AI,... setzen, nicht einen beliebigen Helligkeitswert oder ein teach-Telegramm.
D. h. Fhem soll das Profil Light Sensor (EEP A5-06-01) simulieren und Helligkeitsdaten senden? Woher sollen die Daten für die Helligkeit kommen? Wie sollen die Daten gesendet werden, regelmäßig oder per set-Befehl? Ich kann den Sinn noch nicht erkennen, sieht man mal von Tests ab.

TEnOcean

Ich habe auch ein Timeout bekommen. Die Repeaterfunktionalität wird aber korrekt geschaltet, sowohl Level 1 als auch Level 2 funktioniert.

TEnOcean

Es geht mir immer noch um eine Lösung wie ich meinen FRS12 definiert schalten kann. Ggf. funktioniert es mit einem simulierten FAH. Am liebsten haette ich ja einen generischen Schalter, der ein 4BS Telegramm abschickt bei Vorgabe des Datenpakets.

klaus.schauer

Zitat von: TEnOcean schrieb am So, 21 April 2013 22:44Ich habe auch ein Timeout bekommen. Die Repeaterfunktionalität wird aber korrekt geschaltet, sowohl Level 1 als auch Level 2 funktioniert.
Bevor diese Funktion allgemein verteilt wird, sollte m. E. auch die Quittierung funktionieren. Vielleicht findet sich alsbald eine Lösung.

klaus.schauer

Zitat von: TEnOcean schrieb am So, 21 April 2013 22:55Es geht mir immer noch um eine Lösung wie ich meinen FRS12 definiert schalten kann. Ggf. funktioniert es mit einem simulierten FAH. Am liebsten haette ich ja einen generischen Schalter, der ein 4BS Telegramm abschickt bei Vorgabe des Datenpakets.
Ich verstehe das Problem eigentlich nicht. Lt. Anleitung http://www.eltako.com/fileadmin/downloads/de/_bedienung/FSR12-4x-12_VDC_30400134-1_dt.pdf kann man das Sensorprofil PC anlernen. Das entspricht dem recht neuen Fhem Profil Gateway (EEP A5-38-08), siehe commandref. Bei meinem FSR14 funktioniert das problemlos.

TEnOcean


... ich habe meist FSR12-12V verbaut. Dort kann ich Zentralein/-aus nur für beiden Kanäle gemeinsam einlernen. Beim FSR12-4x könnte ich es einmal probieren, ob es pro Kanal funktioniert - davon habe ich aber nur einen.

P.s.: Zur Repeaterfunktionalität ist es natürlich richtig, dass die Quittung verstanden werden sollte bevor es allgemein eingebaut werden sollte. Ich wollte auch nur sagen, dass es grundsätzlich mit der Hardware funktioniert. Da ich bisher noch nicht mit Perl programmiert habe, geht bei mir alles schleppend - deshalb keine saubere Lösung ....

klaus.schauer

Zitat von: TEnOcean schrieb am Mo, 22 April 2013 09:32... ich habe meist FSR12-12V verbaut. Dort kann ich Zentralein/-aus nur für beiden Kanäle gemeinsam einlernen. Beim FSR12-4x könnte ich es einmal probieren, ob es pro Kanal funktioniert - davon habe ich aber nur einen.
Für Zentral ein/aus würde ich mal das Fhem Profil switch mit dem attr <name> switchType central und den attr subDefI, subDef0 probieren. Damit kann man die Geräte mit einem Fhem-Device ein- und ausschalten.

Die Sensortypauswahl bei den FSR12 ist ja wirklich überschaubar. Ich würde nochmal mit den Profil contact experimentieren und die Funktion Relais (ER) wählen.