[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

Dann muß ich das mal testen.
Was bekommst Du denn wenn Du
CommandSet(undef,'dummy'.AttrVal($calDev,'alias',undef).' tomorrow '.$value);
entsprechend aus führst.

Bei meinem Urlaub und auch bei den Schulferien meiner Kinder hat das super geklappt.
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 11 Januar 2019, 13:08:32
Dann muß ich das mal testen.
Was bekommst Du denn wenn Du
CommandSet(undef,'dummy'.AttrVal($calDev,'alias',undef).' tomorrow '.$value);
entsprechend aus führst.

Bei meinem Urlaub und auch bei den Schulferien meiner Kinder hat das super geklappt.

das müsstest du mir jetzt genauer erklären  ???
Wo soll ich das ausführen?

CoolTux

Zitat von: dk3572 am 11 Januar 2019, 13:11:48
das müsstest du mir jetzt genauer erklären  ???
Wo soll ich das ausführen?
Sorry mein Fehler. Falsche Zeile.

CommandGet(undef,$calDev.' events filter:mode=="upcoming"')

Wäre in FHEM Kommando

get Kalendername events filter:mode=="upcoming"

Die Ausgabe bräuchte ich für Deinen Test 4.
4. Mehrtägiger Termin bis heute (11.) = state 1, tomorrow 1
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 11 Januar 2019, 13:20:09
Sorry mein Fehler. Falsche Zeile.

CommandGet(undef,$calDev.' events filter:mode=="upcoming"')

Wäre in FHEM Kommando

get Kalendername events filter:mode=="upcoming"

Die Ausgabe bräuchte ich für Deinen Test 4.
4. Mehrtägiger Termin bis heute (11.) = state 1, tomorrow 1

Das habe ich jetzt in meinem Kalender Modul bei get Googlekalender events filter:mode=="upcoming" eingetragen.

Da passiert nichts.
Ohne den Filter bekomme ich alle Termine angezeigt.

CoolTux

Hast Du das Attribut hideLaterThan auf 1d bei dem Kalenderdevice gesetzt?
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 11 Januar 2019, 13:30:45
Hast Du das Attribut hideLaterThan auf 1d bei dem Kalenderdevice gesetzt?

Jep.
Nach mehrfacher Prüfung würde ich behaupten, 1:1 umgesetzt.

CoolTux


sub calendarEvents($) {
    my $calDev  = shift;
    my $value = 0;
    my $start = CommandGet(undef,$calDev.' events filter:mode=="start"');
    my $upcoming = CommandGet(undef,$calDev.' events filter:mode=="upcoming"');

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

    $value = 1 if ( ($start =~ m#(\d+)h# and $1 > 24) or ($start =~ m#(\d+)d# and $1 > 1) or length($upcoming) > 0 );
    CommandSet(undef,'dummy'.AttrVal($calDev,'alias',undef).' tomorrow '.$value);
}


Also das ist meine aktuelle Sub. Alles weitere muß ich bei Gelegenheit noch mal testen.
Kannst du mir ein Beispiel für ein Kalender geben. Also wann wo wie lange welcher Termin.
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 11 Januar 2019, 14:07:24

sub calendarEvents($) {
    my $calDev  = shift;
    my $value = 0;
    my $start = CommandGet(undef,$calDev.' events filter:mode=="start"');
    my $upcoming = CommandGet(undef,$calDev.' events filter:mode=="upcoming"');

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

    $value = 1 if ( ($start =~ m#(\d+)h# and $1 > 24) or ($start =~ m#(\d+)d# and $1 > 1) or length($upcoming) > 0 );
    CommandSet(undef,'dummy'.AttrVal($calDev,'alias',undef).' tomorrow '.$value);
}


Also das ist meine aktuelle Sub. Alles weitere muß ich bei Gelegenheit noch mal testen.
Kannst du mir ein Beispiel für ein Kalender geben. Also wann wo wie lange welcher Termin.

Habe die sub eingefügt. Gleiches Verhalten.
Was für ein Beispiel?
Ich habe es mit den oben besagten 4 Varianten getestet.

CoolTux

Beim 4. Beispiel ist es nicht sauber?
Und da hast Du für den heutigen Tag keinen Termin, auch keinen der über heute hinausgeht und auch kein Termin für Tomorrow?
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

Der Fehler tritt erst auf, wenn ich bis einschließlich heute, einen mehrtägigen Termin erstelle. Morgen stehen keine Termine drin.
Wenn ich nur heute einen ganztägigen Termin eintrage, ist tomorroe = 0, stimmt also.
Eben extra nochmals getestet.

CoolTux

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

C0mmanda

Zitat von: CoolTux am 11 Januar 2019, 07:59:57
Ok Sorry mein Fehler. Ich brauche nur das verbose 5 vom ASC Device. Tut mir leid.

Kein Problem, reiche ich schnellstmöglich ein :)

Gruß

Beta-User

Hallo zusammen,
da ich grade einen template-Vorschlag erhalten habe für den shelly2 im roller-Modus: Wie sollten denn die Befehle optimalerweise sein?
Im Moment wäre es "set <device> pos <%-Wert>". Paßt das, oder wäre pct besser? (100 scheint offen zu sein, 0 geschlossen).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

CoolTux

Zitat von: Beta-User am 12 Januar 2019, 17:29:43
Hallo zusammen,
da ich grade einen template-Vorschlag erhalten habe für den shelly2 im roller-Modus: Wie sollten denn die Befehle optimalerweise sein?
Im Moment wäre es "set <device> pos <%-Wert>". Paßt das, oder wäre pct besser? (100 scheint offen zu sein, 0 geschlossen).
Da die Konfiguration sehr flexibel ist passt Dein pos wunderbar. Kann ich dann auch gleich so im Modul zu den unterstützten Befehlen eintragen.
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

...hätte eher auf pct getippt, aber dann lasse ich es wie vorgeschlagen.

Das ist ein MQTT2_DEVICE-Gerät; wer die templates nutzt, hat als model-Attribut "A_11b_shelly2_roller", das ist aber noch nicht in Stein gemeißelt und wer es "händisch" macht, hat das ggf. gar nicht gesetzt. Vielleicht kürzt du das bei Bedarf auf "enthält" shelly2_roller, wenn sowas überhaupt benötigt wird?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files