FHEM Forum

FHEM => Automatisierung => Thema gestartet von: the ratman am 09 September 2016, 11:53:22

Titel: mit zeiten rechnen
Beitrag von: the ratman am 09 September 2016, 11:53:22
hiho

langsam geh ich die verfeinerungen bei fhem an.
darunter nun: meine holde soll eine uhrzeit für die reinigungsfahrten unseres saugroboters festlegen können. 5 min vor der fahrt kommt dann nochmal eine meldung, die entsprechenden türen zu schließen, damit der bot nur fährt, wo er soll. weibchen ist da sehr eigen ...

die uhrzeit stellt sie per dummy ein, der das format HH:MM in seinem state speichert. den bot zu der zeit starten zu lassen ist mal kein problem.
das problem ist die warnmeldung, die 5 min. vorher raus soll. wie kann ich mit der uhrzeit des dummys - z.b. 17:00 rechnen, um mein 16:55 uhr für die meldung zu bekommen?
zur zeit hab ich noch feste zeiten drinnen, der bot fährt um 17 uhr los, drum kommt die warnung "hardgecodet" um 16:55  [16:55|012345](jaja, wochentage muß ich dann auch noch machen, aber alles der reihe nach *g*)
Titel: Antw:mit zeiten rechnen
Beitrag von: JoWiemann am 09 September 2016, 11:58:36
kurz gesucht und folgendes gefunden: https://forum.fhem.de/index.php?topic=12545.0

Grüße Jörg
Titel: Antw:mit zeiten rechnen
Beitrag von: KernSani am 09 September 2016, 12:00:42
wenn du mit DOIF arbeitest könnte auch das helfen: http://fhem.de/commandref_DE.html#DOIF_Relative_Zeitangaben (http://fhem.de/commandref_DE.html#DOIF_Relative_Zeitangaben)
Titel: Antw:mit zeiten rechnen
Beitrag von: rapster am 09 September 2016, 12:08:51
Evtl. hilft dir die Funktion time_str2num() aus der 99_Utils.pm;
{ time_str2num( TimeNow() ) }

Habe mir in der myUtils noch eine Funktion in die Gegenrichtung angelegt:
sub time_sec2hms($) {
    my $s = shift;
    my $m = $s / 60;
    $s = $s % 60;
    my $h = $m / 60;
    $m %= 60;
    return sprintf("%02d:%02d:%02d", $h, $m, $s) if($h < 24);
    my $d = $h / 24;
    $h %= 24;
    return sprintf "%d:%02d:%02d:%02d", $d, $h, $m, $s;
}

{ time_sec2hms( time_str2num(TimeNow()) ) }
Titel: Antw:mit zeiten rechnen
Beitrag von: the ratman am 09 September 2016, 12:10:51
@JoWiemann
das hab ich auch gefunden, sagt mir nur überhaupt nix ...

@KernSani
das problem ist ja, dass ich nicht von der aktuellen uhrzeit, sondern von einer in nem dummy stehenden ausgehen muß.

oder wär das echt so einfach?
ist das richtig? --> [[dummyzeit]-[:05]]
nö, oder?

@rapster - ich und perl? *g*
Titel: Antw:mit zeiten rechnen
Beitrag von: JoWiemann am 09 September 2016, 12:24:13
Aus einem älteren Post, gefunden durch googeln:


my $NextAlarmTime = ReadingsVal("dein dummy", "state", "00:00");

# Die 5 Minuten, können auch in einem weiteren Dummx sein
my  $Poffset = -5; # oder my  $Poffset = ReadingsVal("dein dummy abzuziehen", "state", "00:00");

# Zur Übernahme des Datums und der Zeit von heute:   
my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime;

#  Nun umgekehrt die zu verändernde Stunde und Minute (z.B. Weckzeit) einspielen. Steht bei mir in $NextAlarmTime als hh:mm:
my $NextAlarmTimeP = mktime(0,substr($NextAlarmTime,3,2),substr($NextAlarmTime,0,2),$mday,$month,$year,$wday,$yday,$isdst);

# Die Zeitverschiebung berechnen. Steht bei mir in $Poffset (als Minuten):
my $NextAlarmTimePM = $NextAlarmTimeP + $Poffset * 60;

# Nun wieder zurück in Stunde und Minute etc. umändern:
my ($Psec,$Pmin,$Phour,$Pmday,$Pmonth,$Pyear,$Pwday,$Pyday,$Pisdst) = localtime($NextAlarmTimePM);

# Jetzt noch in eine Uhrzeit konvertieren. Tag, Monat und Jahr müsste auch richtig berechnet werden:

my $NextAlarmTimePHM = $Phour.':'.$Pmin;



Das Ergebnis nun mit fhem(set ...) dahin bringen, wo es benötigt wird.
Titel: Antw:mit zeiten rechnen
Beitrag von: fiedel am 09 September 2016, 12:39:46
Hier auch noch ein hoffentlich recht verständliches Beispiel (http://www.fhemwiki.de/wiki/E-Mail_per_notify_nach_Zeitablauf_erneut_senden).
Titel: Antw:mit zeiten rechnen
Beitrag von: betateilchen am 09 September 2016, 12:57:07
Da hab ich auch noch was...

Folgende Funktion in die 99_myUtils.pm packen:


sub timeAdd($$){
   my ($t,$offset) = @_;
   my @t = split(/:/,$t);
      $t[2] //= 0;
   my $s = $t[0]*3600 + $t[1]*60 + $t[2] + $offset;

   return sprintf("%02d:%02d:%02d", $s/3600, ($s/60)%60, $s%60);
}


dann in der fhem Befehlszeile eingeben:

{timeAdd('17:00',-300)}

und sich darüber freuen, dass 16:55:00 rauskommt :)

Das Ganze funktioniert auch mit dem Eingabeformat hh:mm:ss für die Ausgangszeit.

Einziges Manko: rund um Mitternacht klappt das Ganze nicht. Aber bei Staubsaugern ist das wohl eher unkritisch.
Titel: Antw:mit zeiten rechnen
Beitrag von: KernSani am 09 September 2016, 13:01:31
Zitat von: the ratman am 09 September 2016, 12:10:51
oder wär das echt so einfach?
ist das richtig? --> [[dummyzeit]-[:05]]
nö, oder?
Doch so einfach :-) ich glaube die Klammern sitzen in deinem Coding nicht ganz richtig. Gibt sogar ein Beispiel in der Doku (Lampe eine Stunde vor [Dummy] ausschalten).
Titel: Antw:mit zeiten rechnen
Beitrag von: the ratman am 09 September 2016, 16:14:10
thx KernSari
dann werd ich mal mit klammern um mich werfen, bis es geht *g*

nachtrag: ne, is leider doch nicht gar so einfach scheints. muß ich wohl doch wieder mal ne perl-abschreibübung ohne kapieren machen ...
zumindest krieg ich betateilchens kreuzworträtsel mal zum laufen *g* thx dafür betateilchen! und auch die anderen helfer danke!
Zitat von: betateilchen am 09 September 2016, 12:57:07
Da hab ich auch noch was...

Folgende Funktion in die 99_myUtils.pm packen:


sub timeAdd($$){
   my ($t,$offset) = @_;
   my @t = split(/:/,$t);
      $t[2] //= 0;
   my $s = $t[0]*3600 + $t[1]*60 + $t[2] + $offset;

   return sprintf("%02d:%02d:%02d", $s/3600, ($s/60)%60, $s%60);
}


dann in der fhem Befehlszeile eingeben:

{timeAdd('17:00',-300)}

und sich darüber freuen, dass 16:55:00 rauskommt :)

Das Ganze funktioniert auch mit dem Eingabeformat hh:mm:ss für die Ausgangszeit.

Einziges Manko: rund um Mitternacht klappt das Ganze nicht. Aber bei Staubsaugern ist das wohl eher unkritisch.

allerdings funzt die sache doch nicht wirklich

der dummy sieht so aus: homObot_Uhrzeit    17:00     dummy
ein [[homObot_Uhrzeit]|012345] ergibt brav 09.09.2016 17:00:00|012345
aber [{timeAdd('[homObot_Uhrzeit]',-300)}|012345] ergibt leider blödsinn a'la 10.09.2016 00:55:00|012345

geb ich {timeAdd('17:00',-300)} "nur" in die befehlszeile ein, kommt aber koreckt 16:55 raus
geb ich {timeAdd('[homObot_Uhrzeit]',-300)} ein, kommt auch in der befehlszeile 00:55:00 raus
Titel: Antw:mit zeiten rechnen
Beitrag von: KernSani am 09 September 2016, 16:54:08
Zitat von: the ratman am 09 September 2016, 16:14:10
thx KernSari
dann werd ich mal mit klammern um mich werfen, bis es geht *g*

nachtrag: ne, is leider doch nicht gar so einfach scheints. muß ich wohl doch wieder mal ne perl-abschreibübung ohne kapieren machen ...


Habe mal mit Klammern um mich geworfen... Folgendes funktioniert:
Internals:
   CFGFN
   DEF        ([([clockTimer]-[00:05])])()
   NAME       rechne_mit_Zeit
   NR         12651
   NTFY_ORDER 50-rechne_mit_Zeit
   STATE      initialized
   TYPE       DOIF
   Readings:
     2016-09-09 16:50:31   cmd             0
     2016-09-09 16:50:31   state           initialized
     2016-09-09 16:50:31   timer_1_c1      10.09.2016 06:10:00

Wie Du siehst steht das timer reading auf 06:10

Mein Wecker (clockTimer) steht auf 06:15 (eklige Zeit):
Internals:
   NAME       clockTimer
   NR         325
   STATE      06:15
   TYPE       dummy
   Readings:
     2016-09-07 21:39:45   state           06:15


Grüße,

Oli
Titel: Antw:mit zeiten rechnen
Beitrag von: the ratman am 09 September 2016, 16:58:39
ahh, na ich hab ja auch nur [:05] genommen, scheints will der gute dann also auch stunden haben. dachte ich, aus der ref anders rausgelesen zu haben bei den doif's ..

na dann probier ichs nochmal so, allerdings würd mich jetzt durchaus auch die komische zeit bei betateilchens konstrukt interessieren.
ich nehm mal an, ich muß meinen dummy anders da rein arbeiten, weiß aber wieder mal nicht wie ...


nachtrag: funzt: [([homObot_Uhrzeit]-[00:05])|012345]
nachdem das perl-freie zone ist, werd ichs wohl so lassen. sonst steh ich in nem jahr wieder mit blöden fragen da, wenn ich was ändern wollen würde *g*.

nochmal vielen dank an die beteiligten hier!
Titel: Antw:mit zeiten rechnen
Beitrag von: sash.sc am 09 September 2016, 16:59:04
Mit dem berechnen von Zeiten im Bedigungsteil des DOIF  klappt, nur nicht im befehlsteil. Hatte da auch schonmal nachgefragt.

Gruß Sascha
Titel: Antw:mit zeiten rechnen
Beitrag von: KernSani am 09 September 2016, 17:03:13
Zitat von: the ratman am 09 September 2016, 16:58:39
ich nehm mal an, ich muß meinen dummy anders da rein arbeiten, weiß aber wieder mal nicht wie ...
Perl kennt kein [Device], da musst du mit
ReadingsVal("DeviceName","state",0) arbeiten...

Zitat von: sash.sc am 09 September 2016, 16:59:04
Mit dem berechnen von Zeiten im Bedigungsteil des DOIF  klappt, nur nicht im befehlsteil. Hatte da auch schonmal nachgefragt.
Stimmt... aber im konkreten Fall ist es ja in der Bedingung notwendig...
Titel: Antw:mit zeiten rechnen
Beitrag von: the ratman am 10 September 2016, 13:00:22
muß ich schon wieder nerven ...

jetzt hab ich meine zeit ja im griff dank euch, dachte ich, ich geh die wochentagssteuerung an.
da will ich auch mit nem dummy arbeiten, der einfach im state die tage trägt (wie ich den dann befülle, werden wir sehen, derzeit mach ich das noch "händisch") - z.b. sieht der state denn wie "012345" aus.
das steht im doif unter "Probably associated with" auch richtig drinnenhomObot_Wochentag 012345 dummy

nächster schritt: ich dachte, ich kann das dummy-device einfach im doif einbauen - z.b.:[?([homObot_Uhrzeit]-[00:05])|[homObot_Wochentag]-([homObot_Uhrzeit]+[00:55])|[homObot_Wochentag]]dabei kommt dummer weise aber folgendes raus:timer_1_c1      10.09.2016 16:55:00|[homObot_Wochentag] 2016-09-10 12:49:18
timer_2_c1 10.09.2016 17:55:00|[homObot_Wochentag] 2016-09-10 12:49:18


was mach ich den nu scho wieder falsch?
Titel: Antw:mit zeiten rechnen
Beitrag von: sash.sc am 10 September 2016, 13:29:31
In dem Dummy muss ne zeit stehen
Titel: Antw:mit zeiten rechnen
Beitrag von: KernSani am 10 September 2016, 13:45:43
Ich denke, da ist wieder mit Klammern spielen angesagt... Versuch mal die Uhrzeit noch separat zu klammern, also nach dem ? ein [ und vor dem | wieder zu ]. Lass mich wissen wenn's funktioniert, dann baue ich es für meinen Wecker nach :-D
Titel: Antw:mit zeiten rechnen
Beitrag von: the ratman am 10 September 2016, 14:33:37
@sash.sc
naja, eig. stehen nach dem | die wochentage

@KernSani
hab schon wie n böser klammern aller arten probiert *g* meine versuche mochte fhem auf jeden fall mal nicht

dein vorschlag wäre also aus
[?([homObot_Uhrzeit]-[00:05])|[homObot_Wochentag]-([homObot_Uhrzeit]+[00:55])|[homObot_Wochentag]]
[?[([homObot_Uhrzeit]-[00:05])]|[homObot_Wochentag]-([homObot_Uhrzeit]+[00:55])|[homObot_Wochentag]]
zu machen
das ergibt dann leider ne dumme fehlermeldung
homObot_Tagesreinigung DOIF: device does not exist: ([homObot_Uhrzeit]-[00: [([homObot_Uhrzeit]-[00:05])]

nachtrag:
nur der vollständigkeit halber - das funzt eben nicht
[?([homObot_Uhrzeit]-[00:05])|[homObot_Wochentag]-([homObot_Uhrzeit]+[00:55])|[homObot_Wochentag]]
aber das
[?([homObot_Uhrzeit]-[00:05])|012345-([homObot_Uhrzeit]+[00:55])|012345]
schon.
es liegt in meinen augen also eindeutig daran, dass ich den dummy falsch eintrage. er schreibt aber z.b.
[?([homObot_Uhrzeit]-[00:05])|{ReadingsVal("homObot_Wochentag","state",0)}-([homObot_Uhrzeit]+[00:55])|{ReadingsVal("homObot_Wochentag","state",0)}]
leider ebenso als klartext raus - also falsch. da mir sonst aber keine weitere schreibweise bekannt is ...
des weiteren hab ich probiert, den "|" mit dem dummy mit zu übergeben. da kommt dann ne fehlermeldung, dass dies ne falsche uhrzeit sei.
übrigens auch das ganze konstrukt ohne ein "?" am anfang bringt die selben ergebnisse.
Titel: Antw:mit zeiten rechnen
Beitrag von: Damian am 10 September 2016, 17:59:05
Zitat von: the ratman am 10 September 2016, 14:33:37
@sash.sc
naja, eig. stehen nach dem | die wochentage

@KernSani
hab schon wie n böser klammern aller arten probiert *g* meine versuche mochte fhem auf jeden fall mal nicht

dein vorschlag wäre also aus
[?([homObot_Uhrzeit]-[00:05])|[homObot_Wochentag]-([homObot_Uhrzeit]+[00:55])|[homObot_Wochentag]]
[?[([homObot_Uhrzeit]-[00:05])]|[homObot_Wochentag]-([homObot_Uhrzeit]+[00:55])|[homObot_Wochentag]]
zu machen
das ergibt dann leider ne dumme fehlermeldung
homObot_Tagesreinigung DOIF: device does not exist: ([homObot_Uhrzeit]-[00: [([homObot_Uhrzeit]-[00:05])]

nachtrag:
nur der vollständigkeit halber - das funzt eben nicht
[?([homObot_Uhrzeit]-[00:05])|[homObot_Wochentag]-([homObot_Uhrzeit]+[00:55])|[homObot_Wochentag]]
aber das
[?([homObot_Uhrzeit]-[00:05])|012345-([homObot_Uhrzeit]+[00:55])|012345]
schon.
es liegt in meinen augen also eindeutig daran, dass ich den dummy falsch eintrage. er schreibt aber z.b.
[?([homObot_Uhrzeit]-[00:05])|{ReadingsVal("homObot_Wochentag","state",0)}-([homObot_Uhrzeit]+[00:55])|{ReadingsVal("homObot_Wochentag","state",0)}]
leider ebenso als klartext raus - also falsch. da mir sonst aber keine weitere schreibweise bekannt is ...
des weiteren hab ich probiert, den "|" mit dem dummy mit zu übergeben. da kommt dann ne fehlermeldung, dass dies ne falsche uhrzeit sei.
übrigens auch das ganze konstrukt ohne ein "?" am anfang bringt die selben ergebnisse.

Wie kommst du darauf in einer Zeitangabe mehrere Pipezeichen | anzugeben.

Die Syntax ist:

[(Rechnen mit Zeiten)|Wochentag]

Titel: Antw:mit zeiten rechnen
Beitrag von: the ratman am 10 September 2016, 18:14:42
ZitatWie kommst du darauf in einer Zeitangabe mehrere Pipezeichen | anzugeben.
einfach, weils ohne dem device funzt?
ausserdem hab ich die von-bis angaben für z.b. zeitäume (?) und triggern zu verschiednen zeiten/tagen dann so interpretiert
[(Rechnen mit Zeiten1)|Wochentage1]-[(Rechnen mit Zeiten2)|Wochentage2]

das[?([homObot_Uhrzeit]-[00:05])|012345-([homObot_Uhrzeit]+[00:55])|012345]geht ja auch
aber z.b. das[([homObot_Uhrzeit]-[00:10])|[homObot_Wochentag]]geht auch mit nur 1 pipe nicht. während das [([homObot_Uhrzeit]-[00:10])|012345] wiederum geht.
Titel: Antw:mit zeiten rechnen
Beitrag von: Damian am 10 September 2016, 20:54:14
Zitat von: the ratman am 10 September 2016, 18:14:42
einfach, weils ohne dem device funzt?
ausserdem hab ich die von-bis angaben für z.b. zeitäume (?) und triggern zu verschiednen zeiten/tagen dann so interpretiert
[(Rechnen mit Zeiten1)|Wochentage1]-[(Rechnen mit Zeiten2)|Wochentage2]

das[?([homObot_Uhrzeit]-[00:05])|012345-([homObot_Uhrzeit]+[00:55])|012345]geht ja auch
aber z.b. das[([homObot_Uhrzeit]-[00:10])|[homObot_Wochentag]]geht auch mit nur 1 pipe nicht. während das [([homObot_Uhrzeit]-[00:10])|012345] wiederum geht.

Dann muss ich hier einiges geradestellen.

1. Bei Zeitintervallen von-bis gibt es nur ein Pipezeichen und nicht zwei. (Edit: hier ist der Parser etwas großzügig und meckert nicht, genommen wird aber nur die zweite Wochentagangabe)
2. Indirekte Wochentagangaben werden erst zum Ausführungszeitpunkt ausgewertet, daher ist die Angabe in eckigen Klammern bei den timer-Readings normal und funktioniert auch korrekt.

Titel: Antw:mit zeiten rechnen
Beitrag von: KernSani am 10 September 2016, 22:18:23
Zitat von: Damian am 10 September 2016, 20:54:14
2. Indirekte Wochentagangaben werden erst zum Ausführungszeitpunkt ausgewertet, daher ist die Angabe in eckigen Klammern bei den timer-Readings normal und funktioniert auch korrekt.
Arrrggg... Da hätte ich auch selbst drauf kommen können. Würde ja überhaupt keinen Sinn machen, das beim Anlegen des DOIFs schon auszuwerten.
@Damian: Danke für die Erklärung
@ratman:  Dann kann deine Sauger jetzt losrennen und ich kann einstellen, an welchen Tagen ich geweckt werden will... Hast Du schon was gefunden um die Tage einzustellen? multiple-strict liefert ja leider Komma-getrennt zurück :-(
Titel: Antw:mit zeiten rechnen
Beitrag von: the ratman am 11 September 2016, 08:48:14
sag jetzt nur bloß nicht, dass das schon wo steht *g*

auf jeden fall danke für die info
Titel: Antw:mit zeiten rechnen
Beitrag von: the ratman am 11 September 2016, 18:14:54
hihi, ich wusste, dass ich euch nicht lange in ruh lassen werd *g*
diesmal: ich will mir einen dummy basteln, mit dem ich die aktiven wochentage einstellen kann

der dummy exisitert schon mal und macht auch brav seine 0er und 1er und ...readingList      So Mo Di Mi Do Fr Sa
setList So:0, Mo:1, Di:2, Mi:3, Do:4, Fr:5, Sa:6
stateFormat So Mo Di Mi Do Fr Sa
webCmd So:Mo:Di:Mi:Do:Fr:Sa
das problem: ich krieg anstelle "0123" natürlich "0 1 2 3" raus.
wie krieg ich die abstände da raus?


aja, und falls wer ne idee hat, wie man das ganze mit icons machen könnte - also z.b. icon für "MO ein" und icon für "MO aus", das dann aber "1" oder "nix" liefert ... ich würd demjenigen die füße küssen *g*. muß aber im floorplan funzen. und da verweigern zumindest bei mir die widgets schon mal ihren dienst.
Titel: Antw:mit zeiten rechnen
Beitrag von: Damian am 11 September 2016, 18:46:11
Zitat von: the ratman am 11 September 2016, 18:14:54
hihi, ich wusste, dass ich euch nicht lange in ruh lassen werd *g*
diesmal: ich will mir einen dummy basteln, mit dem ich die aktiven wochentage einstellen kann

der dummy exisitert schon mal und macht auch brav seine 0er und 1er und ...readingList      So Mo Di Mi Do Fr Sa
setList So:0, Mo:1, Di:2, Mi:3, Do:4, Fr:5, Sa:6
stateFormat So Mo Di Mi Do Fr Sa
webCmd So:Mo:Di:Mi:Do:Fr:Sa
das problem: ich krieg anstelle "0123" natürlich "0 1 2 3" raus.
wie krieg ich die abstände da raus?


DOIF ist an dieser Stelle ziemlich großzügig. Es sucht nur nach dem Vorkommen der passenden Ziffer, egal was da sonst noch drin steht.
Titel: Antw:mit zeiten rechnen
Beitrag von: the ratman am 12 September 2016, 08:04:45
d.h.: wenn dort [14:00|0x 1aaa23456] stehen würde, würd ers brav als 0123456 intepretieren?
is ja genial ... thx für die info!
Titel: Antw:mit zeiten rechnen
Beitrag von: KernSani am 15 September 2016, 21:45:25
Zitat von: Damian am 11 September 2016, 18:46:11
DOIF ist an dieser Stelle ziemlich großzügig. Es sucht nur nach dem Vorkommen der passenden Ziffer, egal was da sonst noch drin steht.
Dank dieses grandiosen Hinweises habe ich mir jetzt (erstmal die vereinfachte Version) meines Wochentags-Dummys gebaut:
setList    state:multiple-strict,8-Werktags,7-Wochenende/Feiertag
DOIF ist so großzügig und interpretiert das tatsächlich als 7 oder 8 oder 78 :-)
Thanks!
Titel: Antw:mit zeiten rechnen
Beitrag von: the ratman am 06 Oktober 2016, 10:48:45
hiho - natürlich steht euer onkel ratty wieder mal an ... ich hab meine steuerung des putzroboters so weit fertig, allerdings mag mir das ding nicht anstarten, wenn schon meine bedienungen vor dem start erfüllt wurden. "do" und "event-on..." hab ich schon in so gut wie allen im forum gefundenen kombis durch, aber nix passiert.
hat wer ne idee dazu?

das doif(
   [?[homObot_Uhrzeit]|[homObot_Wochentag]-([homObot_Uhrzeit]+[01:00])|[homObot_Wochentag]]
      and
   [homObot_BeginntAnAus:state] eq "on"
      and
   [MK_Schiebetuer:state] eq "closed"
      and
   [MK_Badezimmertuer:state] eq "closed"
)

(
set homObot Start;
)


DOELSEIF ## Status

(
   [?[homObot_Uhrzeit]|[homObot_Wochentag]-([homObot_Uhrzeit]+[01:00])|[homObot_Wochentag]]
      and
   [homObot_BeginntAnAus:state] eq "on"
      and
   [MK_homObot:sabotageError] eq "on"
)

(
    set BotGeputztDummy j;
)


DOELSEIF ## Reset

(
   [([homObot_Uhrzeit]-[00:10])|[homObot_Wochentag]]
      and
   [homObot_BeginntAnAus:state] eq "on"
)

(
   set homObot_Tagesreinigung initialize;
   set BotGeputztDummy n;
   set homObot_Startansage initialize;
)
erklärung:
der homobot soll starten, wenn die zeiten und tage passen (das funzt so tatsächlich prima), der bot nicht per schalter deaktiviert wurde und die beiden angegebenen türen geschlossen sind.
"## Status" ist dazu da, um ein ständiges wiederholen eines doif's für die "türenschließwarnung" zu unterbinden.
"## Reset" setze mal 10 vor beginn alles sicherheitshalber auf "ausgangsposition"
"MK_homObot:sabotageError" falls sich wer fragt ... das ding ist n magnetkontakt, dessen sabo-kontakt mit nem endschalter getuned is, um mir zu zeigen ob der bot in der ladestation ist.
verhalten:
ist noch eine tür zu schließen, während die zeitspanne stimmt, fährt der bot ohne murren los.
sind allerdings schon alle ereignisse erfüllt (beide türen zu, der schalter für die "fahrerlaubis" ein), dann gibt er zwar an, dass das letzte ausgeführte command cmd_1 war, aber der bot kriegt keinen startbefehl.
verdacht:
es hat wohl was mit den zeiten/tagen zu tun. wie ich die aber als trigger verwenden kann, ist mir rätselhaft. das "?" kann ich in dem fall ja nicht einfach weg machen, weil (so hab ichs zumindest verstanden) dann ja nur anfangs- und endzeit als trigger benutzt werden würden. korrekt?
Titel: Antw:mit zeiten rechnen
Beitrag von: CoolTux am 06 Oktober 2016, 12:00:54
set homObot cleanStart;

Du Nase  ;D
Titel: Antw:mit zeiten rechnen
Beitrag von: the ratman am 06 Oktober 2016, 13:23:48
befehlscode auszug mein geliebter nasenbär:
ich mach das doch per harmony hub, weil mein bot ja den hack verweigert ...
ZitathomObot   LG   CE VR 64701 LVMP
   Volume
      Mute                   Mute
   NavigationBasic
      DirectionDown          Direction Down
      DirectionLeft          Direction Left
      DirectionRight         Direction Right
      DirectionUp            Direction Up
   PlayMode
      Repeat                 Repeat
   Miscellaneous
      Clock                  Clock
      Diagnosis              Diagnosis
      Home                   Home
      Mode                   Mode
      MySpace                MySpace
      Schedule               Schedule
      Start                  Start
      Stop/OK                Stop/OK
      Turbo                  Turbo