Rolladen Steuerung mittels MCP23017 und Taster

Begonnen von IPPhoner2b, 09 November 2014, 15:27:10

Vorheriges Thema - Nächstes Thema

IPPhoner2b

#15
So, habe jetzt mal für jedes Rollo eigene Timer benannt, allerdings hat es an dem ganzen nichts geändert.
Ich muss aber dazusagen, dass ich die Tasten natürlich mehrmals gedrückt habe, und es im Normalfall "eigentlich" nicht passieren sollte, allerdings kann es ja sein, dass man grade, wenn das Rollo losfährt auf die andere Seite drückt oder so, und dann knallts auf einmal, wäre ja nicht so wünschenswert.

Habe mal mit Verbose 5 ein Log erstellt, und der letzte Eintrag ist der, an dem die beiden LEDs AKLIH und AKLIR zusammen leuchten, und damit das Rollo etwas überfordern.

Hier erstmal die Config für die beiden Rollos:
###Sensoren (Input)####

#--Bank-B--#
#(S)chalter (K)üchenrollo (li)nks (H)och          ###(S K LI H)###
define sklih readingsProxy mcp_20:PortB0
attr sklih alias B0 Schalter Küchenrollo Links Hoch
attr sklih event-on-change-reading state
attr sklih group InputPorts
attr sklih valueFn {($VALUE eq "on")?"off":"on"}

#(S)chalter (K)üchenrollo (li)nks (R)unter        ###(S K LI R)###
define sklir readingsProxy mcp_20:PortB1
attr sklir alias B1 Schalter Küchenrollo Links Runter
attr sklir event-on-change-reading state
attr sklir group InputPorts
attr sklir valueFn {($VALUE eq "on")?"off":"on"}

#(S)chalter (K)üchenrollo (re)chts (H)och         ###(S K RE H)###
define skreh readingsProxy mcp_20:PortB2
attr skreh alias B2 Schalter Küchenrollo Rechts Hoch
attr skreh event-on-change-reading state
attr skreh group InputPorts
attr skreh valueFn {($VALUE eq "on")?"off":"on"}

#(S)chalter (K)üchenrollo (re)chts (R)unter       ###(S K RE R)###
define skrer readingsProxy mcp_20:PortB3
attr skrer alias B3 Schalter Küchenrollo Rechts Runter
attr skrer event-on-change-reading state
attr skrer group InputPorts
attr skrer valueFn {($VALUE eq "on")?"off":"on"}

####Aktoren (Output)####
#--Bank-A--#

#(A)usgang (K)üchenrollo (li)nks (H)och         ###(A K LI H)###  PORT A0
define aklih readingsProxy mcp_20:PortA0
attr aklih alias A0 Rollo Küche links Hoch
attr aklih eventMap on:aus off:an
attr aklih group OutputPorts
attr aklih setFn {($CMD eq "on")?"PortA0 off":"PortA0 on"}
attr aklih setList off on
attr aklih valueFn {($VALUE eq "on")?"off":"on"}

#(A)usgang (K)üchenrollo (li)nks (R)unter       ###(A K LI R)###  PORT A1
define aklir readingsProxy mcp_20:PortA1
attr aklir alias A1 Rollo Küche links Runter
attr aklir eventMap on:aus off:an
attr aklir group OutputPorts
attr aklir setFn {($CMD eq "on")?"PortA1 off":"PortA1 on"}
attr aklir setList off on
attr aklir valueFn {($VALUE eq "on")?"off":"on"}

#(A)usgang (K)üchenrollo (re)chts (H)och         ###(A K RE H)###  PORT A2
define akreh readingsProxy mcp_20:PortA2
attr akreh alias A2 Rollo Küche rechts Hoch
attr akreh eventMap on:aus off:an
attr akreh group OutputPorts
attr akreh setFn {($CMD eq "on")?"PortA2 off":"PortA2 on"}
attr akreh setList off on
attr akreh valueFn {($VALUE eq "on")?"off":"on"}

#(A)usgang (K)üchenrollo (re)chts (R)unter       ###(A K RE R)###  PORT A3
define akrer readingsProxy mcp_20:PortA3
attr akrer alias A3 Rollo Küche rechts Runter
attr akrer eventMap on:aus off:an
attr akrer group OutputPorts
attr akrer setFn {($CMD eq "on")?"PortA3 off":"PortA3 on"}
attr akrer setList off on
attr akrer valueFn {($VALUE eq "on")?"off":"on"}
#attr akrer room Küche

######### Rollade KÜCHE LINKS per Schalter fahren
define aklihNotify notify sklih:off set Rollokli hoch
define aklirNotify notify sklir:off set Rollokli runter

######### Rollade KÜCHE LINKS rauf
define Rollokli_auf_WE at *08:00 {if ($we) {fhem("set Rollokli hoch")}}
define Rollokli_auf_Woche at *07:00 {if (!$we){fhem("set Rollokli hoch")}}

######### Rollade KÜCHE LINKS runter
define Rollokli_ab at *{sunset("HORIZON=0",300,"17:00","22:00")} set Rollokli runter
attr Rollokli_ab alias Rollo Küche Links Runterfahren um
attr Rollokli_ab room Uhrzeiten

define Rollokli dummy
attr Rollokli room Rolladen
attr Rollokli alias Rollo Küche links
attr Rollokli setList hoch:noArg runter:noArg stop:noArg
attr Rollokli webCmd hoch:stop:runter
define act_on_Rollokli notify Rollokli {\
    fhem ("delete kli_down") if (Value("kli_down") ne "");;\
    fhem ("delete kli_clos") if (Value("kli_clos") ne "");;\
    fhem ("delete kli_hoch") if (Value("kli_hoch") ne "");;\
    fhem ("delete kli_oben") if (Value("kli_oben") ne "");;\
if ("$EVENT" eq "runter") {\
my $svar = ReadingsVal("sklih","state","off");;\
    if ($svar eq "on") {\
fhem "set aklih aus";;\
    fhem "define kli_down at +00:00:01 set aklir off-for-timer 5";;\
    fhem "setreading Rollokli state runterfahren";;\
    fhem "define kli_clos at +00:00:06 setreading Rollokli state geschlossen";;\
    }\
    else {\
    fhem "setreading Rollokli state Schalter betätigt";;\
}\
} elsif ("$EVENT" eq "hoch") {\
    fhem "set aklir aus";;\
fhem "define kli_hoch at +00:00:01 set aklih off-for-timer 5";;\
fhem "setreading Rollokli state hochfahren";;\
fhem "define kli_oben at +00:00:06 setreading Rollokli state geöffnet";;\
} elsif ("$EVENT" eq "stop") {\
    fhem "set aklir aus";;\
    fhem "set aklih aus";;\
    fhem "setreading Rollokli state gestoppt";;\
} \
}


######### Rollade KÜCHE RECHTS per Schalter fahren
define akrehNotify notify skreh:off set Rollokre hoch
define akrerNotify notify skrer:off set Rollokre runter

######### Rollade KÜCHE RECHTS rauf
define Rollokre_auf_WE at *08:00 {if ($we) {fhem("set Rollokre hoch")}}
define Rollokre_auf_Woche at *07:00 {if (!$we){fhem("set Rollokre hoch")}}

######### Rollade KÜCHE RECHTS runter
define Rollokre_ab at *{sunset("HORIZON=0",305,"17:00","22:00")} set Rollokre runter
attr Rollokre_ab alias Rollo Küche Rechts Runterfahren um
attr Rollokre_ab room Uhrzeiten

define Rollokre dummy
attr Rollokre room Rolladen
attr Rollokre alias Rollo Küche rechts
attr Rollokre setList hoch:noArg runter:noArg stop:noArg
attr Rollokre webCmd hoch:stop:runter
define act_on_Rollokre notify Rollokre {\
    fhem ("delete kre_down") if (Value("kre_down") ne "");;\
    fhem ("delete kre_clos") if (Value("kre_clos") ne "");;\
    fhem ("delete kre_hoch") if (Value("kre_hoch") ne "");;\
    fhem ("delete kre_oben") if (Value("kre_oben") ne "");;\
if ("$EVENT" eq "runter") {\
my $svar = ReadingsVal("skreh","state","off");;\
    if ($svar eq "on") {\
fhem "set akreh aus";;\
    fhem "define kre_down at +00:00:01 set akrer off-for-timer 5";;\
    fhem "setreading Rollokre state runterfahren";;\
    fhem "define kre_clos at +00:00:06 setreading Rollokre state geschlossen";;\
    }\
    else {\
    fhem "setreading Rollokre state Schalter betätigt";;\
}\
} elsif ("$EVENT" eq "hoch") {\
    fhem "set akrer aus";;\
fhem "define kre_hoch at +00:00:01 set akreh off-for-timer 5";;\
fhem "setreading Rollokre state hochfahren";;\
fhem "define kre_oben at +00:00:06 setreading Rollokre state geöffnet";;\
} elsif ("$EVENT" eq "stop") {\
    fhem "set akrer aus";;\
    fhem "set akreh aus";;\
    fhem "setreading Rollokre state gestoppt";;\
} \
}


Hier mal das Log, ist allerdings recht lang, kann man das auch etwas kürzer und "verständlicher" machen  :o ::)
Jedenfalls mit dem Befehl um 18:23:44 gingen beide LEDs an

