[73_AutoShuttersControl.pm] Neues Modul zum automatisierten steuern von Rolläden

Begonnen von CoolTux, 30 Oktober 2018, 17:29:46

Vorheriges Thema - Nächstes Thema

CoolTux

Zitat von: Beetle2003 am 09 März 2019, 00:00:40
Hallo,

ich wiederspreche Dir ungern, da ich Deine Arbeit schätze.
Die Rollos sind zu und werden erst zu der angegeben Zeit gefahren.
Sorry das sollte mehr so eine Frage sein. Wenn das nicht stimmt was ich gesagt habe bitte ich sogar um einen Wiederspruch  :)

Kannst Du mir bitte ein list vom ASC und einem Beispielrollladen geben?



Grüße
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

stefanpf

Habe die andere Variante: heute wurde $we ignoriert.
Gehört das zu ist bekannt oder soll ich noch etwas nachliefern?
Ich hatte bislang immer den Eindruck, dass $we zuverlässig erkannt wird - nur eine Ausnahme, bei der ich es selbst mit dem Urlaubskalender versaut hatte.

CoolTux

Schau bitte zu erst ob im ASC Device sunriseTimeWeHoliday auf on gesetzt ist.
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

stefanpf

Rofl, hatte gerade versucht den Code zu verstehen und war genau dort angekommen.
Das Reading steht auf einmal auf off mit einem Zeitstempel vom 03.03.
Nun bekomme ich allerdings nicht mehr rekonstruiert ob ich an dem Tag dicke Finger am Tablet hatte  :o

Danke für die schnelle Antwort (mit 100% Trefferquote)

CoolTux

Apro pro Code verstehen. Ich suche noch Unterstützung. Wer mag kann sich einfach bei mir melden. Aktuelles Thema wäre das korrekte erkennen von heute früh normale Fahrt und bei der dann folgenden neu Berechnung erkennen das erst morgen wieder gefahren werden soll.
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

Beta-User

Zitat von: CoolTux am 09 März 2019, 07:58:18
Apro pro Code verstehen. Ich suche noch Unterstützung. Wer mag kann sich einfach bei mir melden. Aktuelles Thema wäre das korrekte erkennen von heute früh normale Fahrt und bei der dann folgenden neu Berechnung erkennen das erst morgen wieder gefahren werden soll.
Du hast am ASC-Device doch sicher eine Datenstruktur für jeden Rolledan, oder?
Da einen Hash rein mit {morning => value1,  evening => value2}, wobei du dann den value-Wert jeweils mit dem Monatstag (oder dem Tag ses Jahres) füllen könntest. Wurde heute gefahren, stimmen die Monatstage überein, wurde heute noch nicht gefahren, gibt es entweder keinen Wert (nicht defined) oder er ist mit dem gestrigen belegt?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

CoolTux

Ja darüber hatte ich auch schon nach gedacht. Bin mir nur immer unsicher weil ja nach einem neustart noch nichts da ist.
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

Beta-User

Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Wuppi68

Moin Marko,

ich hätte da noch einen möglichen Verbesserungsvorschlag:

In jede Rollo Device noch als Reading den "Sollzustand" mit abzuspeichern, also das was bei der Automatik sein sollte. Hätte meiner Meinung den Vorteil, dass wenn andere Aktivitäten die Rollos steuern, man genau weiss, wo diese nach der Aktion auch wieder sein sollten.
Beispiel: im Wohnzimmer soll beim Filme schauen der Raum verdunkelt werden. Jetzt ist die Aktion vorbei und ich habe keine Ahnung, wo das Rollo stehen sollte und es dann dorthin zu bewegen.

Liebe Grüße

Ralf
FHEM unter Proxmox als VM

CoolTux

Zitat von: Wuppi68 am 10 März 2019, 13:40:17
Moin Marko,

ich hätte da noch einen möglichen Verbesserungsvorschlag:

In jede Rollo Device noch als Reading den "Sollzustand" mit abzuspeichern, also das was bei der Automatik sein sollte. Hätte meiner Meinung den Vorteil, dass wenn andere Aktivitäten die Rollos steuern, man genau weiss, wo diese nach der Aktion auch wieder sein sollten.
Beispiel: im Wohnzimmer soll beim Filme schauen der Raum verdunkelt werden. Jetzt ist die Aktion vorbei und ich habe keine Ahnung, wo das Rollo stehen sollte und es dann dorthin zu bewegen.

Liebe Grüße

Ralf

Moin Ralf,

Machst Du bitte ein Issues dazu auf im FHEM Git. Danke Dir


Grüße
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: dk3572 am 02 März 2019, 15:02:58
Hallo CoolTux,

muss leider noch weiter nerven  ;)

Irgend was muss sich ja geändert haben weshalb es plötzlich nicht mehr funktioniert.
Ich habe jedenfalls nichts verändert.

Stimmen die Einstellungen vom Kalender? Hier gab es ja wohl vor kurzem ein Modul Update.
defmod Google_Arbeitsfrei Calendar ical url https://calendar.google.com/calendar/ical/xxxxxxxbasic.ics 14400
attr Google_Arbeitsfrei alias Google_Arbeitsfrei
attr Google_Arbeitsfrei event-on-update-reading state
attr Google_Arbeitsfrei hideLaterThan 1d


Danke und schönes Wochenende.
VG Dieter

Hallo Dieter

Ich habe nun testen können. Mit dem hier folgenden Code klappt es bei mir Reibungslos


sub calendarEvents($) {
    my $calDev  = shift;
    my $value = 0;
    my $start = CommandGet(undef,$calDev.' events format:custom="$S $t2" filter:mode=="start"');
    my $upcoming = CommandGet(undef,$calDev.' events limit:to=+1d format:custom="$S $t2" filter:mode=="upcoming"');

    CommandSet(undef,'dummy'.AttrVal($calDev,'alias',undef).' '.(length($start) > 0 ? 1 : 0) );

    $value = 1 if ( (length($start) > 0 and int((split('\s',$start))[1] / 86400) != int(time() / 86400 )) or length($upcoming) > 0 );
    CommandSet(undef,'dummy'.AttrVal($calDev,'alias',undef).' tomorrow '.$value);
}



Mein Notify sieht so aus


calendar.*:triggered { calendarEvents($NAME) }



Grüße
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

dk3572

Zitat von: CoolTux am 10 März 2019, 22:14:14
Hallo Dieter

Ich habe nun testen können. Mit dem hier folgenden Code klappt es bei mir Reibungslos


sub calendarEvents($) {
    my $calDev  = shift;
    my $value = 0;
    my $start = CommandGet(undef,$calDev.' events format:custom="$S $t2" filter:mode=="start"');
    my $upcoming = CommandGet(undef,$calDev.' events limit:to=+1d format:custom="$S $t2" filter:mode=="upcoming"');

    CommandSet(undef,'dummy'.AttrVal($calDev,'alias',undef).' '.(length($start) > 0 ? 1 : 0) );
c
    $value = 1 if ( (length($start) > 0 and int((split('\s',$start))[1] / 86400) != int(time() / 86400 )) or length($upcoming) > 0 );
    CommandSet(undef,'dummy'.AttrVal($calDev,'alias',undef).' tomorrow '.$value);
}



Mein Notify sieht so aus


calendar.*:triggered { calendarEvents($NAME) }



Grüße

Guten Morgen,

danke für deine Mühe. Ich werde es testen.

VG Dieter

FEHMPiDi

Hallo,

ich teste gerade das Modul und bin echt begeistert. Ich hätte ein paar Vorschläge/ Wünsche die ich gern mit Euch diskutieren würde.

1. Ich steuere die Abschattung bei mir über einen Differenztemperatursensor. Im Modul wird aber davon ausgegangen das ein Helligkeitssensor verwendet wird um die Berechnungsroutinen zu starten. Momentan habe ich also behelfsweise für den Brightnesssenor folgendes eingetragen um meinen Temp.-Sensor zu nutzen:

ASC_Shading_StateChange_Cloudy  5
ASC_Shading_StateChange_Sunny   6
ASC_Brightness_Reading state
ASC_Brightness_Sensor delta_Tempsensor

Somit kann ich aber die Rollos nicht mehr nach Helligkeit auf und zu fahren lassen. Das ist jetzt nicht sehr schlimm, da es mit dem Astro Modul auch gut funktioniert. Aber wenn man das trotzdem unbedingt möchte, währe ein zusätzlicher Sensortyp (Abschattung, o.ä.) ganz gut. Dort könnte man dann den Sensor drauf legen der für die Abschattung genutzt wird.

2. Ich habe bei mir einen Windsensor verbaut. Ich würde die Möglichkeit super finden die Rollläden oder Markisen genauso wie beim Regensensor in eine definierte Position fahren zu lassen, wenn man vergessen hat das Fenster zu schließen und es stürmisch wird. Dann möchte ich bei Regen das Rollo halb schließen, und bei Sturm ganz. Daher wären zwei getrennte Sensoren dafür nötig.

Was haltet Ihr davon und kann man das Umsetzen?

Danke im Voraus
FHEM5.7@RaspPi.3|NanoCUL868-HM|NanoCUL868-Max|SDuino|DS18B20|1xHM-Sen-MDIR-WM55|   
2xHM-LC-Sw1PBU-FM|HM-LC-SW4-DR|I2C_MCP23017|2xMAX-ShutterContact|11xHM-LC-Bl1PBU-FM|CTW600|VCONTROL|1xHM-Sen-MDIR-O|2xMilight

