FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Johann.S am 30 Juli 2018, 21:38:03

Titel: at Befehl mit Log Einträgen
Beitrag von: Johann.S am 30 Juli 2018, 21:38:03
Hallo,

ich habe für meine Gartenbewässerung eine AT Definition erstellt!

*05:00 {
  if (ReadingsVal("Regen","24H","off") ne "on") {
    fhem("set ESPEasy_Gartenbewaesserung_1_SWITCH on");;
    Log 1, "Bewässerung an";;
    my $onfortimer = ReadingsVal("at_Giesen","on_for_timer","00:15");;
    fhem("define at_Giesen_aus_1 at +".$onfortimer.":00 set ESPEasy_Gartenbewaesserung_1_SWITCH off");;
  }
}


Bei diesem Beispiel wird jeden Tag um 5:00 Uhr die Gartenbewässerung eingeschaltet, im Log ein Eintrag gemacht und
15 Minuten später (on_for_timer) ein AT Befehl erstellt, der die Bewässerung wieder ausschaltet!
Kann mir jemand helfen die letzte Sequenz so zu ändern, dass ich im Log auch den Eintrag "Bewässerung aus" bekomme?
Ich komme mit den Hochkommas nicht ganz zurecht!

Danke im voraus

Gruß

Johann
Titel: Antw:at Befehl mit Log Einträgen
Beitrag von: betateilchen am 30 Juli 2018, 21:52:21
Das ist kein Problem der Hochkommas, sondern Deines Verständnisses zur Unterscheidung zwischen "perl Code" und "FHEM Befehl".
Aber da das hier im Forum schon ca. 3498 Mal erklärt ist und nachgelesen werden kann, will ich darauf nicht weiter eingehen.


*05:00 {
  if (ReadingsVal("Regen","24H","off") ne "on") {
    fhem("set ESPEasy_Gartenbewaesserung_1_SWITCH on");;
    Log 1, "Bewässerung an";;
    my $onfortimer = ReadingsVal("at_Giesen","on_for_timer","00:15");;
    fhem("define at_Giesen_aus_1 at +".$onfortimer.":00 set ESPEasy_Gartenbewaesserung_1_SWITCH off");;
    fhem("define at_Giesen_aus_log at +".$onfortimer.":00 {Log 1, 'Bewässerung aus'  }");;
  }
}
Titel: Antw:at Befehl mit Log Einträgen
Beitrag von: Johann.S am 30 Juli 2018, 22:02:38
Hallo betateilchen,

ich habe mich falsch ausgedrückt, ich wollte keine zusätzliche AT Definition sondern alles in einem z.B. so:

fhem("define at_Giesen_aus_1 at +".$onfortimer.":00 set { fhem('ESPEasy_Gartenbewaesserung_1_SWITCH off';; Log 1, 'Bewässerung aus'}");;


kann das funktionieren?

Gruß

Johann

Nachtrag: Auf die Idee mit dem zweiten AT bin ich gar nicht gekommen (schäm)
Titel: Antw:at Befehl mit Log Einträgen
Beitrag von: Johann.S am 30 Juli 2018, 22:31:50
FYI

Ich habe es jetzt mit den zwei AT gelöst!
Meine Definition hat nicht funktioniert, schliesse das Thema!

Danke betateilchen

Johann
Titel: Antw:at Befehl mit Log Einträgen
Beitrag von: rudolfkoenig am 31 Juli 2018, 10:27:54
Zitatfhem("define at_Giesen_aus_1 at +".$onfortimer.":00 set { fhem('ESPEasy_Gartenbewaesserung_1_SWITCH off';; Log 1, 'Bewässerung aus'}");;
kann das funktionieren?
Nein, der set ist an falschen Stelle, man kann perl und FHEM Befehle nicht wild kombinieren, ein Befehl ist entweder perl oder FHEM.
.":00" ueberfluessig, at interpretiert 00:15 als 15 Minuten.
ESPEasy schreibt beim jedem Schalten eine Zeile ins Log, ich haette das verwendet, evtl. durch aendern des verbose Attributes.
Man sollte dem ESPEasy-Maintainer vorschlagen, SetExtensions zu verwenden, damit waere on-for-timer als Befehl (mit Sekundenangabe als Argument) direkt verfuegbar.
Titel: Antw:at Befehl mit Log Einträgen
Beitrag von: Johann.S am 01 August 2018, 20:44:22
Der AT ist über FTUI änderbar, ich habe on-for-time für ebenfalls im Einsatz!