Rollo nicht runterfahren wenn tür offen und beim Schliessen dann runterfahren

Begonnen von Maiks, 31 März 2014, 20:44:05

Vorheriges Thema - Nächstes Thema

Maiks

Hallo,

ich habe FHEM auf Windows laufen und eine Frage zur Programmierung.

Es geht um folgendes Problem:

Terassen tür ist auf und Rollo fährt trotzdem über sunset runter :(  Würde jetzt gerne verhindern, dass das Rollo runter fährt solange die Tür offen ist. Sobald man die Tür schließt soll das Rollo selber runter fahren.

Als sensor habe ich einen HM-SEC-RHS im Einsatz.

If abfragen gibt es ja leider nicht :(

Kann mir jemand helfen, wie der JAVA code aussehen müsste ?

Danke

Maik


Bennemannc

Hallo,

? wieso gehen If Abfragen nicht? Hat das Device keine Status?
Das beim Schließen wäre ein Fall für notify - wenn close kommt, prüfen ob das Rolo unten sein sollt und wenn ja Fahrbefehl absetzen.
Wenn das Device (Türkontakt) einen Status hat, kann man den beim at abfragen.

Gruß Christoph
Cubietruck, Fhem 5.8
CC-RT-DN|LC-SW2-FM|RC-12|RC-19|LC-SW4-BA-PCB|LCp-SW1-BA-PCB|ES-PMSw1-Pl|LC-Bl1PBU-FM|PBI-4-FM|CC-VD|CC-TC|SEC-SC(2)|RC-KEY3-B|LC-Sw1PBU-FM|PB-2-FM|WDS100-C6-O|WDC7000|LC-Bl1-FM
Module: Dewpoint,FB_Callmonitor,HCS,Panstamp,at,notify,THRESHOLD,average,DOIF

Puschel74

Hallo,

ZitatIf abfragen gibt es ja leider nicht
Das Einsteiger.pdf bist du aber schonmal kurz überflogen?
Ich meine Uli hat ein paar Beispiele drin mit if - ich kann mich aber auch täuschen.

Aber hier hat es mal ein paar if-Abfragen:
http://www.fhemwiki.de/wiki/Alarmanlage
mit Perl-if und hier
http://forum.fhem.de/index.php/topic,17895.0.html
findest du sicher ein paar Beispiele mit Damians FHEM-IF

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

bugster_de

ZitatKann mir jemand helfen, wie der JAVA code aussehen müsste ?
welcher JAVA Code? FHEM ist doch Perl ?!

Wie auch immer: ich habe das bei mir so gelöst:
alle Befehle zum Steuern der Rolladen aus der Automatik heraus werden über eine Perlroutine gesetzt. Diese macht dann folgendes:
1.) gewünschte Richtung heraus finden: ist Sollwert größer oder kleiner dem Istwert
2.) wenn hochfahren --> dann Befehl senden (hoch ist ja unkritisch)
3.) wenn runter fahren, dann prüfen, ob die Türe offen ist. Falls geschlossen, dann runterfahren
4.) falls offen, dann setze ich mir einen Timer (at) in einer Minute und rufe die Routine (also sich selbst) einfach nochmal auf. Somit geht das Spiel bei 1.) wieder los.

Wenn nun also die Automatik beschliesst, dass der Rolladen zugehen muß, die Türe aber offen ist, wird das jede Minute ausgeführt so lange bis dann halt die Türe mal zu ist und der Rolladen geschlossen werden kann. Wenn man also die Türe schliesst geht der Rolladen nach spätestens einer Minute runter.

dieda

Schau dir mal das IF im Einsteiger Wiki auf Seite 41 an. Dann noch das Sunset einbauen, die Bedingung anpassen.

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

Maiks

Hallo,

ich habe ein altes Dokument vom Letzten Jahr, was ich zum Aufsetzen von FHEM genutzt habe, da stand nichts von IF befehlen drinnen oder ich habe es übersehen.

Werde jetzt mal die ganzen Antworten durchgehen und ins WIKI schauen.
Danke erst mal an alle für die Antworten.


Deudi

Habe ich ähnlich gelöst wie bugster_de, jedoch mache ich keine zyklische Prüfung:
1. Bei sunset wird Variable RolloSollzustand auf "zu" gesetzt und Rollo geschlossen falls Tür nicht offen
2. Wird der Türgriff verändert und RolloSollzustand ist "zu" erfolgt auch eine Prüfung:
  - Wurde die Tür geschlossen, fährt Rollo zu
  - Wurde die Tür geöffnet, fährt Rollo auf
  - Wurde die Tür gekippt, fährt Rollo auf 10 %, dadurch gehen nur die Schlitze auf
3. Bei sunrise geht RolloZustand auf "offen" und die Rollos werden hochgefahren

Dabei arbeiten die Funktionen 1 und 2 quasi Hand in Hand. Ist bei sunset die Tür offen, passiert einfach nichts und das muss auch nicht erneut geprüft werden. Wird später die Tür geschlossen, geht der Rollo runter. Stelle ich fest, dass der Rotwein noch draussen steht und ich mache die Tür wieder auf, geht der Rollo wieder auf und mit Schliessen der Tür wieder zu. Kippe ich beim Kochen zwecks Zuluft für die Abzugshaube ein Fenster, geht der Rollo "auf Schlitz" usw. Sehr praktisch.

Gruß Deudi
Gigabyte Brix, Ubuntu 16.04.3 LTS, Homematic, Z-Wave, EnOcean, Shelly@MQTT, SIGNALduino, JeeLink DAVIS-Sketch

Maiks

So habe es  bei mir laufen ;)   Danke an alle hinweise.

Habe meine Konfig mal angehängt.



#####################
define WZTuer_Sensor dummy
attr WZTuer_Sensor room Wohnzimmer

define WZTuer_Jalousie_ZuS at *{sunset("REAL",0)} IF ([S_WZ_Tuer] eq "closed") (set J_WZ_Tuer down 100,set WZTuer_Sensor zu) ELSE (set WZTuer_Sensor vab)
attr WZTuer_Jalousie_ZuS room Wohnzimmer

define testTT notify S_WZ_Tuer:open IF ([WZTuer_Sensor] eq "zu") (set J_WZ_Tuer up 100,set WZTuer_Sensor vab)
attr testTT room Wohnzimmer

define testTT1 notify S_WZ_Tuer:closed IF ([WZTuer_Sensor] eq "vab") (set J_WZ_Tuer down 100,set WZTuer_Sensor zu)
attr testTT1 room Wohnzimmer

define WZTuer_Jalousie_Auf at *{sunrise("REAL",0,"12:05","13:00")} IF ([S_WZ_Tuer] eq "closed") (set J_WZ_Tuer up 100,set WZTuer_Sensor auf) ELSE (set WZTuer_Sensor vauf)
attr WZTuer_Jalousie_Auf room Wohnzimmer

define testTT2 notify S_WZ_Tuer:closed IF ([WZTuer_Sensor] eq "vauf") (set J_WZ_Tuer up 100,set WZTuer_Sensor auf)
attr testTT2 room Wohnzimmer