Rolladensteuerung KNX ABB Aktor JRA S 4.230.5.1: Unterschied zwischen den Versionen
(→fhem) |
KKeine Bearbeitungszusammenfassung |
||
(8 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
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. | ||
Dieser Aktor hat eine Fahrzeitermittlung und eine prozentuale Positionierung sowie 4 Preset Speicherplätze. | Dieser Aktor hat eine Fahrzeitermittlung und eine prozentuale Positionierung sowie 4 Preset Speicherplätze. | ||
Zeile 12: | Zeile 9: | ||
<nowiki>0/0/10 = Auf/Ab | <nowiki>0/0/10 = Auf/Ab | ||
0/0/11 = Stop | 0/0/11 = Stop | ||
0/0/12 = Preset 1 und 2 (Low und High Bit) | 0/0/12 = Preset 1 und 2 (Low und High Bit) | ||
0/0/13 = Preset 3 und 4 | 0/0/13 = Preset 3 und 4 | ||
0/0/17 = Status Höhe 0...255</nowiki> | 0/0/17 = Status Höhe 0...255</nowiki> | ||
=== | === 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 /g3 on:Stop/g2 off:Auf/g2 on:Ab/g4 off:Pos1/g4 on:Pos2/g5 off:Pos3/g5 on:Pos4 | |||
attr Rollo1 webCmd Ab:Stop:Auf:::Pos1:Pos2:Pos3:Pos4 | |||
attr Rollo1 eventMap /on | |||
attr Rollo1 webCmd Ab:Stop:Auf:::Pos1:Pos2:Pos3:Pos4 | |||
[[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 33: | Zeile 25: | ||
/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. | ||
Dadurch, dass die Rückgabeadresse (0/0/17) an erster Stelle steht, wird | Dadurch, dass die Rückgabeadresse (0/0/17) an erster Stelle steht, wird statt der Lampe ein Prozentwert ausgegeben. | ||
Es gibt Aktoren die | == Anpassen des Moduls 10_EIB.pm um das Model percent255 == | ||
Es wird das Model percent255 hinzugefügt. | {{Randnotiz|RNText=Das Modul EIB ist seit 2018 deprecated und wird nicht mehr gewartet. Dieses Beispiel / Anpassung nicht mehr verwenden!}} | ||
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. | 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> | |||
<syntaxhighlight lang="diff"> | |||
--- /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 84: | 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") | ||
</syntaxhighlight> | |||
[[Kategorie:EIB/KNX]] | |||
[[Kategorie:Code Snippets]] | |||
[[Kategorie:Rollladensteuerung]] |
Aktuelle Version vom 9. Oktober 2021, 21:57 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 /g3 on:Stop/g2 off:Auf/g2 on:Ab/g4 off:Pos1/g4 on:Pos2/g5 off:Pos3/g5 on: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")