readingsProxy: Reading zu gewähltem setter

Begonnen von TomLee, 24 September 2021, 17:02:52

Vorheriges Thema - Nächstes Thema

TomLee

Hallo,

bestimmt hab ich irgendwas nur nicht richtig verstanden, ist es möglich, wie beim dummy mit readingList, beim rP auch ein dem setter entsprechendes Reading mit Wert zu erhalten, hier brightness.

Ich hätt gerne das das Device in Alexa als Lampe erkannt wird, so das ich mir für die einzelnen Prozentschritte Routinen erstellen kann.

defmod rp_v1_eg readingsProxy MQTT2_v1_eg:valetudo_state_name
attr rp_v1_eg alexaName rp_v1_eg
attr rp_v1_eg event-on-change-reading state
attr rp_v1_eg genericDeviceType light
attr rp_v1_eg room EG,Sprachsteuerung
attr rp_v1_eg setFn {\
my $c = 'zone';;\
my %pct2cmnd = (\
'1' => "$c San Fernando",\
'2' => "$c Kueche",\
'3' => "$c Flur",\
'4' => "$c Hinten",\
'5' => "$c Alles");;\
my $command = $pct2cmnd{$ARGS};; \
return if !$command;;\
return $command;;\
}
attr rp_v1_eg setList brightness:slider,0,1,10,1

setstate rp_v1_eg Charging
setstate rp_v1_eg 2021-09-24 16:51:52 lastCmd brightness
setstate rp_v1_eg 2021-09-24 16:53:39 state Charging


Gruß

Thomas

frober

Mit den Readings wirst du Pech haben, da rP keine Events erzeugt.

Bzgl Slider, da wollte ich auch schon schreiben, da ich nicht weiß, wie ich den Wert übergeben kann. $CMD enthält nur den Setbefehl ohne Wert

Grüße Bernd
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

TomLee

Zitat... $CMD enthält nur den Setbefehl ohne Wert

Der Wert ist doch $ARGS ? Sonst würd mein setter / setFN ja nicht klappen.

Ich bin nach dem schreiben zu dem Gedanken übergegangen es direkt im MQTT2-Device umzusetzen, ist mir erst nach dem schreiben aufgefallen das es auch damit umsetzbar wäre  :-[

Muss mich aber noch mit beschäftigen, erst muß was in den Bauch.

Trotzdem fänd ich es toll wenn es in rP umsetzbar wäre, für andere Fälle in denen es nicht direkt im Device zu definieren geht.

frober

#3
Zitat von: TomLee am 24 September 2021, 20:17:46
Der Wert ist doch $ARGS ? Sonst würd mein setter / setFN ja nicht klappen..

Alle Bsp  die ich auf die schnelle gefunden habe benutzen $CMD

Comref
attr myProxy setFn {($CMD eq "on")?"off":"on"}


$ARGS wird zwar erwähnt, finde aber keine Erklärung dazu. Weißt du da mehr?

Nachtrag:
Soweit ich das nun verstanden habe, ist
$CMD = Setbefehl (on-for-timer)
$ARGS = Parameter (10)
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

TomLee

Nö, ich hab das vorhin einfach nur ausprobiert, weil ich aus der Commandref auf_die_Schnelle nicht schlau wurde und keine Lust hatte $ARGS irgendwie zu "debuggen" .   8)

frober

Zitat von: TomLee am 24 September 2021, 21:32:29
Nö, ich hab das vorhin einfach nur ausprobiert, weil ich aus der Commandref auf_die_Schnelle nicht schlau wurde und keine Lust hatte $ARGS irgendwie zu "debuggen" .   8)

OK, falls es dich trotzdem Interessiert, ein Bsp. für Alexa
https://forum.fhem.de/index.php?topic=107083.0


Habe ich zufällig auf der Suche nach $ARGS gefunden.
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

frober

Zitat von: frober am 24 September 2021, 21:09:32
Nachtrag:
Soweit ich das nun verstanden habe, ist
$CMD = Setbefehl (on-for-timer)
$ARGS = Parameter (10)

Es ist, wie ich es vermutet habe, folgende Def. funktioniert:
defmod Beregnung_vorne readingsProxy MYSENSOR_2:status
attr Beregnung_vorne comment MySensor_2 (Brunnenschacht) Relais 1
attr Beregnung_vorne group Bewaesserung
attr Beregnung_vorne room Garten
attr Beregnung_vorne setFn {($CMD eq "percentage")?"$CMD $ARGS":($CMD eq "on")?"status on":"status off"}
attr Beregnung_vorne setList on off percentage:slider,0,1,100
attr Beregnung_vorne sortby 2
attr Beregnung_vorne valueFn {($VALUE eq "on")?"on":"off"}
attr Beregnung_vorne webCmd on:off:percentage


Von percentage bekomme ich zwar keine Rückmeldung, ist in meinem Fall aber egal, da es nach auto. off wieder auf 0 gesetzt wird.
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

TomLee

ZitatIch bin nach dem schreiben zu dem Gedanken übergegangen es direkt im MQTT2-Device umzusetzen, ist mir erst nach dem schreiben aufgefallen das es auch damit umsetzbar wäre  :-[

Hier steht die MQTT2_DEVICE-Variante.