CoolTux

Zitat von: FEHMPiDi am 11 März 2019, 10:32:12
Hallo,

ich teste gerade das Modul und bin echt begeistert. Ich hätte ein paar Vorschläge/ Wünsche die ich gern mit Euch diskutieren würde.

1. Ich steuere die Abschattung bei mir über einen Differenztemperatursensor. Im Modul wird aber davon ausgegangen das ein Helligkeitssensor verwendet wird um die Berechnungsroutinen zu starten. Momentan habe ich also behelfsweise für den Brightnesssenor folgendes eingetragen um meinen Temp.-Sensor zu nutzen:

ASC_Shading_StateChange_Cloudy  5
ASC_Shading_StateChange_Sunny   6
ASC_Brightness_Reading state
ASC_Brightness_Sensor delta_Tempsensor

Somit kann ich aber die Rollos nicht mehr nach Helligkeit auf und zu fahren lassen. Das ist jetzt nicht sehr schlimm, da es mit dem Astro Modul auch gut funktioniert. Aber wenn man das trotzdem unbedingt möchte, währe ein zusätzlicher Sensortyp (Abschattung, o.ä.) ganz gut. Dort könnte man dann den Sensor drauf legen der für die Abschattung genutzt wird.

2. Ich habe bei mir einen Windsensor verbaut. Ich würde die Möglichkeit super finden die Rollläden oder Markisen genauso wie beim Regensensor in eine definierte Position fahren zu lassen, wenn man vergessen hat das Fenster zu schließen und es stürmisch wird. Dann möchte ich bei Regen das Rollo halb schließen, und bei Sturm ganz. Daher wären zwei getrennte Sensoren dafür nötig.

Was haltet Ihr davon und kann man das Umsetzen?

Danke im Voraus

Die Windsteuerung ist gerade in der Entwicklung. Die aktuelle Beta wird hier besprochen
https://forum.fhem.de/index.php/topic,97976.0.html
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

kjmEjfu

Zitat von: FEHMPiDi am 11 März 2019, 10:32:12
Hallo,

ich teste gerade das Modul und bin echt begeistert. Ich hätte ein paar Vorschläge/ Wünsche die ich gern mit Euch diskutieren würde.

1. Ich steuere die Abschattung bei mir über einen Differenztemperatursensor. Im Modul wird aber davon ausgegangen das ein Helligkeitssensor verwendet wird um die Berechnungsroutinen zu starten. Momentan habe ich also behelfsweise für den Brightnesssenor folgendes eingetragen um meinen Temp.-Sensor zu nutzen:

ASC_Shading_StateChange_Cloudy  5
ASC_Shading_StateChange_Sunny   6
ASC_Brightness_Reading state
ASC_Brightness_Sensor delta_Tempsensor

Somit kann ich aber die Rollos nicht mehr nach Helligkeit auf und zu fahren lassen. Das ist jetzt nicht sehr schlimm, da es mit dem Astro Modul auch gut funktioniert. Aber wenn man das trotzdem unbedingt möchte, währe ein zusätzlicher Sensortyp (Abschattung, o.ä.) ganz gut. Dort könnte man dann den Sensor drauf legen der für die Abschattung genutzt wird.


Wenn du die Temperatur nicht für Frostschutz brauchst, dann kannst du im ASC-Device:
- bei ASC_temperatureSensor den Differenztemperatursensor hinterlegen
- bei ASC_temperatureReading  das entsprechende Reading

und dann bei den jeweiligen Rollos:
- ASC_Shading_Min_OutsideTemperature deine gewünschte Differenztemperatur hinterlegen, ab der eine Abschattung, bei entsprechender Helligkeit, ausgeführt werden soll.

Problem ist dann nur, dass gerade im Frühling recht schnell eine große Differenztemperatur erreicht wird, man aber gar noch nicht abschatten möchte, weil die Außentemperatur nicht wirklich hoch ist.
Als Workaround könnte man sich da ein DOIF basteln, dass bei einer zu geringen Außentemperatur für jedes Rollo den ASC_Shading_Mode auf none stellt und erst beim Überschreiten auf always.


Alternative:

man baut sich im Differenztemperatursensor  ein Userreading, welches ab der gewünschten Außentemperatur auf 100+Differenztemperatur  gesetzt wird und arbeitet mit dann mit diesem. ASC_Shading_Min_OutsideTemperature wäre dann bei dir vermutlich 105 oder 106. Damit würde man auch vermeiden, dass man ein Attribut ändern muss.
Migriere derzeit zu Home Assistant