Hallo zusammen,
ich wollte mir im FTui anzeigen lassen welche Fenster bei mir geöffnet sind. Dabei habe ich im Fhem Wiki den Eintrag DOIF/uiTable Schnelleinstieg gefunden
https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg (https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg)
und mit unter Punkt
Visualisierung: offene Fenster das Beispiel:
defmod di_uiTable_windows DOIF ## Visualisierung offener Fenster, Fenster-Devices enden mit "Fenster" im Namen
attr di_uiTable_windows DOIF_Readings windows:[@as(<br>)"Fenster$":state:"open","keine"]
attr di_uiTable_windows uiTable {package ui_Table;;}\
icon([$SELF:windows],"fts_window_1w_open\@DarkOrange","fts_window_1w",".*","keine")|[$SELF:windows]
meinem Fhem hinzugefügt.
Was ich nicht erwartet hätte, im Log hatte ich dann jede Menge Einträge wie folgt:
2023.02.20 09:03:12 3: di_uiTable_windows:Warning in DOIF_RegisterEvalAll:package ui_Table;::DOIF_Widget($hash,$reg,'di_uiTable_windows_uiTable_c_0_0_0_0',\ icon(::ReadingValDoIf($hash,'di_uiTable_windows','windows'),"fts_window_1w_open\@DarkOrange","fts_window_1w",".*","keine"))
2
Das einzigste was ich im attr geändert hatte war folgendes
attr di_uiTable_windows DOIF_Readings windows:[@as(<br>)"Fenster$":state:"open","keine"]
auf
attr di_uiTable_windows DOIF_Readings windows:[@as(<br>)"^Fenst$":state:"open","keine"]
da die Namen meiner Sensoren nicht mit Fenster enden sondern mit Fenst beginnen.
Kann es daran liegen, dass ich so viele Einträge im Log bekomme?
Für eure Antworten schon mal vielen Dank
Zitat von: wertz am 20 Februar 2023, 09:09:33
auf
attr di_uiTable_windows DOIF_Readings windows:[@as(<br>)"^Fenst$":state:"open","keine"]
da die Namen meiner Sensoren nicht mit Fenster enden sondern mit Fenst beginnen.
Fenster beginnen bedeutet nicht "^Fenst$", sondern "^Fenst", wenn du weiterhin Warnings bekommst, dann poste hier deine RAW-Definition.
Hallo Damian,
...ups, da hat sich ein Copy/Paste Fehler eingeschlichen.
ich hatte das richtig eingetragen, nur beim kopieren ist mir der Fehler unterlaufen.
Die Einträge im log sind nach wie vor vorhanden
hier die RAW definition:
defmod di_uiTable_windows DOIF ##
attr di_uiTable_windows DOIF_Readings windows:[@as(<br>)"^Fenst":state:"open","keine"]
attr di_uiTable_windows uiTable {package ui_Table;;}\ icon([$SELF:windows],"fts_window_1w_open\@DarkOrange","fts_window_1w",".*","keine")|[$SELF:windows]
setstate di_uiTable_windows initialized
setstate di_uiTable_windows 2023-02-20 09:01:12 cmd 0
setstate di_uiTable_windows 2023-02-20 09:01:12 mode enabled
setstate di_uiTable_windows 2023-02-20 09:01:12 state initialized
setstate di_uiTable_windows 2023-02-20 09:56:48 windows Fenst.Sens.TOI
hier das list:
Internals:
CFGFN
DEF ##
FUUID 63f328c8-f33f-94a6-06d4-4c35f65ec88a945d
MODEL FHEM
NAME di_uiTable_windows
NOTIFYDEV global,di_uiTable_windows,.*(^Fenst).*
NR 19334
NTFY_ORDER 50-di_uiTable_windows
STATE initialized
TYPE DOIF
VERSION 26938 2023-01-01 18:13:32
eventCount 1
CHANGED:
windows: Fenst.Sens.TOI
CHANGEDWITHSTATE:
windows: Fenst.Sens.TOI
DOIF_Readings:
windows ::AggregateDoIf($hash,'@as(<br>)','^Fenst','state','"open"','"keine"')
READINGS:
2023-02-20 09:01:12 cmd 0
2023-02-20 09:01:12 mode enabled
2023-02-20 09:01:12 state initialized
2023-02-20 09:56:48 windows Fenst.Sens.TOI
Regex:
DOIF_Readings:
:
windows:
"^Fenst" ^Fenst
accu:
collect:
uiTable:
di_uiTable_windows:
di_uiTable_windows_uiTable_c_0_0_0_0:
windows ^di_uiTable_windows$:^windows:
di_uiTable_windows_uiTable_c_0_1_0_0:
windows ^di_uiTable_windows$:^windows:
condition:
do:
0:
helper:
NOTIFYDEV global,di_uiTable_windows,.*(^Fenst).*
event closed,power_outage_count: 59,voltage: 3015,battery: 100,linkquality: 51
globalinit 1
last_timer 0
sleeptimer -1
triggerDev Fenst.Sens.OG.TR
triggerEvents:
closed
power_outage_count: 59
voltage: 3015
battery: 100
linkquality: 51
triggerEventsState:
state: closed
power_outage_count: 59
voltage: 3015
battery: 100
linkquality: 51
uiState:
uiTable:
dev di_uiTable_windows
header
<table uitabid='DOIF-di_uiTable_windows' class=' block wide uiTabledoif doif-di_uiTable_windows ' style='border-top:none;'>
package package ui_Table;
reading windows
table:
0:
0:
0:
0 package ui_Table;::DOIF_Widget($hash,$reg,'di_uiTable_windows_uiTable_c_0_0_0_0',\ icon(::ReadingValDoIf($hash,'di_uiTable_windows','windows'),"fts_window_1w_open\@DarkOrange","fts_window_1w",".*","keine"))
1:
0:
0 package ui_Table;::DOIF_Widget($hash,$reg,'di_uiTable_windows_uiTable_c_0_1_0_0',::ReadingValDoIf($hash,'di_uiTable_windows','windows'),"")
tc:
td:
0:
tr:
Attributes:
DOIF_Readings windows:[@as(<br>)"^Fenst":state:"open","keine"]
uiTable {package ui_Table;}\ icon([$SELF:windows],"fts_window_1w_open\@DarkOrange","fts_window_1w",".*","keine")|[$SELF:windows]
und der Eintrag im log, wie gehabt:
2023.02.20 10:37:01 3: di_uiTable_windows:Warning in DOIF_RegisterEvalAll:package ui_Table;::DOIF_Widget($hash,$reg,'di_uiTable_windows_uiTable_c_0_0_0_0',\ icon(::ReadingValDoIf($hash,'di_uiTable_windows','windows'),"fts_window_1w_open\@DarkOrange","fts_window_1w",".*","keine"))
2023.02.20 10:37:16 3: di_uiTable_windows:Warning in DOIF_RegisterEvalAll:package ui_Table;::DOIF_Widget($hash,$reg,'di_uiTable_windows_uiTable_c_0_0_0_0',\ icon(::ReadingValDoIf($hash,'di_uiTable_windows','windows'),"fts_window_1w_open\@DarkOrange","fts_window_1w",".*","keine"))
2023.02.20 10:37:48 3: di_uiTable_windows:Warning in DOIF_RegisterEvalAll:package ui_Table;::DOIF_Widget($hash,$reg,'di_uiTable_windows_uiTable_c_0_0_0_0',\ icon(::ReadingValDoIf($hash,'di_uiTable_windows','windows'),"fts_window_1w_open\@DarkOrange","fts_window_1w",".*","keine"))
Grüße und vielen Dank
Da hast du dir wohl ein Leerzeichen hinter uiTable {package ui_Table;;}\ kopiert. Damit landet icon nicht in die nächste Zeile.
Hallo Damian,
erst mal vielen Dank für deine äusserst schnelle sowie kompetente Antwort.
Da wäre ich nie im Leben darauf gekommen!
ich hab da jetzt nochmals ein wenig "rumgespielt"
kopiert man aus Firefox "Win10" via Strg-c und Strg-v das attr in die Komandozeile von Fhem, dann sieht das in den Attributes so aus:
{package ui_Table;}\ icon([$SELF:windows],"fts_window_1w_open\@DarkOrange","fts_window_1w",".*","keine")|[$SELF:windows]
Nach uiTable; {package ui_Table;} fehlt ein ; und nach {package ui_Table;}\ wird ein Leerzeichen eingefügt.
ich habe das attr nun erst in Notepad++ kopiert und dann gesehen, dass es dann so aussieht:
attr di_uiTable_windows uiTable {package ui_Table;;}\
icon([$SELF:windows],"fts_window_1w_open\@DarkOrange","fts_window_1w",".*","keine")|[$SELF:windows]
jetzt wird das attr in 2 Zeilen geschrieben und das DOIF funktioniert, das Icon wird richtig angezeigt. Top!!
Danke!!
wie kann ich zuküntig solche Fehler vermeiden?
copy/paste funktioniert ja wohl doch nicht immer :(
Grüße
Zitat von: wertz am 20 Februar 2023, 15:31:05
Hallo Damian,
erst mal vielen Dank für deine äusserst schnelle sowie kompetente Antwort.
Da wäre ich nie im Leben darauf gekommen!
ich hab da jetzt nochmals ein wenig "rumgespielt"
kopiert man aus Firefox "Win10" via Strg-c und Strg-v das attr in die Komandozeile von Fhem, dann sieht das in den Attributes so aus:
{package ui_Table;}\ icon([$SELF:windows],"fts_window_1w_open\@DarkOrange","fts_window_1w",".*","keine")|[$SELF:windows]
Nach uiTable; {package ui_Table;} fehlt ein ; und nach {package ui_Table;}\ wird ein Leerzeichen eingefügt.
ich habe das attr nun erst in Notepad++ kopiert und dann gesehen, dass es dann so aussieht:
attr di_uiTable_windows uiTable {package ui_Table;;}\
icon([$SELF:windows],"fts_window_1w_open\@DarkOrange","fts_window_1w",".*","keine")|[$SELF:windows]
jetzt wird das attr in 2 Zeilen geschrieben und das DOIF funktioniert, das Icon wird richtig angezeigt. Top!!
Danke!!
wie kann ich zuküntig solche Fehler vermeiden?
copy/paste funktioniert ja wohl doch nicht immer :(
Grüße
Bei mir funktioniert das Bespiel aus dem Wiki mit copy und paste über das Plus-Zeichen in FHEM (Raw-Definition) ohne Probleme - da muss man nichts nachbessern.
Komisch...
Na,ja,
wenistens funktioniert es jetzt ;D
Dir nochmals herzlichen Dank
Grüße