Hier mal nur die letzten Sekunden, der Rest wurde leider nicht angezeigt.
2014.11.17 18:23:38 5: Cmd: >delete kli_oben<
2014.11.17 18:23:38 5: Triggering global (1 changes)
2014.11.17 18:23:38 5: Notify loop for global DELETED kli_oben
2014.11.17 18:23:38 5: Triggering aflh (1 changes)
2014.11.17 18:23:38 5: Notify loop for aflh aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy aflh aus -> aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy aflh state: on -> state: on
2014.11.17 18:23:38 5: Triggering aflr (1 changes)
2014.11.17 18:23:38 5: Notify loop for aflr aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy aflr aus -> aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy aflr state: on -> state: on
2014.11.17 18:23:38 5: Triggering agwch (1 changes)
2014.11.17 18:23:38 5: Notify loop for agwch aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy agwch aus -> aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy agwch state: on -> state: on
2014.11.17 18:23:38 5: Triggering agwcr (1 changes)
2014.11.17 18:23:38 5: Notify loop for agwcr aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy agwcr aus -> aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy agwcr state: on -> state: on
2014.11.17 18:23:38 5: Triggering aklih (1 changes)
2014.11.17 18:23:38 5: Notify loop for aklih an
2014.11.17 18:23:38 4: eventTypes: readingsProxy aklih an -> an
2014.11.17 18:23:38 4: eventTypes: readingsProxy aklih state: off -> state: off
2014.11.17 18:23:38 5: Triggering aklir (1 changes)
2014.11.17 18:23:38 5: Notify loop for aklir aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy aklir aus -> aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy aklir state: on -> state: on
2014.11.17 18:23:38 5: Triggering akreh (1 changes)
2014.11.17 18:23:38 5: Notify loop for akreh an
2014.11.17 18:23:38 4: eventTypes: readingsProxy akreh an -> an
2014.11.17 18:23:38 4: eventTypes: readingsProxy akreh state: off -> state: off
2014.11.17 18:23:38 5: Triggering akrer (1 changes)
2014.11.17 18:23:38 5: Notify loop for akrer aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy akrer aus -> aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy akrer state: on -> state: on
2014.11.17 18:23:38 5: Triggering sklir (1 changes)
2014.11.17 18:23:38 5: Cmd: >set aklih aus<
2014.11.17 18:23:38 4: aklih: set hash->{DEVICE} PortA0 off
2014.11.17 18:23:38 5: chip: vom client empfangen|direction: i2cwrite|reg: 18|data: 4|i2caddress: 32
2014.11.17 18:23:38 5: chip: HWaccess I2CAddr: 0x20
2014.11.17 18:23:38 5: chip: vom client empfangen|direction: i2cwrite|reg: 18|data: 4|i2caddress: 32
2014.11.17 18:23:38 5: chip: HWaccess byteweise schreiben, Reg: 0x12 Inh: 0x04, laenge: 2
2014.11.17 18:23:38 5: chip ->Client gefunden: mcp_20, I2Caddress: 32 Data: 4
2014.11.17 18:23:38 5: mcp_20 UpdReadings Register: 18, Inhalt: 4
2014.11.17 18:23:38 5: Triggering mcp_20 (2 changes)
2014.11.17 18:23:38 5: Triggering mcp_20 (3 changes)
2014.11.17 18:23:38 5: chip: vom client empfangen|direction: i2cwrite|reg: 19|data: 2|i2caddress: 32
2014.11.17 18:23:38 5: chip: HWaccess I2CAddr: 0x20
2014.11.17 18:23:38 5: chip: vom client empfangen|direction: i2cwrite|reg: 19|data: 2|i2caddress: 32
2014.11.17 18:23:38 5: chip: HWaccess byteweise schreiben, Reg: 0x13 Inh: 0x02, laenge: 2
2014.11.17 18:23:38 5: chip ->Client gefunden: mcp_20, I2Caddress: 32 Data: 2
2014.11.17 18:23:38 5: mcp_20 UpdReadings Register: 19, Inhalt: 2
2014.11.17 18:23:38 5: Triggering mcp_20 (3 changes)
2014.11.17 18:23:38 5: Triggering mcp_20 (4 changes)
2014.11.17 18:23:38 5: Cmd: >define kli_down at +00:00:01 set aklir off-for-timer 5<
2014.11.17 18:23:38 5: Triggering global (1 changes)
2014.11.17 18:23:38 5: Notify loop for global DEFINED kli_down
2014.11.17 18:23:38 5: Triggering aflh (1 changes)
2014.11.17 18:23:38 5: Notify loop for aflh aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy aflh aus -> aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy aflh state: on -> state: on
2014.11.17 18:23:38 5: Triggering aflr (1 changes)
2014.11.17 18:23:38 5: Notify loop for aflr aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy aflr aus -> aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy aflr state: on -> state: on
2014.11.17 18:23:38 5: Triggering agwch (1 changes)
2014.11.17 18:23:38 5: Notify loop for agwch aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy agwch aus -> aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy agwch state: on -> state: on
2014.11.17 18:23:38 5: Triggering agwcr (1 changes)
2014.11.17 18:23:38 5: Notify loop for agwcr aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy agwcr aus -> aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy agwcr state: on -> state: on
2014.11.17 18:23:38 5: Triggering aklih (1 changes)
2014.11.17 18:23:38 5: Notify loop for aklih aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy aklih aus -> aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy aklih state: on -> state: on
2014.11.17 18:23:38 5: Triggering aklir (1 changes)
2014.11.17 18:23:38 5: Notify loop for aklir aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy aklir aus -> aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy aklir state: on -> state: on
2014.11.17 18:23:38 5: Triggering akreh (1 changes)
2014.11.17 18:23:38 5: Notify loop for akreh an
2014.11.17 18:23:38 4: eventTypes: readingsProxy akreh an -> an
2014.11.17 18:23:38 4: eventTypes: readingsProxy akreh state: off -> state: off
2014.11.17 18:23:38 5: Triggering akrer (1 changes)
2014.11.17 18:23:38 5: Notify loop for akrer aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy akrer aus -> aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy akrer state: on -> state: on
2014.11.17 18:23:38 5: Triggering sklir (1 changes)
2014.11.17 18:23:38 5: Cmd: >setreading Rollokli state runterfahren<
2014.11.17 18:23:38 5: Triggering Rollokli (2 changes)
2014.11.17 18:23:38 5: Cmd: >define kli_clos at +00:00:06 setreading Rollokli state geschlossen<
2014.11.17 18:23:38 5: Triggering global (1 changes)
2014.11.17 18:23:38 5: Notify loop for global DEFINED kli_clos
2014.11.17 18:23:38 5: Triggering aflh (1 changes)
2014.11.17 18:23:38 5: Notify loop for aflh aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy aflh aus -> aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy aflh state: on -> state: on
2014.11.17 18:23:38 5: Triggering aflr (1 changes)
2014.11.17 18:23:38 5: Notify loop for aflr aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy aflr aus -> aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy aflr state: on -> state: on
2014.11.17 18:23:38 5: Triggering agwch (1 changes)
2014.11.17 18:23:38 5: Notify loop for agwch aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy agwch aus -> aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy agwch state: on -> state: on
2014.11.17 18:23:38 5: Triggering agwcr (1 changes)
2014.11.17 18:23:38 5: Notify loop for agwcr aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy agwcr aus -> aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy agwcr state: on -> state: on
2014.11.17 18:23:38 5: Triggering aklih (1 changes)
2014.11.17 18:23:38 5: Notify loop for aklih aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy aklih aus -> aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy aklih state: on -> state: on
2014.11.17 18:23:38 5: Triggering aklir (1 changes)
2014.11.17 18:23:38 5: Notify loop for aklir aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy aklir aus -> aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy aklir state: on -> state: on
2014.11.17 18:23:38 5: Triggering akreh (1 changes)
2014.11.17 18:23:38 5: Notify loop for akreh an
2014.11.17 18:23:38 4: eventTypes: readingsProxy akreh an -> an
2014.11.17 18:23:38 4: eventTypes: readingsProxy akreh state: off -> state: off
2014.11.17 18:23:38 5: Triggering akrer (1 changes)
2014.11.17 18:23:38 5: Notify loop for akrer aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy akrer aus -> aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy akrer state: on -> state: on
2014.11.17 18:23:38 5: Triggering sklir (1 changes)
2014.11.17 18:23:38 4: eventTypes: dummy Rollokli runter -> runter
2014.11.17 18:23:38 4: eventTypes: dummy Rollokli runterfahren -> runterfahren
2014.11.17 18:23:38 4: eventTypes: dummy Rollokli state: runterfahren -> state: runterfahren
2014.11.17 18:23:38 4: eventTypes: readingsProxy sklir off -> off
2014.11.17 18:23:38 4: eventTypes: readingsProxy sklir state: off -> state: off
2014.11.17 18:23:38 5: mcp_20 UpdReadings Register: 18, Inhalt: 5
2014.11.17 18:23:38 5: Triggering mcp_20 (1 changes)
2014.11.17 18:23:38 5: Notify loop for mcp_20 PortA0: on
2014.11.17 18:23:38 5: Triggering aklih (1 changes)
2014.11.17 18:23:38 5: Notify loop for aklih an
2014.11.17 18:23:38 4: eventTypes: readingsProxy aklih an -> an
2014.11.17 18:23:38 4: eventTypes: readingsProxy aklih state: off -> state: off
2014.11.17 18:23:38 4: eventTypes: I2C_MCP23017 mcp_20 PortA0: on -> PortA0: on
2014.11.17 18:23:38 5: Triggering mcp_20 (1 changes)
2014.11.17 18:23:38 5: Notify loop for mcp_20 Ok
2014.11.17 18:23:38 4: eventTypes: I2C_MCP23017 mcp_20 Ok -> Ok
2014.11.17 18:23:38 4: eventTypes: I2C_MCP23017 mcp_20 state: Ok -> state: Ok
2014.11.17 18:23:38 5: Triggering Interrupt (4 changes)
2014.11.17 18:23:38 5: Notify loop for Interrupt Pinlevel: high
2014.11.17 18:23:38 4: eventTypes: RPI_GPIO Interrupt Pinlevel: high -> Pinlevel: high
2014.11.17 18:23:38 4: eventTypes: RPI_GPIO Interrupt on -> on
2014.11.17 18:23:38 4: eventTypes: RPI_GPIO Interrupt Toggle: off -> Toggle: off
2014.11.17 18:23:38 4: eventTypes: RPI_GPIO Interrupt Counter: 350 -> Counter: .*
2014.11.17 18:23:38 4: eventTypes: RPI_GPIO Interrupt state: on -> state: on
2014.11.17 18:23:38 4: akreh: set hash->{DEVICE} PortA2 off
2014.11.17 18:23:38 5: chip: vom client empfangen|direction: i2cwrite|reg: 18|data: 1|i2caddress: 32
2014.11.17 18:23:38 5: chip: HWaccess I2CAddr: 0x20
2014.11.17 18:23:38 5: chip: vom client empfangen|direction: i2cwrite|reg: 18|data: 1|i2caddress: 32
2014.11.17 18:23:38 5: chip: HWaccess byteweise schreiben, Reg: 0x12 Inh: 0x01, laenge: 2
2014.11.17 18:23:38 5: chip ->Client gefunden: mcp_20, I2Caddress: 32 Data: 1
2014.11.17 18:23:38 5: mcp_20 UpdReadings Register: 18, Inhalt: 1
2014.11.17 18:23:38 5: Triggering mcp_20 (1 changes)
2014.11.17 18:23:38 5: Notify loop for mcp_20 PortA2: off
2014.11.17 18:23:38 5: Triggering akreh (1 changes)
2014.11.17 18:23:38 5: Notify loop for akreh aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy akreh aus -> aus
2014.11.17 18:23:38 4: eventTypes: readingsProxy akreh state: on -> state: on
2014.11.17 18:23:38 4: eventTypes: I2C_MCP23017 mcp_20 PortA2: off -> PortA2: off
2014.11.17 18:23:39 5: Triggering mcp_20 (1 changes)
2014.11.17 18:23:39 5: Notify loop for mcp_20 Ok
2014.11.17 18:23:39 4: eventTypes: I2C_MCP23017 mcp_20 Ok -> Ok
2014.11.17 18:23:39 4: eventTypes: I2C_MCP23017 mcp_20 state: Ok -> state: Ok
2014.11.17 18:23:39 5: chip: vom client empfangen|direction: i2cwrite|reg: 19|data: 2|i2caddress: 32
2014.11.17 18:23:39 5: chip: HWaccess I2CAddr: 0x20
2014.11.17 18:23:39 5: chip: vom client empfangen|direction: i2cwrite|reg: 19|data: 2|i2caddress: 32
2014.11.17 18:23:39 5: chip: HWaccess byteweise schreiben, Reg: 0x13 Inh: 0x02, laenge: 2
2014.11.17 18:23:39 5: chip ->Client gefunden: mcp_20, I2Caddress: 32 Data: 2
2014.11.17 18:23:39 5: mcp_20 UpdReadings Register: 19, Inhalt: 2
2014.11.17 18:23:39 5: Triggering mcp_20 (1 changes)
2014.11.17 18:23:39 5: Notify loop for mcp_20 Ok
2014.11.17 18:23:39 4: eventTypes: I2C_MCP23017 mcp_20 Ok -> Ok
2014.11.17 18:23:39 4: eventTypes: I2C_MCP23017 mcp_20 state: Ok -> state: Ok
2014.11.17 18:23:39 5: exec at command kre_oben
2014.11.17 18:23:39 5: Cmd: >setreading Rollokre state geöffnet<
2014.11.17 18:23:39 5: Triggering Rollokre (1 changes)
2014.11.17 18:23:39 5: Notify loop for Rollokre geöffnet
2014.11.17 18:23:39 5: Triggering act_on_Rollokre
2014.11.17 18:23:39 4: act_on_Rollokre exec {
    fhem ("delete kre_down") if (Value("kre_down") ne "");;
    fhem ("delete kre_clos") if (Value("kre_clos") ne "");;
    fhem ("delete kre_hoch") if (Value("kre_hoch") ne "");;
    fhem ("delete kre_oben") if (Value("kre_oben") ne "");;
if ("$EVENT" eq "runter") {
my $svar = ReadingsVal("skreh","state","off");;
    if ($svar eq "on") {
fhem "set akreh aus";;
    fhem "define kre_down at +00:00:01 set akrer off-for-timer 5";;
    fhem "setreading Rollokre state runterfahren";;
    fhem "define kre_clos at +00:00:06 setreading Rollokre state geschlossen";;
    }
    else {
    fhem "setreading Rollokre state Schalter betätigt";;
}
} elsif ("$EVENT" eq "hoch") {
    fhem "set akrer aus";;
fhem "define kre_hoch at +00:00:01 set akreh off-for-timer 5";;
fhem "setreading Rollokre state hochfahren";;
fhem "define kre_oben at +00:00:06 setreading Rollokre state geöffnet";;
} elsif ("$EVENT" eq "stop") {
    fhem "set akrer aus";;
    fhem "set akreh aus";;
    fhem "setreading Rollokre state gestoppt";;
}
}
2014.11.17 18:23:39 5: Cmd: >{
    fhem ("delete kre_down") if (Value("kre_down") ne "");
    fhem ("delete kre_clos") if (Value("kre_clos") ne "");
    fhem ("delete kre_hoch") if (Value("kre_hoch") ne "");
    fhem ("delete kre_oben") if (Value("kre_oben") ne "");
if ("$EVENT" eq "runter") {
my $svar = ReadingsVal("skreh","state","off");
    if ($svar eq "on") {
fhem "set akreh aus";
    fhem "define kre_down at +00:00:01 set akrer off-for-timer 5";
    fhem "setreading Rollokre state runterfahren";
    fhem "define kre_clos at +00:00:06 setreading Rollokre state geschlossen";
    }
    else {
    fhem "setreading Rollokre state Schalter betätigt";
}
} elsif ("$EVENT" eq "hoch") {
    fhem "set akrer aus";
fhem "define kre_hoch at +00:00:01 set akreh off-for-timer 5";
fhem "setreading Rollokre state hochfahren";
fhem "define kre_oben at +00:00:06 setreading Rollokre state geöffnet";
} elsif ("$EVENT" eq "stop") {
    fhem "set akrer aus";
    fhem "set akreh aus";
    fhem "setreading Rollokre state gestoppt";
}
}<
2014.11.17 18:23:39 5: Cmd: >delete kre_oben<
2014.11.17 18:23:39 5: Triggering global (1 changes)
2014.11.17 18:23:39 5: Notify loop for global DELETED kre_oben
2014.11.17 18:23:39 5: Triggering aflh (1 changes)
2014.11.17 18:23:39 5: Notify loop for aflh aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy aflh aus -> aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy aflh state: on -> state: on
2014.11.17 18:23:39 5: Triggering aflr (1 changes)
2014.11.17 18:23:39 5: Notify loop for aflr aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy aflr aus -> aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy aflr state: on -> state: on
2014.11.17 18:23:39 5: Triggering agwch (1 changes)
2014.11.17 18:23:39 5: Notify loop for agwch aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy agwch aus -> aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy agwch state: on -> state: on
2014.11.17 18:23:39 5: Triggering agwcr (1 changes)
2014.11.17 18:23:39 5: Notify loop for agwcr aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy agwcr aus -> aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy agwcr state: on -> state: on
2014.11.17 18:23:39 5: Triggering aklih (1 changes)
2014.11.17 18:23:39 5: Notify loop for aklih an
2014.11.17 18:23:39 4: eventTypes: readingsProxy aklih an -> an
2014.11.17 18:23:39 4: eventTypes: readingsProxy aklih state: off -> state: off
2014.11.17 18:23:39 5: Triggering aklir (1 changes)
2014.11.17 18:23:39 5: Notify loop for aklir aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy aklir aus -> aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy aklir state: on -> state: on
2014.11.17 18:23:39 5: Triggering akreh (1 changes)
2014.11.17 18:23:39 5: Notify loop for akreh aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy akreh aus -> aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy akreh state: on -> state: on
2014.11.17 18:23:39 5: Triggering akrer (1 changes)
2014.11.17 18:23:39 5: Notify loop for akrer aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy akrer aus -> aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy akrer state: on -> state: on
2014.11.17 18:23:39 4: eventTypes: dummy Rollokre geöffnet -> geöffnet
2014.11.17 18:23:39 4: eventTypes: dummy Rollokre state: geöffnet -> state: geöffnet
2014.11.17 18:23:39 5: Interrupt, in fileaccess: edge
2014.11.17 18:23:39 5: Toggle war auf off
2014.11.17 18:23:39 5: Toggle ist jetzt on
2014.11.17 18:23:39 5: Zaehler ist jetzt 351
2014.11.17 18:23:39 5: Cmd: >get mcp_20<
2014.11.17 18:23:39 5: chip: vom client empfangen|direction: i2cread|nbyte: 2|reg: 18|i2caddress: 32
2014.11.17 18:23:39 5: chip: HWaccess I2CAddr: 0x20
2014.11.17 18:23:39 5: chip: vom client empfangen|direction: i2cread|nbyte: 2|reg: 18|i2caddress: 32
2014.11.17 18:23:39 5: chip: HWaccess byteweise lesen setze Registerpointer auf 18
2014.11.17 18:23:39 5: chip: HWaccess byteweise lesen setze Registerpointer auf 19
2014.11.17 18:23:39 5: chip ->Client gefunden: mcp_20, I2Caddress: 32
2014.11.17 18:23:39 5: mcp_20 UpdReadings Register: 19, Inhalt: 0
2014.11.17 18:23:39 5: Triggering mcp_20 (1 changes)
2014.11.17 18:23:39 5: Notify loop for mcp_20 PortB1: off
2014.11.17 18:23:39 4: eventTypes: I2C_MCP23017 mcp_20 PortB1: off -> PortB1: off
2014.11.17 18:23:39 5: Triggering sklir (1 changes)
2014.11.17 18:23:39 5: Notify loop for sklir on
2014.11.17 18:23:39 4: eventTypes: readingsProxy sklir on -> on
2014.11.17 18:23:39 4: eventTypes: readingsProxy sklir state: on -> state: on
2014.11.17 18:23:39 5: mcp_20 UpdReadings Register: 18, Inhalt: 1
2014.11.17 18:23:39 5: Triggering mcp_20 (1 changes)
2014.11.17 18:23:39 5: Notify loop for mcp_20 Ok
2014.11.17 18:23:39 4: eventTypes: I2C_MCP23017 mcp_20 Ok -> Ok
2014.11.17 18:23:39 4: eventTypes: I2C_MCP23017 mcp_20 state: Ok -> state: Ok
2014.11.17 18:23:39 5: Triggering Interrupt (4 changes)
2014.11.17 18:23:39 5: Notify loop for Interrupt Pinlevel: high
2014.11.17 18:23:39 4: eventTypes: RPI_GPIO Interrupt Pinlevel: high -> Pinlevel: high
2014.11.17 18:23:39 4: eventTypes: RPI_GPIO Interrupt on -> on
2014.11.17 18:23:39 4: eventTypes: RPI_GPIO Interrupt Toggle: on -> Toggle: on
2014.11.17 18:23:39 4: eventTypes: RPI_GPIO Interrupt Counter: 351 -> Counter: .*
2014.11.17 18:23:39 4: eventTypes: RPI_GPIO Interrupt state: on -> state: on
2014.11.17 18:23:39 5: exec at command kli_down
2014.11.17 18:23:39 5: Cmd: >set aklir off-for-timer 5<
2014.11.17 18:23:39 4: aklir: set hash->{DEVICE} PortA1 on
2014.11.17 18:23:39 5: chip: vom client empfangen|direction: i2cwrite|reg: 18|data: 3|i2caddress: 32
2014.11.17 18:23:39 5: chip: HWaccess I2CAddr: 0x20
2014.11.17 18:23:39 5: chip: vom client empfangen|direction: i2cwrite|reg: 18|data: 3|i2caddress: 32
2014.11.17 18:23:39 5: chip: HWaccess byteweise schreiben, Reg: 0x12 Inh: 0x03, laenge: 2
2014.11.17 18:23:39 5: chip ->Client gefunden: mcp_20, I2Caddress: 32 Data: 3
2014.11.17 18:23:39 5: mcp_20 UpdReadings Register: 18, Inhalt: 3
2014.11.17 18:23:39 5: Triggering mcp_20 (1 changes)
2014.11.17 18:23:39 5: Notify loop for mcp_20 PortA1: on
2014.11.17 18:23:39 5: Triggering aklir (1 changes)
2014.11.17 18:23:39 5: Notify loop for aklir an
2014.11.17 18:23:39 4: eventTypes: readingsProxy aklir an -> an
2014.11.17 18:23:39 4: eventTypes: readingsProxy aklir state: off -> state: off
2014.11.17 18:23:39 4: eventTypes: I2C_MCP23017 mcp_20 PortA1: on -> PortA1: on
2014.11.17 18:23:39 5: Triggering mcp_20 (1 changes)
2014.11.17 18:23:39 5: Notify loop for mcp_20 Ok
2014.11.17 18:23:39 4: eventTypes: I2C_MCP23017 mcp_20 Ok -> Ok
2014.11.17 18:23:39 4: eventTypes: I2C_MCP23017 mcp_20 state: Ok -> state: Ok
2014.11.17 18:23:39 5: chip: vom client empfangen|direction: i2cwrite|reg: 19|data: 0|i2caddress: 32
2014.11.17 18:23:39 5: chip: HWaccess I2CAddr: 0x20
2014.11.17 18:23:39 5: chip: vom client empfangen|direction: i2cwrite|reg: 19|data: 0|i2caddress: 32
2014.11.17 18:23:39 5: chip: HWaccess byteweise schreiben, Reg: 0x13 Inh: 0x00, laenge: 2
2014.11.17 18:23:39 5: chip ->Client gefunden: mcp_20, I2Caddress: 32
2014.11.17 18:23:39 5: mcp_20 UpdReadings Register: 19, Inhalt: 0
2014.11.17 18:23:39 5: Triggering mcp_20 (1 changes)
2014.11.17 18:23:39 5: Notify loop for mcp_20 Ok
2014.11.17 18:23:39 4: eventTypes: I2C_MCP23017 mcp_20 Ok -> Ok
2014.11.17 18:23:39 4: eventTypes: I2C_MCP23017 mcp_20 state: Ok -> state: Ok
2014.11.17 18:23:39 5: Triggering global (1 changes)
2014.11.17 18:23:39 5: Notify loop for global DELETED kli_down
2014.11.17 18:23:39 5: Triggering aflh (1 changes)
2014.11.17 18:23:39 5: Notify loop for aflh aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy aflh aus -> aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy aflh state: on -> state: on
2014.11.17 18:23:39 5: Triggering aflr (1 changes)
2014.11.17 18:23:39 5: Notify loop for aflr aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy aflr aus -> aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy aflr state: on -> state: on
2014.11.17 18:23:39 5: Triggering agwch (1 changes)
2014.11.17 18:23:39 5: Notify loop for agwch aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy agwch aus -> aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy agwch state: on -> state: on
2014.11.17 18:23:39 5: Triggering agwcr (1 changes)
2014.11.17 18:23:39 5: Notify loop for agwcr aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy agwcr aus -> aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy agwcr state: on -> state: on
2014.11.17 18:23:39 5: Triggering aklih (1 changes)
2014.11.17 18:23:39 5: Notify loop for aklih an
2014.11.17 18:23:39 4: eventTypes: readingsProxy aklih an -> an
2014.11.17 18:23:39 4: eventTypes: readingsProxy aklih state: off -> state: off
2014.11.17 18:23:39 5: Triggering aklir (1 changes)
2014.11.17 18:23:39 5: Notify loop for aklir an
2014.11.17 18:23:39 4: eventTypes: readingsProxy aklir an -> an
2014.11.17 18:23:39 4: eventTypes: readingsProxy aklir state: off -> state: off
2014.11.17 18:23:39 5: Triggering akreh (1 changes)
2014.11.17 18:23:39 5: Notify loop for akreh aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy akreh aus -> aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy akreh state: on -> state: on
2014.11.17 18:23:39 5: Triggering akrer (1 changes)
2014.11.17 18:23:39 5: Notify loop for akrer aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy akrer aus -> aus
2014.11.17 18:23:39 4: eventTypes: readingsProxy akrer state: on -> state: on
2014.11.17 18:23:42 4: aklih: set hash->{DEVICE} PortA0 off
2014.11.17 18:23:42 5: chip: vom client empfangen|direction: i2cwrite|reg: 18|data: 2|i2caddress: 32
2014.11.17 18:23:42 5: chip: HWaccess I2CAddr: 0x20
2014.11.17 18:23:42 5: chip: vom client empfangen|direction: i2cwrite|reg: 18|data: 2|i2caddress: 32
2014.11.17 18:23:42 5: chip: HWaccess byteweise schreiben, Reg: 0x12 Inh: 0x02, laenge: 2
2014.11.17 18:23:42 5: chip ->Client gefunden: mcp_20, I2Caddress: 32 Data: 2
2014.11.17 18:23:42 5: mcp_20 UpdReadings Register: 18, Inhalt: 2
2014.11.17 18:23:42 5: Triggering mcp_20 (1 changes)
2014.11.17 18:23:42 5: Notify loop for mcp_20 PortA0: off
2014.11.17 18:23:42 5: Triggering aklih (1 changes)
2014.11.17 18:23:42 5: Notify loop for aklih aus
2014.11.17 18:23:42 4: eventTypes: readingsProxy aklih aus -> aus
2014.11.17 18:23:42 4: eventTypes: readingsProxy aklih state: on -> state: on
2014.11.17 18:23:42 4: eventTypes: I2C_MCP23017 mcp_20 PortA0: off -> PortA0: off
2014.11.17 18:23:42 5: Triggering mcp_20 (1 changes)
2014.11.17 18:23:42 5: Notify loop for mcp_20 Ok
2014.11.17 18:23:42 4: eventTypes: I2C_MCP23017 mcp_20 Ok -> Ok
2014.11.17 18:23:42 4: eventTypes: I2C_MCP23017 mcp_20 state: Ok -> state: Ok
2014.11.17 18:23:42 5: chip: vom client empfangen|direction: i2cwrite|reg: 19|data: 0|i2caddress: 32
2014.11.17 18:23:42 5: chip: HWaccess I2CAddr: 0x20
2014.11.17 18:23:42 5: chip: vom client empfangen|direction: i2cwrite|reg: 19|data: 0|i2caddress: 32
2014.11.17 18:23:42 5: chip: HWaccess byteweise schreiben, Reg: 0x13 Inh: 0x00, laenge: 2
2014.11.17 18:23:42 5: chip ->Client gefunden: mcp_20, I2Caddress: 32
2014.11.17 18:23:42 5: mcp_20 UpdReadings Register: 19, Inhalt: 0
2014.11.17 18:23:42 5: Triggering mcp_20 (1 changes)
2014.11.17 18:23:42 5: Notify loop for mcp_20 Ok
2014.11.17 18:23:42 4: eventTypes: I2C_MCP23017 mcp_20 Ok -> Ok
2014.11.17 18:23:42 4: eventTypes: I2C_MCP23017 mcp_20 state: Ok -> state: Ok
2014.11.17 18:23:44 4: aklir: set hash->{DEVICE} PortA1 off
2014.11.17 18:23:44 5: chip: vom client empfangen|direction: i2cwrite|reg: 18|data: 0|i2caddress: 32
2014.11.17 18:23:44 5: chip: HWaccess I2CAddr: 0x20
2014.11.17 18:23:44 5: chip: vom client empfangen|direction: i2cwrite|reg: 18|data: 0|i2caddress: 32
2014.11.17 18:23:44 5: chip: HWaccess byteweise schreiben, Reg: 0x12 Inh: 0x00, laenge: 2
2014.11.17 18:23:44 5: chip ->Client gefunden: mcp_20, I2Caddress: 32
2014.11.17 18:23:44 5: mcp_20 UpdReadings Register: 18, Inhalt: 0
2014.11.17 18:23:44 5: Triggering mcp_20 (1 changes)
2014.11.17 18:23:44 5: Notify loop for mcp_20 PortA1: off
2014.11.17 18:23:44 5: Triggering aklir (1 changes)
2014.11.17 18:23:44 5: Notify loop for aklir aus
2014.11.17 18:23:44 4: eventTypes: readingsProxy aklir aus -> aus
2014.11.17 18:23:44 4: eventTypes: readingsProxy aklir state: on -> state: on
2014.11.17 18:23:44 4: eventTypes: I2C_MCP23017 mcp_20 PortA1: off -> PortA1: off
2014.11.17 18:23:44 5: Triggering mcp_20 (1 changes)
2014.11.17 18:23:44 5: Notify loop for mcp_20 Ok
2014.11.17 18:23:44 4: eventTypes: I2C_MCP23017 mcp_20 Ok -> Ok
2014.11.17 18:23:44 4: eventTypes: I2C_MCP23017 mcp_20 state: Ok -> state: Ok
2014.11.17 18:23:44 5: chip: vom client empfangen|direction: i2cwrite|reg: 19|data: 0|i2caddress: 32
2014.11.17 18:23:44 5: chip: HWaccess I2CAddr: 0x20
2014.11.17 18:23:44 5: chip: vom client empfangen|direction: i2cwrite|reg: 19|data: 0|i2caddress: 32
2014.11.17 18:23:44 5: chip: HWaccess byteweise schreiben, Reg: 0x13 Inh: 0x00, laenge: 2
2014.11.17 18:23:44 5: chip ->Client gefunden: mcp_20, I2Caddress: 32
2014.11.17 18:23:44 5: mcp_20 UpdReadings Register: 19, Inhalt: 0
2014.11.17 18:23:44 5: Triggering mcp_20 (1 changes)
2014.11.17 18:23:44 5: Notify loop for mcp_20 Ok
2014.11.17 18:23:44 4: eventTypes: I2C_MCP23017 mcp_20 Ok -> Ok
2014.11.17 18:23:44 4: eventTypes: I2C_MCP23017 mcp_20 state: Ok -> state: Ok
2014.11.17 18:23:44 5: exec at command kli_clos
2014.11.17 18:23:44 5: Cmd: >setreading Rollokli state geschlossen<
2014.11.17 18:23:44 5: Triggering Rollokli (1 changes)
2014.11.17 18:23:44 5: Notify loop for Rollokli geschlossen
2014.11.17 18:23:44 5: Triggering act_on_Rollokli
2014.11.17 18:23:44 4: act_on_Rollokli exec {
    fhem ("delete kli_down") if (Value("kli_down") ne "");;
    fhem ("delete kli_clos") if (Value("kli_clos") ne "");;
    fhem ("delete kli_hoch") if (Value("kli_hoch") ne "");;
    fhem ("delete kli_oben") if (Value("kli_oben") ne "");;
if ("$EVENT" eq "runter") {
my $svar = ReadingsVal("sklih","state","off");;
    if ($svar eq "on") {
fhem "set aklih aus";;
    fhem "define kli_down at +00:00:01 set aklir off-for-timer 5";;
    fhem "setreading Rollokli state runterfahren";;
    fhem "define kli_clos at +00:00:06 setreading Rollokli state geschlossen";;
    }
    else {
    fhem "setreading Rollokli state Schalter betätigt";;
}
} elsif ("$EVENT" eq "hoch") {
    fhem "set aklir aus";;
fhem "define kli_hoch at +00:00:01 set aklih off-for-timer 5";;
fhem "setreading Rollokli state hochfahren";;
fhem "define kli_oben at +00:00:06 setreading Rollokli state geöffnet";;
} elsif ("$EVENT" eq "stop") {
    fhem "set aklir aus";;
    fhem "set aklih aus";;
    fhem "setreading Rollokli state gestoppt";;
}
}
2014.11.17 18:23:44 5: Cmd: >{
    fhem ("delete kli_down") if (Value("kli_down") ne "");
    fhem ("delete kli_clos") if (Value("kli_clos") ne "");
    fhem ("delete kli_hoch") if (Value("kli_hoch") ne "");
    fhem ("delete kli_oben") if (Value("kli_oben") ne "");
if ("$EVENT" eq "runter") {
my $svar = ReadingsVal("sklih","state","off");
    if ($svar eq "on") {
fhem "set aklih aus";
    fhem "define kli_down at +00:00:01 set aklir off-for-timer 5";
    fhem "setreading Rollokli state runterfahren";
    fhem "define kli_clos at +00:00:06 setreading Rollokli state geschlossen";
    }
    else {
    fhem "setreading Rollokli state Schalter betätigt";
}
} elsif ("$EVENT" eq "hoch") {
    fhem "set aklir aus";
fhem "define kli_hoch at +00:00:01 set aklih off-for-timer 5";
fhem "setreading Rollokli state hochfahren";
fhem "define kli_oben at +00:00:06 setreading Rollokli state geöffnet";
} elsif ("$EVENT" eq "stop") {
    fhem "set aklir aus";
    fhem "set aklih aus";
    fhem "setreading Rollokli state gestoppt";
}
}<
2014.11.17 18:23:44 5: Cmd: >delete kli_clos<
2014.11.17 18:23:44 5: Triggering global (1 changes)
2014.11.17 18:23:44 5: Notify loop for global DELETED kli_clos
2014.11.17 18:23:44 5: Triggering aflh (1 changes)
2014.11.17 18:23:44 5: Notify loop for aflh aus
2014.11.17 18:23:44 4: eventTypes: readingsProxy aflh aus -> aus
2014.11.17 18:23:44 4: eventTypes: readingsProxy aflh state: on -> state: on
2014.11.17 18:23:44 5: Triggering aflr (1 changes)
2014.11.17 18:23:44 5: Notify loop for aflr aus
2014.11.17 18:23:44 4: eventTypes: readingsProxy aflr aus -> aus
2014.11.17 18:23:44 4: eventTypes: readingsProxy aflr state: on -> state: on
2014.11.17 18:23:44 5: Triggering agwch (1 changes)
2014.11.17 18:23:44 5: Notify loop for agwch aus
2014.11.17 18:23:44 4: eventTypes: readingsProxy agwch aus -> aus
2014.11.17 18:23:44 4: eventTypes: readingsProxy agwch state: on -> state: on
2014.11.17 18:23:44 5: Triggering agwcr (1 changes)
2014.11.17 18:23:44 5: Notify loop for agwcr aus
2014.11.17 18:23:44 4: eventTypes: readingsProxy agwcr aus -> aus
2014.11.17 18:23:44 4: eventTypes: readingsProxy agwcr state: on -> state: on
2014.11.17 18:23:44 5: Triggering aklih (1 changes)
2014.11.17 18:23:44 5: Notify loop for aklih aus
2014.11.17 18:23:44 4: eventTypes: readingsProxy aklih aus -> aus
2014.11.17 18:23:44 4: eventTypes: readingsProxy aklih state: on -> state: on
2014.11.17 18:23:44 5: Triggering aklir (1 changes)
2014.11.17 18:23:44 5: Notify loop for aklir aus
2014.11.17 18:23:44 4: eventTypes: readingsProxy aklir aus -> aus
2014.11.17 18:23:44 4: eventTypes: readingsProxy aklir state: on -> state: on
2014.11.17 18:23:44 5: Triggering akreh (1 changes)
2014.11.17 18:23:44 5: Notify loop for akreh aus
2014.11.17 18:23:44 4: eventTypes: readingsProxy akreh aus -> aus
2014.11.17 18:23:44 4: eventTypes: readingsProxy akreh state: on -> state: on
2014.11.17 18:23:44 5: Triggering akrer (1 changes)
2014.11.17 18:23:44 5: Notify loop for akrer aus
2014.11.17 18:23:44 4: eventTypes: readingsProxy akrer aus -> aus
2014.11.17 18:23:44 4: eventTypes: readingsProxy akrer state: on -> state: on
2014.11.17 18:23:44 4: eventTypes: dummy Rollokli geschlossen -> geschlossen
2014.11.17 18:23:44 4: eventTypes: dummy Rollokli state: geschlossen -> state: geschlossen

