Bitte um Denkanstoß

Begonnen von SahraDeath, 10 Dezember 2015, 08:40:44

Vorheriges Thema - Nächstes Thema

SahraDeath

Hallo
ich suche einen Denkanstoß, da ich mit Programmieren nicht all zu viel am Hut habe.

Zur Zeit steure ich meine Rollläden mittels at Befehl:
*07:00 set eg.rolllade.garten.links on
*{sunset(0,"17:00","22:00")} set eg.rolllade.garten.links off

Jetzt habe ich an der Tür 2 Sensoren, einen oben und einen unten. Damit ich erkennen kann, ob die Schiebetür geschlossen, offen oder gekippt ist.
Fensterkontakt_Esszimmer_oben
Fensterkontakt_Esszimmer_unten
Diese senden mir ein open/close

Jetzt gibt es folgende Wünsche:
- Das Hochfahren per "at" der Rolllade, kann vermutlich so bleiben.
- für das Runterfahren gilt die Bedingung:
   - auf "on" Fahren wenn sunset erreicht ist, nicht aber, wenn beide Kontakte offen sind
   - auf "on" Fahren wenn sunset erreicht ist, wenn beide Kontakte wieder geschlossen werden   
   - auf  90% Fahren wenn sunset erreicht ist, wenn der obere Kontakt offen und der untere zu ist
   - auf  90% Fahren wenn sunset erreicht ist, wenn der obere Kontakt offen und der untere wieder geschlossen wird

Ich vermute, dass ich das Herunterfahren der Rolllade mittels Sunset nicht direkt machen kann und die Bedingung in einem "Satz" schreiben kann.

Könnte eine Lösung in etwa so aussehen:
3 x Dummy um die möglichen Zustände der Rolllade zu definieren: on:off:90
[Rolllade_soll_on / Rolllade_soll_off / Rolllade_soll_90]

1 x Dummy für das Herunterfahren nach sunset definieren
[Rolllade_soll_off_sunset]

Mittels DoIF die 3 Zustände der Rolllade definieren, aus dem Status des Dummys "Sunset" und den beiden Türsensoren welches dann eins der 3 Dummys für die Rollladenzustände setzt.

Dann mittels Notifys die Dummys Abfragen, welche dann die Rolllade auf on, off oder 90 setzt.


Ginge das so? Geht es einfacher? Oder sollte ich das einen Fachmann machen lassen :-)

Danke
Gruß Bernd
FHEM auf Intel NUC i5 mit ubuntu 14.04, CUL, JeeLink, HMLAN, 10x TX29DTH-IT, 8x MH-WDS30-OT2-SM, 9x HM-LC-BL1-FM, 8x IT Zwischenstecker, 1x IT 12V Dimmer, 5x HM-CC-RT-DN, 1x HM-WDS10-TH-O, 3x HM-WDS30-T-O, 1x HM-SEC-MDIR-2, 1x HM-SEC-SC-2, 1xHM-SEC-RHS, 1x HM-Sec-SCo, 2x HM-LC-SW4-WM

igami

Ein DOIF könnte inetwa so aussehen

([07:00])
  (set rollade off)
DOELSEIF([{sunset...}] and
[oben] eq "closed" and
[unten] eq "closed")
  (set rollade on)
DOELSEIF([{sunset...}] and
[oben] eq "open" and
[unten] eq "closed")
  (set rollade 90%)
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

Muschelpuster

Hallo Bernd,

igami hat jetzt zwar schon kurz das geschrieben, was ich etwas ausführlicher schreiben wollte, aber deswegen lösche ich meinen Text jetzt nicht  8)

Das sollte ohne Dummy mit einem DOIF gehen. Da ich da auch nicht der Held bin, erarbeite ich mir das, indem ich eine einfache Definition baue und diese Schritt für Schritt erweitere.
An die automatischen Rollläden nach Zeit bzw. Sonnenuntergang habe ich mich zwar noch nicht getraut, aber ich fahre meine Rollläden nach der Solarleistung etwas rauf & runter um eine automatische Verschattung zu haben. Um diese Automatik deaktivieren zu können habe ich einen Dummy. Das sieht dann so aus:
define di_Verschattung_1 DOIF ([Solar:total_pac]>2.6 and [HM_WZ_Rolladen_F:pct]>88 and [HM_WZ_Rolladen_T:pct]>88 and [HM_Tuer_WZ_Terasse:state] ne "open" and [du_verschattung:state] eq "an") (set HM_WZ_Rolladen_. pct 88)Die Prüfung auf den Türkontakt mit ne "open" ermöglicht mir, dass die Funktion auch bei gekippter Terassentür aktiv ist. Zurück geht es dann so:define di_Verschattung_0 ([Solar:total_pac]<2.2 and ([HM_WZ_Rolladen_F:pct]==88 or [HM_WZ_Rolladen_T:pct]==88)) (set HM_WZ_Rolladen_. pct 100)Ich gehe davon aus, dass es niemand schafft, manuell die Rolläden auf 88% zu fahren und das ist damit mein Zeiger, dass die automatische Verschattung nicht manuell verändert wurde. Hier verzichte ich nun auch auf die Prüfung des Dummy. Wenn man also während der aktiven Verschattung die Automatik abstellt, gehen die Rolläden noch hoch, aber eben beim nächsten Mal nicht runter.
Das ist nicht Deine Lösung, aber Du wolltest ja einen Denkanstoß  ;)
Wie schon von igami beschrieben müssen da nur ein paar DOELSEIF dazu, denn geht das schon.

halbautomatische Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

SahraDeath

Ah, ja, das könnte meine Lösung werden. Ich werde mit der DOELSEIF mal meine Bedingung versuchen zu beschreiben, dass scheint mir lösbar zu sein  :).

Ich danke Euch schon mal !

Richtig: mir ist ein Denkanstoß lieber als eine Lösung, da sich selbst erarbeitetes sich einfacher merken lässt und für weitere Probleme es leichter wird selber Lösungen zu finden.

Gruß Bernd

FHEM auf Intel NUC i5 mit ubuntu 14.04, CUL, JeeLink, HMLAN, 10x TX29DTH-IT, 8x MH-WDS30-OT2-SM, 9x HM-LC-BL1-FM, 8x IT Zwischenstecker, 1x IT 12V Dimmer, 5x HM-CC-RT-DN, 1x HM-WDS10-TH-O, 3x HM-WDS30-T-O, 1x HM-SEC-MDIR-2, 1x HM-SEC-SC-2, 1xHM-SEC-RHS, 1x HM-Sec-SCo, 2x HM-LC-SW4-WM