Dummy für Doppelfenster - Zwei Zustände zusammenfassen

Begonnen von kossmann, 30 Januar 2018, 09:59:21

Vorheriges Thema - Nächstes Thema

kossmann

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.

Amenophis86

schau dir mal structure an. Das macht was du willst.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

kossmann

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).

nils_

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") }
viele Wege in FHEM es gibt!

kossmann

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

Amenophis86

Da frage ich mich, ob es nicht einfach ist einfach beide Dummys im Floorplan nebeneinander zu legen?
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

kossmann

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.

nils_

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 ??
viele Wege in FHEM es gibt!

kossmann

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.


Beta-User

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
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

kossmann

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)

nils_

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
viele Wege in FHEM es gibt!

marvin78

Oha. Wenn du das glaubst, fange nochmal vorne an.

Beta-User

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.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors