Weblinks im Status einbinden

Begonnen von hopgeq, 25 Oktober 2017, 00:28:08

Vorheriges Thema - Nächstes Thema

hopgeq

Hallo,
ich würde gerne ein Device mit einem Link auf seine Admin-Seite assoziieren.
Also z.B. hab ich ein PRESENCE Device, sagen wir zu einer Webcam. Wie kann ich den Link auf die Admin-Seite der Webcam in die Anzeige ihres Presence-Devices einbauen?
Weblink ist mir bekannt, aber solche Links kann ich bisher nur Räumen zuordnen, keinen Devices.


Ellert

So ähnlich
attr <PRESENCE-Name> stateFormat {"<html><a target='_blank' href='".ReadingsVal('rss_tagesschau100','Link','none')."'>Tagesschau in 100s</a></html>"}

hopgeq

#2
Danke für deine Hilfe. Ich habe es jetzt über readingsGroup realisiert. Damit kann ich Präsenz-Info und Administrationslink voneinander trennen. So sieht meine Lösung aus:


define rg_presence readingsGroup TYPE=PRESENCE:+ADDRESS,presence:sec,state
attr rg_presence alias Administration und Präsenz
attr rg_presence valueFormat { ADDRESS => '<a href="http://$VALUE">$VALUE</a>',   presence => see_sec($VALUE) }
attr rg_presence valueIcon { state => '%devStateIcon' }


Und in 99_myUtils.pm definiere ich noch see_sec($). Damit wird die Zeitangabe vereinfacht.


##################################################################
# Relative, lesbare Zeitangabe
#
#   {     see_sec(10)}  >>  "10 sek"
#   {    see_sec(100)}  >>  "1 min"
#   {   see_sec(1000)}  >>  "16 min"
#   {  see_sec(10000)}  >>  "2 std"
#   {see_sec(1000000)}  >>  "11 Tage"

sub see_sec($){

  my ($xxx) = @_;
  my $orig = $xxx;

  my $ss  = $xxx % 60;
  $xxx /=60;
  my $mm  = $xxx % 60;
  $xxx /=60;
  my $hh  = $xxx % 24;
  $xxx /=24; 
  my $dd  = $xxx; 
 
  if ($orig < 60) {
    return sprintf("%d sek", $ss);
  }
  if ($orig < 60 * 60) {
    return sprintf("%d min", $mm);
  } 
  if ($orig < 60 * 60 * 24) {
    return sprintf("%d std", $hh);
  }   
    return sprintf("%d Tage", $dd);
   
     
  #return sprintf("%02d:%02d:%02d",$hh,$mm,$ss);

}