klausw

Gehen die LED's denn gleichzeitig an?

Was willst du damit bezwecken:?
######### Rollade KÜCHE RECHTS per Schalter fahren
define akrehNotify notify skreh:off set Rollokre hoch
define akrerNotify notify skrer:off set Rollokre runter


Der Ausgangsport beeinflusst deinen Dummy ...
Der Dummy sollte nur von den Schaltern und den at's angesprochen werden
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

IPPhoner2b

Also die LEDs gehen hintereinander an, in  ca 1sek  Abstand.

Mit dem Code wollte ich, wenn der Schalter gedrückt wird, dass der Dummy für das Rollo auf hochfahren gesetzt wird. Habe gedacht, so wäre das richtig, aber scheinbar gibt es eine deutlich bessere Lösung  ;D

So klappt es jedenfalls, dass der Ausgang für den Dummy nur gesetzt wird, wenn der Schalter "angeschaltet" wird, und eben nicht mehr beim "ausschalten" 

klausw

die ganze Verarbeitung solltest du im notify des dummys machen

und das entprellen an den schaltereingängen

keinesfalls am output
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

IPPhoner2b

Wie Binde ich das denn in das notify mit ein?

Da steh ich mal wieder voll auf dem Schlauch.

Das müsste ja oben im Bereich der Timer stehen, und dann ein
In Schalter runter gedrückt, dann runterfahren.
Wäre das so ähnlich:?

fhem "set rollokli runter" if ReadingsVal("sklih","state","off");;/

klausw

Zitat von: IPPhoner2b am 17 November 2014, 19:45:22
Wie Binde ich das denn in das notify mit ein?

Da steh ich mal wieder voll auf dem Schlauch.

Das müsste ja oben im Bereich der Timer stehen, und dann ein
In Schalter runter gedrückt, dann runterfahren.
Wäre das so ähnlich:?

fhem "set rollokli runter" if ReadingsVal("sklih","state","off");;/


ups, Du hast recht
Vergiss, was ich gesagt habe.

Ich muss mal in Ruhe drüberschauen...das wird heut nix mehr
Aber vielleicht findest Du es inzwischen  ;)
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

IPPhoner2b

Ganz in Ruhe, habe es mir auch mal vor der Glotze gemütlich gemacht  8)

Wünsche noch einen angenehmen und schönen Abend  ;D

IPPhoner2b

#22
Hallo Klaus,

also was ich wenigstens von der Hardware Seite herausfinden konnte, es ist absolut reproduzierbar, kommt aber scheinbar immer nur bei einem schnellen Wechsel von hoch, runter, hoch zustande.

Habe testweise in der Config für das Hoch und runterfahren noch jeweils am Anfang Beide Ausgänge ausschalten lassen, und nicht nur einen, aber selbst das hat keinen gewünschten Erfolg gebracht, scheint nicht unbedingt an dem Skript zu liegen, evtl. ja doch ein Problem der schnellen Eingangsfolge oder so, das Notify da nicht richtig hinterherkommt?

Über das Web IF kann ich mich Totklicken, und bekomme den Fehler nicht hin, also es muss was mit der Eingangsabfrage des MCPs zu tun haben, schätze ich mal

Hier der leicht abgeänderte Code, oder kann es noch mit den Timern zusammenhängen? Aber eigentlich wird ja, bevor der Timer gestartet wird, der Ausgang deaktiviert, das versteh ich überhaupt nicht mehr.
Rollokli {
    fhem ("delete kli_down") if (Value("kli_down") ne "");
    fhem ("delete kli_clos") if (Value("kli_clos") ne "");
    fhem ("delete kli_hoch") if (Value("kli_hoch") ne "");
    fhem ("delete kli_oben") if (Value("kli_oben") ne "");
if ("$EVENT" eq "runter") {
my $svar = ReadingsVal("sklih","state","off");
    if ($svar eq "on") {
fhem "set aklih,aklir aus";
    fhem "define kli_down at +00:00:01 set aklir off-for-timer 5";
    fhem "setreading Rollokli state runterfahren";
    fhem "define kli_clos at +00:00:06 setreading Rollokli state geschlossen";
    }
    else {
    fhem "setreading Rollokli state Schalter betätigt";
}
} elsif ("$EVENT" eq "hoch") {
    fhem "set aklir,aklih aus";
fhem "define kli_hoch at +00:00:01 set aklih off-for-timer 5";
fhem "setreading Rollokli state hochfahren";
fhem "define kli_oben at +00:00:06 setreading Rollokli state geöffnet";
} elsif ("$EVENT" eq "stop") {
    fhem "set aklir,aklih aus";
    fhem "setreading Rollokli state gestoppt";
}
}


