Aktuellen Status in Set() mit einbeziehen

Begonnen von Loredo, 03 Oktober 2013, 15:29:24

Vorheriges Thema - Nächstes Thema

Loredo

Hi,

bei meinen beiden Modulen 70_ENIGMA2.pm und 70_ONKYO.pm kommt seitens der User der Wunsch auf, dass bei den Drop-Down Menüs und des Volume Sliders der tatsächlich aktuelle Wert vorausgewählt ist.
Ich habe aber keine Ahnung, wie ich das machen soll und ob das überhaupt in FHEM so vorgesehen ist.

Derzeit habe ich im Usage-Feedback den Volume Slider so definiert:
volume:slider,0,1,100

Ich nahm an, dass FHEM sich selbst darum bemüht den aktuellen Wert darin zu berücksichtigen. Wie machen das denn die Dimmer Module? Dort kann ich einfach im webCmd ein "pct" mit einfügen und habe dann in den Kommandos einen Slider, der auch den aktuellen Status wiedergibt. Wie erreiche ich das bei meinen Modulen (sowohl im webCmd als auch in der Detailübersicht)?


Gruß
Julian
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

rudolfkoenig

Im Raumansicht wird der Initialwert entweder von einem Reading mit dem gleichen Namen, oder vom Status geholt. Auf der Detailansicht wir es nie initialisiert, das ist inkonsistent, und sollte gefixed werden. Habs auf TODO genommen.

Waere das ueberhaupt eine Loesung fuer dich?

Loredo

hm also es klingt in der Tat so, als würden sie es an beiden Stellen funktionierend erwarten. Wobei ich webCmd am ehesten nachvollziehen kann.

Lustigerweise funktioniert es gerade, dass ich beim webCmd einfach nur "volume" hinzufüge und der Slider wird korrekt inkl. aktuellem Status angezeigt und bedienen lässt er sich auch korrekt.

Es bleibt dann wohl lediglich noch die Detailansicht. Dort eben wohl auch noch die Vorauswahl des (z.B.) aktuell gesetzten Input im Dropdown. Aber du sagtest ja schon, dass das wohl gefixt gehört :-)


Gruß
Julian
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Loredo

Dabei fällt mir jetzt noch etwas auf.

Ich habe auch für "mute" ein gleichnamiges Reading und einen Befehl "mute:on,off" definiert.
Füge ich ein "mute" zum webCmd hinzu, dann wird mir neben dem Wort "mute" sogar ein Dropdown in der Raumansicht angezeigt. Allerdings stimmt auch hier die Vorauswahl nicht. Ich kann nur das Dropdown öffnen und "off" auswählen. Mute lässt sich also ausschalten, aber nicht einschalten, weil die Vorauswahl bereits auf dem Wert steht.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

rudolfkoenig

Ich habe das Slider Problem in der Detail-Ansicht gefixed.

Das "mute" Problem kann ich nicht nachvollziehen. Wenn es dir wichtig ist, bitte hier ein Beispiel mit dummys erstellen, ich habe weder ENIGMA noch ONKYO. Ich wuerde es sowieso direkt mit zwei Kommandos (mute on:mute off) loesen.

Loredo

Zitat von: rudolfkoenig schrieb am So, 06 Oktober 2013 18:28Ich habe das Slider Problem in der Detail-Ansicht gefixed.

Super, ganz großen Dank !

Zitat von: rudolfkoenig schrieb am So, 06 Oktober 2013 18:28Das "mute" Problem kann ich nicht nachvollziehen. Wenn es dir wichtig ist, bitte hier ein Beispiel mit dummys erstellen, ich habe weder ENIGMA noch ONKYO. Ich wuerde es sowieso direkt mit zwei Kommandos (mute on:mute off) loesen.

Ich schaue mal, ob ich grad einen Dummy definiert bekomme.
Wichtig wärs mir schon, denn mute war nur ein einfaches Beispiel (nimmt weniger platz weg und sieht optisch besser aus als wenn ich "mute on   mute off" da stehen habe).
Ich möchte auch gerne die Eingänge direkt darüber ansprechen und die Liste wäre definitiv zu lang, um sie einzeln im webCmd aufzuführen :-)

