FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: kossmann am 30 Januar 2018, 09:59:21

Titel: Dummy für Doppelfenster - Zwei Zustände zusammenfassen
Beitrag von: kossmann am 30 Januar 2018, 09:59:21
Hallo zusammen,

ich habe ein Doppelfenster mit 2 HM-Griffkontakten ausgestattet und möchte deren beider Zustand gerne in einem "Gesamt-Dummy" zusammenfassen - und dies möglichst einfach (also ohne großartige IF-Verschachtelungen). Hat hier eventuell schon jemand passenden Code ´rum liegen?

Es gibt Badezimmer_FensterLinks und Badezimmer_FensterRechts, welche jeweils den Zustand "open", "closed" oder "tilted" einnehmen können. Der Dummy Badezimmer_Fenster könnte damit also insgesamt 9 Zustände einnehmen (z.B. "open-open", "open-closed", "open-tilted", "closed-open", "closed-closed", "closed-tilted", "tilted-open", "tilted-closed" und "tilted-tilted"), welcher immer neu gesetzt werden müsste, wenn sich bei einem der anderen beiden etwas ändert.
Titel: Antw:Dummy für Doppelfenster - Zwei Zustände zusammenfassen
Beitrag von: Amenophis86 am 30 Januar 2018, 10:10:07
schau dir mal structure an. Das macht was du willst.
Titel: Antw:Dummy für Doppelfenster - Zwei Zustände zusammenfassen
Beitrag von: kossmann am 30 Januar 2018, 10:35:49
Noch ein kleiner Nachtrag, wofür ich den Dummy benötige: Ich möchte im Floorplan ein (nicht zwei) Icon darstellen, welches den exakten Status des Doppelfensters abbildet, d.h. zwischen beispielsweise "open-closed" und "closed-open" besteht in dem Fall ein Unterschied. Die entsprechenden 9 Icons habe ich mir schon gebastelt.

Wenn ich structure richtig verstehe, geht dies dann nicht. Ich könnte erkennen, ob eines der beiden Fenster offen ist, aber nicht welches... oder? Ich bräuchte im Dummy wirklich den Status "open-closed" oder "closed-open" (oder ein anders Schema, in dem linkes und rechts Fenster zu erkennen sind).
Titel: Antw:Dummy für Doppelfenster - Zwei Zustände zusammenfassen
Beitrag von: nils_ am 30 Januar 2018, 11:10:09
es geht nur das eine oder das andere  ;D

evtl. kannst du das mit stateFormat lösen! https://fhem.de/commandref_DE.html#stateFormat

attr BadGesamt stateFormat { ReadingsVal("Badezimmer_FensterLinks","state", "closed") . "-" . ReadingsVal("Badezimmer_FensterRechts","state", "closed") }
Titel: Antw:Dummy für Doppelfenster - Zwei Zustände zusammenfassen
Beitrag von: kossmann am 30 Januar 2018, 11:11:38
Gucke ich mir gleich mal an, momentan versuche ich es per DOIF, wobei das noch nicht greift

define Badezimmer_Fenster dummy
  attr Badezimmer_Fenster room Badezimmer

define Job_Badezimmer_Fenster DOIF ([Badezimmer_Fenster*:*]) \
{ fhem("set Badezimmer_Fenster "(Value("Badezimmer_FensterLinks")."-".Value("Badezimmer_FensterRechts"))) }
  attr Job_Badezimmer_Fenster room Badezimmer
Titel: Antw:Dummy für Doppelfenster - Zwei Zustände zusammenfassen
Beitrag von: Amenophis86 am 30 Januar 2018, 11:27:53
Da frage ich mich, ob es nicht einfach ist einfach beide Dummys im Floorplan nebeneinander zu legen?
Titel: Antw:Dummy für Doppelfenster - Zwei Zustände zusammenfassen
Beitrag von: kossmann am 30 Januar 2018, 11:31:14
Einfacher wäre es sicher, sieht aber nicht so schön aus, da ich schon ein Icon für den Rollladen-Staus habe. Das wäre dann später eventuell mal die Krönung, ein Icon, welches sowohl die Rollläden, als auch auch die Fenster gleichzeitig visualisiert.
Titel: Antw:Dummy für Doppelfenster - Zwei Zustände zusammenfassen
Beitrag von: nils_ am 30 Januar 2018, 11:35:49
Zitat von: kossmann am 30 Januar 2018, 11:11:38
Gucke ich mir gleich mal an, momentan versuche ich es per DOIF, wobei das noch nicht greift
das wäre ja ein ähnlicher ansatz.

