Unterpunkte zu dpt1

Begonnen von jewuma, 13 September 2017, 14:29:08

Vorheriges Thema - Nächstes Thema

jewuma

Hallo KNX-Maintainer,

ich habe ein paar Unterpunkte zu dpt1 im Modul 10_KNX ergänzt. Entsprechendes diff füge ich an.
Die Rückkonvertierung der Texte z.B. open/closed zu 0/1 leuchtet mir nicht so richtig ein, deshalb habe ich sie bei meinem Patch weggelassen.
Funktionieren tut es m.E. auch so. Wenn die Rückkonvertierung nötig ist, dann kann ich diese auch gerne noch einfügen.

Gruß

Jens


--- 10_KNX.pm   2017-09-13 13:48:41.258954611 +0200
+++ 10_KNXb.pm  2017-09-13 13:43:07.493338928 +0200
@@ -94,10 +94,25 @@
        "dpt1.001"              => {CODE=>"dpt1", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/([oO][nN])|([oO][fF][fF])|(0?1)|(0?0)/, MIN=>"off", MAX=>"on"},
        "dpt1.002"              => {CODE=>"dpt1", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/([tT][rR][uU][eE])|([fF][aA][lL][sS][eE])|(0?1)|(0?0)/, MIN=>"false", MAX=>"true"},
        "dpt1.003"              => {CODE=>"dpt1", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/(([eE][nN]|[dD][iI][sS])[aA][bB][lL][eE])|(0?1)|(0?0)/, MIN=>"disable", MAX=>"enable"},
+       "dpt1.004"              => {CODE=>"dpt1", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/(0?1)|(0?0)/, MIN=>"no ramp", MAX=>"ramp"},
+       "dpt1.005"              => {CODE=>"dpt1", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/(0?1)|(0?0)/, MIN=>"no alarm", MAX=>"alarm"},
+       "dpt1.006"              => {CODE=>"dpt1", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/(0?1)|(0?0)/, MIN=>"low", MAX=>"high"},
+       "dpt1.007"              => {CODE=>"dpt1", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/(0?1)|(0?0)/, MIN=>"decrease", MAX=>"increase"},
        "dpt1.008"              => {CODE=>"dpt1", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/([uU][pP])|([dD][oO][wW][nN])|(0?1)|(0?0)/, MIN=>"up", MAX=>"down"},
        "dpt1.009"              => {CODE=>"dpt1", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/([cC][lL][oO][sS][eE][dD])|([oO][pP][eE][nN])|(0?1)|(0?0)/, MIN=>"open", MAX=>"closed"},
        "dpt1.010"              => {CODE=>"dpt1", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/([sS][tT][aA][rR][tT])|([sS][tT][oO][pP])|(0?1)|(0?0)/, MIN=>"stop", MAX=>"start"},
+       "dpt1.011"              => {CODE=>"dpt1", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/(0?1)|(0?0)/, MIN=>"inactive", MAX=>"active"},
+       "dpt1.012"              => {CODE=>"dpt1", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/(0?1)|(0?0)/, MIN=>"not inverted", MAX=>"inverted"},
+       "dpt1.013"              => {CODE=>"dpt1", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/(0?1)|(0?0)/, MIN=>"start/stop", MAX=>"cyclically"},
+       "dpt1.014"              => {CODE=>"dpt1", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/(0?1)|(0?0)/, MIN=>"fixed", MAX=>"calculated"},
+       "dpt1.015"              => {CODE=>"dpt1", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/(0?1)|(0?0)/, MIN=>"no action", MAX=>"reset"},
+       "dpt1.016"              => {CODE=>"dpt1", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/(0?1)|(0?0)/, MIN=>"no action", MAX=>"acknowledge"},
+       "dpt1.017"              => {CODE=>"dpt1", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/(0?1)|(0?0)/, MIN=>"trigger", MAX=>"trigger"},
+       "dpt1.018"              => {CODE=>"dpt1", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/(0?1)|(0?0)/, MIN=>"not occupied", MAX=>"occupied"},
        "dpt1.019"              => {CODE=>"dpt1", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/([cC][lL][oO][sS][eE][dD])|([oO][pP][eE][nN])|(0?1)|(0?0)/, MIN=>"closed", MAX=>"open"},
+       "dpt1.021"              => {CODE=>"dpt1", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/(0?1)|(0?0)/, MIN=>"logical or", MAX=>"logical and"},
+       "dpt1.022"              => {CODE=>"dpt1", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/(0?1)|(0?0)/, MIN=>"scene A", MAX=>"scene B"},
+       "dpt1.023"              => {CODE=>"dpt1", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/(0?1)|(0?0)/, MIN=>"move up/down", MAX=>"move and step mode"},

        #Step value (two-bit)
        "dpt2"                  => {CODE=>"dpt2", UNIT=>"", FACTOR=>undef, OFFSET=>undef, PATTERN=>qr/([oO][nN])|([oO][fF][fF])|([fF][oO][rR][cC][eE][oO][nN])|([fF][oO][rR][cC][eE][oO][fF][fF])/, MIN=>undef, MAX=>undef},


JoeALLb

Danke, dpt1.021 habe ich gerade gesucht ;-)
Werds testen!
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

lammy

Hi,

mir ist aufgefallen, dass z.b. bei dpt1.005 Alarm im Webinterface das Auswahlmenü nicht korrekt funktioniert. Es wird nicht "no Alarm" und "Alarm" angeboten sondern nur "alarm" zusätzlich gibt es einen weiteren Parameter Alarm,Alarm.

Kannst du das Fixen?

VG

jewuma

Ich hätte da einen Workaround-Vorshclag:
--- 10_KNX.pm   2019-07-16 11:50:29.533117733 +0200
+++ KNX.bak     2019-07-16 11:50:14.363195856 +0200
@@ -531,7 +531,9 @@
                elsif (defined ($dptDetails->{MIN}))
                {
                        my $min = $dptDetails->{MIN};
+                        $min=~ tr/ /_/;
                        my $max = $dptDetails->{MAX};
+                        $max=~ tr/ /_/;
                        $setlist = ":" . $min . "," . $max;
                }
                #plain input field