Dummy auf smallscreen: Wie anderes als on/off bedienen?

Begonnen von Uli Zappe, 20 März 2013, 14:51:53

Vorheriges Thema - Nächstes Thema

Uli Zappe

Hallo an alle,

vermutlich ist das eine blöde Frage und ich stehe einfach nur auf der Leitung, aber:

Wie bediene ich in einem Dummy-Objekt in "smallscreen"-Ansicht irgendwelche Befehle außer on und off?

Das Problem: Wenn ich einem Dummy-Objekt setList on off zuweise (und webCmd entsprechend), dann erscheinen in den "normalgroßen" Web-Oberflächen ein Lampensymbol und rechts daneben die Befehle on und off als explizite Links, auf die ich zur Bedienung klicken kann. In der "smallscreen"-Oberfläche erscheint nur das Lampensymbol, aber ich kann auf das Lampensymbol klicken und damit zwischen on und off umschalten.

Sobald ich dem Dummy-Objekt aber nun andere Befehle als on und off zuweise, funktioniert das nicht mehr. Auf den "normalgroßen" Web-Oberflächen kann ich dann immer noch die entsprechenden expliziten Links zur Bedienung benutzen, aber nicht auf der "smallscreen"-Oberfläche. Da sehe ich dann nur den letzten eingestellten Wert statt dem Lampen-Icon, kann aber nicht zur Bedienung darauf klicken.

Zwei konkrete Beispiele:

setList state:Film,CD,Radio
webCmd state


und

setList Pause
webCmd Pause


Was kann ich da tun, um das auch auf der "smallscreen"-Oberfläche bedienbar zu machen?

Danke für Eure Hilfe!

Uli


Uli Zappe

Damit habe ich schon herumprobiert, aber ohne brauchbares Ergebnis.

So, wie ich die verlinkte Dokumentation verstehe, müsste ich in meinen Beispielen schreiben:

attr Quelle devStateIcon Film:Film:state CD:CD:state Radio:Radio:state

und

attr Pause devStateIcon Pause:Pause:Pause

und das funktioniert jedenfalls überhaupt nicht ...

rudolfkoenig

Ich sehe gerade, dass smallscreen z.Zt nur mit longpoll richtig funktioniert.

Uli Zappe

Das habe ich aber eigentlich aktiviert:

attr WEBphone longpoll 1

Müssten denn meine genannten Einträge eigentlich funktionieren? (D.h., sind sie eigentlich richtig?)

Uli Zappe

Also ich habe jetzt noch ein bisschen experimentiert mit meinem ersten Beispiel (dem komplexeren/interessanteren), und da gehen mindestens 3 Dinge nicht:

1. Wenn keine Icons wie angegeben existieren, werden sie nicht wie in der Dokumentation durch Text ersetzt, sondern der Platz bleibt leer. Ich habe daher zu Testzwecken jetzt folgenden Eintrag gemacht:
Film:StandBy.png:state CD:Restart.png:state Radio:Shutdown.png:state
Dann erscheinen ,,prinzipiell" die der Auswahl zugeordneten Icons.

2. Es gibt merkwürdige Abhängigkeiten, wenn mehrere Webbrowserfenster mit dem Server (mit longpoll) verbunden sind. Wenn ich in normalgroßer Darstellung das Popup von einem Wert auf einen andern verstelle und dann set klicke, erscheint das korrekte Icon in diesem Fenster, verschwindet aber manchmal sofort wieder und der Platz bleibt ab da leer. In den anderen Fenstern wird das Icon korrekt aktualisiert und die Fenster laden wegen longpoll kontinuierlich weiter. Erst wenn ich dieses Laden im Webbrowser abbreche, erscheint das Icon auch im ursprünglichen Fenster dauerhaft.

3. Wenn ich auf das Icon klicke, passiert jetzt zwar etwas, es erscheint aber nicht etwa das Popup zur erneuten Auswahl, sondern das Icon wird durch den Text state ersetzt (der dann nicht mehr klickbar ist).

Der dritte Punkt ist natürlich der entscheidende Fehler, denn das bedeutet, dass ich in smallscreen nach wie vor diese Einstellung nicht verändern kann (also in meinem Beispiel zwischen Film, CD und Radio umschalten).

rudolfkoenig

1. Kann ich nicht nachvollzeiehen. Wenn ich
attr FS20dev devStateIcon on:IstAn off:IstAus
definiere, dann sehe ich "on", beim draufklicken "off", danach "on", usw. Works as designed.
2. Das mag sein, ist aber mAn ein Browser-Bug. Mit unterschiedlichen Browsern vom gleichen Rechner tut es. Ein Patch wuerde ich aber gerne anschauen :)
3. Das oben angegebene Beispiel:
attr Quelle devStateIcon Film:Film:state CD:CD:state Radio:Radio:state
ist mAn falsch bzw. macht nicht was Du vmtl. erwartest, da es fuer alle Zustaende das Befehl "set Quelle state" bestellt. Vmtl. waere sowas wie
attr Quelle devStateIcon Film:Film:CD CD:CD:Radio Radio:Radio:Film
zum Roundrobin eher geeignet.

