10_EnOcean V3161 - Erweiterungen und Überarbeitungen

Begonnen von klaus.schauer, 08 Mai 2013, 17:06:36

Vorheriges Thema - Nächstes Thema

klaus.schauer

In dieser Version sind folgende Ergänzungen, Änderungen und Fehlerbereinigungen enthalten:

   1. Über Transceiver mit dem Modul TCM120 (BOR) können jetzt Devices mit den Protollen 1BS und 4BS gesteuert werden, z. B. Dimmer. Die Steuerung von bidirektionalen Profilen wie Battery Powered Actuator (EEP A5-20-01) [Kieback&Peter MD15-FTL-xx] ist dennoch weiterhin nicht möglich. Das Modul TCM120 unterstützt dies nicht. Für den erweiterten Funktionsumfang wurden sowohl in 10_EnOcean.pm als auch in 00_TCM.pm umfangreiche Änderungen vorgenommen. Beide Module müssen gleichzeitig per "update" aktualisiert werden!
 
   2. Neues Profil raw ermöglicht das unmittelbare Senden von Nutzdaten und Statuswerten im hex-Format. Die Daten werden weder inhaltlich noch auf Plausibilität nicht geprüft. Das Profil ist daher in erster Linie für Tests sinnvoll.

   3. Neue EEP 2.1 Profil: Room Operation Panels (A5-10-18 - A5-10-1E)

   4. Neue EEP 2.5 Profil: Room Operation Panel (A5-10-1F)

   5. Mit Hilfe des neuen Attributes repeatingAllowed kann für jedes Devices festgelegt werden, ob Repeater im Sendebereich von Fhem die gesendeten Datentelegramme weiterleiten dürfen. Das Repeating zu unterbinden, sollte nur in Ausnahmefällen notwendig sein. Um diese Funktion bereitstellen zu können, musste die Senderoutine an vielen Stellen umgeschrieben werden. Dadurch haben sich hoffentlich keine versteckten Fehlern eingeschlichen.

   6. In Umgebungen mit Repeatern ist es möglich, dass von Fhem gesendete Datentelegramme wieder von Fhem empfangen werden. Diese Telegramme werden derzeit wie alle anderen empfangenen Datenpakete ausgewertet und können unbeabsichtigte Aktionen über notify auslösen. In einem späteren Update von Fhem ist vorgesehen, diese Datenpakete zu filtern und zu unterdrücken.

   7. Die Kommandosyntax des Profils Gateway (EEP A5-38-08) musste für die Kommandos setpointShift, setpointBasic, controlVar und fanStage geändert werden, um eine brauchbare Darstellung in der WEB-Oberfläche zu erreichen.

   8. Aus Version 2968: Beim Teach-In wurden manchmal die angelernten Attribute nicht zuverlässig in fhem.cfg gespeichert. Der Fehler ist behoben  (Schorsch M.). Nachtrag: Bei einem Test von tobias6789 wurden die angelernten Attribute nach dem Teach-In dennoch nicht vollständig gespeichert. Wird weiter beobachtet.

   9. Aus Version 2968: Beim Profil MD15 können jetzt die Geräte durch Fhem gesteuert werden. Die Übertragung  der Isttemperatur von Fhem zum MD15 ist derzeit nicht möglich. Hierzu laufen Tests  (krikan). Zusätzliche Befehle im Service Mode sind verfügbar und zu testen.

In den nächsten Wochen ist geplant, die "alten" Profile eltakoDimmer, eltakoShutter, FAH, FBH, FTF und SR04 zu entfernen. Die Ausgabeformate des Profils PM101 sollen an die anderen Profile angepasst werden. Für alle Profile stehen neue, teilweise verbesserte und erweiterte Profile zur Verfügung, siehe commandref. Das Modul 10_EnOcean ist inzwischen so umfangreich geworden, dass eine Bereinigung dringend notwendig ist, um den Pflegeaufwand und Testaufwand in Grenzen zu halten. Ich bitte die Profile entsprechend umzustellen. Ich werde vor der Umstellung nochmals informieren.


Danke für die bisherigen Rückmeldungen und Tests. Ich möchte nochmals darum bitten, die neuen Profile zu testen. Für mich ist dies wegen der fehlenden Testobjekte nicht möglich.

TEnOcean


Beim Profile raw funktioniert bei mir das Setzen des Status nicht. Ich denke, es liegt daran, dass unten im Code ein shift(@a) durchgeführt wird und danach $a[1] als Telgramm ausgelesen wird (es ist dann aber der Status).


      if ($a[2]) {
        if ($a[2] !~ /^[\dA-F]{2}$/) {
          return "Wrong status parameter, choose $cmd $a[1] [status 1 Byte hex]";
        }
       $status = $a[2];
       shift(@a);    
      }
      $updateState = 0;
      readingsSingleUpdate($hash, "RORG", $cmd, 1);
      readingsSingleUpdate($hash, "dataSent", $a[1], 1);
      readingsSingleUpdate($hash, "statusSent", $status, 1);
      Log $ll2, "EnOcean: set $name $cmd $a[1] $status";
      shift(@a);    


klaus.schauer

Zitat von: TEnOcean schrieb am So, 19 Mai 2013 21:20Beim Profile raw funktioniert bei mir das Setzen des Status nicht. Ich denke, es liegt daran, dass unten im Code ein shift(@a) durchgeführt wird und danach $a[1] als Telgramm ausgelesen wird (es ist dann aber der Status).


      if ($a[2]) {
        if ($a[2] !~ /^[\dA-F]{2}$/) {
          return "Wrong status parameter, choose $cmd $a[1] [status 1 Byte hex]";
        }
       $status = $a[2];
       shift(@a);    
      }
      $updateState = 0;
      readingsSingleUpdate($hash, "RORG", $cmd, 1);
      readingsSingleUpdate($hash, "dataSent", $a[1], 1);
      readingsSingleUpdate($hash, "statusSent", $status, 1);
      Log $ll2, "EnOcean: set $name $cmd $a[1] $status";
      shift(@a);    

Danke für den Hinweis. Die gesendeten Daten sind in Ordnung. Die Ausgabe im Log aber fehlerhaft. Wird berichtigt.

TEnOcean

... ich meine es werden auch als Daten der Status geschickt, da bei
readingsSingleUpdate($hash, "dataSent", $a[1], 1);
auch $a[1] als Argument verwendet wird.

klaus.schauer

Zitat von: TEnOcean schrieb am So, 19 Mai 2013 23:17... ich meine es werden auch als Daten der Status geschickt, da bei
readingsSingleUpdate($hash, "dataSent", $a[1], 1);
auch $a[1] als Argument verwendet wird.
ne, die Daten werden schon weiter oben in der Routine aufbereitet: $data = ..., $Status = ... und später an IOWrite übergeben.

TEnOcean

... um so besser. Dann Sorry für den falschen Alarm.