Konfiguration von PEHA Rollladensteuerung klappt nicht (452 FU-EBIM JR o.T.)

Begonnen von FHEM_Alex_Pi, 01 September 2014, 19:45:22

Vorheriges Thema - Nächstes Thema

krikan

Hallo Alexander,

ZitatDie Lamellenverstellung oder Beschattung müsste somit über einen Timer einfach zu programmieren sein?!
Das ist grds. jetzt (schon) problemlos möglich.
Was ich bisher nur nicht geschafft habe: Winkelverstellung der Lamellen über "set <device> position x y"; funktioniert nur über "set <device> up/down x y". Außerdem wird Winkel/angle nicht zurückgemeldet ("value not available" mit meiner 10_EnOcean.pm oder mit Original anglePos immer 0).

Es wäre schön, wenn Du berichten würdest, ob Deine position-Angabe automatisch (Reading) passt oder ob Du dazu Laufzeitparameter (runtimeSet) in Fhem angepasst hast.

Danke, Christian

FHEM_Alex_Pi

Die "anglePos" ist bei mir auch immer "0".
Die Laufzeitparameter habe ich nicht angepasst. Ich wüsste nicht wie.

Kannst Du mir sagen, wo die Hilfsanwendung 10_EnOcean.pm gespeichert ist und wie ich diese aktualisieren kann?

krikan

Nur kurz, da ich unterwegs bin: bitte meine 10_EnOcean.pm nicht mehr nehmen, insbesondere wenn Du heute ein Update gemacht hast. Die passt nicht mehr zu den heute verteilten Dateien. Mit dem Update von heute hat Klaus.Schauer auch schon Änderungen drin, die ich manuell geändert hatte; Rest bastel ich in Kürze neu ein und melde mich. Berichte bitte einmal, ob der Wert position bei Dir bei gemischter Steuerung über Fhem und Taster korrekt ist. Position gibt Stand der Jalousie in Prozent an.
Gruß, Christian

FHEM_Alex_Pi

Inzwischen habe ich die runtime angepasst. Jetzt meldet er auch die Position korrekt zurück. Sowohl bei der Steuerung über FHEM als auch direkt über den Taster. "alarm" ist jetzt auch "off". "set ... position .." funktioniert.

krikan

Meine abschließenden Testergebnisse mit 452 FU-EBIM JR o.T.:

Im Vergleich zu den vorläufigen Testergebnissen hier http://forum.fhem.de/index.php/topic,26692.msg199366.html#msg199366, haben sich trotz intensiver Test keine wesentlichen neuen Erkenntnisse ergeben. Fasse hier aber noch einmal alles zusammen:

Teach-In wie hier im Thread und unter http://www.fhemwiki.de/wiki/EnOcean-D-452-FU-EBIM-JR-Aktor-Beschattungselemente-Rollladen dokumentiert.

Direkt nach dem Teach-In funktionieren alle Fhem-Befehle, die auf Zeitsteuerung basieren (sowohl Jalousie als auch Lammellenwinkel)

Die prozentuale Steuerung über "set <device> position <%>" erfordert ein Setzen der Laufzeitwerte (runtimeSet) durch Fhem. Die vorherige Kalibrierung durch einen Taster ist nicht ausreichend.
Der Aktor sendet bei einer Positionsveränderung in 10er Schritten position mit EEP A5-11-03 bzw. bei kleineren Veränderungen auch in 1er Schritten .
Animierte Visualisierung ist damit möglich. Zudem sendet er alle 15 Minuten seinen Status per EEP A5-11-03.

Die prozentuale Steuerung der Lammellenwinkel über "set <device> position <%> <%>" habe ich auch durch Setzen der entsprechenden Laufzeitwerte (angleMinMax und angleSet) nicht geschafft. Der Befehl zeigt keine Wirkung auf den Lammellenwinkel, sondern führt nur zur normalen Jalousiefahrt. Hierbei habe ich auch alle erdenklichen Kombinationen mit den unten genannten Flags ausprobiert.

Folgende (oder sinngemäße) Änderungen an 10_EnOcean.pm schlage ich vor:

Zeile 3695:
positon durch position ersetzen

eingefügen nach Zeile 3734:
push @event, "3:positionValueFlag:" . ($db[1] & 0x80 ? "available" : "no available");
push @event, "3:angleValueFlag:" . ($db[1] & 0x40 ? "available" : "no available");

- positionValueFlag zeigt an, ob die Kalibrierung für die prozentuale Steuerung der Jalousie erfolgreich war. Erst dann ist "set position <%>" sinnvoll nutzbar
- angleValueFlag sollte das Gleiche für die Lammellenwinkel anzeigen; bleibt aber in allen Test auf "no available"

eingefügen vor 1418 und entsprechende Attribute anlegen
my $SendStatusFlag = (AttrVal($name,"SendStatusFlag","off") eq "on") ? 4 : 0 ;
my $PosAndAngleFlag = (AttrVal($name,"PosAndAngleFlag","off") eq "on") ? 2 : 0;
my $ServiceModeFlag = (AttrVal($name,"ServiceModeFlag","off") eq "on") ? 1 : 0;
$setCmd = $setCmd | ($SendStatusFlag | $PosAndAngleFlag | $ServiceModeFlag);

- SendStatusFlag führt bei allen Befehlen zu keinen Auswirkungen außer bei status. Wenn eingeschaltet, schickt die Statusabfrage keine Antwort. Aus den EEPs ergibt sich für mich genau das Gegenteil.
- PosAndAngleFlag hat keine erkennbaren Auswirkungen.
- ServiceModeFlag sperrt alle Taster und lässt nur noch durch Fhem steuern.

Weiterhin schlage ich vor, die Laufzeitwerte für runtimeSet, angleSet und angleMinMax als Attribute zu definieren (analog Manufacturer Specific Applications (EEP A5-3F-7F)?). Das Speichern in Readings finde ich persönlich zu flüchtig, da man die Werte mWn am Aktor nicht abfragen kann.

@klaus.schauer: Wenn Du lieber einen Patch haben möchtest, gib bitte Bescheid.


klaus.schauer

Ich werde die Vorschläge sobald als möglich prüfen. Readings als Speicherort für die Voreinstellung hatte ich gewählt, da die Parameter im Aktor selbst gespeichert werden. Falls man Attribute nimmt, müsste schon ein Eintragen oder Ändern der Werte einen set-Befehl auslösen, sonst kommt der normale Nutzer nicht damit zurecht. Das lässt sich zwar umsetzen, dafür muss ich aber die komplette Logik umbauen.

krikan

ZitatReadings als Speicherort für die Voreinstellung hatte ich gewählt, da die Parameter im Aktor selbst gespeichert werden. Falls man Attribute nimmt, müsste schon ein Eintragen oder Ändern der Werte einen set-Befehl auslösen, sonst kommt der normale Nutzer nicht damit zurecht. Das lässt sich zwar umsetzen, dafür muss ich aber die komplette Logik umbauen.

Verstehe Deine Argumente für die Wahl der Readings als Speicherort der Voreinstellungen. Mich persönlich störte einfach nur, dass ich (als fauler User) bei Verlust der Readings die Voreinstellung irgendwo separat notiert haben müsste. Falls auch der Aktor die richtigen Voreinstellungen verlieren sollte, hätte ich im Readingsverlustfall ansonsten alle Voreinstellungs-Werte neu zu ermitteln. Readings habe ich schon häufiger verloren, aber noch keine Attribute.

Nach nochmaliger Überlegung ziehe ich diesen Vorschlag zurück. Lasse es so wie es ist, vor allem, wenn es Zusatzarbeit verursacht. Letztlich ist der Readingsverlust zumeist ein User-Fehler. Abhilfe schaffen neben Aufzeichnungen auch ordnungsgemäße Datensicherungen. Werde als Tipp auf der Wiki-Seite einfach den Hinweis geben, die Voreinstellungen separat (bspw. als comment zum Aktor) festzuhalten. Das sollte ausreichen.

klaus.schauer


klaus.schauer

Das Teach-In wurde überarbeitet, siehe http://forum.fhem.de/index.php/topic,28003.msg208933.html#msg208933.
Sobald jetzt der Aktor in Fhem eingelernt wurde, steht auch automatisch das zugehörige Fhem Sendeprofil gateway zur Verfügung. Weiterhin wird eine freie SenderID eingetragen. Ich hoffe es funktioniert auch praktisch wie vorgesehen.

krikan

@klaus.schauer:

Hallo Klaus,
mit dem neuen Einlernverhalten komme ich nicht klar, oder (wahrscheinlicher) ich verstehe es nicht richtig:
Der Aktor sendet nach meinen Feststellungen nur Statustelegramme (nach subType shutterCtrlState.01), wenn ein Gateway eingelernt wurde. Das ist aber vor dem ersten Einlernen von Fhem regelmäßig nicht der Fall. Ein Druck auf den Anlernbutton des Aktors führt auch nicht zum Versand des Statustelegramms. Daher musste ich genauso wie in der "alten" Teach-In-Fassung alles manuell definieren und den Aktor anlernen. Eine Vereinfachung durch automatisches Zuordnen von Sendeprofil gateway und freier SenderID konnte ich nicht feststellen. Muss ich ein bestimmtes Vorgehen wählen?

