FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Loredo am 02 Dezember 2014, 16:51:09

Titel: Structure für Rollläden
Beitrag von: Loredo am 02 Dezember 2014, 16:51:09
Hallo zusammen,

ich versuche schon seit längerem einige Rollläden zu einer Structure mit 3 Zuständen zusammen zu fassen.
Das ganze versuche ich auf Basis des Reading pct:

0 -> closed
100 -> open
1-99 -> halfopen

Allerdings kriege ich das mit 1-99 nicht hin. Wenn ich die Structure entsprechend konfiguriert habe, hat sie immer den Status "halfopen", egal auf wie viel Prozent pct steht :-(

So habe ich die Structure definiert:


define g_LR_Shutters structure g_shutters LR_SouthShutter LR_WestShutter
attr g_LR_Shutters clientstate_behavior relativeKnown
attr g_LR_Shutters clientstate_priority halfopen open closed

define LR_SouthShutter CUL_HM 1234
attr LR_SouthShutter g_shutters g_LR_Shutters
attr LR_SouthShutter g_shutters_map pct:0:closed pct:100:open pct:[1-99]:halfopen


define LR_WestShutter CUL_HM 1235
attr LR_WestShutter g_shutters g_LR_Shutters
attr LR_WestShutter g_shutters_map pct:0:closed pct:100:open pct:[1-99]:halfopen


Kann jemand helfen? Über die Forumssuche habe ich nichts finden können mit den Suchbegriffen, die mir eingefallen sind  :-\
Titel: Antw:Structure für Rollläden
Beitrag von: justme1968 am 02 Dezember 2014, 17:13:44
beim ersten drüberschauen fällt mit auf:
- die reihenfolge in clientstate_priority sollte glaube ich besser open halfopen closed sein. sonst hat halfopen ja die höchste priorität und überschreibt alles.
- [1-99] ist eine regex die auf  die zahlen 1-9 und 9 matched. das trifft auch auf 100 zu. ich denke du brauchst etwas in der art:^([1-9]|\d\d)$ also 1-9 oder zweistellig. da ist die 100 nicht mit dabei.

wenn das hm rolläden sind musst die die regex aber noch etwas verfeinern. der pct wert kann eine nachkommt stelle haben.

gruss
  andre
Titel: Antw:Structure für Rollläden
Beitrag von: Loredo am 03 Dezember 2014, 08:24:54
Hey André,


war klar, dass du als Structure Profi mir antworten würdest, vielen Dank dafür  :)


Ich hatte es schon mit allen möglichen Regex Ausdrücken probiert, es aber irgendwie nicht hingebracht. Letztlich war ich jetzt mit diesem _map Attribut erfolgreich:



pct:0:closed pct:100:open pct:\b[1-9]\b:halfopen pct:\b[1-9][0-9]\b:halfopen



Etwas seltsam finde ich dabei, dass die Auswertung der Regex scheinbar nicht beim ersten Match ended (sow wie bei devStateIcon). Sonst hätte ich das Problem mit dem 100 ja gar nicht und als dritte Möglichkeit hätte ein einfaches .* genügt.

Die Reihenfolge in clientstate_priority soll bei mir übrigens mit halfopen als Prio1 sein, weil das aus Wind-technischer Sicht schlimmer ist als "open". Daher auch die 3 Zustände statt nur auf/zu.

pct weist bei mir übrigens nie eine Nachkommastelle auf soweit ich mich erinnere. Muss ich mal beobachten und ansonsten nochmals nachbessern.



Gruß
Julian