was funzt beim DOIF nicht?
do always bzw DOELSE ??
Titel: Antw:Dummy für Doppelfenster - Zwei Zustände zusammenfassen
Beitrag von: kossmann am 30 Januar 2018, 11:39:35
Es reagiert nicht auf ein "schalten" von Badezimmer_FensterLinks oder Badezimmer_FensterRechts. Kann gut sein, dass die Syntax einfach nicht stimmt, habe ich bis jetzt noch nirgendwo verwendet.
Titel: Antw:Dummy für Doppelfenster - Zwei Zustände zusammenfassen
Beitrag von: nils_ am 30 Januar 2018, 11:42:25
dann vmtl.: https://fhem.de/commandref_DE.html#DOIF_checkReadingEvent
Titel: Antw:Dummy für Doppelfenster - Zwei Zustände zusammenfassen
Beitrag von: Beta-User am 30 Januar 2018, 11:51:12
Zitat von: kossmann am 30 Januar 2018, 11:11:38

define Job_Badezimmer_Fenster DOIF ([Badezimmer_Fenster*:*])...
Zum einen solltest du dir abgewöhnen, die fhem.cfg direkt zu bearbeiten, zum anderen fehlen m.E. da zwei Punkte:
Badezimmer_Fenster.*:.*
Ansonsten würde ich dir mal den Wiki-Artikel über den Event-Monitor (und diesen selbst) ans Herz legen.

Just my2ct.

Beta-User
Titel: Antw:Dummy für Doppelfenster - Zwei Zustände zusammenfassen
Beitrag von: kossmann am 30 Januar 2018, 11:54:00
Viel schlimmer... ich glaube ich hätte mir einen Loop gebaut. Die Punkte fehlten in der Tat, aber der Dummy selbst wäre im regulären Ausdruck auch erfasst worden. Ich muss mir das nachher mal in Ruhe angucken.

Ich editiere auch nicht die fhem.cfg selbst, die ist bei mir minimal gehalten und besteht aus jeder Menge includes, in denen ich die einzelnen Räume definiere. So kann FHEM mit meine Konfiguration nicht zerschießen 8)
Titel: Antw:Dummy für Doppelfenster - Zwei Zustände zusammenfassen
Beitrag von: nils_ am 30 Januar 2018, 11:58:38
Zitat von: kossmann am 30 Januar 2018, 11:54:00
Ich editiere auch nicht die fhem.cfg selbst, die ist bei mir minimal gehalten und besteht aus jeder Menge includes, in denen ich die einzelnen Räume definiere. So kann FHEM mit meine Konfiguration nicht zerschießen 8)

ääääh.... was??  :o :o :o
Titel: Antw:Dummy für Doppelfenster - Zwei Zustände zusammenfassen
Beitrag von: marvin78 am 30 Januar 2018, 11:59:10
Oha. Wenn du das glaubst, fange nochmal vorne an.
Titel: Antw:Dummy für Doppelfenster - Zwei Zustände zusammenfassen
Beitrag von: Beta-User am 30 Januar 2018, 12:00:38
Das mit den dummies ist einfach Käse, wenn schon DOIF, kannst du das Ergebnis da auch als Reading erfassen (kein Experte, bitte selber suchen).

Was includes angeht:
- Wenn fhem meint, was überschreiben zu müssen, passiert das auch mit includes (ging mir jedenfalls damals so, als ich das vor Jahren auch noch so gemacht habe)
- Erkläre mir mal, wo der Unterschied liegt, ob du jetzt ein include bearbeitest oder die cfg direkt - irgendwie denke ich, für fhem.pl macht das keinen wirklichen Unterschied ;) .

Im Ergebnis: Hände weg von der cfg und laß' den "Unsinn" mit den includes. Es gibt bessere Optionen, Dinge wiederzufinden (list TYPE=..., FILTER usw.) und sich gegen "zu schlaue" Automatismen zu wehren (ein Grund, warum ich configDB einsetze).

Just my2ct.
Titel: Antw:Dummy für Doppelfenster - Zwei Zustände zusammenfassen
Beitrag von: kossmann am 30 Januar 2018, 13:09:58
Kann alles so einfach sein... keine Ahnung, warum ich das mit DOIF machen wollte:

define Badezimmer_Fenster dummy
  attr Badezimmer_Fenster room Badezimmer

define Notify_BadezimmerFenster notify Badezimmer_FensterLinks|Badezimmer_FensterRechts { \
  fhem("set Badezimmer_Fenster " . Value("Badezimmer_FensterLinks") . "-" . Value("Badezimmer_FensterRechts")) }
  attr Notify_BadezimmerFenster room Badezimmer
Titel: Antw:Dummy für Doppelfenster - Zwei Zustände zusammenfassen
Beitrag von: Amenophis86 am 30 Januar 2018, 13:13:52
Zitat von: kossmann am 30 Januar 2018, 11:54:00
So kann FHEM mit meine Konfiguration nicht zerschießen 8)

