Hauptmenü

Ersatz für 'sleep'

Begonnen von ChristianKnorr, 22 September 2014, 22:10:23

Vorheriges Thema - Nächstes Thema

rudolfkoenig

Als Endbenutzer kann man die sleeps nicht loeschen.

Die deutsche Uebersetzung der Doku war falsch, da hat man meine englische Doku missverstanden. Ich habe jetz beide Versionen ueberarbeitet.

Damian

Ich frage mich warum sleep ohne angehängten Befehl überhaupt das System blockiert. In solchem Falle wäre wahrscheinlich nichts tun die bessere Alternative.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

justme1968

und noch eine warnung ausspucken.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Naja, sleep hat mWn angefangen als "echter" sleep Ersatz. Die Funktion als namensloser at kam spaeter dazu.

Seid ihr sicher, dass die urspruengliche Funktion eine Warnung verdient?
Damit muesste auch die Doku umformuliert werden.

Damian

Zitat von: rudolfkoenig am 21 Juli 2015, 16:48:18
Naja, sleep hat mWn angefangen als "echter" sleep Ersatz. Die Funktion als namensloser at kam spaeter dazu.

Seid ihr sicher, dass die urspruengliche Funktion eine Warnung verdient?
Damit muesste auch die Doku umformuliert werden.

Die Warnung ist eine Sache, aber:

Ein echter Sleep macht in einem "echten" Multitasking-System Sinn. Aber wer braucht ein stehendes FHEM?

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

justme1968

gibt es denn eine wirklich sinnvolle verwendung für das sleep ohne argumente oder macht es mehr probleme als es löst?

wen der meinung ist sein fhem lahm legen zu müssen kann das ja immer noch mit {sleep 10} machen.

gruss
andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Ok, kommt auf die TODO Liste, hoffentlich ist sourceforge irgendwannmal soweit.
Leider haben sie SVN ganz am Ende der Prio-Liste gesetzt.

JudgeDredd

Hallo Zusammen,

ich grabe das Thema hier nochmal aus, da ich bei der Suche nach einer Lösung noch nicht fündig geworden bin.

Ich möchte gerne genau das gleiche Vorhaben wie der Threadersteller (ChristianKnorr) umsetzen.
Sprich einen Wecker der in Stufen die Lautstärke anhebt.

Leider kam zu dem Vorschlag von "rudolfkoenig" hierzu kein Feedback.
Ich habe aber nun den Code:
  foreach my $vol (0..$volmax) {
    fhem("sleep ".($sleep*$volmax)."; set wz_Onkyo volume $vol;");
  }

mal ausprobiert und muss leider sagen, das es bei mir nicht funktioniert.

Bei dem Beispiel, blockiert FHEM zwar nicht, aber zuerst wird der SLEEP gemacht und danach läuft die Schleife in einem Rutsch durch.
Ein "langsames" anheben der Lautstärke erfolgt also leider nicht.

Hat sich bei der Problemlösung in den letzten 2,5 Jahren hierzu etwas in FHEM getan ?
Kann mir jemand einen Tip geben wonach ich suchen muss, oder gibt es nach wie vor keine Möglichkeit dies umzusetzen ?

Gruß,
JudgeDredd
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

justme1968

nach wie vor gibt es die von rudolf vorgeschlagene variante die auch funktioniert wenn man den code vervollständigt und z.b. $sleep richtig setzt.

eine zweite variante ist in diesem thread: https://forum.fhem.de/index.php?topic=51906.0 beschrieben.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

fl_Indigo

nochmal für einen laien wie mich:

ist dieser aufruf von sleep in einem DOIF blockierend oder nicht?


([Temperaturen:AnforderungPelletsofen] eq "EIN") (sleep 61; set TelegramBot message Pelletsofen gestartet! Kesselstart {([HC_Pelletsofen:countsPerDay]);} heute)
DOELSEIF
([Temperaturen:AnforderungPelletsofen] eq "AUS") (sleep 61; set TelegramBot message Pelletsofen gestoppt! Laufzeit {(my $langezahl=([HC_Pelletsofen:pulseTimeEdge]/3600); my $kurzezahl=sprintf "%.1f", $langezahl;
return $kurzezahl;)} Stunden)

CoolTux

Nein ist nicht blockierend. Aber Du solltest im DOIF besser das DOIF eigene sleep verwenden. Das ist das Attribut wait.
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.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net