[Gelöst]Markise rein bei Regen und raus wenn Regen vorbei ist

Begonnen von elmer, 04 Mai 2017, 17:57:48

Vorheriges Thema - Nächstes Thema

elmer

Ich habe einen Somfy io Motor in meiner Markise und einen Regensensor von Homematic.

Ist es möglich, mit einem notify oder Doif, die Markise so zu steuern, das die Markise rein fährt wenn es regnet, wenn der Regen vorbei ist, soll die Markise wieder raus fahren.

Die Markise soll aber nur raus fahren, wenn der Regen vorbei ist, und sie vorher draußen war, wenn die Markise zu war, und es regnet, soll sie natürlich nich rausfahren wenn der Regen vorbei ist.

An der Markise ist noch ein Schattenplus mit einem Somfy RTS Motor, dieser müsste wenn er ausgefahren ist ca. 10 Sekunden vor der Markise rauf gehen, und wenn die Markise wieder raus fährt muss er ca. 10 Sekunden später runter gehen.


Thorsten Pferdekaemper

Hi,
kannst Du denn die beiden Motoren prinzipiell mit FHEM steuern?
Gruß,
   Thorsten
FUIP

elmer

Steuern kann ich beide Motoren, den io Motor mit Umweg über das Tahoma Modul.

Thorsten Pferdekaemper

Hi,
ich würde da mal mit zwei notifies anfangen: Eins für "es fängt zu regnen an" und eins für "es hört zu regnen auf". Das erste fragt ab, ob das Teil draußen ist, speichert die momentane Stellung (z.B. mit setreading) und fährt dann rein.
Das zweite schaut nach, ob eine Stellung gespeichert ist, fährt dorthin und löscht die gespeicherte Stellung mit deletereading.
Gruß,
   Thorsten
FUIP

elmer

