device overview anpassen

Begonnen von grooves, 16 August 2021, 16:14:33

Vorheriges Thema - Nächstes Thema

grooves

Hallo,

ich habe etliche ESP8266 Schalter und Lampen am Laufen,
mit eigener Firmware und kleine Webserver.
in FHEM habe ich dafür dummy devices erstellt,
um sich die IP merken zu können hab ich ein reading ip_addr gesetzt und
mit userreadings wird daraus ein klickebar Link, so dass ich direkt auf den Webserver des Devices lande.

1. Frage
Kann ich anstelle des device namen im device overview den link einblenden, evtl. könnt man das Attribut Alias irgendwie dafür nutzen

2. Frage
Kann ich hinter den Kommandos ON/OFF noch weitere Informationen mit ReadingsVal anzeigen lassen, z.B. rssi level usw.
mit StateFormat würde das bestimmt gehen, allerdings möchte ich die aktuelle Anzeige
name state ON OFF erhalten, eben nur dahinter noch was zusätzliches einblenden 

Für jede Hilfe dankbar,
Mike





rudolfkoenig

#1
#1: DeviceOverview ist die Zeile, was man auch in der Uebersicht sieht. Wenn man den Link da aendert, dann kommt man nicht mehr in die Detailansicht, ergo gibt es auch keinen einfachen Weg, diesen Link zu aendern.

#2: devStateIcon ist fuer Anpassung der Status (hier Gluehbirne) gedacht, mit webCmd kann man die Befehle (hier ON OFF) spezifizieren. Infos dahinter sind mW nicht moeglich. Fuer Sonderwuensche muss man die Perl-Variante von devStateIcon bemuehen.

Alternativ kann man die Seite mit der eigenen JavaScript-Programm nach belieben verunstalten anpassen.

Nachtrag: neuerdings kann man in den Attributen (z.Bsp. comment) beliebigen HTML-Code hinterlegen, wenn der Inhalt in <html>...</html> eingeschlossen ist. Beispiel:
attr dev comment <html><a href="#test">TEST</a></html>

grooves

Hallo Rudolf,

Besten Dank für die schnelle Antwort,
Ok, dann weiß ich Bescheid und muß mir was Anderes einfallen lassen,

Zu 1# hast du natürlich Recht daran hab ich gar nicht gedacht

Danke nochmals und Grüße,
Mike

Der_Tom

Zitat von: grooves am 16 August 2021, 17:32:21
Hallo Rudolf,

Besten Dank für die schnelle Antwort,
Ok, dann weiß ich Bescheid und muß mir was Anderes einfallen lassen,

Zu 1# hast du natürlich Recht daran hab ich gar nicht gedacht

Danke nochmals und Grüße,
Mike


ich habe das über eine zusätzliche Zeile gelöst, diese wird nach bedarf sowohl in der raumansicht , als auch der detailansicht angezeigt.
Integriert ist das ganze in meinem Modul ( welches den dummy ersetzen könnte ) und kann dort mit ein paar wenigen zeilen gelöst werden .

gruss Thomas

grooves

Hallo Tom,

Besten Dank für die Antwort,
Verstehe ich das richtig, du hast ein eigenes  Modul und dort die Funktion Device Overview angepasst,
Ist das Modul im Repository ? Evtl. kann ich mir was abschauen

Grüße,
Mike


Der_Tom

Zitat von: grooves am 16 August 2021, 20:41:04
Hallo Tom,

Besten Dank für die Antwort,
Verstehe ich das richtig, du hast ein eigenes  Modul und dort die Funktion Device Overview angepasst,
Ist das Modul im Repository ? Evtl. kann ich mir was abschauen

Grüße,
Mike

Das Modul ist nicht im Repository und muss manuell aus GIT installiert werden.

https://forum.fhem.de/index.php/topic,121817.0.html

Die Funktion Device Overview ist nicht angepasst, sondern es gibt eine relativ einfache Möglichkeit eine zusätzliche "Zeile" einzufügen.

gruss Thomas

TomLee

Nicht optimal, aber vlt. wäre eine vertikale Darstellung (nur mit stateFormat/devstateIcon, ohne Perl) eine Alternative ?

Die gewünschte Reihenfolge ist in etwa wie gewünscht erfüllt nur halt untereinander, ausrichten könnte man noch mit devStateStyle und webCmd hab ich einfach aus/weggelasssen man kann ja mit der Glühbirne schalten.

