Rolladensteuerung KNX ABB Aktor JRA S 4.230.5.1: Unterschied zwischen den Versionen
Krikan (Diskussion | Beiträge) (FHEM(R)) |
K (Forenkommentar eingearbeitet) |
||
Zeile 1: | Zeile 1: | ||
{{Randnotiz|RNTyp=y|RNText=Laut {{Link2Forum|Topic=79658|LinkText=diesem Forenbeitrag}} funktioniert das vorgeschlagene Beispiel auch mit anderen Aktoren, die Einschränkung auf ABB gilt offensichtlich nicht (mehr).}} | |||
Verwendet wird ein Aktor für KNX von ABB JRA S 4.230.5.1. | Verwendet wird ein Aktor für KNX von ABB JRA S 4.230.5.1. | ||
Zeile 16: | Zeile 16: | ||
0/0/17 = Status Höhe 0...255</nowiki> | 0/0/17 = Status Höhe 0...255</nowiki> | ||
=== FHEM === | === FHEM === | ||
<nowiki>define Rollo1 | <nowiki>define Rollo1 KNX 0/0/17:dpt5.004 0/0/10:dpt1 0/0/11:dpt1 0/0/12:dpt1 0/0/13:dpt1 | ||
attr Rollo1 eventMap /on g3:Stop/off g2:Auf/on g2:Ab/off g4:Pos1/on g4:Pos2/off g5:Pos3/on g5:Pos4 | attr Rollo1 eventMap /on g3:Stop/off g2:Auf/on g2:Ab/off g4:Pos1/on g4:Pos2/off g5:Pos3/on g5:Pos4 | ||
attr Rollo1 webCmd Ab:Stop:Auf:::Pos1:Pos2:Pos3:Pos4 | attr Rollo1 webCmd Ab:Stop:Auf:::Pos1:Pos2:Pos3:Pos4</nowiki> | ||
[[File:Rollo1.png]] | [[File:Rollo1.png]] | ||
== Funktionsweise == | == Funktionsweise == | ||
* gX (g1 ... g4) beziehen sich auf die EIB Adresse in der define Zeile (sollte mit anderen Systemen genauso funktionieren). Auf g1 kann verzichtet werden. | * gX (g1 ... g4) beziehen sich auf die EIB Adresse in der define Zeile (sollte mit anderen Systemen genauso funktionieren). Auf g1 kann verzichtet werden. | ||
* Jeder Eintrag beginnt mit einem "/" | * Jeder Eintrag beginnt mit einem "/" | ||
Zeile 31: | Zeile 27: | ||
/on g3:Stop ==> An die EIB Adresse 3 (0.0.11) ein High Bit senden und das ganze als Stop bezeichnen (Ansicht) | /on g3:Stop ==> An die EIB Adresse 3 (0.0.11) ein High Bit senden und das ganze als Stop bezeichnen (Ansicht) | ||
Die webCmd sorgt für die Web-Darstellung | Die webCmd sorgt für die Web-Darstellung in FHEM. | ||
Wie man gut sehen kann, beziehen sich die Schlüsselworte auf die eventMap. | Wie man gut sehen kann, beziehen sich die Schlüsselworte auf die eventMap. | ||
Zeile 37: | Zeile 33: | ||
== Anpassen des Moduls 10_EIB.pm um das Model percent255 == | == Anpassen des Moduls 10_EIB.pm um das Model percent255 == | ||
Es gibt Aktoren, die die Position von 0 bis 255 zurückgeben. Damit das in FHEM richtig angezeigt wird, muss das Modul 10_EIB.pm erweitert werden. Es wird das Model percent255 hinzugefügt. | |||
Es gibt Aktoren, die die Position von 0 bis 255 zurückgeben. Damit das | |||
Es wird das Model percent255 hinzugefügt. | |||
Das Model percent muss durch percent255 ersetzt werden. | Das Model percent muss durch percent255 ersetzt werden. | ||
:<code>attr Rollo1 model percent255</code> | |||
Anbei ein Diff-File | Anbei ein Diff-File, das mit dem Tool Patch eingespielt wird. | ||
:<code>cat 10_EIB_Percent255.diff |patch</code> | |||
das | |||
cat 10_EIB_Percent255.diff |patch | |||
<source>--- /usr/src/fhem/FHEM/10_EIB.pm 2012-05-10 11:22:45.932001898 +0200 | |||
+++ /usr/share/fhem/FHEM/10_EIB.pm 2012-06-06 09:59:55.796006787 +0200 | +++ /usr/share/fhem/FHEM/10_EIB.pm 2012-06-06 09:59:55.796006787 +0200 | ||
@@ -31,7 +31,8 @@ | @@ -31,7 +31,8 @@ | ||
Zeile 81: | Zeile 71: | ||
Log(5,"EIB $code parse $value = $fullval translated: $transval"); | Log(5,"EIB $code parse $value = $fullval translated: $transval"); | ||
} elsif($code eq "dpt9")</ | } elsif($code eq "dpt9")</source> | ||
Version vom 21. Dezember 2017, 20:00 Uhr
Verwendet wird ein Aktor für KNX von ABB JRA S 4.230.5.1.
Dieser Aktor hat eine Fahrzeitermittlung und eine prozentuale Positionierung sowie 4 Preset Speicherplätze.
Der Aktor kann auch Jalousien ansteuern.
Vorgehen
KNX Konfig
Ich habe fünf Gruppenadressen je Rollo angelegt.
0/0/10 = Auf/Ab 0/0/11 = Stop 0/0/12 = Preset 1 und 2 (Low und High Bit) 0/0/13 = Preset 3 und 4 0/0/17 = Status Höhe 0...255
FHEM
define Rollo1 KNX 0/0/17:dpt5.004 0/0/10:dpt1 0/0/11:dpt1 0/0/12:dpt1 0/0/13:dpt1 attr Rollo1 eventMap /on g3:Stop/off g2:Auf/on g2:Ab/off g4:Pos1/on g4:Pos2/off g5:Pos3/on g5:Pos4 attr Rollo1 webCmd Ab:Stop:Auf:::Pos1:Pos2:Pos3:Pos4
Funktionsweise
- gX (g1 ... g4) beziehen sich auf die EIB Adresse in der define Zeile (sollte mit anderen Systemen genauso funktionieren). Auf g1 kann verzichtet werden.
- Jeder Eintrag beginnt mit einem "/"
/on g3:Stop ==> An die EIB Adresse 3 (0.0.11) ein High Bit senden und das ganze als Stop bezeichnen (Ansicht)
Die webCmd sorgt für die Web-Darstellung in FHEM. Wie man gut sehen kann, beziehen sich die Schlüsselworte auf die eventMap.
Dadurch, dass die Rückgabeadresse (0/0/17) an erster Stelle steht, wird statt der Lampe ein Prozentwert ausgegeben.
Anpassen des Moduls 10_EIB.pm um das Model percent255
Es gibt Aktoren, die die Position von 0 bis 255 zurückgeben. Damit das in FHEM richtig angezeigt wird, muss das Modul 10_EIB.pm erweitert werden. Es wird das Model percent255 hinzugefügt.
Das Model percent muss durch percent255 ersetzt werden.
attr Rollo1 model percent255
Anbei ein Diff-File, das mit dem Tool Patch eingespielt wird.
cat 10_EIB_Percent255.diff |patch
--- /usr/src/fhem/FHEM/10_EIB.pm 2012-05-10 11:22:45.932001898 +0200
+++ /usr/share/fhem/FHEM/10_EIB.pm 2012-06-06 09:59:55.796006787 +0200
@@ -31,7 +31,8 @@
# 1-Octet unsigned value (handled as dpt7)
"dpt5" => {"CODE"=>"dpt7", "UNIT"=>""},
- "percent" => {"CODE"=>"dpt7", "UNIT"=>"%"},
+ "percent" => {"CODE"=>"dpt7", "UNIT"=>"%"},
+ "percent255" => {"ADJUSTMENT"=>"255", "CODE"=>"dpt7", "UNIT"=>"%"},
# 2-Octet unsigned Value (current, length, brightness)
"dpt7" => {"CODE"=>"dpt7", "UNIT"=>""},
@@ -346,14 +347,16 @@
my $code = $eib_dpttypes{"$model"}{"CODE"};
my $unit = $eib_dpttypes{"$model"}{"UNIT"};
my $transval = undef;
+ my $adjustment = $eib_dpttypes{"$model"}{"ADJUSTMENT"};
Log(4,"EIB parse $value for $name model: $model dpt: $code unit: $unit");
if ($code eq "dpt7")
{
my $fullval = hex($value);
- $transval = $fullval;
-
+ $transval = $fullval;
+ $transval = ($fullval / 2.55) if($adjustment eq "255");
+ $transval = sprintf("%.0f",$transval);
+
Log(5,"EIB $code parse $value = $fullval translated: $transval");
} elsif($code eq "dpt9")