Autor Thema: uiTable - neue Funktionen  (Gelesen 18770 mal)

Offline Per

  • Hero Member
  • *****
  • Beiträge: 1723
Antw:uiTable - neue Funktionen
« Antwort #120 am: 18 Februar 2021, 22:20:20 »
Vllt ließe sich das mit einen set Befehl neu zeichnen?  So oft nutzt man es ja nicht, dass man es unbedingt vollautomatisch braucht.

Offline Damian

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 9759
Antw:uiTable - neue Funktionen
« Antwort #121 am: 19 Februar 2021, 09:07:38 »
Vllt ließe sich das mit einen set Befehl neu zeichnen?  So oft nutzt man es ja nicht, dass man es unbedingt vollautomatisch braucht.

Mit Neuzeichnen ist es nicht getan. Bei uiTable handelt es sich um eine statische Tabelle, die per Konfiguration geändert wird. Eine Änderung des uiTable-Attributs bedeutet eine Änderung des Systems (rotes Fragezeichen), dazu wird die vorherige Definition bereinigt, Trigger gelöscht, ein aufwändiger Parser wird durchlaufen, Trigger müssen erkannt werden und neu aufgesetzt etc.
Dynamische Anzeigen kann man innerhalb einer Tabellenzelle realisieren, siehe: https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Visualisierung:_offene_Fenster
« Letzte Änderung: 19 Februar 2021, 09:10:12 von Damian »
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Offline thorte

  • New Member
  • *
  • Beiträge: 38
Antw:uiTable - neue Funktionen
« Antwort #122 am: 20 Februar 2021, 12:55:56 »
All right.

WorkAround: Habe es jetzt über eine dynamische Anzeige innerhalb einer Tabellenzelle realisiert, indem ich über ein DOIF_Readings eine Tabellendefinition erzeuge, die ich dann mittels dem uiTable-Attribut in der Tabelle anzeige. Als Beispiel für eine Tabelle "Batterie niedrig / Batterie ok":

defmod di.Test.uiTable DOIF ##
attr di.Test.uiTable DOIF_Readings Info_BatteryLow:[@".*":battery:"low"],\
Info_BatteryOk:[@".*":battery:"ok"],\
\
my_html:{\
  my $ret = "";;\
  my @devs = split(",",[$SELF:Info_BatteryLow]);;\
  $_ = "<tr><td>Batterie niedrig</td><td>".getFullName("$_")."</td></tr>" foreach @devs;;\
  $ret = $ret.join("",@devs);;  \
\
  my @devs = split(",",[$SELF:Info_BatteryOk]);;\
  $_ = "<tr><td>Batterie ok</td><td>".getFullName("$_")."</td></tr>" foreach @devs;;\
  $ret = $ret.join("",@devs);;  \
\
  length($ret) < 5 ? return "keine Meldungen" : return "<table> $ret </table>";;\
}
attr di.Test.uiTable event_Readings html:{ fhem "get $SELF html" }
attr di.Test.uiTable room Test
attr di.Test.uiTable uiTable [$SELF:my_html]

Werde an dieser Stelle mal weiterbasteln. Mal schauen, ob es sich bewährt.

Gruß Thorsten

Offline Damian

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 9759
Antw:uiTable - neue Funktionen
« Antwort #123 am: 20 Februar 2021, 13:07:49 »
All right.

WorkAround: Habe es jetzt über eine dynamische Anzeige innerhalb einer Tabellenzelle realisiert, indem ich über ein DOIF_Readings eine Tabellendefinition erzeuge, die ich dann mittels dem uiTable-Attribut in der Tabelle anzeige. Als Beispiel für eine Tabelle "Batterie niedrig / Batterie ok":