Rein aus Intersse, wo hast du denn gelesen, dass FHEM mal eine cfg zerschossen hat? Bzw. wie wäre das möglich?
Titel: Antw:Dummy für Doppelfenster - Zwei Zustände zusammenfassen
Beitrag von: kossmann am 30 Januar 2018, 13:20:01
Eigene Erfahrung, wobei "zerschießen" in diesem Fall das falsche Wort war. Wenn Geräte neu angelegt werden, stimmt die Sortierung nicht mehr und ich finde nichts wieder.

Meine fhem.cfg besteht nur aus den attr global Zeilen und jeder Menge include Zeilen (jeder Raum und jede größere Steuerung (Heizung, Alarm, ...)). Auf die ausgelagerten Dateien hat FHEM nur Leserechte und kann darin nichts verändern.

Ich komme halt aus der Linux-System-Ecke und dort habe ich gerne einen Überblick über meine Konfigurationsdateien, deren Inhalt und auch Lesbarkeit. Ich habe da sicher eine Macke, aber so gefällt es mir besser.
Titel: Antw:Dummy für Doppelfenster - Zwei Zustände zusammenfassen
Beitrag von: nils_ am 30 Januar 2018, 13:53:23
ich persönlich wünsche dir viel glück mit dieser handhabung.....





wo bleibt betateilchen mit popcorn?
Titel: Antw:Dummy für Doppelfenster - Zwei Zustände zusammenfassen
Beitrag von: eisman am 30 Januar 2018, 15:24:14
hi, so geht es bei mir seit Jahren ohne Probleme

RA01=Dummy für config Raum
plotRA01=Dummy für raum Plot (Temp,Fenster,Tür usw.)
5 sec für beide Fensterflügeln um den Status für beide seiten auswerten
im Foorplan oder Dashboard wird nur ein Fenster angezeigt

defmod RA01FE DOIF ([FE01:state] eq "closed" and [FE02:state] eq "closed") (set RA01 window closedclosed,set plotRA01 window 0)\
DOELSEIF ([FE01:state] eq "open" and [FE02:state] eq "open") (set RA01 window openopen,set plotRA01 window 20)\
DOELSEIF ([FE01:state] eq "tilted" and [FE02:state] eq "tilted") (set RA01 window tiltedtilted,set plotRA01 window 20)\
DOELSEIF ([FE01:state] eq "closed" and [FE02:state] eq "tilted") (set RA01 window closedtilted,set plotRA01 window 20)\
DOELSEIF ([FE01:state] eq "tilted" and [FE02:state] eq "closed") (set RA01 window tiltedclosed,set plotRA01 window 20)\
DOELSEIF ([FE01:state] eq "open" and [FE02:state] eq "tilted") (set RA01 window opentilted,set plotRA01 window 20)\
DOELSEIF ([FE01:state] eq "tilted" and [FE02:state] eq "open") (set RA01 window tiltedopen,set plotRA01 window 20)\
DOELSEIF ([FE01:state] eq "closed" and [FE02:state] eq "open") (set RA01 window closedopen,set plotRA01 window 20)\
DOELSEIF ([FE01:state] eq "open" and [FE02:state] eq "closed") (set RA01 window openclosed,set plotRA01 window 20)
attr RA01FE alias Wohnzimmerfenster
attr RA01FE cmdState closedclosed|openopen|tiltedtilted|closedtilted|tiltedclosed|opentilted|tiltedopen|closedopen|openclosed
attr RA01FE devStateIcon closedclosed:fts_window_2w@seagreen openclosed:fts_window_2w_open_l@red closedopen:fts_window_2w_open_r@red openopen:fts_window_2w_open_lr@red tiltedtilted:fts_window_2w_tilt_lr@blue closedtilted:fts_window_2w_tilt@blue tiltedclosed:fts_window_2w_tilt_l@blue opentilted:fts_window_2w_open_l_tilt_r@blue tiltedopen:fts_window_2w_tilt_l_open_r@blue
attr RA01FE do always
attr RA01FE fp_Erdgeschoss 306,223,0,doif.fenster.wz,
attr RA01FE group Fenster
attr RA01FE icon fts_window_2w@0E8BB5
attr RA01FE room Wohnung->Wohnzimmer
attr RA01FE sortby FE0001
attr RA01FE wait 5:5:5:5:5:5:5:5:5


gruss und viel spass
Titel: Antw:Dummy für Doppelfenster - Zwei Zustände zusammenfassen
Beitrag von: fiedel am 31 Januar 2018, 14:42:32
Bei mir ist es mechanisch gelöst: Ein Flügel hat den Sensor, der andere den Magneten (bzw. Reflektor). Egal welcher Flügel auf geht - der Sensor löst aus und erst wenn beide wieder zu sind, ist der Zustand "zu".  ;)