at Befehl mit Log Einträgen

Begonnen von Johann.S, 30 Juli 2018, 21:38:03

Vorheriges Thema - Nächstes Thema

Johann.S

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
Raspi 3, Sduino 433MHz und 868MHz beide CC1101, Wetterstation TFA Dostmann 35.1119 (WH1080), NOBILY Standard-Minifunkrolladenmotor PR4 13/147-40 ID-98, Homematic CCU3 (homematic-raspi), HmIP-eTRV-2, HmIP-SWDO, HmIP-STH, HmIP-WTH-2, ESPEASY Steckdosen für Gartenbewässerung, Pool und Pool-Solar, ...

betateilchen

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'  }");;
  }
}
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Johann.S

#2
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)
Raspi 3, Sduino 433MHz und 868MHz beide CC1101, Wetterstation TFA Dostmann 35.1119 (WH1080), NOBILY Standard-Minifunkrolladenmotor PR4 13/147-40 ID-98, Homematic CCU3 (homematic-raspi), HmIP-eTRV-2, HmIP-SWDO, HmIP-STH, HmIP-WTH-2, ESPEASY Steckdosen für Gartenbewässerung, Pool und Pool-Solar, ...

Johann.S

FYI

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

Danke betateilchen

Johann
Raspi 3, Sduino 433MHz und 868MHz beide CC1101, Wetterstation TFA Dostmann 35.1119 (WH1080), NOBILY Standard-Minifunkrolladenmotor PR4 13/147-40 ID-98, Homematic CCU3 (homematic-raspi), HmIP-eTRV-2, HmIP-SWDO, HmIP-STH, HmIP-WTH-2, ESPEASY Steckdosen für Gartenbewässerung, Pool und Pool-Solar, ...

rudolfkoenig

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.

Johann.S

Der AT ist über FTUI änderbar, ich habe on-for-time für ebenfalls im Einsatz!
Raspi 3, Sduino 433MHz und 868MHz beide CC1101, Wetterstation TFA Dostmann 35.1119 (WH1080), NOBILY Standard-Minifunkrolladenmotor PR4 13/147-40 ID-98, Homematic CCU3 (homematic-raspi), HmIP-eTRV-2, HmIP-SWDO, HmIP-STH, HmIP-WTH-2, ESPEASY Steckdosen für Gartenbewässerung, Pool und Pool-Solar, ...