Mmh, der Betreff ist schwierig ... und auch die Erklärung dazu.
Ich versuche den Befehl
get FileLog_Stromverbrauch_statistic - - 2016-01-01 2030-12-31 4:Xtender_AC_in.statEnergy_total__kWhMonthLast:
auf einen Dummy Button zu legen.
der og Befehl, wenn in die Befehlszeile eingegeben, generiert ein Popup mit dem Auszug von "Xtender_AC_in.statEnergy_total__kWhMonthLast" im genannten Log als Liste.
Diese Liste würde ich jetzt gerne auf einen Button legen. Hab einiges probiert, aber die Liste landet immer in meinem fhem-log. Wie überzeuge ich fhem davon, mir das in einem Popup darzustellen?
Kurz gesagt, wie forciere ich das Befehlszeileverhalten beim Klick auf einen Dummy?
Danke für Ideen und Grüße
H.
schau mal ob es so geht:
mit setList im dummy ein passendes set kommando erzeugen
mit cmdalias das set auf dein get umbiegen
das set mit webCmd (oder devStateIcon) verwenden
gruss
andre
Wird vmtl nicht klappen: www/pgm2/fhemweb.js Zeile 125-136 hat speziellen Code fuer die Get-Dropdown Befehle in der Detailansicht. Zeilen 159-176 pruefen auf get in der Eingabezeile. Alles andere duerfte als Fehlermeldung oben im schwarzen Rahmen fuer ein paar Sekunden erscheinen.
Fuer eine aehnliche Aufgabe habe ich hier (https://forum.fhem.de/index.php/topic,62603.msg540327.html#msg540327) eine leicht andere Lösung gezeigt, das koennte als Inspiration fuer eine Loesung dienen.
Danke euch beiden. Werde beides ausprobieren.
Merci
H.
@rudi: doch. das sollte gehen. wir hatten vor einiger zeit fhemweb so umgebaut das es kein redirekt mehr gibt wenn ein set oder get kommando etwas zurück liefert sondern das popup auf geht. das funktikoniert sogar wenn man das eingabefeld oben auf der seite verwendet.
edit: grad probiert. funktioniert wie erwartet.
Kannst du bitte dein Test anhaengen? Will staunen. :)
define alexa alexa
attr alexa webCmd getAsHTML
define xyz cmdalias set alexa getAsHTML AS {my $txt=fhem("get alexa interactionModel");; $txt =~ s/\n/<br>/g;; return $txt}
klicken und staunen :)
edit: da fällt mir auf: sollten wir nicht das ersetzen der \n noch automatisch machen?
... habs jetzt mal so probiert:
define StromverbrauchmonatlichDummy dummy
attr StromverbrauchmonatlichDummy webCmd getAsHTML
attr StromverbrauchmonatlichDummy room Xtender
attr StromverbrauchmonatlichDummy sortby 10
attr StromverbrauchmonatlichDummy group Xtender
define Stromverbrauchmonatlichcmdalias cmdalias set StromverbrauchmonatlichDummy getAsHTML AS {my $txt=fhem("get FileLog_Stromverbrauch_statistic - - 2016-01-01 2030-12-31 4:Xtender_AC_in.statEnergy_total__kWhMonthLast:");; $txt =~ s/\n/<br>/g;; return $txt}
attr Stromverbrauchmonatlichcmdalias room Xtender
attr Stromverbrauchmonatlichcmdalias sortby 11
attr Stromverbrauchmonatlichcmdalias group Xtender
funktioniert. Nice
Genau, vor dem edit wäre meine Frage gewesen, was das " $txt =~ s/\n/<br>/g;; return $txt" macht. Ersetzung, verstehe.
Bekommt man die drei Fragezeichen beim Dummy noch irgendwie weg?
stateFomat auf setzen.
mmh, mit
define StromverbrauchmonatlichDummy dummy
attr StromverbrauchmonatlichDummy webCmd getAsHTML
attr StromverbrauchmonatlichDummy room Xtender
attr StromverbrauchmonatlichDummy sortby 15
attr StromverbrauchmonatlichDummy group Xtender
attr StromverbrauchmonatlichDummy stateFormat
wird sowohl mein sortby als auch mein stateFormat ignoriert. Steh ich jetzt gerade komplett auf dem Schlauch?
Zitatklicken und staunen
Gemacht, getan. Habs im Code nachgeschaut, ist wohl FW_replaceLink bzw. Forum Issue #38875 dafuer verantwortlich.
Zitatedit: da fällt mir auf: sollten wir nicht das ersetzen der \n noch automatisch machen?
Wieso nicht, mir waere fuer sowas aber <pre> lieber.
@holle75: stateFormat ist eh nicht korrekt weil dein dummy keine readings aktualisiert. du kannst einfach ein mal ein setreading alexa state ;
eingeben.
@rudi: ja. genau das ist die stelle die fürs set zuständig ist.
der diff wäre der hier:Index: fhemweb.js
===================================================================
--- fhemweb.js (revision 12852)
+++ fhemweb.js (working copy)
@@ -509,7 +509,7 @@
if(!txt)
return;
if(ma[2].match(/=set/)) // Forum #38875
- FW_okDialog(txt, el);
+ FW_okDialog('<pre>'+txt+'<pre>', el);
else
FW_errmsg(txt, 5000);
});
damit wäre die stelle identisch zu den meisten anderen. für get gibt es noch eine sonderbehandlung für <html>...</html> die ist im set bis jetzt nicht vorgesehen.
Habs eingecheckt. Dein Beispiel von frueher funktioniert jetzt mit
Zitatdefine xyz cmdalias set alexa getAsHTML AS get alexa interactionModel
Hm, seit diesem Update wird mir am Handy (Opera-Browser) oft
das SVG-Icon als Klartext angezeigt.
Ob es definitivi mit diesem Update zu tun hat, konnte ich nicht prüfen, aber zeitlich tritt es genau seit diesem Tag auf.