Rolladen nicht runter wenn Türkontakt auf....(gelöst)

Begonnen von Belei, 27 September 2015, 20:55:42

Vorheriges Thema - Nächstes Thema

Belei

Hallo,
ich probiere jetzt schon mehrere Std rum aber es will noch nicht....

Ich will ganz einfach:
Das der Rolladen der Wohnzimmer Tür nicht runterfährt ( Sunset) wenn der Türkontakt des Wintergartens offen ist.
Und wenn der Kontakt geschlossen wird dann soll der Rolladen zeitverzögert runtergehen.

Jetzt gabs die Frage schon paar mal und die antwort ist immer das DOIF Modul.
Ich hab mir die Commandref dazu mehrmals angeguckt aber schnall das alles noch nicht so ganz... :o

Momentan fahre ich den Rolladen so runter: Das funktioniert auch.
define wz3_rollo_zu at *{sunset("REAL",1450,)} set RL_WZ_3 close

Mein aktueller Versuch ist:
define wz3_rollo_zu at *{sunset("REAL",1450)} IF ([TuerWintergarten] eq "closed") (set RL_WZ_3 close)

Fehlermeldung im LOG:
wz3_rollo_zu: IF: unknown Device: TuerWintergarten

TuerWintergarten ist mein neuer hm-sec-sc-2 Kontakt, den ich erfolgreich gepairt habe und dann alias TuerWintergarten genannt habe.
Reicht das nicht? Oder wo ist der Fehler.



Fhem auf RaspberryPi 2 RFXTRX433
Homematic Usb Stick Diverse 433Mhz Dosen
Yodaa Rolladen Fritzpowerline 3xHM-LC-Sw1PBU-FM
1xHM-SEC-SC-2

Amenophis86

hast du ihn nur mit dem Alias so benannt, oder das Device mit rename umgenannt?
Sollte erstes der Fall sein, dann geht es nicht. IF und DOIF wollen immer den Device Namen haben und nicht das Alias.
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...

VB90

entweder du arbeitest mit dem Realen Namen des Turkontaktes (HM_xxyytt) oder du benennst ihn mittels "rename alterName neuerName" um.
Mit alias wird das meiner erfahrung nach nix, das taugt nur für die Optik.

Du schreibst von DOIF, arbeitest aber mit AT. Zwei paar Schuhe.

Als DOIF wäre dein Vorhaben ungefähr so vorzustellen:

define Rolladen_zu DOIF ([Türkontakt:state] eq "closed)(set Rolladenantrieb zu)
attr Rolladen_zu wait 120

Bewirkt das schliessen nur wenn die Tür geschlossen ist, wait sorgt für eine Verzögerung von 120 Sekunden

vb
Man muss das Rad nicht neu erfinden, nur wissen wie es gedreht wird.

Amenophis86

Zitat von: VB90 am 27 September 2015, 22:31:58
Du schreibst von DOIF, arbeitest aber mit AT. Zwei paar Schuhe.

Naja, eigentlich arbeitet er mit IF und da wäre die Funktion richtig, wenn er jetzt noch den Namen des Device nehmen würde, wie wir beide angemerkt haben ;)
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...

Belei

#4
Danke euch.  ;D
Nach einem rename funktioniert jetzt schonmal das runterfahren oder das nicht runterfahren.

Jetzt noch zu dem wait:

Das kann ich so wohl nicht hinterhängen.. kommt ein Fehlermeldung
Muss ich das also doch noch umschreiben in doif?

So ungefähr?
define wz3_rollo_zu  DOIF ([sunset] and [TuerWintergarten:state] eq "closed")(set  RL_WZ_3 close)
attr wz3_rollo_zu wait 120


Wie kommt jetzt ("REAL",1450)} noch in den Code?

Und fährt er dann auch automatisch runter wenn die Tür später geschlossen wird?
Fhem auf RaspberryPi 2 RFXTRX433
Homematic Usb Stick Diverse 433Mhz Dosen
Yodaa Rolladen Fritzpowerline 3xHM-LC-Sw1PBU-FM
1xHM-SEC-SC-2

Amenophis86

Einmal SuFu mit Tür und Rollladen, da der 5 Vorschlag und siehe da, jemand will genau das gleiche und hat viele Erklärungen bekommen:

http://forum.fhem.de/index.php/topic,38732.msg310540.html#msg310540
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...

dieda

#6
Schreib dir dazu erst einmal alle beteiligen Aktoren, Sensoren und Hilfmodule auf.

Beispiel:
Thermometer: Reading: temperature
Rolladen - set Rolladen blabla
Türkontakt - Reading: state
Beschattungssensor: Reading: state
Twilight - Readings: azimuth und condition
Sunset, Sunrise oder Zeit

Jetzt geht es ran an die Bedingungen:

-Rauf morgens

-runter auf 80%, wenn die Raumtemperatur größer als X ist, die Sonne vor dem Fenster steht (twighlight:azimuth) und die Sonne scheint (twilight:condition), aber nur dann, wenn die Tür geschlossen ist.
Zitat(Thermometer:temperature:d]>xx
and [myTL:azimuth] > xx
and [myTL:azimuth] < xx
and [?10:00-22:00]
and
(
[myTL:condition] eq "xx" or
....
or [myTL:condition] eq "xx")
)
(set Rolladen Ab80)
DOELSEIF ([Thermometer:temperature:d]<xx and
and [myTL:azimuth] > xx
and [myTL:azimuth] < xx
and [?10:00-22:00]
....)
(set Rolladen on)

- runter abends, wenn der Zeitpunkt x oder definiert nach Sunset erreicht ist, aber nur, wenn die Tür geschlossen ist. Beispiel:
Zitat([{sunset("HORIZON=-6.0")}] and [Fensterkontakt:state] eq "closed")(set Rolladen off)

- runter abends, wenn der Zeitpunkt x oder definiert nach Sunset erreicht ist, aber nur, wenn die Tür geschlossen wird. Beispiel:     
Zitat([?{sunset("HORIZON=-6.0")}-07:00] and [Fensterkontakt:state] eq "closed")(set Rolladen off)

- rauf, wenn die Tür geöffnet wird. Beispiel:
Zitat([Rolladen:state] eq "off" or [Rolladen:state] eq "off-for-timer 16") and [Fensterkontakt:state]eq "opened")(set Rolladen on)
Komponenten:
Sensoren und Aktoren: FS20, Max!, Zigbee, Zwave
IODev:  Cul1101, MaxLan, ZWAVE, Deconz
Router: KD-Fritte (6360)
Sonstiges: Raspberries,  1x LMS,1 FHEM, 1 x zum Testen,  Logitech-Clients,  Onkyo, SamsungTV, Squeezebox, TabletUIs

Belei

#7
Hallo danke euch für die Antworten!!

@dieda

Deine beiden Beispiele 2 und 3 unterscheiden sich nur
Mit dem Fragezeichen und das -07:00

Was löst da den Unterschied aus: Zwischen Tür "geschlossen ist" und Tür "geschlossen wird"?
Fhem auf RaspberryPi 2 RFXTRX433
Homematic Usb Stick Diverse 433Mhz Dosen
Yodaa Rolladen Fritzpowerline 3xHM-LC-Sw1PBU-FM
1xHM-SEC-SC-2

dieda

Komponenten:
Sensoren und Aktoren: FS20, Max!, Zigbee, Zwave
IODev:  Cul1101, MaxLan, ZWAVE, Deconz
Router: KD-Fritte (6360)
Sonstiges: Raspberries,  1x LMS,1 FHEM, 1 x zum Testen,  Logitech-Clients,  Onkyo, SamsungTV, Squeezebox, TabletUIs

Belei

@dieda

Ich habe jetzt einen zusätlichen wz3_rollo_zu2 definiert mit deinen Werten und es scheint zu klappen.

1.

define wz3_rollo_zu DOIF ([{sunset("REAL",1450,"17:00","23:00")}] and [TuerWintergarten:state] eq "closed")(set RL_WZ_3 close)



2.
define wz3_rollo_zu2 DOIF ([?{sunset("REAL",1450,"17:00","23:00")}-07:00] and [TuerWintergarten:state] eq "closed")(set RL_WZ_3 close)
attr wz3_rollo_zu2 wait 60


Mit dem Fragezeichen hab ich aber noch nicht so geschnallt:
Angaben in eckigen Klammern, die mit einem Fragezeichen beginnen, führen zu keiner Triggerung des Moduls, sie dienen lediglich der Abfrage.

Das -07:00 heist dann bis morgen um 7 Uhr?
Fhem auf RaspberryPi 2 RFXTRX433
Homematic Usb Stick Diverse 433Mhz Dosen
Yodaa Rolladen Fritzpowerline 3xHM-LC-Sw1PBU-FM
1xHM-SEC-SC-2

dieda

Nicht bös gemeint, aber suchen in der commandref geht so.