:EDITH:
Bevor ich lange rumprobiere und es evtl gar nicht möglich ist, noch eine Sache,
kann ich in den Code auch direkt Positionen anfahren lassen, so wie es mit den Homematic Sachen auch geht, also das man erstmal festlegt, wie lange der Rolladen fürs hoch und Runterfahren braucht, und dann eben, dass er mehrere Positionen, also z.B. 30,50 und 70% anfahren kann, oder müsste das ein jeweils eigener Block in dem oberen Code werden, damit ich es auch auswählen kann?

klausw

Zitat von: IPPhoner2b am 23 November 2014, 10:32:20
Hallo Klaus,

also was ich wenigstens von der Hardware Seite herausfinden konnte, es ist absolut reproduzierbar, kommt aber scheinbar immer nur bei einem schnellen Wechsel von hoch, runter, hoch zustande.

Habe testweise in der Config für das Hoch und runterfahren noch jeweils am Anfang Beide Ausgänge ausschalten lassen, und nicht nur einen, aber selbst das hat keinen gewünschten Erfolg gebracht, scheint nicht unbedingt an dem Skript zu liegen, evtl. ja doch ein Problem der schnellen Eingangsfolge oder so, das Notify da nicht richtig hinterherkommt?

Über das Web IF kann ich mich Totklicken, und bekomme den Fehler nicht hin, also es muss was mit der Eingangsabfrage des MCPs zu tun haben, schätze ich mal

Hier der leicht abgeänderte Code, oder kann es noch mit den Timern zusammenhängen? Aber eigentlich wird ja, bevor der Timer gestartet wird, der Ausgang deaktiviert, das versteh ich überhaupt nicht mehr.

Gute Frage, an den Timern kann es meiner Meinung nach nicht liegen. Du löschst diese ja und dann sollten die auch nix mehr schalten
Die Weboberfläche ist natürlich langsamer als die Hardwaretasten. Diese werden über einen Interrupt ausgelöst (wober ich nicht weiss, wie das im Detail in Perl läuft).

Aber muss: fhem "set aklih,aklir aus"; nicht fhem "set aklih,aklir an"; oder on oder was auch immer heissen?
Ich denke du hast invertierte logik?

Zitat von: IPPhoner2b am 23 November 2014, 10:32:20
Bevor ich lange rumprobiere und es evtl gar nicht möglich ist, noch eine Sache,
kann ich in den Code auch direkt Positionen anfahren lassen, so wie es mit den Homematic Sachen auch geht, also das man erstmal festlegt, wie lange der Rolladen fürs hoch und Runterfahren braucht, und dann eben, dass er mehrere Positionen, also z.B. 30,50 und 70% anfahren kann, oder müsste das ein jeweils eigener Block in dem oberen Code werden, damit ich es auch auswählen kann?
Jein ;)
Bei Homematic weiss das Rolladenmodul selbst, wo dein Behang ist (über laufzeit).
Du kannst natürlich über die Timerlaufzeit auf eine feste Postition fahren.
Dazu benötigst du für jede Position, die du haben möchtest eigene timer...das ist halt recht komplex.
Aber ein Dummy Button, der auf 50% fährt (rollo vorher komplett geschlossen/geöffnet) geht natürlich.
Nen silder zum einstellen der Position kannst du meiner Meinung nach vergessen.

Eine Möglichkeit währe evtl. ein eigenes Modul zu schreiben, dem du alte und neue Position übergibst und welches für dich die timer berechnet (der Behang fährt ja nicht linear). Dann sollte es auch mit dem Slider funktionieren.
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

IPPhoner2b

Also mit der Inverten Logik,
ich habe ja die Ausgänge umgepolt, deswegen heißt ja "aus", dass die LED "aus" ist, also das klappt soweit auch alles, das einzige ist halt, dass ich für die gesteuerte Zeit immer noch "off-for-timer" nutzen muss, um den Ausgang für die gewünschte Zeit "an" zu machen. Das ist das einzige Irreführende noch, aber sonst klappt es *g*

Schätze mit den Fehlinterpretationen läuft das wirklich über zu viel Input in kurzer Zeit, dass die Interrupt Steuerung durcheinander kommt. aber wenn man es mal richtig betrachtet, werden die Rollos in 80% der Fälle durch die Sunset/Sunrise Steuerung geschaltet, und dann eben wahrscheinlich Abends mittels Schalter, der in der "oben" Stellung ruhte, nach unten gefahren, also da wird zu 99,9999% wohl kein wirres herumgedrücke auf dem Schalter erfolgen *g*

Deswegen gehe ich davon aus, dass in deinem Code kein Fehler zu finden sein wird, das scheint wirklich auf der Hardware basiert zu sein.



Das mit der gewünschten Position anfahren, habe ich mir fast schon gedacht, dass das so ohne weiteres nicht klappt, werde wohl den Teil noch soweit erweitern, dass meine Eltern die Möglichkeit haben, über das WebIf 2 zusätzliche Positionen anzufahren, also etwas runter, und eben bis auf Schlitzbreite oder so.


Wo ich noch nicht ganz sicher bin ist, ob ich noch so etwas wie eine Zeitsteuerung für den Taster mit einbringen soll, falls meine Eltern das Rollo mit dem Schalter runterfahren, es dann aber stoppen möchten, das ist so ja ohne weiteres nicht möglich, weil ja nur kurz der "Impuls" ausgewertet wird, und dann fährt das Rollo die eingestellte Zeit.

Hatte das in dem anderen Thread mal kurz durchgeschaut, aber der Aufwand ist mir irgendwie dafür doch zu viel. So oft wird das vermutlich eh nicht genutzt.


Habe gestern kurzzeitig damit angefangen, schonmal die Skizze des Floorplans zu erstellen, dann geht es die nächsten Tage damit weiter.  Die anderen Rollos werden erstmal vorbehaltlich angelegt, da weiß ich noch nicht, ob die über Homematic oder über Kabel gesteuert werden. Jedenfalls die Funksteckdose klappte schonmal zeitgesteuert. Hatte mir den Lan Config Adapter geholt, dann aber gelesen, dass man die Firmware der einzelnen Bauteile wohl nur über den USB Stick updaten kann, naja, wird der auchnochmal geordert *G* Was kost die Welt  :o ;D


IPPhoner2b

Mal ne andere Frage,

habe jetzt über "include" meine Fhem.cfg stark abgespeckt, und fast alles in einzelne Räume verteilt, und auch viel mit Kommentaren versehen, dass ich in 6-235 Monaten auch noch verstehe, was damals da dran gemacht wurde.

Jetzt habe ich nur 2 Probleme, das kleinere, sind die Umlaute, diese werden jetzt kryptisch dargestellt, kann aber geändert werden, indem die Dateien direkt in FHEM nochmals über das Web IF geändert werden,

aber was noch richtig stört, das System lagt jetzt sehr extrem, wenn ich einen Schalter betätige, reagiert Fhem erst nach knapp 2 sekunden Gedenkzeit. Ist das über die "Include" Funktion normal, oder liegt das an den sehr groß gewordenen Configs mit den Kommentaren?

Konnte da in der Suche nichts finden, aber vielleicht weiß es ja jemand so schon.

Also werde ich wohl alles wieder Rückgängig machen, und dann hinterher eine Config kopieren, und ausdrucken, damit ich mir dort meine "Erklärungen" absichern kann. :o ::)

Puschel74

Hallo,

mit den Erklärungen ausdrucken ist eine gute Idee  ;)

Zitathabe jetzt über "include" meine Fhem.cfg stark abgespeckt, und fast alles in einzelne Räume verteilt, und auch viel mit Kommentaren versehen,

Ja FHEM bietet die Möglichkeit mit include Dateien einzubinden.
Aber wozu soll das in einzelne Dateien ausgelagert werden?
Lass doch die fhem.cfg so wie sie ist - FHEM ist glücklich damit.

Zitataber was noch richtig stört, das System lagt jetzt sehr extrem, wenn ich einen Schalter betätige,
Würde mich wundern wenn das durch include zustande kommt.
Lass doch mal apptime drüberlaufen dann siehst du was FHEM ausbremst.

Grüße

P.S.: Ja, ich hab auch teilweise include in meiner Konfig aber nur weil ich es am Anfang auch nicht besser wusste und mittlerweile schlicht zu faul bin das wieder rückgängig zu machen.
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

IPPhoner2b

Hallo Puschel,

danke für den Tipp mit Apptime, allerdings kann ich das absolut nicht deuten, was mir das Teil auswirft.

Habe aber eben alle Funktionen wieder in die Fhem.cfg kopiert, und so gut wie alle Kommentare rausgeschmissen.
Allerdings lagt das System trotzdem genauso.