Hier mal ein Beispiel wie es aussieht
(http://take.ms/GEiuAp)
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Loredo

#6
Hi Rudi,

anbei ein kleines Dummy-Modul (ein einfaches dummy Device reicht irgendwie nicht aus).
Du kannst dir dann mit "define test dummyDebug" ein entsprechendes Objekt erstellen, um die Input-Switcher nachzustellen.


Gruß
Julian
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

rudolfkoenig

Ich habe das beim Generieren der Seite in FHEMWEB aktiviert. Vermutlich funktioniert das beim externen update der Werte nicht. Wenn Du das auch haben moechtest, bitte mir sagen, wie das passende Event dazu ausschaut.

Loredo

Super, DANKE!


Für externe Updates dürfte es noch interessant werden, sobald ich im ENIGMA2 Modul die Senderlisten richtig mit einbeziehe und der Channel dann einen Senderwechsel per IR-Fernbedienung wiedergeben sollte...  ;)


Wie teile ich dir das richtige Event mit? Ich weiß nicht genau, was du brauchst.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Loredo

#9
Hallo Rudi,

ich würde gerne nochmals auf dieses Thema zurück kommen.

Nun, da ich in den Modulen RESIDENTS, ROOMMATE und GUEST sehr starken Gebrauch von der Möglichkeit, über webCmd die Auswahlfelder für das einfache Verschicken von Set-Kommandos darzustellen, benutze, sind mir einige Dinge aufgefallen.

       
  • das Auswahlfeld für "state" wechselt den Status nicht mit
  • Auswahlfelder, die nicht 'state' heißen, wechseln nur dann mit, wenn deren Eintrag bereits in der Liste enthalten ist. Wechsle ich den Inhalt der Liste dynamisch mit, bekommt die Weboberfläche den Wechsel nicht mit (Beispiel: Setzen des Readings "mood" in den genannten Modulen)
  • ganz problemlos wechselt devStateIcon mit, dort gibt es keinerlei Probleme
Ich denke, wenn man das Verhalten hier verbessert, ist der Nutzen ziemlich groß.
Ich finde die entsprechenden Stellen im Code nicht. Ich denke es ist einfacher für dich, weil du gleich weißt, wo du hinfassen musst, oder?
Falls es also kein großer Aufwand ist, wäre es klasse, wenn du das ändern könntest.

Um es nachzustellen, kannst du ganz einfach eine Gruppe und zwei Mitbewohner anlegen:

define rgr_Bewohner RESIDENTS
set rgr_Bewohner addRoommate Mitbewohner1
set rgr_Bewohner addRoommate Mitbewohner2


Wenn du dann die Icons für den Statuswechsel benutzt, kannst du gut nachvollziehen, was ich meine.



Gruß
Julian
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

rudolfkoenig

Zitatdas Auswahlfeld für "state" wechselt den Status nicht mit


Ist bekannt, und ich habe keine Idee wie ich es fixen soll, so dass wir kompatibel sind, und fuer state nicht 2 events generieren.
Kurz: "FS20dev state on" wird als "FS20dev on" versendet.

Zitatwechseln nur dann mit, wenn deren Eintrag bereits in der Liste enthalten ist
Stimmt nur fuer longpoll, weil dann die Liste nicht nochmal abgefragt wird. Man koennte unbekannte Elemente einfach zur Liste hinzufuegen, hoofentlich reicht dir das.

Zitatganz problemlos wechselt devStateIcon mit, dort gibt es keinerlei Probleme
Auch klar, weil das "perl-only" ist.

rudolfkoenig

@Julian: koenntest Du bitte pruefen, ob dein Problem noch besteht?

Loredo

SUPER ARBEIT! Klappt wie am Schnürchen. Hab nix mehr auszusetzen  :D
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER