[73_AutoShuttersControl.pm] Rolllos automatisiert steuern - Version 0.10

Begonnen von CoolTux, 22 Juni 2020, 12:38:36

Vorheriges Thema - Nächstes Thema

moonsorrox

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

ch.eick

Hallo zusammen,
hier gibt's Auskunft:

get Astro text SunAlt "2020-08-13 18:20" ==> 22.3

Wie doch die Zeit vergeht, der Winter kommt...
Gruß
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

D3ltorohd

Zitat von: CoolTux am 13 August 2020, 10:29:46
ASC_rainSensor - DEVICENAME[:READINGNAME] MAXTRIGGER[:HYSTERESE] [CLOSEDPOS:[WAITINGTIME]] - der Inhalt ist eine Kombination aus Devicename, Readingname, Wert ab dem getriggert werden soll, Hysterese Wert ab dem der Status Regenschutz aufgehoben werden soll und der "wegen Regen geschlossen Position", sowie der Wartezeit bis dann tatsächlich die aktion ausgeführt wird.

Also ist diese Angabe bei dem attr falsch ? 0_userdata.0.Jalousiesteuerung.Regnet_es:state 1:0 0  ?
Device : 0_userdata.0.Jalousiesteuerung.Regnet_es
Readingname : state
Maxtrigger : 1 ( Das heißt doch sobald das erste mal rain gelesen wird ist der Trigger erreicht und er sollte fahren ?
Hysterese : müsste dann hier eine 1 rein ? Mein Sensor liefert nur true / false das habe ich umgeändert in eben rain und dry.
Closepos : 0
Dann müsste hinter die 0 von closepos noch mal eine 0, damit er direkt fährt ? Da ich noch nicht feiner auswerten kann, wann es so regnet, das der Protect Sinn macht.
Also er fuhr dann runter, aber irgendwie überall, auch bei den geschlossenen Fenstern. Hatte von 1 und 0 auf rain und dry geändert, dann fuhr er.
Base : Intel NUC Debian 9, FHEM aktuell || Zigbee (Coordinator FW Z-Stack 1.2 default Koenkk) || MaxCUL (culfw V 1.67 nanoCUL868) || SIGNALduino 433MHz (V 3.3.2.1-rc8 ) || Shelly s1

meier81

Zitat von: xerion am 13 August 2020, 10:28:42
Anstelle von Perl kann man es auch mit folgenden DOIF nutzen:

([Daemmerungswert:elevation] < 30)
(attr Rollo_Kueche_Strasse ASC_Shading_StateChange_SunnyCloudy 25000:20000)
(attr Rollo_WC ASC_Shading_StateChange_SunnyCloudy 25000:20000)
(save)
DOELSE
(attr Rollo_Kueche_Strasse ASC_Shading_StateChange_SunnyCloudy 35000:20000)
(attr Rollo_WC ASC_Shading_StateChange_SunnyCloudy 35000:20000)
(save)


Jetzt muss ich doch noch mal nachfragen, ist das so kein Problem wenn man diese Variante so anwendet oder sollte man auf doif´s die die config speichern eher absehen? Hab zwar schon einiges gemacht mit FHEM aber so etwas bislang noch nicht.

@CoolTux:
weiß nicht ob du folgenden Beitrag gelesen hast bzw. was du davon hälst:
Zitat von: meier81 am 12 August 2020, 20:54:13
Das Problem dürfte des öfteren auftreten, habe eine ELV WS980, da sieht es mit dem Helligkeitssensor genau so aus, ist auch senkrecht nach oben gerichtet.
Habe das Problem bei mir morgens, die Sonne kommt über den Berg und fällt sofort in die Fenster rein, der Helligkeitssensor hat aber erst 10000Lux, ich habe aber 35000Lux zum beschatten eingestellt. Würde ich den Wert runterstellen hätte ich das Problem das tagsüber selbst bei Bewölkung die Rollläden nicht mehr hochfahren würden, der Wert ist eigentlich okay, müsste eher noch etwas hochgesetzt werden.

Vielleicht kann man ja an dem Parameter "ASC_SHADING_STATECHANGE_SUNNYCLOUDY" Perl-tauglich machen, dann könnte man das verknüpfen z.B. Elevation < 30 dann nimm 15000Lux, Elevation > 30 dann nimm 35000Lux.

Falls du möchtest stell ich auch bei dir (https://git.cooltux.net/) einen Issue ein.

Gruß Markus
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices || mehrere Homematic-IP und Homematic-Devices

CoolTux

Zitat von: meier81 am 13 August 2020, 19:21:18
Jetzt muss ich doch noch mal nachfragen, ist das so kein Problem wenn man diese Variante so anwendet oder sollte man auf doif´s die die config speichern eher absehen? Hab zwar schon einiges gemacht mit FHEM aber so etwas bislang noch nicht.

@CoolTux:
weiß nicht ob du folgenden Beitrag gelesen hast bzw. was du davon hälst:
Falls du möchtest stell ich auch bei dir (https://git.cooltux.net/) einen Issue ein.

Gruß Markus

Kannst Du gerne auf GitHub machen. Aber ich werde erstmal nicht daran arbeiten können.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Zitat von: D3ltorohd am 13 August 2020, 17:48:59
Also ist diese Angabe bei dem attr falsch ? 0_userdata.0.Jalousiesteuerung.Regnet_es:state 1:0 0  ?
Device : 0_userdata.0.Jalousiesteuerung.Regnet_es
Readingname : state
Maxtrigger : 1 ( Das heißt doch sobald das erste mal rain gelesen wird ist der Trigger erreicht und er sollte fahren ?
Hysterese : müsste dann hier eine 1 rein ? Mein Sensor liefert nur true / false das habe ich umgeändert in eben rain und dry.
Closepos : 0
Dann müsste hinter die 0 von closepos noch mal eine 0, damit er direkt fährt ? Da ich noch nicht feiner auswerten kann, wann es so regnet, das der Protect Sinn macht.
Also er fuhr dann runter, aber irgendwie überall, auch bei den geschlossenen Fenstern. Hatte von 1 und 0 auf rain und dry geändert, dann fuhr er.


Mir ging es um die Positionen Angabe, da Du ja lieber 50 haben wolltest. Und das mit rain und dry kannste so lassen. Das sollte so gehen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

JHo

Zitat von: meier81 am 13 August 2020, 19:21:18
Jetzt muss ich doch noch mal nachfragen, ist das so kein Problem wenn man diese Variante so anwendet oder sollte man auf doif´s die die config speichern eher absehen? Hab zwar schon einiges gemacht mit FHEM aber so etwas bislang noch nicht.

Ich habe mir jetzt ein userReading gebaut, das zeitabhängig den Sensor "manipuliert", d.h. höhere Werte liefert als gemessen. Dieses userReading ("difftempkueche") setze ich dann im nach Osten gerichteten Fenster auf, das eben im Sommer auch schon ab 7 Uhr in der vollen Sonne steht, während der Sensor das noch nicht so richtig messen kann. Lässt sich vielleicht noch sinniger über die Elevation steuern, statt rein per Zeit ("zwischen 7 und 10 Uhr").
difftempkueche { if ((strftime("%H",localtime)>7) && (strftime("%H",localtime)<10) && ReadingsNum("difftemp.gartenhaus","difftemp",0)<20) { return ReadingsNum("difftemp.gartenhaus","difftemp",0)+6} else { return ReadingsNum("difftemp.gartenhaus","difftemp",0)} }
1: FHEM auf Ubuntu, MAX!Cube, Wand- und Heizkörperthermostate, Eco-Schalter, diverse LaCrosse-Sensoren, per remote angebundene DS18B20-Sensoren
2: FHEM auf Raspi 3, Max!Cube, Wand- und Heizkörperthermostate, Eco-Schalter, ht_pitiny-Adapter zu Junkers FW120

D3ltorohd

Zitat von: CoolTux am 13 August 2020, 20:06:34

Mir ging es um die Positionen Angabe, da Du ja lieber 50 haben wolltest. Und das mit rain und dry kannste so lassen. Das sollte so gehen.

oK, naja bei den restlichen Fenster brauche ich 0 oder max. 10.

Also passt so der Eintrag ? Aber warum, fuhren alle runter, auch wenn Fenster zu ?
Base : Intel NUC Debian 9, FHEM aktuell || Zigbee (Coordinator FW Z-Stack 1.2 default Koenkk) || MaxCUL (culfw V 1.67 nanoCUL868) || SIGNALduino 433MHz (V 3.3.2.1-rc8 ) || Shelly s1

meier81

Zitat von: JHo am 13 August 2020, 20:59:10
Ich habe mir jetzt ein userReading gebaut, das zeitabhängig den Sensor "manipuliert", d.h. höhere Werte liefert als gemessen. Dieses userReading ("difftempkueche") setze ich dann im nach Osten gerichteten Fenster auf, das eben im Sommer auch schon ab 7 Uhr in der vollen Sonne steht, während der Sensor das noch nicht so richtig messen kann. Lässt sich vielleicht noch sinniger über die Elevation steuern, statt rein per Zeit ("zwischen 7 und 10 Uhr").
difftempkueche { if ((strftime("%H",localtime)>7) && (strftime("%H",localtime)<10) && ReadingsNum("difftemp.gartenhaus","difftemp",0)<20) { return ReadingsNum("difftemp.gartenhaus","difftemp",0)+6} else { return ReadingsNum("difftemp.gartenhaus","difftemp",0)} }

Ich sag mal vielen Dank für den Denkanstoß, hab jetzt mal bei meiner Wetterstation ein userReading zum testen angelegt, werde das ganze dann noch etwas anpassen und verfeinern. Hier mal mein erster Entwurf:

attr Wetterstation userReadings brightness_corr {
if (ReadingsNum("Astro","SunAlt",0)<20)
{return ReadingsNum("Wetterstation","brightness",0)*2}
elsif ((ReadingsNum("Astro","SunAlt",0)>=20) && (ReadingsNum("Astro","SunAlt",0)<22))
{return ReadingsNum("Wetterstation","brightness",0)*1.8}
elsif ((ReadingsNum("Astro","SunAlt",0)>=22) && (ReadingsNum("Astro","SunAlt",0)<24))
{return ReadingsNum("Wetterstation","brightness",0)*1.6}
elsif ((ReadingsNum("Astro","SunAlt",0)>=24) && (ReadingsNum("Astro","SunAlt",0)<26))
{return ReadingsNum("Wetterstation","brightness",0)*1.6}
elsif ((ReadingsNum("Astro","SunAlt",0)>=26) && (ReadingsNum("Astro","SunAlt",0)<28))
{return ReadingsNum("Wetterstation","brightness",0)*1.4}
elsif ((ReadingsNum("Astro","SunAlt",0)>=28) && (ReadingsNum("Astro","SunAlt",0)<30))
{return ReadingsNum("Wetterstation","brightness",0)*1.2}
else
{return ReadingsNum("Wetterstation","brightness",0)}
}


Ich werde das die Tage mal optimieren und noch mal Rückmeldung geben :)

Gruß Markus
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices || mehrere Homematic-IP und Homematic-Devices

D3ltorohd

Hm das Shading, funktioniert optimal denke ich erst wenn man wirklich so ne Wetterstation hat, die einem Helligkeit, Sonnenstrahlen usw. liefert. Damit man dann einen sauberen Wert bekommt.
Mit meinem Lux Sensor ist das halt so suboptimal. Es kann bewölkt sein und trotzdem 4000-5000 Lux, aber es kann auch teilsbewölkt sein mit dem gleichen Wert, die Sonne ballert in die Zimmer und der Rollo fährt nicht, weil nicht hell genug.

Was habt ihr denn für Wetterstationen, die on the fly funktionieren ?
Base : Intel NUC Debian 9, FHEM aktuell || Zigbee (Coordinator FW Z-Stack 1.2 default Koenkk) || MaxCUL (culfw V 1.67 nanoCUL868) || SIGNALduino 433MHz (V 3.3.2.1-rc8 ) || Shelly s1

CoolTux

Zitat von: D3ltorohd am 14 August 2020, 12:52:03
oK, naja bei den restlichen Fenster brauche ich 0 oder max. 10.

Also passt so der Eintrag ? Aber warum, fuhren alle runter, auch wenn Fenster zu ?

Weil es keine Rolle spielt ob Fenster auf oder zu. Es wird immer gefahren.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

meier81

Zitat von: D3ltorohd am 14 August 2020, 13:47:16
Hm das Shading, funktioniert optimal denke ich erst wenn man wirklich so ne Wetterstation hat, die einem Helligkeit, Sonnenstrahlen usw. liefert. Damit man dann einen sauberen Wert bekommt.
Mit meinem Lux Sensor ist das halt so suboptimal. Es kann bewölkt sein und trotzdem 4000-5000 Lux, aber es kann auch teilsbewölkt sein mit dem gleichen Wert, die Sonne ballert in die Zimmer und der Rollo fährt nicht, weil nicht hell genug.

Was habt ihr denn für Wetterstationen, die on the fly funktionieren ?

Hallo Hagen,

finde komisch das du nur 4000-5000Lux hast, ich habe bei schönem, bewölktem Wetter (so wie heute bei uns) wo ab und zu mal die Sonne durchscheint zwischen 50000 und 85000 Lux, finde da deinen Wert wirklich sehr niedrig. Ich weiß noch nicht einmal ob die Werte so niedrig sind wenn es bei uns schüttet.
Als Wetterstation habe ich die ELV WS980, bislang echt keine Probleme, läuft problemlos, es gibt ein Modul in FHEM für die Daten einzulesen, die Wetterstation ist per WLan im Heimnetz eingebunden und muss auch nicht über irgendeine Cloud verbunden werden :)
QNAP NAS mit Debian VM, darauf FHEM, debmatic, influxdb2 und Grafana || HB-RF-ETH || WS980 Wetterstation || Xiaomi Mi Robot mit valetudo-FW || Buderus web KM100 || div. Tasmota-Devices || mehrere Homematic-IP und Homematic-Devices

D3ltorohd

Zitat von: CoolTux am 14 August 2020, 14:07:06
Weil es keine Rolle spielt ob Fenster auf oder zu. Es wird immer gefahren.

Das wäre vllt noch ein Feature für später mal, das das Fenster berücksichtigt wird. So sehe ich da irgendwie keinen Sinn drin, das die Rollos fahren, wenn die Fenster zu sind. Ich hätte das Rain Protect eher so verstanden, das wenn die Fenster offen sind der Rollo fährt, quasi als Schutz, damit nichts rein regnet.

Also irgendwie komm ich hier nicht klar, nichts geändert seit gestern, aber die Rollos fahren nicht, obwohl es regnet. In der Log kann ich nichts sehen. Sensor sagt rain. Geht jetzt schon mehrere Minuten.

Das hab ich gefunden, aber das hat mit dem Rain nichts zu tun.

2020.08.11 17:12:17 3: [Astro] No altitude attribute set in global device, using 0.0 m above sea level
2020.08.11 17:12:43 2: AttrTemplates: got 180 entries
2020.08.11 17:15:08 3: FHEMWEB WEB CSRF error: csrf_253301875746496 ne csrf_266885505309027 for client WEB_192.168.178.20_56731 / command {AttrVal("ASControl","ASC_tempSensor","")}. For details see the csrfToken FHEMWEB attribute.
2020.08.11 17:15:15 3: FHEMWEB WEB CSRF error: csrf_253301875746496 ne csrf_266885505309027 for client WEB_192.168.178.20_56731 / command attr ASControl ASC_tempSensor zigbee.0.00158d00045c3576.temperatur:state. For details see the csrfToken FHEMWEB attribute.
2020.08.11 17:16:11 3: FHEMWEB WEB CSRF error: csrf_253301875746496 ne csrf_266885505309027 for client WEB_192.168.178.20_56732 / command {AttrVal("Schlafzimmer_li","ASC_TempSensor","")}. For details see the csrfToken FHEMWEB attribute.
2020.08.11 17:16:16 3: FHEMWEB WEB CSRF error: csrf_253301875746496 ne csrf_266885505309027 for client WEB_192.168.178.20_56732 / command attr Schlafzimmer_li ASC_TempSensor zigbee.0.00158d00045c3576.temperature:state. For details see the csrfToken FHEMWEB attribute.


Ist der Fehler schlimm, wie bekomme ich den weg und was beeinflusst er ?

@meier81, das ist nur nen Aqara Helligkeitssensor, der ist ca. 10cm unterm Dachvorsprung. Denke weil er nicht direkt bestrahlt wird, ist der Wert so klein. Er geht auch mal auf 10000 - 13000 hoch. Da er eigentlich nicht für draußen gemacht wurde, ich da aber schon mal was haben wollte für die Beschattung.

Geplant ist eine richtige Wetterstation mit all den Features, ich habe hier den Rainyman/Weathermen im Auge, oder so ähnlich. Der kann dann Helligkeit und Sonnenstrahlen ;- schein messen.
Base : Intel NUC Debian 9, FHEM aktuell || Zigbee (Coordinator FW Z-Stack 1.2 default Koenkk) || MaxCUL (culfw V 1.67 nanoCUL868) || SIGNALduino 433MHz (V 3.3.2.1-rc8 ) || Shelly s1

Deckoffizier

Hallo D3ltorohd,

ZitatWas habt ihr denn für Wetterstationen, die on the fly funktionieren ?

Als Wetterstation habe ich auch die ELV WS980 und bin bisher zufrieden mit dem Zusammenspiel zu ASC.

Anbei nochmal mein großen Dank für CoolTux seinen Fleiß und Engelsgeduld!

Gruß
Hans-Jürgen
FHEM 5.8 auf "yakkaroo Emu A1FL.1" mit CUL 868MHz, SIGNALduino,2 1Wire USB Busmaster, diverse 1 Wire Sensoren,Landroid,Aeotec USB Dongle Z-Wave Plus

D3ltorohd

Also kann ich mit der ELV quasi unterscheiden, ob Sonne scheint, oder Wolken davor sind ? Weil allein mit der Helligkeit, kann man das ja nicht sagen. Hier war es heute bewölkt bei 10000 Lux, da wären sie theoretisch schon gefahren. Obwohl die Sonne nicht rein schien. Verbraucht die ELV Wetterstation viel Credits ? Habe auch noch Thermostate und 3 Kontakte.

Die sind heute allgemein nicht gefahren. Bei jedem Rollo steht

ASC_ShuttersLastDrive
manual


Bei Shading steht nichts von prüfen in / out.

So noch mal :: Irgendwie hab ich jetzt den Faden verloren.

im ASC Modul ASC_BRIGHTNESSDRIVEUPDOWN gebe ich z.b. 500:10 ein ? Oder kommt dort auch das Device und der State ? Wobei das nicht in der Beschreibung steht, die kommt, wenn man das Attr anklickt.

im Rollo Device, wenn ich Shading will, muss ich dort nur Device und State angeben ? ASC_BrightnessSensor = zigbee.0.04cf8cdf3c772184.illuminance:state ?

Ich möchte wieder per Sonnen auf und Untergang fahren lassen, also per Zeit. Nun habe ich im ASC Modul das hier wieder gelöscht ASC_BRIGHTNESSDRIVEUPDOWN und in den Rollo Devices ASC_BrightnessSensor = zigbee.0.04cf8cdf3c772184.illuminance:state dort hatte ich dann noch 400:0 stehen. Das ist dann überflüssig, weil ich das mit SunnyCloud steuere ?


EDIT::

Also, Auto Shading, + fahren nach Astrozeit, dann sollte das so stimmen ?

Internals:
   FUUID      5ce427ff-f33f-fc62-1775-191cf7a596c1a099
   NAME       Bad
   NR         30
   STATE      half
   TYPE       ROLLO
   stoptime   1597432885
   READINGS:
     2020-08-11 16:42:37   ASC_Enable      on
     2020-08-14 21:31:39   ASC_ShadingMessage <html> </html>
     2020-08-14 21:21:25   ASC_ShuttersLastDrive ventilate - window open
     2020-08-14 21:21:05   ASC_Time_DriveDown 15.08.2020 - 21:03
     2020-08-14 21:21:05   ASC_Time_DriveUp 15.08.2020 - 06:22
     2020-08-14 21:21:02   associatedWith  ASControl
     2020-08-14 21:21:13   command         pct-50
     2020-08-14 21:21:13   desired_pct     50
     2020-08-14 21:21:13   drive-type      modul
     2020-08-14 21:21:13   last_drive      drive-up
     2020-08-14 21:21:25   pct             50
     2020-08-14 21:21:25   state           half
Attributes:
   ASC        2
   ASC_BrightnessSensor zigbee.0.04cf8cdf3c772184.illuminance:state
   ASC_Closed_Pos 0
   ASC_ComfortOpen_Pos 90
   ASC_Drive_DelayStart 1
   ASC_Open_Pos 100
   ASC_Pos_Reading pct
   ASC_RainProtection off
   ASC_Shading_InOutAzimuth 245:285
   ASC_Shading_MinMax_Elevation 8.0:80
   ASC_Shading_Min_OutsideTemperature 24
   ASC_Shading_Mode always
   ASC_Shading_Pos 10
   ASC_Shading_StateChange_SunnyCloudy 3800:2300
   ASC_Shading_WaitingPeriod 600
   ASC_TempSensor zigbee.0.00158d00045c3576.temperature:state
   ASC_Ventilate_Pos 50
   ASC_Ventilate_Window_Open on
   ASC_WindowRec 0_userdata.0.Jalousiesteuerung.Fenstertimeout.Bad_contact
   ASC_WindowRec_subType threestate
   alias      Bad


Möchte ich über den Helligkeitssensor fahren, müsste ich brightnessdriveupdown im asc Modul setzten, mit zigbee.0.04cf8cdf3c772184.illuminance:state 400:20 z.b. as ist ja dann global. Möchte ich bei manchen Rollos erst bei :0 fahren, müsste ich dort dann ASC_BrightnessSensor zigbee.0.04cf8cdf3c772184.illuminance:state 400:0 setzten ?

Aber wenn ich aus dem ASC Modul brightnessdriveupdown lösche und in den Rollo Devices nur ASC_BrightnessSensor zigbee.0.04cf8cdf3c772184.illuminance:state setze müsste die Beschattung funktionieren und nach Astro Zeit fahren, z.b. EveningHorizon.
Base : Intel NUC Debian 9, FHEM aktuell || Zigbee (Coordinator FW Z-Stack 1.2 default Koenkk) || MaxCUL (culfw V 1.67 nanoCUL868) || SIGNALduino 433MHz (V 3.3.2.1-rc8 ) || Shelly s1