Habe dann mal die "Reserve" Ausgänge von 2 Chips gelöscht, und siehe da, es läuft wieder absolut stabil und schnell.

Irgendwie kann ich mir da noch keinen Reim drauf bilden.
Habe eigentlich nur folgende Sachen gelöscht:

define mcp_21 I2C_MCP23017 0x21
attr mcp_21 IODev chip
attr mcp_21 OnStartup A0=off,A1=off,A2=off,A3=off,A4=off,A5=off,A6=off,A7=off,B0=off,B1=off,B2=off,B3=off,B4=off,B5=off,B6=off,B7=off
attr mcp_21 OutputPorts A0,A1,A2,A3,A4,A5,A6,A7,B0,B1,B2,B3,B4,B5,B6,B7
attr mcp_21 group MCP23017

define mcp_22 I2C_MCP23017 0x22
attr mcp_22 IODev chip
attr mcp_22 OnStartup A0=off,A1=off,A2=off,A3=off,A4=off,A5=off,A6=off,A7=off,B0=off,B1=off,B2=off,B3=off,B4=off,B5=off,B6=off,B7=off
attr mcp_22 OutputPorts A0,A1,A2,A3,A4,A5,A6,A7,B0,B1,B2,B3,B4,B5,B6,B7
attr mcp_22 group MCP23017

define a21a0 readingsProxy mcp_21:PortA0
attr a21a0 alias Ausgang Chip21 Port A0
attr a21a0 devStateIcon aus:off an:on
attr a21a0 eventMap on:aus off:an
attr a21a0 group OutputPorts
attr a21a0 setFn {($CMD eq "on")?"PortA0 off":"PortA0 on"}
attr a21a0 setList off on
attr a21a0 valueFn {($VALUE eq "on")?"off":"on"}

define a21a1 readingsProxy mcp_21:PortA1
attr a21a1 alias Ausgang Chip21 Port A1
attr a21a1 devStateIcon aus:off an:on
attr a21a1 eventMap on:aus off:an
attr a21a1 group OutputPorts
attr a21a1 setFn {($CMD eq "on")?"PortA1 off":"PortA1 on"}
attr a21a1 setList off on
attr a21a1 valueFn {($VALUE eq "on")?"off":"on"}

define a21a2 readingsProxy mcp_21:PortA2
attr a21a2 alias Ausgang Chip21 Port A2
attr a21a2 devStateIcon aus:off an:on
attr a21a2 eventMap on:aus off:an
attr a21a2 group OutputPorts
attr a21a2 setFn {($CMD eq "on")?"PortA2 off":"PortA2 on"}
attr a21a2 setList off on
attr a21a2 valueFn {($VALUE eq "on")?"off":"on"}

define a21a3 readingsProxy mcp_21:PortA3
attr a21a3 alias Ausgang Chip21 Port A3
attr a21a3 devStateIcon aus:off an:on
attr a21a3 eventMap on:aus off:an
attr a21a3 group OutputPorts
attr a21a3 setFn {($CMD eq "on")?"PortA3 off":"PortA3 on"}
attr a21a3 setList off on
attr a21a3 valueFn {($VALUE eq "on")?"off":"on"}

define a21a4 readingsProxy mcp_21:PortA4
attr a21a4 alias Ausgang Chip21 Port A4
attr a21a4 devStateIcon aus:off an:on
attr a21a4 eventMap on:aus off:an
attr a21a4 group OutputPorts
attr a21a4 setFn {($CMD eq "on")?"PortA4 off":"PortA4 on"}
attr a21a4 setList off on
attr a21a4 valueFn {($VALUE eq "on")?"off":"on"}

define a21a5 readingsProxy mcp_21:PortA5
attr a21a5 alias Ausgang Chip21 Port A5
attr a21a5 devStateIcon aus:off an:on
attr a21a5 eventMap on:aus off:an
attr a21a5 group OutputPorts
attr a21a5 setFn {($CMD eq "on")?"PortA5 off":"PortA5 on"}
attr a21a5 setList off on
attr a21a5 valueFn {($VALUE eq "on")?"off":"on"}

define a21a6 readingsProxy mcp_21:PortA6
attr a21a6 alias Ausgang Chip21 Port A6
attr a21a6 devStateIcon aus:off an:on
attr a21a6 eventMap on:aus off:an
attr a21a6 group OutputPorts
attr a21a6 setFn {($CMD eq "on")?"PortA6 off":"PortA6 on"}
attr a21a6 setList off on
attr a21a6 valueFn {($VALUE eq "on")?"off":"on"}

define a21a7 readingsProxy mcp_21:PortA7
attr a21a7 alias Ausgang Chip21 Port A7
attr a21a7 devStateIcon aus:off an:on
attr a21a7 eventMap on:aus off:an
attr a21a7 group OutputPorts
attr a21a7 setFn {($CMD eq "on")?"PortA7 off":"PortA7 on"}
attr a21a7 setList off on
attr a21a7 valueFn {($VALUE eq "on")?"off":"on"}

define a21b0 readingsProxy mcp_21:PortB0
attr a21b0 alias Ausgang Chip21 Port B0
attr a21b0 devStateIcon aus:off an:on
attr a21b0 eventMap on:aus off:an
attr a21b0 group OutputPorts
attr a21b0 setFn {($CMD eq "on")?"PortB0 off":"PortB0 on"}
attr a21b0 setList off on
attr a21b0 valueFn {($VALUE eq "on")?"off":"on"}

define a21b1 readingsProxy mcp_21:PortB1
attr a21b1 alias Ausgang Chip21 Port B1
attr a21b1 devStateIcon aus:off an:on
attr a21b1 eventMap on:aus off:an
attr a21b1 group OutputPorts
attr a21b1 setFn {($CMD eq "on")?"PortB1 off":"PortB1 on"}
attr a21b1 setList off on
attr a21b1 valueFn {($VALUE eq "on")?"off":"on"}

define a21b2 readingsProxy mcp_21:PortB2
attr a21b2 alias Ausgang Chip21 Port B2
attr a21b2 devStateIcon aus:off an:on
attr a21b2 eventMap on:aus off:an
attr a21b2 group OutputPorts
attr a21b2 setFn {($CMD eq "on")?"PortB2 off":"PortB2 on"}
attr a21b2 setList off on
attr a21b2 valueFn {($VALUE eq "on")?"off":"on"}

define a21b3 readingsProxy mcp_21:PortB3
attr a21b3 alias Ausgang Chip21 Port B3
attr a21b3 devStateIcon aus:off an:on
attr a21b3 eventMap on:aus off:an
attr a21b3 group OutputPorts
attr a21b3 setFn {($CMD eq "on")?"PortB3 off":"PortB3 on"}
attr a21b3 setList off on
attr a21b3 valueFn {($VALUE eq "on")?"off":"on"}

define a21b4 readingsProxy mcp_21:PortB4
attr a21b4 alias Ausgang Chip21 Port B4
attr a21b4 devStateIcon aus:off an:on
attr a21b4 eventMap on:aus off:an
attr a21b4 group OutputPorts
attr a21b4 setFn {($CMD eq "on")?"PortB4 off":"PortB4 on"}
attr a21b4 setList off on
attr a21b4 valueFn {($VALUE eq "on")?"off":"on"}

define a21b5 readingsProxy mcp_21:PortB5
attr a21b5 alias Ausgang Chip21 Port B5
attr a21b5 devStateIcon aus:off an:on
attr a21b5 eventMap on:aus off:an
attr a21b5 group OutputPorts
attr a21b5 setFn {($CMD eq "on")?"PortB5 off":"PortB5 on"}
attr a21b5 setList off on
attr a21b5 valueFn {($VALUE eq "on")?"off":"on"}

define a21b6 readingsProxy mcp_21:PortB6
attr a21b6 alias Ausgang Chip21 Port B6
attr a21b6 devStateIcon aus:off an:on
attr a21b6 eventMap on:aus off:an
attr a21b6 group OutputPorts
attr a21b6 setFn {($CMD eq "on")?"PortB6 off":"PortB6 on"}
attr a21b6 setList off on
attr a21b6 valueFn {($VALUE eq "on")?"off":"on"}

define a21b7 readingsProxy mcp_21:PortB7
attr a21b7 alias Ausgang Chip21 Port B7
attr a21b7 devStateIcon aus:off an:on
attr a21b7 eventMap on:aus off:an
attr a21b7 group OutputPorts
attr a21b7 setFn {($CMD eq "on")?"PortB7 off":"PortB7 on"}
attr a21b7 setList off on
attr a21b7 valueFn {($VALUE eq "on")?"off":"on"}

define a22a0 readingsProxy mcp_22:PortA0
attr a22a0 alias Ausgang Chip22 Port A0
attr a22a0 devStateIcon aus:off an:on
attr a22a0 eventMap on:aus off:an
attr a22a0 group OutputPorts
attr a22a0 setFn {($CMD eq "on")?"PortA0 off":"PortA0 on"}
attr a22a0 setList off on
attr a22a0 valueFn {($VALUE eq "on")?"off":"on"}

define a22a1 readingsProxy mcp_22:PortA1
attr a22a1 alias Ausgang Chip22 Port A1
attr a22a1 devStateIcon aus:off an:on
attr a22a1 eventMap on:aus off:an
attr a22a1 group OutputPorts
attr a22a1 setFn {($CMD eq "on")?"PortA1 off":"PortA1 on"}
attr a22a1 setList off on
attr a22a1 valueFn {($VALUE eq "on")?"off":"on"}

define a22a2 readingsProxy mcp_22:PortA2
attr a22a2 alias Ausgang Chip22 Port A2
attr a22a2 devStateIcon aus:off an:on
attr a22a2 eventMap on:aus off:an
attr a22a2 group OutputPorts
attr a22a2 setFn {($CMD eq "on")?"PortA2 off":"PortA2 on"}
attr a22a2 setList off on
attr a22a2 valueFn {($VALUE eq "on")?"off":"on"}

define a22a3 readingsProxy mcp_22:PortA3
attr a22a3 alias Ausgang Chip22 Port A3
attr a22a3 devStateIcon aus:off an:on
attr a22a3 eventMap on:aus off:an
attr a22a3 group OutputPorts
attr a22a3 setFn {($CMD eq "on")?"PortA3 off":"PortA3 on"}
attr a22a3 setList off on
attr a22a3 valueFn {($VALUE eq "on")?"off":"on"}

