Hauptmenü

DOIF Rolladen

Begonnen von no_Legend, 01 Juni 2015, 15:03:10

Vorheriges Thema - Nächstes Thema

no_Legend

Hallo Leute,

ich will mir gerade eine kleine Steuerung für die Rolladen basteln, klappt aber irgendwie nicht richtig

Was ich will:
1. Schalter um das automatische hochfahren auszusetzen (habe einen Dummy mit on and off definiert
2. Zwei Zeiten mit Sunrise abhängig vom Wochentag zum Hochfahren. Sa + So später unter der Woche früher.

So sieht mein do if aus:
([1OG.Rolladen.Automatik] eq "on" and ($wday == 0 || $wday == 6) and [{sunrise("REAL",0,"09:00","10:30")}]) (set 1OG.*.Rolladen on) DOELSEIF ([1OG.Rolladen.Automatik] eq "on" and [{sunrise("REAL",0,"07:15","08:30")}]) (set 1OG.*.Rolladen on)

Problem:
Kann mir einer sagen ob das so richtig ist was ich getippt hab?
Oder hat jemand eine Möglichkeit die einfacher ist?

Danke und Gruß Robert
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

no_Legend

Hab glaub ich hin bekommen.
Wochenende sehe ich dann ob das andere sunrise funktioniert

([1OG.Rolladen.Automatik] eq "on" and ([{sunrise("REAL",0,"09:00","10:30")}|06])) (set 1OG.*.Rolladen on) DOELSEIF ([1OG.Rolladen.Automatik] eq "on" and ([{sunrise("REAL",0,"07:00","08:00")}])) (set 1OG.*.Rolladen on)
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

flurin

#2
Oder ein Tick einfacher:

|06 = |7


([?1OG.Rolladen.Automatik:on] and ([{sunrise("REAL",0,"09:00","10:30")}|7]))
  (set 1OG.*.Rolladen on)
DOELSEIF ([?1OG.Rolladen.Automatik:on] and ([{sunrise("REAL",0,"07:00","08:00")}|8]))
  (set 1OG.*.Rolladen on)


Edit: und noch kürzer ...


([?1OG.Rolladen.Automatik:on] and ([{sunrise("REAL",0,"09:00","10:30")}|7] or [{sunrise("REAL",0,"07:00","08:00")}|8]))
  (set 1OG.*.Rolladen on)


Ralli

... und das

attr ... do always

nicht vergessen ;). Oder stattdessen direkt auch mit einem

DOELSEIF ([?1OG.Rolladen.Automatik:on] and ([{sunset("REAL",0,"20:00","22:30")}|7] or [{sunset("REAL",0,"18:00","22:00")}|8])) (set 1OG.*.Rolladen off)

für einen zweiten Status im DOIF sorgen.
Gruß,
Ralli

Proxmox 8.2 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.3 dev, virtualisierte RaspberryMatic (3.75.7.20240420) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.1.5) und HMW-GW, FRITZBOX 7490 (07.57), FBDECT, Siri und Alexa

no_Legend

hi Flurin,

an das or hab ich garnicht gedacht: Shame on me.
Das mit 06=7 versteh ich nicht ganz. Besonders weil das andere ja 12345 also Mo-Fr ist.

Auch das ? vor dem Dummy versteh ich auch nicht ganz?

@Ralli danke für den Tip ein DOIF weniger.

Gruß Robert
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

flurin

Zitat von: no_Legend am 02 Juni 2015, 14:14:05
Das mit 06=7 versteh ich nicht ganz. Besonders weil das andere ja 12345 also Mo-Fr ist.

Auch das ? vor dem Dummy versteh ich auch nicht ganz?

Commandref-Auszug:

Zitat
Wochentagsteuerung

Hinter der Zeitangabe kann ein oder mehrere Wochentage als Ziffer getrennt mit einem Pipezeichen | angegeben werden. Die Syntax lautet:

[<time>|012345678] 0-8 entspricht: 0-Sonntag, 1-Montag, ... bis 6-Samstag sowie 7 für Wochende und Feiertage (entspricht $we) und 8 für Arbeitstage (entspricht !$we)

Anwendungsbeispiel: Radio soll am Wochenende und an Feiertagen um 08:30 Uhr eingeschaltet und um 09:30 Uhr ausgeschaltet werden. An Arbeitstagen soll das Radio um 06:30 Uhr eingeschaltet und um 07:30 Uhr ausgeschaltet werden.

define di_radio DOIF ([06:30|8] or [08:30|7]) (set radio on) DOELSEIF ([07:30|8] or [09:30|7]) (set radio off)

und

Zitat
Zeitintervalle, Readings und Stati ohne Trigger