Was mir aufgefallen ist: im smallscreen waren die ersten Zeilen von HOWTO/commandref unlesbar, das habe ich gefixed.

Uli Zappe

Zitat von: rudolfkoenig schrieb am So, 24 März 2013 20:231. Kann ich nicht nachvollzeiehen. Wenn ich
attr FS20dev devStateIcon on:IstAn off:IstAus
definiere, dann sehe ich "on", beim draufklicken "off", danach "on", usw. Works as designed.
Das ist offenbar ein Browser-Problem. In Firefox geht's bei mir auch. In Safari aber nicht; je nach Version sieht man da entweder gar nichts oder aber das Symbol für einen gebrochenen Bilder-Link. Das gilt für Safari auf Mac OS X genauso wie für Safari auf iOS.

Und da es auf iOS-Geräten nunmal nur Safari/WebKit, nicht aber Firefox gibt, wäre das schon sehr wichtig, dass es in Safari/WebKit auch funktioniert.

Zitat2. Das mag sein, ist aber mAn ein Browser-Bug. Mit unterschiedlichen Browsern vom gleichen Rechner tut es.
Da hast Du Recht. Mit demselben Browser(-Typ) von unterschiedlichen Rechnern aus oder aber an verschiedenen Ports geht es genauso; insofern ist das eher ein theoretisches Problem, das nur während des Konfigurierens von FHEM auftritt, wo man auch mal mehrere FHEM-Fenster für denselben Raum zugleich offen hat. Normalerweise ergäbe das ja wenig Sinn.

Zitat3. Das oben angegebene Beispiel:
attr Quelle devStateIcon Film:Film:state CD:CD:state Radio:Radio:state
ist mAn falsch bzw. macht nicht was Du vmtl. erwartest, da es fuer alle Zustaende das Befehl "set Quelle state" bestellt. Vmtl. waere sowas wie
attr Quelle devStateIcon Film:Film:CD CD:CD:Radio Radio:Radio:Film
zum Roundrobin eher geeignet.
Gut, das ist aber was anderes, weil es sich sukzessive durch die Möglichkeiten tastet und nicht erlaubt, direkt zu einer zu springen, wie eben beim Popup. Das kann manchmal recht unerwünschte Nebenwirkungen haben, etwa, wenn ich von CD zu Film springen will, dann aber nicht vermeiden kann, mir dazwischen kurz das Gequatsche eines Radio-Onkels anzuhören.

Was ich möchte, ist die Bedienung via Popup auch auf smallscreen (dass also ein Klick/Touch auf das Icon in smallscreen das Popup hochbringt und ein Klick/Touch auf einen Popup-Wert auch gleich die set-Funktion triggert), und wenn ich Deinen Vorschlag recht verstehe, geht das bislang schlicht nicht. Das wäre also ein Feature-Request. :-)

Uli Zappe

Zitat von: Uli Zappe schrieb am Mo, 25 März 2013 01:54Das ist offenbar ein Browser-Problem. In Firefox geht's bei mir auch. In Safari aber nicht; je nach Version sieht man da entweder gar nichts oder aber das Symbol für einen gebrochenen Bilder-Link.
Ich sehe gerade, dass es jedes Mal folgende Log-Einträge gibt, wenn ich in Safari auf den entsprechenden Button klicke:

Use of uninitialized value $iconPath in pattern match (m//) at /usr/share/fhem/FHEM/01_FHEMWEB.pm line 374.
Use of uninitialized value $ext in string eq at /usr/share/fhem/FHEM/01_FHEMWEB.pm line 339.
Use of uninitialized value $ext in concatenation (.) or string at /usr/share/fhem/FHEM/01_FHEMWEB.pm line 342.
2013.03.25 02:16:41 2: FHEMWEB WEBphone /usr/share/fhem/www/images/Pause.: No such file or directory


rudolfkoenig

> In Firefox geht's bei mir auch. In Safari aber nicht;

Habs gefixed.


> Use of uninitialized value $iconPath...

Sollte mit dem Fix auch verschwunden sein.

Uli Zappe

Zitat von: rudolfkoenig schrieb am Mo, 25 März 2013 09:44
ZitatIn Firefox geht's bei mir auch. In Safari aber nicht;
Habs gefixed.
Ja, jetzt geht's! :) Tausend Dank!

Zitat
ZitatUse of uninitialized value $iconPath...
Sollte mit dem Fix auch verschwunden sein.
Yep :)