EEP D2-50-xx (heatRecovery.00) - Anzeige aktuelle Lüfterstufe "unknown"

Begonnen von Paetze, 31 Januar 2017, 20:49:45

Vorheriges Thema - Nächstes Thema

Paetze

Hallo,

ich habe ein dezentrales Lüftungsgerät Dimplex DL50 mit EnOcean-Schnittstelle eingelernt und kann auch wunderbar die verschiedenen Stufen mit FHEM verstellen.
Allerdings wird aktuelle Stufe nicht korrekt angezeigt, hier steht immer "unknown" (siehe Screenshot).
Alle restlichen Daten des empfangenen Statustelegramms, in dem auch die aktuelle Lüfterstufe gesendet wird, werden korrekt interpretiert.
Im Quellcode von 10_EnOcean.pm konnte ich auf den ersten Blick keine Verbindung zu den empfangenen Datenbytes sehen. Gibt es hier evtl. noch ein Problem bei der korrekten Interpretation der Lüfterstufe?


10935     } elsif ($st eq "heatRecovery.00") {
10936       # heat recovery ventilation
10937       # (D2-50-00)
10938       my $msgType = hex(substr($data, 0, 1)) >> 1;
10939       if ($msgType == 2) {
10940         my $ventilation = 'unknown';
10941         my %ventilation = (
10942           0 => "off",
10943           1 => 1,
10944           2 => 2,
10945           3 => 3,
10946           4 => 4,
10947           11 => "auto",
10948           12 => "demand",
10949           13 => "supplyAir",
10950           14 => "exhaustAir"
10951         );
10952         $ventilation = $ventilation{$ventilation} if (exists $ventilation{$ventilation});
10953         push @event, "3:ventilation:$ventilation";
10954         push @event, "3:fireplaceSafetyMode:" . ($db[12] & 8 ? 'enabled' : 'disabled');
10955         push @event, "3:heatExchangerBypass:" . ($db[12] & 4 ? 'opened' : 'closed');
10956         push @event, "3:supplyAirFlap:" . ($db[12] & 2 ? 'opened' : 'closed');
10957         push @event, "3:exhaustAirFlap:" . ($db[12] & 1 ? 'opened' : 'closed');



Vielen Dank.

klaus.schauer

Mit

10935     } elsif ($st eq "heatRecovery.00") {
10936       # heat recovery ventilation
10937       # (D2-50-00)
10938       my $msgType = hex(substr($data, 0, 1)) >> 1;
10939       if ($msgType == 2) {
10940         my $ventilation = 'unknown';
10941         my %ventilation = (
10942           0 => "off",
10943           1 => 1,
10944           2 => 2,
10945           3 => 3,
10946           4 => 4,
10947           11 => "auto",
10948           12 => "demand",
10949           13 => "supplyAir",
10950           14 => "exhaustAir"
10951         );
#
$ventilation = $db[13] & 15; 
#
10952         $ventilation = $ventilation{$ventilation} if (exists $ventilation{$ventilation});
10953         push @event, "3:ventilation:$ventilation";
10954         push @event, "3:fireplaceSafetyMode:" . ($db[12] & 8 ? 'enabled' : 'disabled');
10955         push @event, "3:heatExchangerBypass:" . ($db[12] & 4 ? 'opened' : 'closed');
10956         push @event, "3:supplyAirFlap:" . ($db[12] & 2 ? 'opened' : 'closed');
10957         push @event, "3:exhaustAirFlap:" . ($db[12] & 1 ? 'opened' : 'closed');

sollte es gehen.

Paetze

Hallo,

die Änderung an der 10_EnOcean.pm habe ich durchgeführt, die Lüfterstufe wird jetzt in FHEM richtig dargestellt :).


Danke und Gruss

philippg

Hallo Paetze,

wie konntest du den Dimplex DL 50 dazu bringen, auf dein UTE Lerntelegramm zu antworten? Mit dem Menü RC am Lüfter funktioniert es bei mir nicht, der Lüfter wird nicht erkannt.

LG
sermo

LinkshänderCode

Hallo zusammen,

das gleiche Problem habe ich auch.
@Peatze - evtl könntest du uns mal erläutern, wie du das Device mit EEP D2-50 in FHEM eingebunden hast (Attribute) und wie du den Einlern-Vorgang im Detail durchgeführt hast .Das wäre super.
Vielen Dank im Voraus und viele Grüße

Paetze

Hallo,

das Geräteprofil EEP D2-50-xx wird erst ab einer bestimmten Gerätegeneration und Software-Version unterstützt. Voraussetzung ist ein DL 50 WE/WH Generation 2 mit Software-Version 21 oder höher.
Dann FHEM in den Einlernmodus versetzen mit z.B.
set TCM_ESP3_0 teach 30
und anschließend am Gerät den Einlernvorgang über das Menü RC starten. So hat es bei mir funktioniert.

Weiterhin wurde in der EEP-Spec für das Profil D2-50-xx die Darstellung/Übertragung der Temperaturen korrigiert, diese werden mit einem Offset von -64 übertragen.
Dies müsste man noch in der 10_EnOcean.pm aktualisieren.

LG

LinkshänderCode

Ah das erklärt es. Danke für die Antwort!
Die erste Generation scheint nur unidirektional zu können. Eine Ansteuerung ist zwar möglich, aber man bekommt nicht den aktuellen Status zurück gemeldet. Das hat zur Folge, dass man vor jedem Schalten immer erst einen definierten Ausgangszustand herstellen sollte.
Schöner wäre die zweite Generation, aber es lässt sich auch mit der ersten leben.
Eine geschickt Einbindung in Homebridge muss ich mir noch überlegen...

klaus.schauer

Die geänderte Skalierung der verschiedenen Temperaturparameter kann natürlich in Fhem übernommen werden. Hat das wegen des geringeren Funktionsumfang dennoch Auswirkungen auf die Geräte der ersten Generation?

klaus.schauer

#8
Bitte Anpassungen der Skalierung testen, siehe Entwicklerversion als Anlage.