Gruß, Christian

PS: Soll ich den PSC234 auch mit dem neuen Teach-In testen?

klaus.schauer

Das ist dumm, wenn beim EEP A5-11-03 (shutterCtrlState.01) vom Aktor kein teach-in Telegramm gesendet wird. Dann war die Arbeit an dieser Stelle umsonst. Ich konnte das nur über das raw-Profil mit dem Telegramm 441FFF80 testen. Das klappt wunderbar.

Beim PSC234 sollte es aber gehen, da über UTE angelernt wird.

krikan

Es kommt ein "teach-in Telegramm", aber erst nachdem per Fhem ein set <device> teach abgesetzt wird:
2014.10.18 17:04:12 2: EnOcean set EnO_sensor_FFB4C900 teach
2014.10.18 17:04:12 2: EnOcean EnO_sensor_FFB4C900 teach-in EEP A5-11-03 Manufacturer: Peha


Leider habe ich keine Ahnung, was ich falsch machen könnte. Das verstehe ich nicht:
Zitat
raw-Profil mit dem Telegramm 441FFF80
Könnte das noch eine Relevanz haben?

klaus.schauer

Schade, dann geht es leider nicht.

Es gibt ein subType raw. Mit diesem Profil kann man ein EEP Datenpaket und das Statusbyte senden, also z. B. das teach-in Telegramm 441FFF80 für A5-11-03 (shutterCtrlState.01)

t_enocean

Hallo, ich bin auch ein newbie und danke schon mal für die Mühe, die ihr euch hier macht.

Ich hab den PEHA 454 FU-JR 2REG. Der sitzt auf der Hutschiene und nicht in der Unterputzdose.
Und da schon älter ist er nicht bidirektional.
Sollte aber funktionell sonst gleich sein.

Dank der Beschreibung hier hat das Einlernen über FHEM schon geklappt (wird in meiner Anlage durch ein Piepen signalisiert).

Nur bewegen tut sich der - in diesem Fall - Rolladen nicht.

define Rolladen EnOcean FF959482
attr Rolladen IODev TCM310_0
attr Rolladen gwCmd blindCmd
attr Rolladen manufID 001
attr Rolladen room EnOcean
attr Rolladen subDef FF959482
attr Rolladen subType shutterCtrlState.01
attr Rolladen subTypeSet gateway

Bei subDef habe ich eine freie Adresse das TCM verwendet und die gleiche beim define, da auf dem Aktor nichts steht. Bin mir nicht sicher, ob das richtig ist.

Ich habe auch ein update und shutdown restart gemacht sollte also auf dem neusten Stand sein.

Bei set Rolladen up bekomme ich aber eine Fehlermeldung: Usage: up variable is not numeric or out of range.
Bei set Rolladen opens passiert z.B. gar nichts.

Wobei ich bei einem unbekannten Kommando dieses bekomme:

Unknown Gateway Blind Central Function open, choose one of angleMinMax angleSet closes down opens position positionLogic positionMinMax runtimeSet status stop teach up

Wo könnte der Fehler liegen?

krikan

Wie Du selbst schreibst, ist Dein Aktor PEHA 454 FU-JR 2REG unidirektional. Du musst daher gemäß http://www.fhemwiki.de/wiki/EnOcean_Starter_Guide#unidirektionale_Aktoren eine unidi-Teach-In-Variante nutzen und kannst nicht irgendeine bidi-Variante nehmen.

Nach http://homematic-forum.de/forum/viewtopic.php?f=37&t=18060&start=0#p148681 unterstützt Dein Aktor nicht das Profil A5-38-08 und kann daher überhaupt nicht mit dem in diesem Thread behandelten Aktor verglichen werden. Es wäre vermutlich besser Dein Problem in einen separaten Thread auszulagern, um das hier sauber zu halten.

Lösung: Peha fragen, welche EEP von Deinem Aktor unterstützt werden oder direkt  Tasteremulation laut Wiki nutzen. Und bitte http://www.fhemwiki.de/wiki/EnOcean_Starter_Guide noch einmal komplett lesen (und Verständnisprobleme beim Wiki posten, damit das ggfs. angepasst werden kann)