FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: ZeitlerW am 18 Dezember 2017, 14:03:53

Titel: [gelöst] Problem mit regulärem Ausdruck und uiTable
Beitrag von: ZeitlerW am 18 Dezember 2017, 14:03:53
Hallo zusammen,

ich möchte mit Hilfe der uiTable Funktion meinen Konfigeditor erweitern. Es soll ein dropdown Feld aus bestehenden Devices angezeigt werden.

Ich bin wie folgt vorgegangen:

defmod test DOIF (1)
attr test room test
attr test uiTable WID([$SELF:Standort],[@".._[0-9]{6}"])


Meine Vermutung wäre nun gewesen, daß der reguläre Ausdruck das gleiche ergibt wie bei list

list .._[0-9]{6}

TH_000001
TH_000002
TH_000003


leider wird der Regexp mit folgendem Ergebnis ausgeführt (entspricht list .._.*):

list .._.*

TH_000001
TH_000001_TUER_History
TH_000001_Temp
TH_000001_Temp_FL
TH_000001_Temp_SVG
TH_000001_Tuer
TH_000001_map
TH_000002
TH_000002_TUER_History
TH_000002_Temp
TH_000002_Temp_FL
TH_000002_Temp_SVG
TH_000002_Tuer
TH_000002_map
TH_000003
TH_000003_map



Ist das ein Bug oder Feature?

Vielen Dank
Wolfgang
Titel: Antw:Problem mit regulärem Ausdruck und uiTable
Beitrag von: Per am 18 Dezember 2017, 16:05:19
Er wird versuchen, den Status des Devices "0-9" aufzulösen.
Da es ein String ("") ist, versuch ihn doch zu verketten: @".._[0"."-9]{6}"
Titel: Antw:Problem mit regulärem Ausdruck und uiTable
Beitrag von: ZeitlerW am 18 Dezember 2017, 16:33:43
Hallo Per,

das funzt leider nicht.

Unmatched [ in regex; marked by <-- HERE in m/.._[ <-- HERE 0/ at ./FHEM/98_DOIF.pm line 2073.

lG
Wolfgang
Titel: Antw:Problem mit regulärem Ausdruck und uiTable
Beitrag von: Ellert am 18 Dezember 2017, 17:57:09
Probier mal [@".._(0|1|2|3|4|5|6|7|8|9){6}"])
Titel: Antw:Problem mit regulärem Ausdruck und uiTable
Beitrag von: Damian am 18 Dezember 2017, 18:36:26
Ich würde  [@"^.._(\d){6}"] nehmen.
Titel: Antw:Problem mit regulärem Ausdruck und uiTable
Beitrag von: ZeitlerW am 19 Dezember 2017, 06:28:13
Hallo Ellert, hallo Damian,


leider kein Erfolg. Bei beiden Versuchen gleiches Ergebnis wie ".._[0-9]{6}" :(

lG
Wolfgang
Titel: Antw:Problem mit regulärem Ausdruck und uiTable
Beitrag von: Ellert am 19 Dezember 2017, 07:32:42
Mit welcher DOIF-Version tritt das Verhalten auf?

ggf.  [@"^.._\d\d\d\d\d\d"]
Titel: Antw:Problem mit regulärem Ausdruck und uiTable
Beitrag von: ZeitlerW am 19 Dezember 2017, 07:46:48
Hallo Ellert,

... leider nicht ..
Internals:
   DEF        (1)
   NAME       test
   NR         55
   NTFY_ORDER 50-test
   STATE      initialized
   TYPE       DOIF
   READINGS:
     2017-12-18 13:05:29   Bezeichnung     
     2017-12-18 13:05:31   EUI             
     2017-12-18 13:46:26   Hallo           1
     2017-12-19 06:19:42   Standort        TH_000001
     2017-12-18 13:08:41   Typ             
     2017-12-18 13:03:34   cmd             0
     2017-12-18 13:03:34   state           initialized
   Regex:
     uiTable:
       :
         test_uiTable_c_0_0_0_0:
           "^.._\d\d\d\d\d\d" ^.._\d\d\d\d\d\d
       test:
         test_uiTable_c_0_0_0_0:
           Standort   ^test$:^Standort:
   condition:
     0          1
   devices:
   do:
     0:
       0         
     1:
   helper:
     DOIF_Readings_events
     DOIF_eventas
     globalinit 1
     last_timer 0
     sleeptimer -1
   itimer:
   uiState:
   uiTable:
     dev        test
     reading    Standort
     table:
       0:
         0:
           0:
             0          DOIF_Widget($hash,$reg,'test_uiTable_c_0_0_0_0',ReadingValDoIf($hash,'test','Standort'),"",AggregateDoIf($hash,'@','^.._\d\d\d\d\d\d'),'test','Standort')
     tc:
     td:
       0:
     tr:
Attributes:
   room       test
   uiTable    WID([$SELF:Standort],[@"^.._\d\d\d\d\d\d"])


Aktueller Stand von DOIF 15558

Nachtrag :

Ich glaube ich weiss warum die regexp matched: Alle devices sind in Räumen die mit ".._[0-9]{6}" matchen.


lG
Wolfgang
Titel: Antw:Problem mit regulärem Ausdruck und uiTable
Beitrag von: Ellert am 19 Dezember 2017, 08:49:53
Ich kann das Problem nicht nachstellen, bei mir funktioniert alles, wie es soll.


defmod agr_rgx DOIF (1)
attr agr_rgx uiTable WID([$SELF:liste],[@"^...\d\d"])


Vielleicht ist bei Deiner Spielerei irgendwas verbogen worden.

vieleicht hilft shutdown restart oder in hartnäckigen Fällen auch shutdown und sudo reboot
Titel: Antw:Problem mit regulärem Ausdruck und uiTable
Beitrag von: Ellert am 19 Dezember 2017, 09:03:30
list verwendet wie auch notify einen verfälschten regulären Ausdruck indem ^ voran und $ nachgestellt wird, das ist leider nicht in der Commandref dokumentiert. DOIF verwendet den regulären Ausdruck so, wie Du ihn angibst.

Also noch mal versuchen mit  [@"^.._(\d){6}\$"

Titel: Antw:Problem mit regulärem Ausdruck und uiTable
Beitrag von: ZeitlerW am 19 Dezember 2017, 10:46:41
Hallo Ellert,

WID([$SELF:Standort], [@"^.._[0-9]{6}$"])

das war die Lösung!


Vielen Dank!