Angaben in eckigen Klammern, die mit einem Fragezeichen beginnen, führen zu keiner Triggerung des Moduls, sie dienen lediglich der Abfrage.

Gruss
flurin

no_Legend

Ich hab das ganze gestern mal folgender Maßen eingepflegt:

define Rolladen.Automatik.Alle DOIF
([?1OG.Rolladen.Automatik:on] and ([{sunrise("REAL",0,"09:00","10:30")}|7] or [{sunrise("REAL",0,"07:00","08:00")}|8]))
  (set 1OG.*.Rolladen on)
DOELSEIF
([?1OG.Rolladen.Automatik:on] and ([{sunset("REAL",0,"20:00","22:30")}|7] or [{sunset("REAL",0,"18:00","22:00")}|8])) (set 1OG.*.Rolladen off)


Leider hat es heute morgen nicht funktioniert.
Hab ich irgendwo etwas falsch gemacht?

Gruß Robert
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

flurin

#7
Zitat von: no_Legend am 03 Juni 2015, 08:00:30
Leider hat es heute morgen nicht funktioniert.
Hab ich irgendwo etwas falsch gemacht?

Mein Fehler, so sollte es klappen:

define Rolladen.Automatik.Alle DOIF
([?1OG.Rolladen.Automatik] eq "on" and ([{sunrise("REAL",0,"09:00","10:30")}|7] or [{sunrise("REAL",0,"07:00","08:00")}|8]))
  (set 1OG.*.Rolladen on)
DOELSEIF
([?1OG.Rolladen.Automatik] eq "on" and ([{sunset("REAL",0,"20:00","22:30")}|7] or [{sunset("REAL",0,"18:00","22:00")}|8]))
  (set 1OG.*.Rolladen off)


no_Legend

Hab schon gedacht ich hab was falsche eingetippt.
Ich werd mal schauen ob das Script heute Abend funktioniert.
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

no_Legend

Mir ist gerade aufgefallen das es wohl besser wäre die Wochenenden Variable zu benutzten.
Somit hätte ich auch gleich die Feiertage mit abgefangen.

Da kümmere ich mich Sonntag drum.

Gruß Robert
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

Damian

Zitat von: no_Legend am 04 Juni 2015, 12:07:43
Mir ist gerade aufgefallen das es wohl besser wäre die Wochenenden Variable zu benutzten.
Somit hätte ich auch gleich die Feiertage mit abgefangen.

Da kümmere ich mich Sonntag drum.

Gruß Robert

7 entspricht $we inklusive Feiertage.

Auszug aus der Commandref zu DOIF

Zitat[<time>|012345678] 0-8 entspricht: 0-Sonntag, 1-Montag, ... bis 6-Samstag sowie 7 für Wochende und Feiertage (entspricht $we) und 8 für Arbeitstage (entspricht !$we)


Gruß

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

flurin

#11
@no_Legend

Zitat von: no_Legend am 04 Juni 2015, 12:07:43
Mir ist gerade aufgefallen das es wohl besser wäre die Wochenenden Variable zu benutzten.
Somit hätte ich auch gleich die Feiertage mit abgefangen.

Schade! hättest du Antwort Nr. 5 gelesen, wäre deine "Überlegung" überflüssig.  ;)

no_Legend

Zitat von: flurin am 04 Juni 2015, 13:42:29
@no_Legend

Schade! hättest du Antwort Nr. 5 gelesen, wäre deine "Überlegung" überflüssig.  ;)

Sorry flurin,

lass es mich in den Worten meines Ausbildungsmeisters sagen:
Wer lesen kann ist klar im Vorteil!!!!!!

Danke noch mal fürs hinweisen.
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

kvo1

Hallo Zusammen,

ich habe ein ähnliches Problemchen .... bisher läuft meinr Rolllandensteuerung tadellos.
Habe 3 MODI (HAND/ASTRO/FHEM).
HAND   fährt nur manuel
ASTRO  fährt nach Sonnenauf- und Untergang
FHEM    fährt nach per dummy festgelegten Zeiten (WT und WE unterschiedlich hoch / runter immer gleich)

Hier ein Bsp:

# Dummys fuer Modus definieren
define RolloModusBZ dummy
attr RolloModusBZ alias Rollläden BZ - Modus
attr RolloModusBZ devStateIcon FHEM:fts_shutter_automatic@green ASTRO:fts_shutter_updown@blue HAND:fts_shutter_manual@red
attr RolloModusBZ group Jalousie
attr RolloModusBZ icon signal_Fenster_Offen.off
attr RolloModusBZ room Automation
attr RolloModusBZ setList state:FHEM,ASTRO,HAND
attr RolloModusBZ sortby 20
attr RolloModusBZ webCmd state

