FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: fhemer am 10 Mai 2016, 00:24:20

Titel: Unknown argument PortB0:off, choose one of PortB0:off
Beitrag von: fhemer am 10 Mai 2016, 00:24:20
Hallo ins Forum!

Habe jetzt mich etwas in FHEM eingearbeitet und soweit alles für den 23017 über I2C hinbekommen. Auf der Weboberfläche erscheint auch eine Birne und die Befehle on und off. Ich möchte einfach nur Port B0 ein- und ausschalten. Dazu habe ich u.a. folgenden Code:

attr i2c20pB0 setFn {($CMD eq "on")?"PortB0:off":"PortB0:on"}

Es kommt dann folgende Fehlermeldung, wenn ich auf on oder off klicke:

Unknown argument PortB0:off, choose one of PortB0:off,on PortB1:off,on PortB2:off,on PortB3:off,on PortB4:off,on PortB5:off,on PortB6:off,on PortB7:off,on

Die Fehlermeldung macht echt keinen Sinn. Habe schon andere Varianten ausprobiert, klappt aber nie :-( Kann mir jemand helfen?
Danke im Vorraus!

VG
Fhemer

Titel: Antw:Unknown argument PortB0:off, choose one of PortB0:off
Beitrag von: viegener am 10 Mai 2016, 15:16:02
Die Fehlermeldung klingt erstmal nciht so überzeugend...

Ich vermute mal Dein zugrundeliegender Device ist ein I2C_MCP23017?
Dann würde ich mal (ohne setfn) zu versuchen folgendes aufzurufen
Zitatset i2c20pB0 PortB0 off

Wenn das geht, kannst Du ja in Deinem Code leerzeichen statt : einsetzen.

Titel: Antw:Unknown argument PortB0:off, choose one of PortB0:off
Beitrag von: betateilchen am 10 Mai 2016, 15:17:29
ich verstehe grade nicht, wieso man einen port über ein Attribut schalten will?
Titel: Antw:Unknown argument PortB0:off, choose one of PortB0:off
Beitrag von: fhemer am 10 Mai 2016, 21:47:46
Habe jetzt mal meinen Code komplett überarbeitet und so geht es jetzt. Vermutlich hatte ich einen doppelten Alias und/oder falsche Reihenfolgen. Und den Doppelpunkt habe ich rausgenommen :-) Jedenfalls vielen Dank!
On und Off ist zur Zeit noch invertiert.

define i2c RPII2C 1
attr i2c alias Onboard I2C Controller 1
attr i2c room ops

define i2c20 I2C_MCP23017 0x20
attr i2c20 IODev i2c
attr i2c20 room ops
# attr i2c20 OutputPorts A0,A1,A2,A3,A4,A5,A6,A7 # wird ueberschrieben #mag kein Umlaut
attr i2c20 OutputPorts A0,A1,A2,A3,A4,A5,A6,A7,B0,B1,B2,B3,B4,B5,B6,B7
set i2c20 PortB0 on # ausschalten
set i2c20 PortA0 on # ausschalten

setdefaultattr valueFn {($VALUE eq "on")?"off":"on"}

define i2c20pB0 readingsProxy i2c20:PortB0
# define lampeB0 i2c20:PortB0
# define i2c20pB0 i2c20:PortB0
# attr i2c20pB0 direction output
attr i2c20pB0 room ops
attr i2c20pB0 devStateIcon on:on:off off:off:on
attr i2c20pB0 alias Lampe B0
# attr lampeB0 alias Lampe B0
attr i2c20pB0 setList on off
attr i2c20pB0 setFn {($CMD eq "on")?"PortB0 off":"PortB0 on"}