Wie weblink mit userattr dynamisch definieren?

Begonnen von LuckyLuis, 29 September 2015, 18:58:38

Vorheriges Thema - Nächstes Thema

LuckyLuis

Hallo,

ich bastel derzeit mit Highcharts, dbLog und weblink.
Derzeit ist es möglich einen Weblink mit Parametern (z.B. http://fhempi/fhemcharts/index.php?dateFrom=2015-09-26&device=FluksoStrom&reading1=Power_average&reading1Unit=Watt&title=Stromverbrauch) ein Chart in FHEM einzubinden. Um dies etwas benutzerfreundlicher zu machen, würde ich gerne die Parameter in der URL über userattr in der Weblink-Definition festlegen. Allerdings habe ich keine Doku/Hinweis gefunden, wie dies evtl. mit dem Modul Weblink umzusetzen wäre.

Jemand eine Idee?

Danke und Gruß

LuckyLuis

PS: Kann die beiden Skripte für einen Webserver gerne bei Bedarf bereitstellen. Warnung: Meine ersten Schritte mit PHP und Javascript ;-)

rudolfkoenig

ZitatAllerdings habe ich keine Doku/Hinweis gefunden, wie dies evtl. mit dem Modul Weblink umzusetzen wäre.

Kein Wunder, das geht naemlich auch nicht direkt, der Link wird in der Definition des weblinks angegeben, und wird vor Verwendung nicht ausgewertet, kann nur mit modify/moddef veraendert werden. Das Probem kann man aber mit einem notify loesen, der auf Attributs-Aenderungen des weblinks hoert, und daraufhin ein modify durchfuehrt.

LuckyLuis

Hallo,

Danke für den Wink ;-) Habe es über ein Sub wie folgt gelöst (falls mal jemand etwas ähnliches machen will):

sub
CreateFHEMChartsLink($)
{
  my ($plotdevice) = @_;
  my $url = AttrVal("$plotdevice","url","");
  my $device = AttrVal("$plotdevice","device","");
  my $title = AttrVal("$plotdevice","title","");
  my $factor = AttrVal("$plotdevice","factor","");
  my $reading1 = AttrVal("$plotdevice","reading1","");
  my $reading1Unit = AttrVal("$plotdevice","reading1Unit","");
  my $ret = $url."?reading1=".$reading1."&reading1Unit=".$reading1Unit."&device=".$device."&title=".$title."&factor=".$factor;
  fhem("defmod $plotdevice weblink iframe $ret");
}

Das wird jetzt noch per notify aufgerufen und fertig.

Viele Grüße

LuckyLuis