# Dummys fuer Zeit Hoch Woche
define du_RolloZeitBZ_hoch_WT dummy
attr du_RolloZeitBZ_hoch_WT alias Rollläden BZ - Zeit öffnen WT
attr du_RolloZeitBZ_hoch_WT devStateIcon .*:rc_BLANK
attr du_RolloZeitBZ_hoch_WT group Jalousie
attr du_RolloZeitBZ_hoch_WT icon icoUhr
attr du_RolloZeitBZ_hoch_WT room Automation
attr du_RolloZeitBZ_hoch_WT setList state:time
attr du_RolloZeitBZ_hoch_WT sortby 21
attr du_RolloZeitBZ_hoch_WT webCmd state

# Dummys fuer Zeit Hoch Wochenende
define du_RolloZeitBZ_hoch_WE dummy
attr du_RolloZeitBZ_hoch_WE alias Rollläden BZ - Zeit öffnen WE
attr du_RolloZeitBZ_hoch_WE devStateIcon .*:rc_BLANK
attr du_RolloZeitBZ_hoch_WE group Jalousie
attr du_RolloZeitBZ_hoch_WE icon icoUhr
attr du_RolloZeitBZ_hoch_WE room Automation
attr du_RolloZeitBZ_hoch_WE setList state:time
attr du_RolloZeitBZ_hoch_WE sortby 22
attr du_RolloZeitBZ_hoch_WE webCmd state

# Dummys fuer Zeit runter (Woche und Wochenende ggf. erweitern)
define du_RolloZeitBZ_runter dummy
attr du_RolloZeitBZ_runter alias Rollläden BZ - Zeit schliessen
attr du_RolloZeitBZ_runter devStateIcon *:rc_BLANK
attr du_RolloZeitBZ_runter group Jalousie
attr du_RolloZeitBZ_runter icon icoUhr
attr du_RolloZeitBZ_runter room Automation
attr du_RolloZeitBZ_runter setList state:time
attr du_RolloZeitBZ_runter sortby 23
attr du_RolloZeitBZ_runter webCmd state

########### Dummy Rollo
define DU_BZ_Rollladen dummy
attr DU_BZ_Rollladen devStateIcon auf:roll_oben zu:roll_unten halb:roll_50
attr DU_BZ_Rollladen eventMap on:auf off:zu 50\x20%:halb
attr DU_BZ_Rollladen group Fenster_Dummy
attr DU_BZ_Rollladen room Automation
attr DU_BZ_Rollladen sortby 20
attr DU_BZ_Rollladen webCmd stop:auf:zu

#########################################################################
##### Steuerung Automatik (FHEM=Zeit / ASTRO=sun(set/rise) oder HAND ####
#########################################################################
define Rollo_AutomatikBZ DOIF ([RolloModusBZ] eq "FHEM" and ([[du_RolloZeitBZ_hoch_WT]|8] or [[du_RolloZeitBZ_hoch_WE]|7]) or [RolloModusBZ] eq "ASTRO" and [Tageslicht] eq "hell") (set BZ_Rollladen auf, set DU_BZ_Rollladen auf) DOELSEIF ([RolloModusBZ] eq "FHEM" and ([[du_RolloZeitBZ_runter]|8] or [[du_RolloZeitBZ_runter]|7]) or [RolloModusBZ] eq "ASTRO" and [Tageslicht] eq "dunkel") (set BZ_Rollladen zu, set DU_BZ_Rollladen zu)
attr Rollo_AutomatikBZ group doif
attr Rollo_AutomatikBZ room Automation
attr Rollo_AutomatikBZ sortby 12


DU_BZ_Rollladen ist nur noch zu Testzwecken eingebau !

Jetzt möchte ich aber, das sich der Rolllanden an Feiertagen / Ferien wie am WE verhält , also genau
an den eingestellten WE-Zeiten hochfährt.

Dazu habe ich einen "Ferien/FeiertagsKalender"  , diesen lese ich zyklisch aus und wenn der nächste
Tag ein Ferien oder Feiertag ist dann wird ein Dummy "BLN_Ferientag" auf 1 gesetzt.

leider gelingt es mir bisher nicht das DOIF so zu erweitern! Irgendwie dreh ich mich gerade im Kreis,
hab schon alles (vermutlich nicht sonst würde es ja klappen) versucht

Hat irgendwer einen TIP !

Danke vorab
Klaus

RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

no_Legend

@Kvo1

Benutzt du nicht den Holiday Kalender in FHEM für die Feiertage?
Also holiday2we?

Gruß Robert
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.