defmod du_Demo dummy
attr du_Demo devStateIcon ip_addr state online:10px-kreis-gruen@green offline:10px-kreis-rot@red rssi_level mac_addr
attr du_Demo readingList ip_addr rssi_level lwt_state mac_addr
attr du_Demo room Test
attr du_Demo setList on:noArg off:noArg ip_addr:textField rssi_level:textField lwt_state:online,offline mac_addr:textField
attr du_Demo stateFormat <a href="http://ip_addr" target="_blank">ip_addr</a>\
<br>\
state\
<br>\
lwt_state\
<br>\
rssi_level\
<br>mac_addr

setstate du_Demo <a href="http://192.168.5.172" target="_blank">192.168.5.172</a>\
<br>\
on\
<br>\
offline\
<br>\
min:-84 max:-78\
<br>E8:FF:70:50:BB:5B
setstate du_Demo 2021-08-17 11:50:23 ip_addr 192.168.5.172
setstate du_Demo 2021-08-17 11:47:35 lwt_state offline
setstate du_Demo 2021-08-17 11:59:52 mac_addr E8:FF:70:50:BB:5B
setstate du_Demo 2021-08-17 11:47:16 rssi_level min:-84 max:-78
setstate du_Demo 2021-08-17 11:47:45 state on


Gruß

Thomas

rudolfkoenig

ich wuerde fuer sowas statt stateFormat eher devStateIcon verwenden, weil devStateIcon FHEMWEB spezifisch ist, stateFormat dagegen fuer alls Schnittstellen gilt. Also auch fuer sowas wie eine App, oder Fremdsystem, der den Status ueber XmlList oder JsonList2 abfragt, oder per MQTT zugeschickt bekommt.

TomLee

Zitatich wuerde fuer sowas statt stateFormat eher devStateIcon verwenden, weil devStateIcon FHEMWEB spezifisch ist, ...

Versteh ich nicht genau wie das gemeint ist wenn nicht devStateIcon nur in Perl gemeint ist, bei meinem Beispiel greift das eine doch ins andere sonst wär doch die mehrzeilige Darstellung in devstateIcon gar nicht möglich oder hab ich was bisher noch nicht richtig verstanden ?

rudolfkoenig

Bin nicht sicher, dass ich Dich richtig verstehe, deswegen formuliere ich es mit anderen Worten:

Du: Beispiel mit stateFormat und devStateIcon
Ich: Wenn man das so macht, dann kriegt man Probleme an anderen Stellen.
Du: Ich muss es so machen, sonst muss ich perl verwenden.
Ich: Stimmt. Ist das ein Problem? :)

TomLee

ZitatIch: Stimmt. Ist das ein Problem? :)

Nö, ich mein ich bin nur "zwischendrin" und versuche die verschiedenen Sichtweisen zu sehen/zu verstehen, den gegebenen Fall, mit den gegebenen Mitteln, irgendwie "ansatzweise" umzusetzen.

grooves

Hallo Thomas,

ok, hab ich verstanden,
leider macht sich mehrzeilig in meiner kompakten Ansicht aller Switches nicht so gut,
siehe Anhang,

wegen dem Link, da der DeviceName dafür nicht geht,
könnte man doch einfach webcmd erweitern, also so
webcmd ON:OFF:link

dann bleibt das alles einzeilig,
die Frage ist jetzt bloß, wie kriege ich dort einen klickbaren Link hin

Grüße,
Mike

rudolfkoenig

Zitatleider macht sich mehrzeilig in meiner kompakten Ansicht aller Switches nicht so gut,
Das Mehrzeilige in der Anzeige kommt vom <br> im stateFormat bzw. STATE.

Zitatkönnte man doch einfach webcmd erweitern, also so
webcmd ON:OFF:link
Das steht Dir natuerlich frei, die Quellen sind les- und aenderbar.

Folgendes ist eine Alternative (w ist Name der FHEMWEB Instanz), allerdings mit anderen Nebeneffekten:
defmod du_link dummy
attr du_link room Test
attr du_link webCmd on:off:link
set du_link on
defmod ca_link cmdalias set du_link link AS trigger w JS:location='https://fritz.box'

grooves

Hallo Rudolf,

Danke für das Beispiel
Das ist aber schon die höhere Schule des fhem  :)
Bei der  Zeile defmod ca_link muß ich als Normaluser erst mal goggeln was da alles an Syntax hintersteckt  :)
Spannend allemal ... was alles so geht

Grüße,
Mike