Jetzt merke ich mal so richtig das ich noch voll im Anfansstadium bin >:(

Ich habe das ganze jetzt mal mit doif probiert, notify kriege ich noch rein gar nix auf die Reihe, aber es geht nichts.

(["HM_34C809_Rain: rain"]) (set tahoma_1026532:FILTER=DeploymentState>10 0;) DOELSEIF (["HM_34C809_Rain: dry"]) (set tahoma_1026532:FILTER=DeploymentState=0 100;;)

Wenn ich nur rein fahren möchte wenn es Regnet und raus wenn der Regen aus ist wüsste ich ja wie ich das ganze machen kann, aber da die Markise nur rein und raus soll wenn sie draußen war, habe ich irgendwie keinen Plan wie ich das ganze umsetzen soll.

Hier mal ein List von den 3 Geräten

Internals:
   COMMANDS   dim:slider,0,1,100 cancel:noArg close:noArg delayedStopIdentify deploy:noArg down:noArg getName:noArg identify:noArg my:noArg open:noArg refreshMemorized1Position:noArg setClosure setDeployment setMemorized1Position setName setPosition setSecuredPosition startIdentify:noArg stopIdentify:noArg undeploy:noArg up:noArg wink
   DEF        DEVICE io://0803-1025-4201/1026532
   INTERVAL   0
   IODev      tahoma1
   NAME       tahoma_1026532
   NR         114
   NTFY_ORDER 50-tahoma_1026532
   STATE      open
   SUBTYPE    DEVICE
   TYPE       tahoma
   device     io://0803-1025-4201/1026532
   fid        1026532
   inClass    Awning
   inControllable io:HorizontalAwningIOComponent
   inExecId   finished
   inExecState 4
   inLabel    SUNEA io
   inPlaceOID 94cd8a9a-bd20-461a-bc86-f12e1b43896c
   inType     1
   Readings:
     2017-05-06 17:42:00   DeploymentState 14
     2017-05-06 14:23:53   Memorized1PositionState 50
     2017-05-06 14:23:53   NameState       SUNEA io
     2017-05-06 17:42:00   OpenClosedState open
     2017-04-22 11:10:04   PriorityLockLevelState comfortLevel1
     2017-04-22 11:09:31   PriorityLockOriginatorState wind
     2017-05-06 14:23:53   PriorityLockTimerState 0
     2017-05-06 17:42:00   RSSILevelState  68.0
     2017-05-06 14:23:53   StatusState     available
     2017-05-06 17:42:00   devicestate     open
Attributes:
   IODev      tahoma1
   alexaName  Markise
   alexaRoom  Wohnzimmer
   alias      Markise
   devStateIcon .*open:fts_sunblind_80@red .*:fts_sunblind_10@green
   eventMap   down:auf up:zu cancel:stop
   genericDeviceType blind
   group      Rollo
   homebridgeMapping CurrentPosition=dim TargetPosition=dim,cmd=dim,delay
   icon       fts_sunblind_60
   levelInvert 1
   room       alexa,tahoma
   stateFormat devicestate


Internals:
   DEF        34C80901
   NAME       HM_34C809_Rain
   NOTIFYDEV  global
   NR         281
   NTFY_ORDER 50-HM_34C809_Rain
   STATE      dry
   TYPE       CUL_HM
   chanNo     01
   device     HM_34C809
   Readings:
     2017-04-20 16:27:51   R-cndTxThrhHi   2900 mV
     2017-04-20 16:27:51   R-cndTxThrhLo   2850 mV
     2017-04-20 16:27:51   R-eventFilterTimeB 0 s
     2017-04-20 16:27:51   R-evntRelFltTime 120 s
     2017-04-20 16:27:51   R-highHoldTime  300 s
     2017-04-20 16:27:51   R-sign          off
     2017-04-20 16:27:51   R-transmitTryMax 6
     2017-05-06 16:14:17   lastRain        2017-05-06 16:07:16
     2017-05-06 16:14:17   recentStateType info
     2017-05-06 16:14:17   state           dry
     2017-05-06 16:14:17   timedOn         off
   Helper:
     Expert:
       def        1
       det        1
       raw        0
       tpl        0
     Role:
       chn        1
Attributes:
   alias      Regensensor Status Anzeige
   expert     1_allReg
   group      Regensensor
   model      HM-Sen-RD-O
   peerIDs    00000000,
   room       System Geräte


Internals:
   ADDRESS    000001
   DEF        000001
   IODev      CUL_1
   NAME       Markise
   NR         59
   STATE      open
   TYPE       SOMFY
   move       stop
   Code:
     1          000001
   Readings:
     2017-04-30 20:27:13   enc_key         AC
     2017-04-30 20:27:13   exact           0
     2017-03-07 13:08:15   parsestate      off
     2017-04-30 20:27:13   position        0
     2017-04-30 20:27:13   rolling_code    01AC
     2017-04-30 20:27:13   state           open
Attributes:
   IODev      CUL_1
   alexaName  Schatten Plus
   alexaRoom  Wohnzimmer
   alias      Schattenplus
   devStateIcon .*open:fts_sunblind_0@green .*closed:fts_sunblind_90@red
   drive-down-time-to-100 22.0
   drive-down-time-to-close 27.0
   drive-up-time-to-100 5.0
   drive-up-time-to-open 27.0
   eventMap   on:auf off:zu
   genericDeviceType blind
   group      Rollo
   homebridgeMapping TargetPosition=cmd=pos
   icon       fts_sunblind_100
   room       System Geräte,alexa
   verbose    1
   webCmd     stop:zu:10:20:30:40:50:60:70:80:90:auf

Thorsten Pferdekaemper

Zitat von: elmer am 06 Mai 2017, 18:03:48
Ich habe das ganze jetzt mal mit doif probiert,
Da kann ich Dir nicht helfen, DOIF ist für mich zu kompliziert.
Gruß,
  Thorsten
FUIP

Ellert

Ohne mal auf die Bezeichung Deiner Geräte einzugehen, geht es im Prinzip so

([?Markise] eq "ausgefahren" and [Regensensor] eq "es regnet")
   (set Schattenplus einfahren) (set Markise einfahren)

DOELSEIF ([?Markise] eq "eingefahren" and [Regensensor] eq "es regnet nicht")
   (set Markise ausfahren) (set Schattenplus ausfahren)

und das Attribut
wait 0,10:0,10

elmer

#7
@Ellert

Danke, das werde ich mal testen.

elmer

Ich habe jetzt erst mal die eine Markise getestet mit:

([tahoma_1026532] eq "open" and [HM_34C809_Rain] eq "rain") (set tahoma_1026532 closed) DOELSEIF ([tahoma_1026532] eq "closed" and [HM_34C809_Rain] eq "dry")
   (set tahoma_1026532 open)


Leider ohne Erfolg, wenn es Regnet bleibt sie ausgefahren.


elmer

2017-05-06 21:41:12 tahoma tahoma_1026532 RSSILevelState: 70.0
2017-05-06 21:41:12 tahoma tahoma_1026532 DeploymentState: 60
2017-05-06 21:41:12 tahoma tahoma_1026532 devicestate: open
2017-05-06 21:41:12 tahoma tahoma_1026532 OpenClosedState: open


Was seltsam ist, wenn ich die Markise jetzt zu mache fährt diese sofort wieder raus, scheint irgendwie also zu reagieren auf das Doif, leider macht sie das jetzt obwohl der Regensensor bereits seit 2 Stunden keinen Regen meldet.

elmer

([tahoma_1026532] eq "open" and [HM_34C809_Rain] eq "rain") (set tahoma_1026532 zu) DOELSEIF ([tahoma_1026532] eq "closed" and [HM_34C809_Rain] eq "dry")
   (set tahoma_1026532 auf)


So funktioniert es scheinbar, der Tipp mit dem Event Monitor brachte mich schon mal weiter, die Markise sendet auf und zu.

Aber leider ignoriert sie die Voraussetzung das sie nur ausfahren soll wenn sie vor dem Regen auf war, sie fährt immer raus sobald der Regen vorbei ist, auch wenn sie vorher geschlossen war.

lenn1

Es gibt in deinem DOIF ja auch nur die Möglichkeit:

I. markise offen & regen  => markise einfahren

ansonsten

II. markise zu & trocken => markise ausfahren

Woher soll FHEM nun wissen, dass die Markise nicht ausfahren soll bzw dass sie vorher nicht auf war?
Du musst den alten Status irgendwie zwischenspeichern. zB als Reading im DOIF (sofern das geht, bin nicht ganz sicher) und dann , sollte der Fall eintreten, dass es nichtmehr regnet (Fall II.) die Markise auf den alten Status setzen.


Ich habe ein ähnliches Problem mit Thermostaten und der Temperatur die eingestellt war, bevor ein Fenster geöffnet wurde. Hab das auch noch nicht ganz gebacken bekommen... :(

Thorsten Pferdekaemper

Hi,
siehe auch Antwort #3:
https://forum.fhem.de/index.php?topic=71518.msg630401#msg630401
Da Ihr Euch jetzt aber auf DOIF eingeschossen habt wird mir das auch zu kompliziert.
Gruß,
   Thorsten
FUIP

Ellert

#14
Zitat von: lenn1 am 07 Mai 2017, 07:37:29
Es gibt in deinem DOIF ja auch nur die Möglichkeit:

I. markise offen & regen  => markise einfahren

ansonsten

II. markise zu & trocken => markise ausfahren

Woher soll FHEM nun wissen, dass die Markise nicht ausfahren soll bzw dass sie vorher nicht auf war?
Du musst den alten Status irgendwie zwischenspeichern. zB als Reading im DOIF (sofern das geht, bin nicht ganz sicher) und dann , sollte der Fall eintreten, dass es nichtmehr regnet (Fall II.) die Markise auf den alten Status setzen.


Ich habe ein ähnliches Problem mit Thermostaten und der Temperatur die eingestellt war, bevor ein Fenster geöffnet wurde. Hab das auch noch nicht ganz gebacken bekommen... :(
Die Markise wird bei "trocken" nur rausgefahren, wenn der Zustand des DOIF vorher "reinfahren wg. Regen" war, dh. das DOIF nimmt nur wechselweise die Zustände an.

Zitat von: elmer am 06 Mai 2017, 21:49:07
2017-05-06 21:41:12 tahoma tahoma_1026532 RSSILevelState: 70.0
2017-05-06 21:41:12 tahoma tahoma_1026532 DeploymentState: 60
2017-05-06 21:41:12 tahoma tahoma_1026532 devicestate: open
2017-05-06 21:41:12 tahoma tahoma_1026532 OpenClosedState: open


Was seltsam ist, wenn ich die Markise jetzt zu mache fährt diese sofort wieder raus, scheint irgendwie also zu reagieren auf das Doif, leider macht sie das jetzt obwohl der Regensensor bereits seit 2 Stunden keinen Regen meldet.
Ich hatte in meinem Vorschlag noch Fragezeichen, s. https://fhem.de/commandref_DE.html#DOIF_Zeitintervalle_Readings_und_Status_ohne_Trigger

Sonst gibt es wohl noch unerwartete Events nach 2 Stunden

Du kannst die Bedingungszweige gegeneinander verriegeln, indem Du and [$SELF] =~ "^(cmd_2|initialized)\$" in Zweig 1 einbaust und and [$SELF] eq "cmd_1" in Zweig 2 , das sollte aber nicht notwendig sein.

Du solltest auch diesen Tipp berücksichtigen, 2. Absatz https://forum.fhem.de/index.php/topic,71513.msg630898.html#msg630898

Das grundsätzliche Verhalten von DOIF ist hier ausführlicher beschrieben, falls die Commandref nicht ausreicht https://wiki.fhem.de/wiki/DOIF/Einsteigerleitfaden,_Grundfunktionen_und_Erl%C3%A4uterungen