FHEM Forum

FHEM => Frontends => readingsGroup / readingsHistory => Thema gestartet von: ZeitlerW am 30 November 2017, 11:50:03

Titel: Readingsgroup - Link zum Raum des Devices
Beitrag von: ZeitlerW am 30 November 2017, 11:50:03
Hallo zusammen,

ich habe mehrere Temperatursensoren in einer Readingsgroup.

Ich möchte nun an jeder Zeile einen Link einführen, der per Click den Raum öffnet, in dem das Device angelegt ist. Also etwa so:
Temperatursensoren readingsGroup <%control_building_empty>, <%temp_temperature>, <%batterie> Sensor_70B3D580.*:Temperatur,BatteryLevel,<http://fhem.local/fhem?room=%ROOM>

Kann mir jemand bei der Erstellung des Links helfen?

Vielen Dank
Wolfgang

Titel: Antw:Readingsgroup - Link zum Raum des Devices
Beitrag von: ZeitlerW am 04 Dezember 2017, 13:45:26
Hallo zusammen,

das funktioniert mit einem festen Ziel und zwar über:
define temperatures readingsGroup Aussentemperatur:temperature,humidity,<%time_graph>
attr temperatures valuePrefix {'temperatures.time_graph' => '<a href="fhem?room=Aussentemperatur">'}



@Justme1968

Ich würde den Zielraum gerne dynamsch steuern wollen (Da meine Sensoren in verschiedenen Räumen sind). Leider funktionier folgender Aufruf nicht:
define temperatures readingsGroup Aussentemperatur:temperature,humidity,<%time_graph>
attr temperatures valuePrefix {'temperatures.time_graph' => '<a href="fhem?room=$ROOM">'}



Weiterhin würde ich das auch über den ALIAS - steuern wollen: also
attr temperatures valuePrefix {'temperatures.time_graph' => '<a href="fhem?room=$ALIAS">'}

Hast Du eine Idee?

lG
Wolfgang
Titel: Antw:Readingsgroup - Link zum Raum des Devices
Beitrag von: justme1968 am 04 Dezember 2017, 14:06:39
variablen in einfachen anführungszeichen werden von perl nicht interpoliert. d.h. du musst entweder doppelte anführungszeichen verwenden oder eine perl routine aufrufen die dann den passenden string zurück liefert.

gruss
  andre
Titel: Antw:Readingsgroup - Link zum Raum des Devices
Beitrag von: ZeitlerW am 04 Dezember 2017, 14:18:35
Hallo Andre,

ich gebe zu, daß ich ein ziemlicher Anfänger im Thema bin. Ich habe nun eine sub in 99_myUtils:

attr temperatures valuePrefix {(sendroom($ROOM)}

Dann kommt allerdings

Global symbol "$ROOM" requires explicit package name at (eval 1857) line 1.

Fragen über Fragen

lG
Wolfgang
Titel: Antw:Readingsgroup - Link zum Raum des Devices
Beitrag von: ZeitlerW am 04 Dezember 2017, 14:52:01
Hallo Andre,

---- Nachtrag ---

wenn ich folgendes mache:
attr temperatures valuePrefix {'temperatures.time_graph' => '<a href="fhem?room=$VALUE">'}

dann wird auch das 'richtige' html ausgegeben und der link lautet:    ipoffhem/room=22.5 (da $VALUE 22.5)

kann es sein, daß bei valuePrefix nur $VALUE und nicht $ROOM, $ALIAS, etc. definiert sind?

lG
Wolfgang
Titel: Antw:Readingsgroup - Link zum Raum des Devices
Beitrag von: justme1968 am 04 Dezember 2017, 14:57:34
ja. sorry. das stimmt. valuePrefix kann nur $DEVICE, $READING, $VALUE und $NUM. alles andere musst du dir selber besorgen. room über AttrVal auf perl ebene.

gruss
  andre
Titel: Antw:Readingsgroup - Link zum Raum des Devices
Beitrag von: ZeitlerW am 04 Dezember 2017, 15:23:19
Hallo zusammen,

ja das war die Lösung:

In der ReadingsGroup
attr temperatures valuePrefix {(sendroom($DEVICE)}

In der 99_myUtils.pm
sub sendroom($) {
my ($device) =@_;
my $htmlcode ="<a href=\"fhem?room=".AttrVal($device,"room","")."\">";
return $htmlcode;

}


Vielen Dank!
lG
Wolfgang
Titel: Antw:Readingsgroup - Link zum Raum des Devices
Beitrag von: uli2 am 07 Dezember 2017, 17:42:06
Hallo Wolfgang,

danke für den Tipp dass es hier einen neuen Thread gibt
mich wundert allerdings dass du schreibst, dass der folgende Code funktioniert

define temperatures readingsGroup Aussentemperatur:temperature,humidity,<%time_graph>
attr temperatures valuePrefix {'temperatures.time_graph' => '<a href="fhem?room=Aussentemperatur">'}


bei mir funktioniert das eben gerade nicht, siehe https://forum.fhem.de/index.php/topic,38391.msg721872.html#msg721872 (https://forum.fhem.de/index.php/topic,38391.msg721872.html#msg721872)
mein Ziel war eigentlich dass der Link auf den Raum beim Klick auf das Chart Icon aufgerufen wird, das tut aber irgendwie gar nicht.

das einzige was bei mir funktioniert ist

define temperatures readingsGroup Aussentemperatur:temperature,humidity,<%time_graph>
attr temperatures valuePrefix {'temperature' => '<a href="fhem?room=Aussentemperatur">'}


dann muss man allerdings auf den Temperaturwert klicken um in den neuen Raum zu kommen, nicht auf das Chart Icon.

Gruss
Uli

Titel: Antw:Readingsgroup - Link zum Raum des Devices
Beitrag von: choetzu am 09 Januar 2020, 20:36:45
Zitat von: ZeitlerW am 04 Dezember 2017, 15:23:19
Hallo zusammen,

ja das war die Lösung:

In der ReadingsGroup
attr temperatures valuePrefix {(sendroom($DEVICE)}

In der 99_myUtils.pm
sub sendroom($) {
my ($device) =@_;
my $htmlcode ="<a href=\"fhem?room=".AttrVal($device,"room","")."\">";
return $htmlcode;

}


Vielen Dank!
lG
Wolfgang

Guten Abend, das ist super hilfreich!! Danke!!
Wenn das Device aber 2 Räume hat, gehts nicht!
Kann man das irgendwie fixen dass bei mehreren Räumen der erste genommen wird?
Wär das Pünktchen auf dem i ;)
Danke, c