Autor Thema: readingsProxy: Reading zu gewähltem setter  (Gelesen 528 mal)

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 3654
  • ... wer sät, der erntet ...
readingsProxy: Reading zu gewähltem setter
« am: 24 September 2021, 17:02:52 »
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
« Letzte Änderung: 24 September 2021, 17:56:10 von TomLee »

Online frober

  • Sr. Member
  • ****
  • Beiträge: 905
  • Was man nicht kann, kann man lernen...
Antw:readingsProxy: Reading zu gewähltem setter
« Antwort #1 am: 24 September 2021, 20:00:00 »
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 Stretch und relativ aktuellem Fhem,  FS20, LGW, PCA301, MySensors mit RS485(CAN-Receiver), etc.,
einiges umgesetzt, vieles in Planung :-)

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

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 3654
  • ... wer sät, der erntet ...
Antw:readingsProxy: Reading zu gewähltem setter
« Antwort #2 am: 24 September 2021, 20:17:46 »
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.

Online frober

  • Sr. Member
  • ****
  • Beiträge: 905
  • Was man nicht kann, kann man lernen...
Antw:readingsProxy: Reading zu gewähltem setter
« Antwort #3 am: 24 September 2021, 21:09:32 »
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)
« Letzte Änderung: 24 September 2021, 21:30:10 von frober »
Raspi 3b mit Raspbian Stretch und relativ aktuellem Fhem,  FS20, LGW, PCA301, MySensors mit RS485(CAN-Receiver), etc.,
einiges umgesetzt, vieles in Planung :-)

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

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 3654
  • ... wer sät, der erntet ...
Antw:readingsProxy: Reading zu gewähltem setter
« Antwort #4 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)

Online frober

  • Sr. Member
  • ****
  • Beiträge: 905
  • Was man nicht kann, kann man lernen...
Antw:readingsProxy: Reading zu gewähltem setter
« Antwort #5 am: 24 September 2021, 21:37: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 Stretch und relativ aktuellem Fhem,  FS20, LGW, PCA301, MySensors mit RS485(CAN-Receiver), etc.,
einiges umgesetzt, vieles in Planung :-)

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

Online frober

  • Sr. Member
  • ****
  • Beiträge: 905
  • Was man nicht kann, kann man lernen...
Antw:readingsProxy: Reading zu gewähltem setter
« Antwort #6 am: 24 September 2021, 22:55:44 »
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 Stretch und relativ aktuellem Fhem,  FS20, LGW, PCA301, MySensors mit RS485(CAN-Receiver), etc.,
einiges umgesetzt, vieles in Planung :-)

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

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 3654
  • ... wer sät, der erntet ...
Antw:readingsProxy: Reading zu gewähltem setter
« Antwort #7 am: 26 September 2021, 08:59:09 »
Zitat
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  :-[

Hier steht die MQTT2_DEVICE-Variante.

 

decade-submarginal