define a22a4 readingsProxy mcp_22:PortA4
attr a22a4 alias Ausgang Chip22 Port A4
attr a22a4 devStateIcon aus:off an:on
attr a22a4 eventMap on:aus off:an
attr a22a4 group OutputPorts
attr a22a4 setFn {($CMD eq "on")?"PortA4 off":"PortA4 on"}
attr a22a4 setList off on
attr a22a4 valueFn {($VALUE eq "on")?"off":"on"}

define a22a5 readingsProxy mcp_22:PortA5
attr a22a5 alias Ausgang Chip22 Port A5
attr a22a5 devStateIcon aus:off an:on
attr a22a5 eventMap on:aus off:an
attr a22a5 group OutputPorts
attr a22a5 setFn {($CMD eq "on")?"PortA5 off":"PortA5 on"}
attr a22a5 setList off on
attr a22a5 valueFn {($VALUE eq "on")?"off":"on"}

define a22a6 readingsProxy mcp_22:PortA6
attr a22a6 alias Ausgang Chip22 Port A6
attr a22a6 devStateIcon aus:off an:on
attr a22a6 eventMap on:aus off:an
attr a22a6 group OutputPorts
attr a22a6 setFn {($CMD eq "on")?"PortA6 off":"PortA6 on"}
attr a22a6 setList off on
attr a22a6 valueFn {($VALUE eq "on")?"off":"on"}

define a22a7 readingsProxy mcp_22:PortA7
attr a22a7 alias Ausgang Chip22 Port A7
attr a22a7 devStateIcon aus:off an:on
attr a22a7 eventMap on:aus off:an
attr a22a7 group OutputPorts
attr a22a7 setFn {($CMD eq "on")?"PortA7 off":"PortA7 on"}
attr a22a7 setList off on
attr a22a7 valueFn {($VALUE eq "on")?"off":"on"}

define a22b0 readingsProxy mcp_22:PortB0
attr a22b0 alias Ausgang Chip22 Port B0
attr a22b0 devStateIcon aus:off an:on
attr a22b0 eventMap on:aus off:an
attr a22b0 group OutputPorts
attr a22b0 setFn {($CMD eq "on")?"PortB0 off":"PortB0 on"}
attr a22b0 setList off on
attr a22b0 valueFn {($VALUE eq "on")?"off":"on"}

define a22b1 readingsProxy mcp_22:PortB1
attr a22b1 alias Ausgang Chip22 Port B1
attr a22b1 devStateIcon aus:off an:on
attr a22b1 eventMap on:aus off:an
attr a22b1 group OutputPorts
attr a22b1 setFn {($CMD eq "on")?"PortB1 off":"PortB1 on"}
attr a22b1 setList off on
attr a22b1 valueFn {($VALUE eq "on")?"off":"on"}

define a22b2 readingsProxy mcp_22:PortB2
attr a22b2 alias Ausgang Chip22 Port B2
attr a22b2 devStateIcon aus:off an:on
attr a22b2 eventMap on:aus off:an
attr a22b2 group OutputPorts
attr a22b2 setFn {($CMD eq "on")?"PortB2 off":"PortB2 on"}
attr a22b2 setList off on
attr a22b2 valueFn {($VALUE eq "on")?"off":"on"}

define a22b3 readingsProxy mcp_22:PortB3
attr a22b3 alias Ausgang Chip22 Port B3
attr a22b3 devStateIcon aus:off an:on
attr a22b3 eventMap on:aus off:an
attr a22b3 group OutputPorts
attr a22b3 setFn {($CMD eq "on")?"PortB3 off":"PortB3 on"}
attr a22b3 setList off on
attr a22b3 valueFn {($VALUE eq "on")?"off":"on"}

define a22b4 readingsProxy mcp_22:PortB4
attr a22b4 alias Ausgang Chip22 Port B4
attr a22b4 devStateIcon aus:off an:on
attr a22b4 eventMap on:aus off:an
attr a22b4 group OutputPorts
attr a22b4 setFn {($CMD eq "on")?"PortB4 off":"PortB4 on"}
attr a22b4 setList off on
attr a22b4 valueFn {($VALUE eq "on")?"off":"on"}

define a22b5 readingsProxy mcp_22:PortB5
attr a22b5 alias Ausgang Chip22 Port B5
attr a22b5 devStateIcon aus:off an:on
attr a22b5 eventMap on:aus off:an
attr a22b5 group OutputPorts
attr a22b5 setFn {($CMD eq "on")?"PortB5 off":"PortB5 on"}
attr a22b5 setList off on
attr a22b5 valueFn {($VALUE eq "on")?"off":"on"}

define a22b6 readingsProxy mcp_22:PortB6
attr a22b6 alias Ausgang Chip22 Port B6
attr a22b6 devStateIcon aus:off an:on
attr a22b6 eventMap on:aus off:an
attr a22b6 group OutputPorts
attr a22b6 setFn {($CMD eq "on")?"PortB6 off":"PortB6 on"}
attr a22b6 setList off on
attr a22b6 valueFn {($VALUE eq "on")?"off":"on"}

define a22b7 readingsProxy mcp_22:PortB7
attr a22b7 alias Ausgang Chip22 Port B7
attr a22b7 devStateIcon aus:off an:on
attr a22b7 eventMap on:aus off:an
attr a22b7 group OutputPorts
attr a22b7 setFn {($CMD eq "on")?"PortB7 off":"PortB7 on"}
attr a22b7 setList off on
attr a22b7 valueFn {($VALUE eq "on")?"off":"on"}


Das was mir noch aufgefallen ist, wo ich "Apptime Total" gestartet habe, dass er obwohl nur die Ausgänge vom 20er Chip genutzt werden, auch was mit den 21er Ausgängen schreibt

name             function    max  count    total  average maxDly
         FHEMWEB:192.168.47.51:49508              FW_Read   6122     64     6147    96.05      0 HASH(FHEMWEB:192.168.47.51:49508)
                     act_on_Rollokli          notify_Exec   3826      2     5734  2867.00      0 HASH(act_on_Rollokli); HASH(Rollokli)
                                chip         RPII2C_Write   4006     37     4679   126.46      0 HASH(chip); HASH(0x23929c8)
                              mcp_20  I2C_MCP23017_I2CRec   4001     21     4484   213.52      0 HASH(mcp_20); HASH(0x23929c8)
                              mcp_20     I2C_MCP23017_Get   4007      3     4173  1391.00      0 HASH(mcp_20); mcp_20
                         Interrupt20      RPI_GPIO_Except   4049      2     4139  2069.50      0 HASH(Interrupt20)
                               sklih readingsProxy_Notify   3902    217     3951    18.21      0 HASH(sklih); HASH(mcp_20)
                         aklihNotify          notify_Exec   3865      2     3865  1932.50      0 HASH(aklihNotify); HASH(sklih)
                            Rollokli            dummy_Set   3862      1     3862  3862.00      0 HASH(Rollokli); Rollokli; hoch
                              hmlan1         HMLAN_Define   3006      1     3006  3006.00      0 HASH(hmlan1); hmlan1 HMLAN 192.168.47.98:1000
                         tmr-at_Exec      HASH(0x236f070)   2046      1     2046  2046.00   3018 HASH(kli_hoch)
                         tmr-at_Exec      HASH(0x2328998)   1945      1     1945  1945.00      4 HASH(kli_oben)
                               aklih    readingsProxy_Set    168      4      523   130.75      0 HASH(aklih); aklih; off-for-timer; 5
                              mcp_20     I2C_MCP23017_Set    162      4      363    90.75      0 HASH(mcp_20); mcp_20; PortA0; off
                               aklih readingsProxy_Notify     38    217      223     1.03      0 HASH(aklih); HASH(global)
                                chip        RPII2C_Notify    208      5      208    41.60      0 HASH(chip); HASH(global)
                               a21a0 readingsProxy_Notify     38    217      173     0.80      0 HASH(a21a0); HASH(global)
                 tmr-SetExtensionsFn SE aklih off-for-timer    168      1      168   168.00    652 SE aklih off-for-timer
              tmr-RPI_GPIO_longpress      HASH(0x22f4808)    159      1      159   159.00   3051 HASH(Interrupt20)
                               a21a2 readingsProxy_Notify     37    217      154     0.71      0 HASH(a21a2); HASH(global)
                               a21b6 readingsProxy_Notify     39    217      153     0.71      0 HASH(a21b6); HASH(global)


Weil, sobald ich den oben eingegebenen Code lösche, klappt alles ohne Probleme, allerdings finde ich den Fehler im Heuhaufen noch nicht. Aber ein gutes hat es ja, der Fehler scheint nicht durch die "includes" zu kommen, was mir hoffnung macht, es doch über die Dateien zu erledigen, weil ich das bei meinen Eltern, wahrscheinlich nur einmal anschließen werde, und dann die nächsten Jahre nix mehr mit zu tun habe.  ::) (Wunschdenken)  8)

IPPhoner2b

Hallo nochmal,

Oder müsste  ich bei

attr mcp_21 IODev Chip
und
attr mcp_22 IODev chip

Dann noch jeweils den Chip einzeln zuweisen?
Also
attr mcp_21 IODev chip_21
attr mcp_22 IODev chip_22

Würde das evtl helfen?
Komme jetzt nicht zum testen, deswegen die Frage, weils mich doch irgendwie beschäftigt

klausw

Zitat von: IPPhoner2b am 29 November 2014, 22:58:37
Oder müsste  ich bei

attr mcp_21 IODev Chip
und
attr mcp_22 IODev chip

Dann noch jeweils den Chip einzeln zuweisen?
Also
attr mcp_21 IODev chip_21
attr mcp_22 IODev chip_22

Würde das evtl helfen?
Das wird keinesfalls funktionieren. Dein "chip" ist doch nur der physikal. Zungang zum I2C. Und wenn beide IC's am selben I2CBus hängen, dann müssen die auch das selbe Modul ansprechen.

Wenn es vorher ging solltest Du mal den code vergleichen. Du hast doch sicher ein Backup gemacht  ::)
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280