Autor Thema: [73_AutoShuttersControl.pm] Neues Modul zum automatisierten steuern von Rolläden  (Gelesen 85700 mal)

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20922
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.me/MOldenburg
FHEM GitHub: https://github.com/fhem/
kein Support für cfg Editierer

Offline dk3572

  • Sr. Member
  • ****
  • Beiträge: 546
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?

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20922
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.me/MOldenburg
FHEM GitHub: https://github.com/fhem/
kein Support für cfg Editierer

Offline dk3572

  • Sr. Member
  • ****
  • Beiträge: 546
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.

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20922
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.me/MOldenburg
FHEM GitHub: https://github.com/fhem/
kein Support für cfg Editierer

Offline dk3572

  • Sr. Member
  • ****
  • Beiträge: 546
Hast Du das Attribut hideLaterThan auf 1d bei dem Kalenderdevice gesetzt?

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

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20922
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.me/MOldenburg
FHEM GitHub: https://github.com/fhem/
kein Support für cfg Editierer

Offline dk3572

  • Sr. Member
  • ****
  • Beiträge: 546
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.

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20922
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.me/MOldenburg
FHEM GitHub: https://github.com/fhem/
kein Support für cfg Editierer

Offline dk3572

  • Sr. Member
  • ****
  • Beiträge: 546
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.

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20922
OK ich schaue mir das mal an.
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.me/MOldenburg
FHEM GitHub: https://github.com/fhem/
kein Support für cfg Editierer

Offline C0mmanda

  • Full Member
  • ***
  • Beiträge: 374
Ok Sorry mein Fehler. Ich brauche nur das verbose 5 vom ASC Device. Tut mir leid.

Kein Problem, reiche ich schnellstmöglich ein :)

Gruß

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6871
  • eigentlich eher user wie "developer"
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-T5740@stretch, aktuelles FHEM + ConfigDB | CUL_HM@VCCU | MySensors: seriell, v.a. 2.3.1@RS485 | MQTT2: MiLight@ESP-GW + zigbee2mqtt | SIGNALduino | MapleCUN | ZWave
svn:MySensors, WeekdayTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Online CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20922
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.me/MOldenburg
FHEM GitHub: https://github.com/fhem/
kein Support für cfg Editierer

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 6871
  • eigentlich eher user wie "developer"
...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-T5740@stretch, aktuelles FHEM + ConfigDB | CUL_HM@VCCU | MySensors: seriell, v.a. 2.3.1@RS485 | MQTT2: MiLight@ESP-GW + zigbee2mqtt | SIGNALduino | MapleCUN | ZWave
svn:MySensors, WeekdayTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

 

decade-submarginal