FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: vw2audi am 19 April 2017, 00:43:20

Titel: Reading Level bei Regen berücksichtigen Jalousiensteuerung
Beitrag von: vw2audi am 19 April 2017, 00:43:20
Hallo Comunity,

hier zu meinem Problem. Ich versuche es eine Steuerung der Jalousien bei Regen zu realisieren. Das ist soweit kein Probem:
Die Jalousien werden nach einer orpgrammierten Zeit gesteuert.

Jetzt kommt zusätzlich noch eine Komponente hinzu. Der Regensensor. Sobald es regnet sollen die Jalousien auf 50% gefahren werden.
Natürlich nur dann nicht, wenn der aktuelle Stand bereits >50% ist. Ich wollte es mit einem Doif realisieren, kann mir da jemand helfen?

define di.RO.Dummy_ru_regen DOIF ([RO.Kammer:level]>50 and [Regensensor] eq "rai") (set RO.Kammer 65)
attr di.RO.Dummy_ru_regen do always


Leider scheint es den level nicht korrekt auszulsen.
Titel: Antw:Reading Level bei Regen berücksichtigen Jalousiensteuerung
Beitrag von: CoolTux am 19 April 2017, 02:08:26

define di.RO.Dummy_ru_regen DOIF (["Regensensor: rain"]) (set RO.Kammer:FILTER=level!=50 65)
attr di.RO.Dummy_ru_regen do always


Ich würde das Ereignis gesteuert machen. Siehe Commandref. Die Abfrage 50% kannst Du im set Befehl mit machen. Sorge mit event-on-change-reading beim Rolladen Device dafür das kein Dauer Event erzeugt wird, sondern nur wenn sich das Reading ändert.

Bei Fragen wäre ein
list Rolladendevicename
gut.
Titel: Antw:Reading Level bei Regen berücksichtigen Jalousiensteuerung
Beitrag von: vw2audi am 19 April 2017, 11:37:46
Hallo und danke für den Tipp.
Sicher, das es dann nur reagiert, wenn der Rolladen über 50% steht und nichrt genau nur bei 50%?
Der Sinn ist ja, das der Rolladen bei regen nur dann runter fährt, wenn er nicht bereits schon unten ist.
Titel: Antw:Reading Level bei Regen berücksichtigen Jalousiensteuerung
Beitrag von: CoolTux am 19 April 2017, 11:47:48
Hast natürlich Recht. Hatte nicht ganz gelesen. Darfst es gerne anpassen  :)
Titel: Antw:Reading Level bei Regen berücksichtigen Jalousiensteuerung
Beitrag von: vw2audi am 19 April 2017, 17:41:00
Habe es gerade funktioniert,
tut sich aber nix

define di.RO.Dummy_ru_regen DOIF (["Regensensor: rain"]) (set RO.Kammer:FILTER=level!>65 65)
attr di.RO.Dummy_ru_regen do always


hatte es dann auch mal vorsichtshalber mit dem probiert aber auch nix:

define di.RO.Dummy_ru_regen DOIF (["Regensensor: rain"]) (set RO.Kammer:FILTER=level!<65 65)
attr di.RO.Dummy_ru_regen do always
Titel: Antw:Reading Level bei Regen berücksichtigen Jalousiensteuerung
Beitrag von: CoolTux am 19 April 2017, 18:09:20
Ausrufezeichen weg. Negation geht nicht bei kleiner größer
Titel: Antw:Reading Level bei Regen berücksichtigen Jalousiensteuerung
Beitrag von: vw2audi am 19 April 2017, 21:45:04
Hallo und danke noch einmal für die Hilfe.

jetzt habe ich noch einen. Also runter bei Regen geht jetzt super.
Jetzt sollen die aber bei Trocken auch wieder hoch gehen.
komischerweise hatte es einmal funktioniert, aber nur bei dem Rollo in der Küche !? Sehe da so jetzt keinen Unterschied.

define di.RO.Dummy_ru_regen DOIF ([Regensensor] eq "rain") (set RO.Kammer:FILTER=level<65 65;; set RO.Kueche:FILTER=level<65 65;; set RO.Esszimmer:FILTER=level<65 65)
attr di.RO.Dummy_ru_regen do always

define di.RO.Dummy_ho_regen DOIF ([Regensensor] eq "dry") (set RO.Kammer:FILTER=level!=65 0;; set RO.Kueche:FILTER=level!=65 0;; set RO.Esszimmer:FILTER=level!=65 0)
attr di.RO.Dummy_ho_regen do always
Titel: Antw:Reading Level bei Regen berücksichtigen Jalousiensteuerung
Beitrag von: CoolTux am 20 April 2017, 06:16:20
Das schöne an DOIF ist unter anderem das es auf Basis von Zustanden schalten kann.
Ein einziges DOIF

define di.RO.Dummy_regen DOIF ([Regensensor] eq "rain") (set RO.Kammer:FILTER=level<65 65;; set RO.Kueche:FILTER=level<65 65;; set RO.Esszimmer:FILTER=level<65 65) DOELSEIF ([Regensensor] eq "dry") (set RO.Kammer:FILTER=level!=65 0;; set RO.Kueche:FILTER=level!=65 0;; set RO.Esszimmer:FILTER=level!=65 0)

Ganz wichtig hierbei, mache das do always weg.

Kleiner Tip.
Persönlich würde ich immer versuchen Eventbasiert (Commandref zu DOIF, Ereignisbasiert) zu triggern.

define di.RO.Dummy_regen DOIF (["Regensensor: rain"]) (set RO.Kammer:FILTER=level<65 65;; set RO.Kueche:FILTER=level<65 65;; set RO.Esszimmer:FILTER=level<65 65) DOELSEIF (["Regensensor: dry"]) (set RO.Kammer:FILTER=level!=65 0;; set RO.Kueche:FILTER=level!=65 0;; set RO.Esszimmer:FILTER=level!=65 0)

Hier müsstest Du aber den Code bitte noch mal prüfen, gerade auch ob das mit Deinem tatsächlichen Event überein stimmt. Den Event sieht man im Eventmonitor.