Beschattung - geht das auch eleganter?

Begonnen von h-man-kl, 24 Juni 2016, 10:15:34

Vorheriges Thema - Nächstes Thema

KernSani

Das eventMap kann so nicht funktionieren. Das Leerzeichen führt dazu, dass du Bechattung mit 12 mappst, daher das unknown argument. Guck dir mal die Doku zu eventMap an, da gibt's auch ein Beispiel...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

h-man-kl

immer wieder erstaunlich: kaum macht mann es richtig - funktioniert es.
Vielen Dank!  => /off-for-timer 12:Beschattung/ off:runter/ on:rauf/

Dann werd ich mal weiter rumprobieren.

Gruß
H-Man
RasPi 3 mit MaxCube für FS20 , HM-Urart, HM-LAN, MiLight, HUE, Lightify, SONOS, Harmony, Unifi, FritzBox 7490... :-)
Ganz nach dem Motto: Normal? Normal is langweilig....

h-man-kl

Hallo,
das mit dem zusätzlichen webcmd Beschattung geht inzwischen - zuindest bei den RSUs. Allerdings habe ich noch ein anderes Problem. Um meine at's und notify's möglichst klein zu halten, habe ich nun alles rausestrichen was geht um die Beschattung zu testen.
Mein Dummy "d_Beschattung " schaltet brav ein und aus und mein at_Beschattung wird alle 15min aufgerufen, aber es passiert nix :-(
Das sind doch gerade mal 3 Zeilen.... im Log steht NIX und im eventmonitor nur, dass das at gestartet wird.
Wieso fährt mein Rollo nicht runter?

+*00:15 {;
if (Value ("d_Beschattung" eq "on") && ($hour>=10 && $hour<17)) && (Value ("FS20.Rollladen.Kueche" eq "on")){;
fhem("set FS20.Rollladen.Kueche off")};
}


Gruß und immer wieder Danke.....!
H-Man
RasPi 3 mit MaxCube für FS20 , HM-Urart, HM-LAN, MiLight, HUE, Lightify, SONOS, Harmony, Unifi, FritzBox 7490... :-)
Ganz nach dem Motto: Normal? Normal is langweilig....

moonsorrox

ich würde eine Beschattung gar nicht so schwierig aufbauen, für mich sind 3 Faktoren wichtig
1. Temperatur - über eigenen Sensor
2. Sonnenstand - über Twilight
3. Zeit - ist immer eine Sache des Sonnenstandes

zu 3. wichtig wenn ein Fenster nach Osten geht (Sonnenaufgang) die Zeit vormittag, danach dann eben frei wählbar nach Sonnenstand mit Twilight, kann der Rollladen prozentual schon mal leicht hoch gefahren werden. Ich mache das so bei mir

Da, dann die richtige Einstellung zu haben erreicht man nur über probieren ich bin da auch noch nicht ganz zufrieden.
Aber am besten geht das (finde ich) über eine Dummy/DOIF Kombination.

Das Dummy wählt bei mir vor ob der/die Rollladen eben gesteuert werden sollen, über Fhem/Dämmerung je nachdem wie es heißen soll oder eben Beschattung oder auch komplett Aus. Bei mir gibt es dann noch die Nachtschicht.
Bau dir das mal so ein und schaue mal ob es dir gefällt

define du_RolloSZmodus dummy
attr du_RolloSZmodus alias Schlafzimmer - Modus
attr du_RolloSZmodus devStateIcon FHEM:fts_shutter_automatic@lightgreen Nachtschicht:fts_shutter_up@crimson Beschattung:fts_shutter_updown@blue Aus:fts_shutter_manual@yellow
attr du_RolloSZmodus group Rollläden OG
attr du_RolloSZmodus icon time_manual_mode@#7a0099
attr du_RolloSZmodus room Automation,Schlafzimmer
attr du_RolloSZmodus setList state:FHEM,Nachtschicht,Beschattung,Aus
attr du_RolloSZmodus sortby 01
attr du_RolloSZmodus webCmd state


Je nachdem was eingestellt wird arbeitet dann ein DOIF welches den oder die Rollläden steuert.
Mehr braucht es eigentlich nicht
Mein Beschattungs DOIF (siehe Code) wie gesagt aber für ein Fenster nach Osten ausgerichtet und bei mir steht der Rollladen sehr oft am Tag in eine sogenannten Home Position diese fährt er auch am Abend wieder an. Funktioniert aber noch nicht 100%

DOIF
define di_RollladenSZ_B DOIF ([?du_RolloSZmodus] eq "Beschattung" and [Temperatur_Terrasse:temperature] > 20 and [myTwilight:azimuth] > 72 and [myTwilight:elevation] < 50 and [06:45-10:00]) (set RollladenSZ pct 25)\
DOELSEIF ([?du_RolloSZmodus] eq "Beschattung" and [Temperatur_Terrasse:temperature] > 23 and [myTwilight:azimuth] > 72 and [myTwilight:elevation] < 60 and [10:01-13:00])(set RollladenSZ pct 25)\
DOELSEIF ([?du_RolloSZmodus] eq "Beschattung" and ([Temperatur_Terrasse:temperature] > 22 and [Temperatur_Terrasse:temperature] < 27) and [myTwilight:azimuth] > 150 and [myTwilight:elevation] < 70 and [13:01-16:00])(set RollladenSZ pct 50)\
DOELSEIF ([?du_RolloSZmodus] eq "Beschattung" and [Temperatur_Terrasse:temperature] < 31 and [[du_RolloZeitSZ_hoch_B]-{sunset_abs()}]) (set RollladenSZ pct 75)\

attr di_RollladenSZ_B group Rollläden
attr di_RollladenSZ_B wait 900:900
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

h-man-kl

hi moonsrrox,
also für mic sieht dein "Konstrukt" komplexer aus als meins :-)
aber egal.... Mein Dummy macht ja was er soll, aber mein simples at macht einfach nix - noch nichtmmal einen Fehler ausgeben :-(
RasPi 3 mit MaxCube für FS20 , HM-Urart, HM-LAN, MiLight, HUE, Lightify, SONOS, Harmony, Unifi, FritzBox 7490... :-)
Ganz nach dem Motto: Normal? Normal is langweilig....

moonsorrox

ich habe leider keine notify im Einsatz, aber du mußt mal nach Beispielen suchen.
Ich weiß nicht ob dieser Teil des notify so funktioniert:!!
("d_Beschattung" eq "on")
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

h-man-kl

Inzwischen hab ich gesehen dass da wohl die anzahl an Klammern nicht ganz passt.
Muss da nochmal nachzählen....
RasPi 3 mit MaxCube für FS20 , HM-Urart, HM-LAN, MiLight, HUE, Lightify, SONOS, Harmony, Unifi, FritzBox 7490... :-)
Ganz nach dem Motto: Normal? Normal is langweilig....

Damian

Zitat von: h-man-kl am 01 September 2016, 14:45:14
Inzwischen hab ich gesehen dass da wohl die anzahl an Klammern nicht ganz passt.
Muss da nochmal nachzählen....
Egal wie man es löst. Es ist immer besser etwas ereignisgesteuert zu realisieren, als durch Polling (ständiges Abfragen).

z. B.

define di_beschattung DOIF ([d_Beschattung] eq "on" and [10:00-17:00] and  [FS20.Rollladen.Kueche] eq "on") (set FS20.Rollladen.Kueche off)

Es ist nicht nur kürzer in der Definition, sondern funktioniert auch ereignisgesteuert.


Gruß

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

h-man-kl

Danke für den Hnweis. Du hast sicher recht, dass es besser ist etwas ereignisgesteuert schalten zu lassen.
Ich werde mich dann mal daran versuchen das so zu lösen wie du vorgeschlagen hast!
RasPi 3 mit MaxCube für FS20 , HM-Urart, HM-LAN, MiLight, HUE, Lightify, SONOS, Harmony, Unifi, FritzBox 7490... :-)
Ganz nach dem Motto: Normal? Normal is langweilig....

h-man-kl

Läuft! :-)
Vielen Dank an alle, die mir geholfen haben.
Zur Zeit ist es so gelöst:
ein Dummy  (d_Beschattung) wird zur ZEit nur über die Außentemperatur geschaltet:

Aussentemperatur.* {
if ((ReadingsVal ('Aussentemperatur', 'temperature', 0) >25.0)) {fhem ("set d_Beschattung on")}
else {((ReadingsVal ('Aussentemperatur', 'temperature', 0) <25.0)) {fhem ("set d_Beschattung off")}
}


dann habe ich noch zwei DOIFs für die Straßenseite und den Garten die so aufgebaut sind:

([d_Beschattung] eq "on" and [10:00-16:45] and  [FS20.Rollladen.Kueche] eq "on") (set FS20.Rollladen.Kueche off; sleep 20; set FS20.Rollladen.Kueche off)
DOELSEIF ([17:00-19:00] and  [FS20.Rollladen.Kueche] eq "off") (set FS20.Rollladen.Kueche on)

bzw<.

([d_Beschattung] eq "on" and [13:00-20:00] and  [FS20.RollladenBad.E] eq "on") (set FS20.RollladenBad.E off; sleep 25; set FS20.RollladenBad.E off; set FS20.RollladenKZ.E Beschattung; set FS20.Rollladen.EZ Beschattung)


Da meine alten Gurtwickler nicht mit on-for-timer funktionieren musste ich bei denen  mit sleep arbeiten....

Geplant ist noch die Helligkeit und oder die Innentemp mit einzubauen. Aber jetzt bin ich erstmal froh dass es läuft!

Gruß
H-Man
RasPi 3 mit MaxCube für FS20 , HM-Urart, HM-LAN, MiLight, HUE, Lightify, SONOS, Harmony, Unifi, FritzBox 7490... :-)
Ganz nach dem Motto: Normal? Normal is langweilig....

Damian

Zitat von: h-man-kl am 15 September 2016, 14:53:31
Läuft! :-)
Vielen Dank an alle, die mir geholfen haben.
Zur Zeit ist es so gelöst:
ein Dummy  (d_Beschattung) wird zur ZEit nur über die Außentemperatur geschaltet:

Aussentemperatur.* {
if ((ReadingsVal ('Aussentemperatur', 'temperature', 0) >25.0)) {fhem ("set d_Beschattung on")}
else {((ReadingsVal ('Aussentemperatur', 'temperature', 0) <25.0)) {fhem ("set d_Beschattung off")}
}


dann habe ich noch zwei DOIFs für die Straßenseite und den Garten die so aufgebaut sind:

([d_Beschattung] eq "on" and [10:00-16:45] and  [FS20.Rollladen.Kueche] eq "on") (set FS20.Rollladen.Kueche off; sleep 20; set FS20.Rollladen.Kueche off)
DOELSEIF ([17:00-19:00] and  [FS20.Rollladen.Kueche] eq "off") (set FS20.Rollladen.Kueche on)

bzw<.

([d_Beschattung] eq "on" and [13:00-20:00] and  [FS20.RollladenBad.E] eq "on") (set FS20.RollladenBad.E off; sleep 25; set FS20.RollladenBad.E off; set FS20.RollladenKZ.E Beschattung; set FS20.Rollladen.EZ Beschattung)


Da meine alten Gurtwickler nicht mit on-for-timer funktionieren musste ich bei denen  mit sleep arbeiten....

Geplant ist noch die Helligkeit und oder die Innentemp mit einzubauen. Aber jetzt bin ich erstmal froh dass es läuft!

Gruß
H-Man

Wenn du schon mit der DOIF-Syntax vertraut bist, dann kannst du ebenfalls deinen Dummy d_Beschattung inklusive notify wegrationalisieren:

d_Beschattung DOIF ([Aussentemperatur:temperature] > 25)
attr d_Beschattung state on|off



Nebenbei wird der Zustand von d_Beschattung im Gegensatz zum notify nur bei Über-/Unterschreitung der Temperatur aktualisiert und nicht bei jedem Event des Temperatursensors ;)

Gruß

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

h-man-kl

Hi,
ich gestehe ich kenne mich mit doif (noch) nicht so gut aus. Habe das mal "blind" übernommen und muss mal sehen, dss ich meinen Senosor kurz erwärme :-)
Dankeschön!
RasPi 3 mit MaxCube für FS20 , HM-Urart, HM-LAN, MiLight, HUE, Lightify, SONOS, Harmony, Unifi, FritzBox 7490... :-)
Ganz nach dem Motto: Normal? Normal is langweilig....