Rolladensteuerung KNX ABB Aktor JRA S 4.230.5.1: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Kategorisiert)
Zeile 1: Zeile 1:
= Rolladensteuerung mit KNX ABB Aktor JRA S 4.230.5.1 =
Ich (? Autor unbekannt) versuch mal meine Erfahrung mit KNX (EIB) und der Rollosteuerung niederzuschreiben.
Hallo, ich versuch mal meine Erfahrung mit KNX (EIB) und der Rollosteuerung niederzuschreiben.
Die Steuerung funktioniert, die Position des Rollos wird in Prozent zurückgegeben.
Die Steuerung funktioniert, die Position des Rollos wird in Prozent zurückgegeben.


Zeile 26: Zeile 25:


== Funktionsweise ==
== Funktionsweise ==
Ich habe lange gebraucht bis ich die eventMap kapiert habe.


* 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.
Zeile 36: Zeile 34:
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 anstatt der Lampe ein Prozentwert ausgegeben.
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 =
== Anpassen des Moduls 10_EIB.pm um das Model percent255 ==
(Danke an Ines)
(Danke an Ines)


Es gibt Aktoren die geben die Position von 0 bis 255 zurück. Damit das im fhem richtig angezeigt wird, muss das Modul 10_EIB.pm erweitert werden.
Es gibt Aktoren, die die Position von 0 bis 255 zurückgeben. Damit das im fhem richtig angezeigt wird, muss das Modul 10_EIB.pm erweitert werden.
Es wird das Model percent255 hinzugefügt.
Es wird das Model percent255 hinzugefügt.


Zeile 48: Zeile 46:
  <nowiki>attr Rollo1 model percent255</nowiki>
  <nowiki>attr Rollo1 model percent255</nowiki>
Anbei ein Diff-File:
Anbei ein Diff-File:


das diff wird mit dem Tool Patch eingespielt.
das diff wird mit dem Tool Patch eingespielt.
Zeile 85: Zeile 82:
          
          
     } elsif($code eq "dpt9")</nowiki>
     } elsif($code eq "dpt9")</nowiki>
[[Kategorie:EIB/KNX]]
[[Kategorie:Code Snippets]]

Version vom 29. Juli 2013, 11:49 Uhr

Ich (? Autor unbekannt) versuch mal meine Erfahrung mit KNX (EIB) und der Rollosteuerung niederzuschreiben. Die Steuerung funktioniert, die Position des Rollos wird in Prozent zurückgegeben.

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 EIB 0/0/17 0/0/10 0/0/11 0/0/12 0/0/13
attr Rollo1 alias Rollo 1 Arbeitszimmer
attr Rollo1 model percent
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 room Rollos

Rollo1.png

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 im 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

(Danke an Ines)

Es gibt Aktoren, die die Position von 0 bis 255 zurückgeben. Damit das im 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 diff wird mit dem Tool Patch eingespielt.

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")