defmod di.Test.uiTable DOIF ##
attr di.Test.uiTable DOIF_Readings Info_BatteryLow:[@".*":battery:"low"],\
Info_BatteryOk:[@".*":battery:"ok"],\
\
my_html:{\
  my $ret = "";;\
  my @devs = split(",",[$SELF:Info_BatteryLow]);;\
  $_ = "<tr><td>Batterie niedrig</td><td>".getFullName("$_")."</td></tr>" foreach @devs;;\
  $ret = $ret.join("",@devs);;  \
\
  my @devs = split(",",[$SELF:Info_BatteryOk]);;\
  $_ = "<tr><td>Batterie ok</td><td>".getFullName("$_")."</td></tr>" foreach @devs;;\
  $ret = $ret.join("",@devs);;  \
\
  length($ret) < 5 ? return "keine Meldungen" : return "<table> $ret </table>";;\
}
attr di.Test.uiTable event_Readings html:{ fhem "get $SELF html" }
attr di.Test.uiTable room Test
attr di.Test.uiTable uiTable [$SELF:my_html]

Werde an dieser Stelle mal weiterbasteln. Mal schauen, ob es sich bewährt.

Gruß Thorsten

Für dynamische Listen schau dir mal das Modul readingsGroup an.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Offline JudgeDredd

  • Full Member
  • ***
  • Beiträge: 297
Antw:uiTable - neue Funktionen
« Antwort #124 am: 07 Mai 2021, 18:04:58 »
Hallo Zusammen,

für meine Anzeige wäre es schön, wenn die Cylinder-Funktion auch horizontal darstellt werden könnte.
Leider habe ich diesbezüglich nichts gefunden. Habe ich es übersehen oder ist das nicht möglich ?

Bitte nicht als Wunsch verstehen, wenn es nicht geht, dann ist es halt so.
Ich möchte nicht, das hier irgendwer Arbeit investiert für einen einzelnen Wunsch.

Gruß,
JudgeDredd
Router: Eigenbau (pfSense)
FHEM: Hyper-V | CentOS (VM)

Offline Damian

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 9759
Antw:uiTable - neue Funktionen
« Antwort #125 am: 07 Mai 2021, 18:10:25 »
Hallo Zusammen,

für meine Anzeige wäre es schön, wenn die Cylinder-Funktion auch horizontal darstellt werden könnte.
Leider habe ich diesbezüglich nichts gefunden. Habe ich es übersehen oder ist das nicht möglich ?

Bitte nicht als Wunsch verstehen, wenn es nicht geht, dann ist es halt so.
Ich möchte nicht, das hier irgendwer Arbeit investiert für einen einzelnen Wunsch.

Gruß,
JudgeDredd

Wie hättest du es gern?
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Offline JudgeDredd

  • Full Member
  • ***
  • Beiträge: 297
Antw:uiTable - neue Funktionen
« Antwort #126 am: 07 Mai 2021, 19:42:31 »
Wie hättest du es gern?
Och, die Grafik find ich schon schick, so wie sie ist. Nur eben horizontal.
Also Links "0" und rechts die "100".

Aber wie gesagt, ich kann auch mit der aktuellen vertikalen Situation leben.
Ich dachte nur, das man es schon jetzt mittels Parameter konfigurieren könnte.

Gruß,
JudgeDredd
Router: Eigenbau (pfSense)
FHEM: Hyper-V | CentOS (VM)

Offline Damian

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 9759
Antw:uiTable - neue Funktionen
« Antwort #127 am: 07 Mai 2021, 19:56:55 »
Ein Balken oder mehrere?
Balken ineinander oder neben einander? (siehe bars-Funktion)
Mit Beschriftungen oder ohne?
Mit Hintergrund oder ohne?

Einen waagerechten Balken mit einer Zahl, der in eine Zeile hineinpasst könnte ich mir ebenso vorstellen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Offline JudgeDredd

  • Full Member
  • ***
  • Beiträge: 297
Antw:uiTable - neue Funktionen
« Antwort #128 am: 07 Mai 2021, 20:11:36 »
Ein Balken oder mehrere?
Balken ineinander oder neben einander? (siehe bars-Funktion)
Mit Beschriftungen oder ohne?
Mit Hintergrund oder ohne?

Einen waagerechten Balken mit einer Zahl, der in eine Zeile hineinpasst könnte ich mir ebenso vorstellen.
Mit einem waagrechten Balken, der in eine Zeile passt wäre mir am meisten geholfen.

