sleep in 99_myUtils.pm einbauen oder alternative ohne fhem zu blockieren

Begonnen von Ma_Bo, 16 Februar 2017, 15:16:11

Vorheriges Thema - Nächstes Thema

CoolTux

Viel interessanter wäre wieso die Routine ohne sleep nicht klappen sollte. Ansonsten einfach wie gesagt vor jedem FHEM Befehl, also nur am Anfang fhem "sleep 1;....
machen
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

Ma_Bo

Zitat von: Ma_Bo am 16 Februar 2017, 15:16:11
Wie schon hier beschrieben: https://forum.fhem.de/index.php/topic,60244.msg585709.html#msg585709 und ein erneuter Versuch mich mit der sub zu beschäftigen : https://forum.fhem.de/index.php/topic,60244.msg586227.html#msg586227

habe ich ein Problem mit meiner sub, ich möchte diese um ca. 1 Sekunde verzögern, damit alles ohne Probleme funktioniert.
Leider blockiert ein fhem durch ein "sleep" an dieser Stelle, für die angegebene Zeit und mein perfmon meckert dann.

Hat jemand eine Idee, wie ich eine Verzögerung hinbekomme ?

Gggfs. möchte ich auch ein Reading einlesen, was sich ca 1-2 Sekunden nach dem Aufruf der sub ändert und dies dann auch abfangen.

Hier nochmal die sub:

##### Start Alexa guten morgen
sub alexa_guten_morgen()
{
sleep 0.8;

my $Skillname = ReadingsVal("Alexa","fhemIntent",0);

  #Alexa
if ($Skillname =~ "amzn1.ask.skill.111")
    {fhem "setreading Alexa fhemIntent loeschen";return "Guten Morgen von Alexa";}

#Fernseher
elsif ($Skillname =~ "amzn1.ask.skill.222")
    {fhem "setreading Alexa fhemIntent loeschen";return "Guten Morgen von Fernseher";}

#Badezimmer
elsif ($Skillname =~ "amzn1.ask.skill.333")
    {fhem "setreading Alexa fhemIntent loeschen";return "Guten Morgen von Badezimmer";}

#Wohnzimmer
elsif ($Skillname =~ "amzn1.ask.skill.444")
    {fhem "setreading Alexa fhemIntent loeschen";return "Guten Morgen von Wohnzimmer";}

#Küche
elsif ($Skillname =~ "amzn1.ask.skill.555")
    {fhem "setreading Alexa fhemIntent loeschen";return "Guten Morgen von Küche";}

#Schlafzimmer
elsif ($Skillname =~ "amzn1.ask.skill.666")
    {fhem "setreading Alexa fhemIntent loeschen";return "Guten Morgen von Schlafzimmer";}

#Balkon
elsif ($Skillname =~ "amzn1.ask.skill.777")
    {fhem "setreading Alexa fhemIntent loeschen";return "Guten Morgen von Balkon";}

#Fehlerfall
elsif ($Skillname =~ "loeschen")
    {fhem "setreading Alexa fhemIntent loeschen";return "Fehlerfall";}
}
#####Ende Alexa guten morgen


Grüße Marcel

Weil sich der Wert des Readings kurz nach Aufruf der sub noch verändern kann:

my $Skillname = ReadingsVal("Alexa","fhemIntent",0);



Gesendet von iPhone mit Tapatalk
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

justme1968

hört mal auf hier am symptom rumzubasteln. im anderen thread gibt es eine version die direkt an der ursache ansetzt.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

CoolTux

Da du den Aufruf selbst wohl nicht steuern kannst, würde ich mit InternalTimer versuchen zu arbeiten. Wobei ich mir gerade selbst unsicher bin ob das überhaupt möglich ist. Pauschal wüsste ich das auf die schnelle nicht.
InternalTimer ist meines Wissens Instanzspezifisch und nicht Modulspezifisch.
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

marvin78

Das Auslesen des Readings muss ja offenbar verzögert werden. Da hilft es nicht, vor jedem fhem-Befehl ein sleep zu bauen.  ::)

Was mich nicht interessiert und wozu ich deshalb nichts sagen kann, ist Alexa. Meine Beiträge beziehen sich nur auf das verzögerte Auslesen und Ausführen.

Wenn justme1968 sagt, dass die Ursach behoben wird/wurde, ist das hier aber ohnehin nicht mehr wichtig ;)

Ma_Bo

Obwohl justme1968 wahrscheinlich die Lösung im Alexa Modul hat, teste ich diese Nacht oder morgen,

interessiert mich trotzdem ob es irgendwie möglich ist, das einlesen zu verzögern, so lernt man...


Gesendet von iPhone mit Tapatalk
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.