In der Navigation den Menüpunkt "Commandref" raussuchen
Links oben auf "de" klicken
Funktion "DOIF" suchen
Nun "STRG+F" drücken
Jetzt dies eingeben: ([?{
dann die Entertast.

Da steht's. Du solltest unbedingt mit dem Modul vertraut machen. Es nützt dir nichts, wenn ich dir alles auf dem Silbertablet präsentiere. Du musst es auch verstehen, nur so kannst du es anwenden. Du hast sicherlich gemerkt, dass dir kein anderer weiterhelfen wollte... Das hat seinen Grund.



Komponenten:
Sensoren und Aktoren: FS20, Max!, Zigbee, Zwave
IODev:  Cul1101, MaxLan, ZWAVE, Deconz
Router: KD-Fritte (6360)
Sonstiges: Raspberries,  1x LMS,1 FHEM, 1 x zum Testen,  Logitech-Clients,  Onkyo, SamsungTV, Squeezebox, TabletUIs

Belei

#11
Ja, ich bin dir auch dankbar das du überhaupt antwortest.
Ich habe das schon mehrmals gelesen aber verstehe es halt nicht....

Habe ja im Post über dir auch die betreffende Erklärung zitiert.
Und meine Vermutung auf die -07:00 (ich find da keine Erklärung zu im CommandRef)

Es funktioniert ja jetzt auch, dank dir und den anderen konnte ich es ja auch an meine Bedürfnisse und Umgebung anpassen.
Fhem auf RaspberryPi 2 RFXTRX433
Homematic Usb Stick Diverse 433Mhz Dosen
Yodaa Rolladen Fritzpowerline 3xHM-LC-Sw1PBU-FM
1xHM-SEC-SC-2

dieda

Komponenten:
Sensoren und Aktoren: FS20, Max!, Zigbee, Zwave
IODev:  Cul1101, MaxLan, ZWAVE, Deconz
Router: KD-Fritte (6360)
Sonstiges: Raspberries,  1x LMS,1 FHEM, 1 x zum Testen,  Logitech-Clients,  Onkyo, SamsungTV, Squeezebox, TabletUIs

Amenophis86

Zitat von: Belei am 30 September 2015, 20:00:15
@dieda

Ich habe jetzt einen zusätlichen wz3_rollo_zu2 definiert mit deinen Werten und es scheint zu klappen.

1.

define wz3_rollo_zu DOIF ([{sunset("REAL",1450,"17:00","23:00")}] and [TuerWintergarten:state] eq "closed")(set RL_WZ_3 close)



2.
define wz3_rollo_zu2 DOIF ([?{sunset("REAL",1450,"17:00","23:00")}-07:00] and [TuerWintergarten:state] eq "closed")(set RL_WZ_3 close)
attr wz3_rollo_zu2 wait 60


Mit dem Fragezeichen hab ich aber noch nicht so geschnallt:
Angaben in eckigen Klammern, die mit einem Fragezeichen beginnen, führen zu keiner Triggerung des Moduls, sie dienen lediglich der Abfrage.

Das -07:00 heist dann bis morgen um 7 Uhr?

Sind wir mal nicht so und unterstellen dir, dass du einfach mal auf dem Schlauch stehst, wobei du schon wirklich sehr auf dem Schlauch stehen musst, wenn du es nicht verstehst. Aber gut.

Also:
1. Entweder machst du dein erstes doif oder dein zweites, beide zusammen bringen nix
2. Dein erstes DOIF ist vom Prinzip her richtig. Der Roll geht nur runter, wenn die Tür zu ist und zu dem Zeitpunkt des Sunset
3. Dein zweites DOIF macht absolut NULL Sinn, aber ich versuche dir mal zu helfen:

a. Das ?
Das ? bewirkt, dass der DOIF Befehl NICHT ausgelöst wird, wenn diese Bedingung durch FHEM wahr wird. In deinem zweite Fall also, wird das DOIF nicht gestartet, wenn die Uhrzeit des Sunset erreicht ist.

b. Uhrzeit - Uhrzeit
Legt eine Zeitspanne fest in der der Befehl ausgeführt wird. Dafür gibt es drei Möglichkeiten:
I. Der Beginn der Zeitspanne
II. Wenn ein weiterer Trigger Befehl in der Zeitspanne kommt und mit "and" in der Befehlskette hängt
III. Am Ende der Zeitspanne, wobei hier nicht der Befehl des DOIFs ausgeführt wird, sondern der unter DOELSE (theoretisch, wenn es das gibt und kein weiteres DOELSEIF wahr wird)

Ansonsten kann ich nur NOCHMAL auf diesen Post verweisen, wo wirklich ALLES ausführlich erklärt ist: http://forum.fhem.de/index.php/topic,38732.msg310540.html#msg310540
Und auf diesen, wo DOIF und sämtliche Sachen erklärt werden: http://forum.fhem.de/index.php/topic,23833.0.html

Da musst du wohl einfach noch viel mehr lesen, mit Dummys probieren und verstehen. Du bist nämlich leider an dem Punkt angekommen, wo dir keiner mehr helfen will, weil eigentlich schon alle Hilfen auf dem Tisch liegen und man leider davon ausgehen muss, dass du sie nicht nutzen willst. Ich hoffe, dass du es nun verstanden hast. Ansonsten geht es nur noch über probieren, probieren, probieren.

Übrigens, wenn dein Rollo wieder hochgehen soll, dann brauchst du noch ein DOELSE oder DOELSEIF in deiner Bedingung ;)
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...

isy

#14
Probiere mal meine Code, die Namen der Aktoren etc musst du anpassen.

define Rollladensteuerung DOIF ( [{sunset(-600,"17:00","22:10")}|8] and [wz_SW_BalkonTuer] eq "closed")
(set EG_Rollladen runter) DOELSEIF ([{sunset(-600,"17:00","22:10")}|7] and [wz_SW_BalkonTuer] eq "closed") 
(set EG_Rollladen runter) DOELSEIF ([{sunrise(+180,"07:17","08:26")}|8]) (set EG_Rollladen hoch)
DOELSEIF ([{sunrise(+180,"07:45","08:26")}|7]) (set EG_Rollladen hoch)


Gruß Helmut
Ein Weg wird erst zu einem Weg, wenn man ihn geht