Aber wenn Du wirklich was machen möchtest, dann vielleicht so, das möglichst viele was davon haben.
Designtechnisch bin ich allerdings voll der Krüppel  :o Daher überlasse ich die Beschriftungen voll Deiner Inspiration.

Gruß,
JudgeDredd
Router: Eigenbau (pfSense)
FHEM: Hyper-V | CentOS (VM)

Offline Damian

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 9759
Antw:uiTable - neue Funktionen
« Antwort #129 am: 07 Mai 2021, 20:39:15 »
Mit einem waagrechten Balken, der in eine Zeile passt wäre mir am meisten geholfen.

Aber wenn Du wirklich was machen möchtest, dann vielleicht so, das möglichst viele was davon haben.
Designtechnisch bin ich allerdings voll der Krüppel  :o Daher überlasse ich die Beschriftungen voll Deiner Inspiration.

Gruß,
JudgeDredd

Zuerst muss ich aber meine aktuelle Baustelle fertigstellen - card-Funktion
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Offline JudgeDredd

  • Full Member
  • ***
  • Beiträge: 297
Antw:uiTable - neue Funktionen
« Antwort #130 am: 08 Mai 2021, 09:01:12 »
Zuerst muss ich aber meine aktuelle Baustelle fertigstellen - card-Funktion
Du bist der einzige der über Deine Freizeit bestimmen sollte.
Wenn es irgendwann soweit sein sollte, dann bekomme ich das ja bestimmt mit.
Router: Eigenbau (pfSense)
FHEM: Hyper-V | CentOS (VM)

Offline KyleK

  • Full Member
  • ***
  • Beiträge: 102
Antw:uiTable - neue Funktionen
« Antwort #131 am: 11 Mai 2021, 22:44:31 »
Hallo,

ich heute in das Thema uiTable eingestiegen und war sehr überrascht wie einfach und schnell man schöne Dashboard-Grafiken bekommt.
Funktioniert klasse.

Über eine kuriose Sache bin ich gestolpert:
In all meinen uiTable-Definitionen nutze ich $SHOWNOSTATE=1;, aber bei einigen Devices schien dies keinen Effekt zu haben.
Der state ("initialized") wurde trotzdem angezeigt.
Durch einen dummen Zufall glaube ich herausgefunden zu haben warum das so ist: Wenn der device-Name Punkte enthält, dann funktioniert das obige Flag scheinbar nicht. Wenn ich mein Device di_ui_TVOC nenne, dann wird der state nicht angezeigt.
Benenne ich es in di.ui.TVOC um, dann ist der state wieder da.

Muss ich mein FHEM-Device Namensschema anpassen, oder kann das im Modul gefixt werden?

Viele Grüße,
Frank
FHEM on Raspberry Pi 3B+
CUL868
7x MAX! Thermostat, 8x MAX! Fensterkontakte
Conbee II + deConz, TradFri Lampen, Osram Smart+ Steckdosen

Offline Damian

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 9759
Antw:uiTable - neue Funktionen
« Antwort #132 am: 11 Mai 2021, 23:06:26 »
Ich vermute, dass das Problem auf der JS-Seite ist. Die Mechanismen dort müsste ich mir erstmal genauer anschauen, weil ich bisher dort keine Finger im Spiel hatte.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Offline Ellert

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3769
Antw:uiTable - neue Funktionen
« Antwort #133 am: 12 Mai 2021, 17:38:05 »
doif.js berücksichtigt https://wiki.fhem.de/wiki/Ger%C3%A4tename#Restriktionen

Wenn nur der Inhalt von state stört könnte man ihn mit &nbsp; überschreiben.
« Letzte Änderung: 12 Mai 2021, 18:47:42 von Ellert »

Offline Damian

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 9759
Antw:uiTable - neue Funktionen
« Antwort #134 am: 12 Mai 2021, 18:51:17 »
Ich würde einfach laut Namenskonvention alle Punkte in Devicenamen gegen Unterstriche ersetzen, dann ist man auf der sicheren Seite.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

 

decade-submarginal