SOLVED: FHEMWEB: Statt Dropdown Buttons / Schaltflächen?

Begonnen von Grinsekatze, 23 April 2017, 16:45:19

Vorheriges Thema - Nächstes Thema

Grinsekatze

Hallo ins Rund,

ich stehe gerade vor einem kosmetischen Problem im FHEMWEB: Ich möchte ein Dropdown (on | off) ändern in zwei Schaltflächen (on | off). Ist das möglich, und wenn ja, wie?

Der Dummy ist zzt. so konfiguriert:
define FernseherWohnzimmer_remote dummy
attr FernseherWohnzimmer_remote alias Fernseher
attr FernseherWohnzimmer_remote comment Dummy um den Wohnzimmer-Fernseher fernzusteuern
attr FernseherWohnzimmer_remote devStateIcon on:ios-on-green off:ios-off
attr FernseherWohnzimmer_remote event-on-change-reading .*
attr FernseherWohnzimmer_remote group Multimedia
attr FernseherWohnzimmer_remote icon it_television
attr FernseherWohnzimmer_remote room Wohnzimmer
attr FernseherWohnzimmer_remote setList energy_saving:auto,max,off input:digitalTV,hdmi1,hdmi2,hdmi3,video1,video2 power:on,off screen_mute:on,off statusRequest volume:00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 volumeMute:on,off volume_step:down,up
attr FernseherWohnzimmer_remote userReadings FernseherWohnzimmer:CommandAccepted.*, FernseherWohnzimmer:aspectRatio.*, FernseherWohnzimmer:input.*, FernseherWohnzimmer:power.*, FernseherWohnzimmer:presence.*, FernseherWohnzimmer:screenMute.*, FernseherWohnzimmer:videoOutMute.*, FernseherWohnzimmer:volume.*, FernseherWohnzimmer:volumeMute.*
attr FernseherWohnzimmer_remote webCmd power


Zur kurzen Erklärung: Es handelt sich hierbei um einen Dummy, der per RFHEM das Device FernseherWohnzimmer (mit den selben Sets) an einer zweiten FHEM-Instanz schaltet.

An den angehängten Bildern sieht man gut, wie es zzt. aussieht und wie ich es gerne haben möchte.


justme1968

was genau soll denn passieren?

soll state auf on und off gesetzt werden oder auf power on und power off? oder soll das reading power gesetzt werden? gibt es einen grund das du readingList nicht verwendest?

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Grinsekatze

Es soll power on | off gesetzt werden. Mit readingList habe ich experimentiert, jedoch die Funktion noch nicht richtig verstanden - vermutlich auch, weil ich keine sichtbaren Änderungen bemerkt habe. Ich hatte es mal statt setList benutzt und mal nur attrib FernseherWohnzimmer_remote readingList power definiert. Doch bemerkte ich keine Änderungen - lediglich bei fehlendem setList gab es im FHEMWEB in der Detail-Ansicht keine Set-Auswahl mehr. Die commandref gibt da auch wenig her (waren glaub ich nur 2 Sätze auf englisch).

Der Dummy bildet das Modul LG_RS232 nach. Dort schalte ich den TV entweder über on | off oder power on | power off an bzw. aus. Am TV selbst wird on | off geschaltet. Die Fernbedienung hingegen nutzt power on | power off. Ich habe ich daher ebenfalls für power entschieden.

Grinsekatze

Hat keiner einen Tip, wie ich es hinbekomme, dass ich im WEBIF zwei Schaltflächen beim Dummy habe um power on und power off zu schalten?

KernSani

Habe gerade ein bisschen experimentiert... sicher nicht die eleganteste Lösung, aber so könntest du annähernd erreichen was du möchtest

defmod test dummy
attr test setList power:on,off
attr test userReadings power {if (ReadingsVal($name,"state",undef) =~/power/) {my @val = split / /,ReadingsVal($name,"state",undef);; return $val[1]}}
attr test webCmd power on:power off
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Grinsekatze

Danke für die Hilfe!

Mit deiner Version hat es leider nur so halb geklappt - ich hatte dann statt on und off im Web-If immer power on und power off stehen.

Jedoch habe ich durch Deinen Ansatz die offenbar richtige - zumindest hier funktionierende - Lösung gefunden:
attr FernseherWohnzimmer_remote eventMap /power on:on/power off:off/
attr FernseherWohnzimmer_remote devStateIcon on:ios-on-green off:ios-off
attr FernseherWohnzimmer_remote webCmd on:off


Zunächst mit eventMap das auslösende Event (hier "power on" und "power off") auf einen Ausdruck ohne Leerzeichen Mappen (hier "on" und "off", da ich es eh nicht verwende) - dabei auf die Event umschließenden Slashes achten!
Danach können die zuvor gemappten neuen Ausdrücke beliebig mit z.B. devStateIcon oder webCmd aufgerufen werden.

Pfriemler

Aus meiner Spielwiese:
Ich nutze uzsu mit einem Dummy:
Ersetze mal in Deiner Setlist
power:on,off
durch
power:uzsuSelectRadio,on,off
Das erzeugt bei mir dann zwei Buttons, die im Ergebnis "power on" bzw. "power off" an den Dummy übergeben.
So etwa?
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."