Rolladensteuerung KNX ABB Aktor JRA S 4.230.5.1: Unterschied zwischen den Versionen
K (Kategorienamen angepasst)  | 
				KKeine Bearbeitungszusammenfassung  | 
				||
| (5 dazwischenliegende Versionen von 3 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 11: | 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 31: | 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.  | ||
| Zeile 37: | Zeile 31: | ||
== Anpassen des Moduls 10_EIB.pm um das Model percent255 ==  | == Anpassen des Moduls 10_EIB.pm um das Model percent255 ==  | ||
{{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.  | |||
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   | |||
<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 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")  | ||
</syntaxhighlight>  | |||
[[Kategorie:EIB/KNX]]  | [[Kategorie:EIB/KNX]]  | ||
[[Kategorie:Code Snippets]]  | [[Kategorie:Code Snippets]]  | ||
[[Kategorie:Rollladensteuerung]]  | [[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")
