DOIF vs. Peering

Begonnen von Jorge3711, 01 Oktober 2016, 12:42:16

Vorheriges Thema - Nächstes Thema

Jorge3711

Hallo zusammen,

ich missbrauche einen HM-SEC-SCo zum manuellen Auslösen der Warmwasser Zirkulationspumpe über einen HM-LC-SW1-BA-PCB und angeschlossener Relaisschaltung. D.h. wenn der HM-SEC-SCo auf State closed wechselt, soll die Pumpe für ein paar Minuten laufen. Gelöst habe ich das mit einem DOIF:

([bad_zirku_steuerung] eq "closed")(set heizung_zirkulation on-for-timer 210)

Funktioniert auch, hat aber den Nachteil, dass es nicht autark funktioniert. Ist FHEM aus irgendeinem Grund down kann ich über den TFK die Pumpe nicht aktivieren.

Ich hatte überlegt, das über ein Peering zu lösen, ähnlich wie ich es für die Treppenhausshaltung mit dem Register "shOnTime" in Schaltern gelöst habe. Mein Knoten im Kopf ist allerdings, dass der TFK im Ruhezustand im State "open" steht, und die Aktion ja nur bei kurzzeitigem Wechsel auf "closed" getriggert werden soll.

Welchen Lösungsansatz mit Peering könnte man wählen? Oder geht das nur über ein DOIF (oder auch Notify) über den Umweg FHEM?

Grüße Jorge

Otto123

Hallo Jorge,

ich habe keine Lösung aber vielleicht etwas für den  ;) Knoten:

Also wenn sich der TFK peeren lässt (wovon ich ausgehe) dann musst Du ja nur die Aktion bei closed umsetzen auf ein on im Schalter.
Schau dir mal die regList an, da gibt doch so einiges.
Ich weiß beim peeren vom Wandthermostat mit einem Schaltaktor musste man das Register shCtOn umdefinieren damit es wirklich ein Zweipunktregelung wird.
Vielleicht findest Du was.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

martinp876

Peeren ist kein Problem. Ein aktor weiss eh nie, welcher Sensor dahinter steckt.
Der Sensor sendet nur short, also alle lg vergessen.
Jetzt weiss ich gerade nicht was closed ist. Das ist entweder 0 oder 200.
Nun kommt es darauf an, was du genau willst. Wenn closed 0 ist musst du in den shCt Registern mit ltMin arbeiten und ltCtMin auf 10 setzen.
Kommt ein trigger prüft der aktor den Wert ( closed = 0 ) gegen den Vergleichswert(shCtMin welche wir gerade auf 10 gesetzt haben) ist die Bedingung wahr gilt der trigger als gültig und wird verarbeitet. Andernfalls eben nicht.
Klar, sollte closed 200 sein musst du mit gt arbeiten. Lt ist less than( oder ist es le less equal?) Und gt greater than.

Die Bedingungen gibt es für jedn state. Ist der aktor gerade an wird mit shCtOn geprüft. So kannst du also einbauen dass der Sensor bei on komplett ignoriert wird. Oder eben nicht.

Dann das übliche. Existiert ein gültiger trigger wird ausgeführt was die jumptable vorgibt. In deinem Fall sollte shOnTime auf die gewünschte Zeit eingestellt werden. Der aktor sollte von off nach dlyon geschickt werden. Bei on sollte nichts passieren. Es sei den du willst retrigger zulassen, dann vo. On nach on springen.

Im Prinzip ist es ein dämmeruñgs- Treppenhauschaltung. Dazu habe ich ein template erstellt, das verwendet man mit Bewegungsmelder. Du kannst das template 1:1 nehmen wenn closed =0 ist.

Übrigens kannst du einstellen was bei closed gesendet wird. Das geht in alles Sensoren!