FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: ToM_ToM am 10 November 2015, 18:11:23

Titel: myUtils Funktion in Thread auslagern möglich?
Beitrag von: ToM_ToM am 10 November 2015, 18:11:23
Hallo Zusammen, nachdem ich im Forum und durch google nichts finden konnte, hoffe ich dass mir jemand weiterhelfen kann.

Kann mir jemand sagen ob es möglich ist, in der "myUtils" eine Funktion in einem extra Thread auszulagern?

Folgendes Beispiel:
Ich möchte eine Funktion schreiben die ein blinken meiner Lampen simuliert und mir währendessen nicht mein ganzes System blockt. Natürlich könnt eich auch jede Menge "at" Elemente dafür anlegen, finde ich persönlich aber unschön.

Daher kurz und knapp: Ist es möglich, eine Funktion in einem extra Thread laufen zu lassen und wenn ja, wie?

Vielen Dank schon mal. :)
Titel: Antw:myUtils Funktion in Thread auslagern möglich?
Beitrag von: Mitch am 10 November 2015, 18:16:38
commandref??

z.B.
Zitatblink <number> <blink-period>
set the device on for <blink-period> then off for <blink-period> and repeat this <number> times. To stop blinking specify "0 0" as argument.
oder
Zitatdefine a7 at +*{3}00:00:02 set lamp on-for-timer 1 # Blink 3 times

Je nach Art des Devices.
Titel: Antw:myUtils Funktion in Thread auslagern möglich?
Beitrag von: ToM_ToM am 10 November 2015, 18:20:47
Hi Mitch, danke für die Antwort.

Aber meine Frage war ob Threads in der myUtils möglich sind. Also unabhängig von dem Beispiel. ;)
Titel: Antw:myUtils Funktion in Thread auslagern möglich?
Beitrag von: Icinger am 10 November 2015, 18:26:28
Schau dir mal das hier durch:
http://www.fhemwiki.de/wiki/DevelopmentModuleIntro (http://www.fhemwiki.de/wiki/DevelopmentModuleIntro)

Schau nach internalTimer

lg, Stefan
Titel: Antw:myUtils Funktion in Thread auslagern möglich?
Beitrag von: Mitch am 10 November 2015, 18:29:59
Einen Shellscript z.B. kannst Du immer aufrufen, auch direkt aus fhem, aber wozu, wenn es nur um blinken geht.
Titel: Antw:myUtils Funktion in Thread auslagern möglich?
Beitrag von: marvin78 am 10 November 2015, 18:35:08
Er wollte nur ein Beispiel nennen, wenn auch ein denkbar schlechtes, da at das ja von Haus aus kann.

Es gibt verschiedene Wege, etwas nicht blockierend umzusetzen. Je nach Anwendung (das Beispiel ist ja raus und wir wissen nicht, was dich sonst um treibt), sind InternalTimer, HttpUtils und Blocking.pm die Stichwörter.
Titel: Antw:myUtils Funktion in Thread auslagern möglich?
Beitrag von: ToM_ToM am 10 November 2015, 19:09:28
Ich schaue mir die Beispiele gerade mal an ob ich damit weiter komme.

Mir ging es hauptsächlich darum, ob es möglich ist, Threads selbst zu programmieren und zu integrieren, so wie es z.B. hier (http://perldoc.perl.org/threads.html (http://perldoc.perl.org/threads.html)) beschrieben ist.

Allerdings hatte das bei mir nicht funktioniert und ich bekam immer einen Thread::SCALAR - Fehler der mir bei der Fehlersuche nicht weiterhelfen konnte. Genauso wenn ich über das Thread-Modul von Perl gegangen bin.

use Thread;

Daher hatte ich hier auf ein Beispiel gehofft welches mir meinen Fehler aufzeigt.

Danke schon mal für die Hilfe.