Moin Moin,
(ich hoffe, der Titel ist halbwegs sinnvoll)
Ich habe eine 1-Wire 8-fach Relaiskarte names EG.Heizung.8Relais:
Internals:
DEF 29.3D5516000000
IODev RPi1Wire
LAST_READ_FAILED 0
NAME EG.Heizung.8Relais
NOTIFYDEV global
NR 913
NTFY_ORDER 50b-EG.Heizung.8Relais
STATE ???
TYPE OWDevice
Readings:
2016-11-28 11:51:14 PIO.0 off
2016-10-16 16:38:59 PIO.1 off
2016-12-13 15:25:29 PIO.3 on
2016-12-12 04:09:06 PIO.4 on
2016-10-16 16:34:16 PIO.5 off
2016-12-13 15:31:48 PIO.6 0
2016-12-13 15:31:48 PIO.7 0
2016-01-17 12:07:07 PIO.ALL 0
2016-01-17 12:31:56 latch.0 ON
Fhem:
address 29.3D5516000000
alerting 1
bus bus.1
interfaces state
getters:
PIO.0
PIO.1
PIO.2
PIO.3
PIO.4
PIO.5
PIO.6
PIO.7
PIO.ALL
PIO.BYTE
address
crc8
family
id
latch.0
latch.1
latch.2
latch.3
latch.4
latch.5
latch.6
latch.7
latch.ALL
latch.BYTE
locator
por
power
r_address
r_id
r_locator
sensed.0
sensed.1
sensed.2
sensed.3
sensed.4
sensed.5
sensed.6
sensed.7
sensed.ALL
set_alarm
strobe
type
polls:
sensed.0
sensed.1
sensed.2
sensed.3
sensed.4
sensed.5
sensed.6
sensed.7
setters:
LCD_H/clear
LCD_H/home
LCD_H/message
LCD_H/onoff
LCD_H/screen
LCD_H/screenyc
LCD_M/clear
LCD_M/home
LCD_M/message
LCD_M/onoff
LCD_M/screen
LCD_M/screenyc
PIO.0
PIO.1
PIO.2
PIO.3
PIO.4
PIO.5
PIO.6
PIO.7
PIO.ALL
PIO.BYTE
latch.0
latch.1
latch.2
latch.3
latch.4
latch.5
latch.6
latch.7
latch.ALL
latch.BYTE
por
set_alarm
strobe
state:
sensed.0
sensed.1
sensed.2
sensed.3
sensed.4
sensed.5
sensed.6
sensed.7
Attributes:
IODev RPi1Wire
event-min-interval PIO.3:180
model DS2408
room EG.HWR,OWDevice
bei dem ich mittels set EG.Heizung.8Relais <Reading> <on|off>, also z.B. set EG.Heizung.8Relais PIO.4 on ein einzelnes Relais an- oder ausschalten kann.
Es handelt sich also um einen set-Befehl mit 2 Argumenten (Reading und Status).
Gibt es einen Weg, dieses nur mit einem Argument anzusteuern (also z.B. set EG.Heizung.8Relais:PIO.3 on (was leider nicht geht)?
Das würde mir den Umweg mit einem Dummy und einem DOIF ersparen, wobei der dummy von anderen Modulen geschaltet wird und das DOIF dann das Relais ansteuert...
Danke, -MN
Schau dir mal readingsProxy an. Insbesondere das Attribut setFn.
Perfekt. Danke für den Hinweis. Jetzt nur noch lesen und austesten...
Ciao, -MN
Zitat von: marvin78 am 13 Dezember 2016, 15:38:29
Schau dir mal readingsProxy an. Insbesondere das Attribut setFn.
Ich verstehe die Doku nicht 100%. Aus dem Wiki, Abschnitt https://wiki.fhem.de/wiki/ReadingsProxy#1-Wire_8-fach_switch_.28DS2408.29_mit_OWSWITCH_als_Output_.28erster_Kanal.29
define SchalterA readingsProxy OWX:xxx
attr SchalterA setFn {($CMD eq "on")?"output A off":"output A on"}
attr SchalterA setList on off
attr SchalterA valueFn {($VALUE == 0)?"off":"on"}
attr SchalterA webCmd on:off
Sollte es nicht heissen
attr SchalterA setFn {($CMD eq "on")?"output A
on":"output A
off"} ?
Der ?-Operator springt in das erste Kommando, wenn die Bedingung wahr ist, oder?
Danke, -MN
Es kommt immer darauf an, was man erreichen will. Ggf. ist hier ja etwas gedreht. Manchmal muss man on auf off mappen und umgekehrt.