Tür auf --> Licht an (bei Dunkelheit) / Rollo hoch

Begonnen von mfeske, 14 Februar 2015, 13:36:33

Vorheriges Thema - Nächstes Thema

Zrrronggg!

ZitatMAX Kontakt_Garten opened

Okiay, dann sollte

define Kontakt_Garten_offen notify Kontakt_Garten:opened  set Gartentuer offen

Funktionieren. Geht das? Wenn ja, können wir von da aus weitermachen.

Ob nun mit Perl-if oder wie Damian mit Fhem-IF ist im Grunde egal, das Prinzip ist gleich.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

mfeske

Hallo Zrrronggg! das notify Kontakt_Garten_notify Kontakt_Garten { if (Value("Kontakt_Garten") eq "closed") { fhem("set Gartentuer zu") } else { fhem("set Gartentuer offen") }} funktioniert und schaltet meinen dummy Gartentuer hin und her. Von dem was Damian da geschrieben hat, verstehe ich leider gar nichts :-( Ich will ja wenigstens ein wenig davon verstehen was ich eingebe.
Gruß
Micha
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

Damian

Zitat von: mfeske am 17 Februar 2015, 14:42:45
Von dem was Damian da geschrieben hat, verstehe ich leider gar nichts :-( Ich will ja wenigstens ein wenig davon verstehen was ich eingebe.
Gruß
Micha

Ausführliche Dokumentation zum Modul findest du hier:

http://fhem.de/commandref_DE.html#DOIF

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Zrrronggg!

Zitat von: mfeske am 17 Februar 2015, 14:42:45
Hallo Zrrronggg! das notify Kontakt_Garten_notify Kontakt_Garten { if (Value("Kontakt_Garten") eq "closed") { fhem("set Gartentuer zu") } else { fhem("set Gartentuer offen") }} funktioniert und schaltet meinen dummy Gartentuer hin und her. Von dem was Damian da geschrieben hat, verstehe ich leider gar nichts :-( Ich will ja wenigstens ein wenig davon verstehen was ich eingebe.
Gruß
Micha

Ach so.

Okay. Was war dann die Frage? Also das Damians Modul lese ich jetzt nicht für dich durch um das zu verstehen und dann zu erklären. ;-)
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

mfeske

Hallo Zrrronggg,

es ging jetzt um :

--> Es ist dunkel (so eine Funktion habe ich schon bei der Weihnachtsbeleuchtung) sunset_abs('HORIZON=-2',0,"15:30", der Rolladen02 (schon eingerichtet in FHEM) ist unten und LED01_aussen, LED02_aussen sind (LED_aussen schaltet beide) off.
Wenn jetzt Kontakt_Flur open ist soll Rolladen02 hoch gehen und wenn es dunkel ist soll LED_aussen auf on gehen.
Wenn jetzt Kontakt_Flur closed ist soll Rolladen02 runter fahren, wenn es zum Beispiel nach 20:00 Uhr ist und LED_aussen auf off gehen.

Gruß
Micha
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

Bennemannc

Hallo Micha,

das macht für mich so keinen Sinn
Beispiel:
Du kommst um 22:30 nach Hause und macht die Türe auf => Rollo hoch, Licht an ... Dann bist Du drinnen und die Türe wird geschlossen => Rollo wieder runter und Licht aus ??? Das ist für mich nicht sinnig.
Deshalb würde ich das OPEN mit einem Notify abfragen und das CLOSED in einem at der um 22:00 aufgerufen wird.

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

mfeske

Hallo Christoph,

mein Fehler ;-) Es ist die Terrassentür ;-)

Ich bin also drin, möchte raus, die Tür geht auf und das Rollo geht ggf. hoch und ggf. geht das Licht an. Ich komme zurück vom Holz holen. Mache die Tür zu und ggf. geht das Licht aus und ggf. geht das Rollo runter.

Gruß
Micha
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

Zrrronggg!

#22
Zitat--> Es ist dunkel (so eine Funktion habe ich schon bei der Weihnachtsbeleuchtung) sunset_abs('HORIZON=-2',0,"15:30", der Rolladen02 (schon eingerichtet in FHEM) ist unten und LED01_aussen, LED02_aussen sind (LED_aussen schaltet beide) off.
Wenn jetzt Kontakt_Flur open ist soll Rolladen02 hoch gehen und wenn es dunkel ist soll LED_aussen auf on gehen.
Wenn jetzt Kontakt_Flur closed ist soll Rolladen02 runter fahren, wenn es zum Beispiel nach 20:00 Uhr ist und LED_aussen auf off gehen.

Für Dunkel nehmen wir der Einfachheit halber mal isday.
!isday = es ist nachts
ich gehe ausserdem davon aus, das der Rolladen die Zustände "hoch" und "runter" kennt, das musst du ersetzen mit was immer das Teil kann.

define act_on_Kontact_Flur_open notify Kontact_Flur:open {if (!isday()) {fhem("set LED_aussen on")}} ; set Rolladen02 hoch

und

define act_on_Kontact_Flur_closed notify Kontact_Flur:closed { if($hour < 8 || $hour >= 20) { fhem ("set Rolladen02 runter ;; set LED_aussen off")}}

Beachte, dass das  macht was du sagst, nicht was du vermutlich meinst (das immer das wichtigste bei if -Geschichten, das man sich GENAU überlegt as man will), nämlich folgendes:
Wenn Kontact_Flur auf closed geht und wenn es GLEICHZEITIG  entweder nach 19 Uhr oder VOR 8 Uhr morgens ist, (nur) DANN geht der Rolladen runter und das Licht aus.

Vielleicht meinst du aber auch folgendes:

define act_on_Kontact_Flur_closed notify Kontact_Flur:closed { if($hour < 8 || $hour >= 20) { fhem ("set Rolladen02 runter")}} ; set LED_aussen off

Wenn Kontact_Flur auf closed geht das Licht aus, und wenn es GLEICHZEITIG entweder nach 19 Uhr oder VOR 8 Uhr morgens ist, DANN geht der Rolladen runter.

Deine Formulierung
ZitatWenn jetzt Kontakt_Flur closed ist soll Rolladen02 runter fahren, wenn es zum Beispiel nach 20:00 Uhr ist und LED_aussen auf off gehen.
interpretiere ich sprachlich eher wie Ersteres, ich vermute aber du MEINST eher zweiteres.
Daher meine Anmerkung man muss sich sorgfältig überlegen was man will und da sauch sauber aufschreiben. Sonst kommt man in Teufels Küche.

Naja, vielleicht kannst du damit rumspielen und das deinen Bedrüfnissen anpassen.

Disclaimer:
Alles nur so aus'm Kopp hingeschrieben nicht geprüft. Auch beim 2ten Beispiel könnte man natürlich mit isday arbeiten. Ich dachte ich nehm trotzdem mal Uhrzeiten, dann hast du ne Auswahl.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

mfeske

Hallo ,

Danke für Deine tolle Unterstützung. ich habe mir jetzt zwei notifys genommen und so wie Du es gesagt hast erst mal mit der Uhrzeit.
Die Funktion ist schon okay.
Tür auf --> Licht an, Rolladen hoch
Tür zu --> Licht aus, Rolladen runter

define act_on_Kontakt_Garten_closed notify Kontakt_Garten:closed { if($hour < 8 || $hour >= 18) { fhem ("set Rolladen02 on")}};; set LED_aussen off
attr act_on_Kontakt_Garten_closed room Wohnzimmer
define act_on_Kontakt_Garten_open notify Kontakt_Garten:opened { if($hour < 8 || $hour >= 18) { fhem ("set Rolladen02 off")}};; set LED_aussen on
attr act_on_Kontakt_Garten_open room Wohnzimmer


Ich würde das jetzt gerne noch verfeinern weiss aber nicht den richtigen Ansatzpunkt.

Sollte man eigentlich irgendwo prüfen ob der Rolladen überhaupt schon unten ist um ihn hoch zu fahren oder sagt man einfach hoch egal wo Du bist ?

Das Licht einschalten macht ja eigentlich auch nur bei entsprechender Dunkelheit Sinn, oder ? Ist sunset_abs und HORIZON dafür das richtige Schlagwort mit dem ich suchen sollte oder arbeitet man mit twilight?

Gruß
Micha
Hardware:
1 x Raspberry Pi Mod. B 512 MB
eq-3 2 x MAX! eTRV Heizungssteller, 1 x MAX! Fensterkontakt, 1 x MAX! Cube - LAN Gateway (ausser Betrieb)
Intertechno 1x ITZ-500, 3x ITT-1500, 9x ITR-1500, 3 x ITDL-1000, 2 x ITL-500
1 x CC1101-USB-Lite 433MHz (CUL433)  V3 1 x CC1101-USB-Lite 868MHz (CUL868)

Zrrronggg!

Klar kann man prüfen ob der Rolladen oben oder unten ist. Aber für die meisten Funksysteme ist das egal. Bei Funksystemen die keine echte Rückmeldung haben (IT / FS20 etc) ist es sogar besser nicht zu prüfen ob die Rolladen oben oder unten sind, denn das prüft immer nur das was Fhem zuletzt gesendet hat. Das stimmt idR zwar mit der Rolllade überein, aber nicht garantiert. Braucht ja nur mal einer vor Ort bediehnt zu haben oder ein Signal ist nicht richtig angekommen. So gesehen ist es sogar robuster, das Signal zu senden EGAL wie die Rolllade ist.

Zum Thema Licht: ich arbeite da idR mit isday bzw !isday. Das ist eigentlich besser weil man !isday leicher für eine if Test verwenden kann. Sunrise/sunset etc. ist besser für
at
also Zeitpunktbestimmung.

Wenn einem isday ungenau ist (z.b. weil man im Tal wohnt wo es früher dunkel wird oder so), kann man twilight nehmen. 


Wie man isday einsetzt siehst du ja schon an einem meiner Beispiele.
define act_on_Kontact_Flur_open notify Kontact_Flur:open {if (!isday()) {fhem("set LED_aussen on")}} ; set Rolladen02 on
sollte die LED nur anmachen wenn es dunkel ist, die Rollade aber in jedem Falle hoch.
Das müsste doch genau dein Ziel sein.

FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL