FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: Bytechanger am 16 Januar 2017, 13:58:22

Titel: HM-Aktor "anpingen" ??
Beitrag von: Bytechanger am 16 Januar 2017, 13:58:22
Hallo,

für meine Anwendung möchte ich testen, ob ein HM-Aktor erreichbar ist.
In PERL habe ich es über

                 my $ostatus=ReadingsTimestamp("AussenSwitch","pct","0");
fhem "set AussenSwitch statusRequest";;
my $nstatus=ReadingsTimestamp("AussenSwitch","pct","0");
if ($ostatus eq $nstatus && $nstatus ne "0") {
                           ...

versucht.
Also ich lese den Timestamp eines Readings, setzte einen statusRequest ab und lese, ob sich der TimeStamp geändert hat.
Leider ist das  fhem "set AussenSwitch statusRequest";;  vermutlich asynchron, so dass das zweite Lesen des TimeStamps vor der Ausführung stattfindet und ich gleiche Werte bekomme.
Gibt es eine Möglichkeit zu warten, bis der statusRequest ausgeführt wurde, oder gibt es eine einfachere Möglichkeit zu "pingen" ??

Greets

Byte
Titel: Antw:HM-Aktor "anpingen" ??
Beitrag von: marvin78 am 16 Januar 2017, 13:59:43
Du könntest ein sleep einbauen.

Etwas komplizierter: Per notify auf entsprechende Events reagieren um dann den entsprechend nächsten Schritt auszuführen.
Titel: Antw:HM-Aktor "anpingen" ??
Beitrag von: Bytechanger am 16 Januar 2017, 14:03:16
OK, danke.
An ein Notify hatte ich auch schon gedacht, macht es komplizierter. Dann muss ich über ein weiteres Dummy festlegen, ob ich mich in einem Ping befinde, oder ob pct normal über das Einschalten geändert wurde...

Also habe ich keine Möglichkeit übersehen, danke ...

Greets

Byte
Titel: Antw:HM-Aktor "anpingen" ??
Beitrag von: frank am 16 Januar 2017, 14:12:47
könnte man auch über actiondetector mit attr actAutoTry automatisch machen lassen. je nach konfiguration eventuell etwas träge.
Titel: Antw:HM-Aktor "anpingen" ??
Beitrag von: Bytechanger am 17 Januar 2017, 09:58:40
Kann ich denn über Perl eine globale Variable erstellen und später abfragen?
Das erspart mir den dummy. Dann würde ich in perl bleiben.
Vermute doch, dass es geht, da vermutlich die gesamte Datenstruktur im Speicher ist (Arrays oder Strukturen)

Greets

Byte