alternative Steuerung von FHEM mit Hilfe Scripten

Begonnen von dieter56, 08 April 2019, 14:33:09

Vorheriges Thema - Nächstes Thema

dieter56

Hallo amenomade und danke für deine Fragen.

Zu deiner Ersten:
ZitatWenn power unter 5 kommt, und 300 Sek lang unter 5 bleibt  => Nachricht

Eine Möglichkeit:

WM_msgTime := now;
repeat {
  w := wait Waschmaschine_Power WM_msgTime;
  case
    (w = 2) {set ameBot "msg Waschmaschine fertig"}
    ([Waschmaschine_Power power]'toNumber < 5 & WM_msgTime < now) {WM_msgTime := now + 5,0}
    ([Waschmaschine_Power power]'toNumber >= 5) {WM_msgTime := now};
};


Die erste Zeile
WM_msgTime := now;
definiert eine Variable die die Zeit der Benachrichtigung enthält. in der Schleife dann der wait Befehl
wait Waschmaschine_Power WM_msgTime;
Er wartet darauf, dass sich in dem Device Waschmaschine_Power was tut oder auf das Erreichen der Zeit WM_msgTime. Er wartet so lange, bis eins von Beidem eintrifft. Da WM_msgTime nicht in der Zukunft liegt, wird nur auf Waschmaschine_Power gewartet.
Der Rückgabewert des Wait-Befehls ist die Nr. des Parameters der ausgelöst hat. Ist der Rückgabewert ist 2, also wenn WM_msgTime gesetzt und erreicht wurde - dann die Meldung.
Ansonsten wird das Reading power ausgewertet. Wenn kleiner als 5 und keine Benachrichtigungszeit gesetzt wurde, wird das gemacht (aktuelle Zeit plus 5 Minuten). Ist das Reading power >= 5 wird die Benachrichtigungszeit wieder zurückgesetzt. Man kann zum Zurücksetzen auch einen beliebigen Zeitpunkt in der Vergangenheit nehmen. z.B.: WM_msgTime := today;

Soweit dazu. Es ist vielleicht nicht die eleganteste Lösung, aber die die mir spontan einfiel. Zum Rest melde ich mich später. Ich muss jetzt erst mal ins Bett.

Gruß
Dieter

Panik

Hallo Dieter,

jetzt fehlt da die 98_lambda.pm

Panik
Raspberry3+,  CUL USB V3 mit V 1.66 CUL868, TRXRFX433, HM-MOD-UART, Phoscon-GW

dieter56

Hallo Panik,

Wenn ich das Archiv mit mc (MidnightCommander) ansehe ist alles drin. Wahrscheinlich verstehe ich zu wenig davon. Ich habe die Dateien nochmal jeweils einzeln zum Download hochgeladen.

Gruß
Dieter

Panik

Hallo Dieter,

ich nehme immer 7-ZIP und da sind es gesamt nur 2 Dateien  ???

Aber was Anderes:
Könnte man mit lambdaDevices eine Liste der Devices anzeigen lassen?
Und ist es auch möglich später mal mit den Alias-Namen eines Gerätes zu arbeiten, sofern einer vergeben wurde?

Ansonsten schönes Osterfest!

Panik
Raspberry3+,  CUL USB V3 mit V 1.66 CUL868, TRXRFX433, HM-MOD-UART, Phoscon-GW

rhabarber

Hallo dieter56,
bin schwer begeistert von Lambda.
Scheint schon so ziemlich alles dabei zu sein: Respekt, eine Skriptsprache auf ~~ 3 Seiten darzustellen, sehr strukturiert und auf das Notwendige eingedampft.
Habe heute nachmittag meine Urlaubsautomation in einem device runtergeschrieben, incl. RTS-Rollos, Tradfri, Sonoff-Tahomas; Netatmo und die Heizung habe ich heute nicht geschafft.
Da ich noch neu 'im Geschäft' bin (und Perl auch nicht kenne) fällt es mir deutlich leichter die Aufgaben in Lambda zu erledigen an Aufgaben und Zeiten orientiert als mit DOIFs, ATs oder ähnlichem.
Genau genommen braucht man mit Lambda nur die devices als Objekte mit Eigenschaften und Aktionen, sehr übersichtlich.
Also auf jeden Fall vielen Dank, ich hoffe dass es weitergeht mit dieser Skriptsprache, sie gefällt mir auch aber auch so schon sehr gut.