FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: wertz am 20 Februar 2023, 09:09:33

Titel: ?? DOIF/uiTable Fehler im Wiki ??
Beitrag von: wertz am 20 Februar 2023, 09:09:33
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

Titel: Antw:?? DOIF/uiTable Fehler im Wiki ??
Beitrag von: Damian am 20 Februar 2023, 10:09:22
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.
Titel: Antw:?? DOIF/uiTable Fehler im Wiki ??
Beitrag von: wertz am 20 Februar 2023, 10:48:39
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
Titel: Antw:?? DOIF/uiTable Fehler im Wiki ??
Beitrag von: Damian am 20 Februar 2023, 12:37:27
Da hast du dir wohl ein Leerzeichen hinter uiTable {package ui_Table;;}\ kopiert. Damit landet icon nicht in die nächste Zeile.
Titel: Antw:?? DOIF/uiTable Fehler im Wiki ??
Beitrag 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
Titel: Antw:?? DOIF/uiTable Fehler im Wiki ??
Beitrag von: Damian am 20 Februar 2023, 16:49:36
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.
Titel: Antw:?? DOIF/uiTable Fehler im Wiki ??
Beitrag von: wertz am 20 Februar 2023, 21:45:51
Komisch...

Na,ja,
wenistens funktioniert es jetzt  ;D

Dir nochmals herzlichen Dank
Grüße