Autor Thema: [gelöst]Wie überprüfe ich, ob ein "named" sleep exsistiert?  (Gelesen 573 mal)

Offline frober

  • Hero Member
  • *****
  • Beiträge: 1061
  • Was man nicht kann, kann man lernen...
Hallo zusammen,

da ich mit Watchdog meine Aufgabenstellung nicht umgesetzt bekomme, habe ich mich für ein notify mit perl und "named" sleep entschlossen.

Wie kann ich überprüfen ob das sleep existiert, bevor ich es lösche?

z.B.
.
.
fhem('sleep 60 mySleep quiet; set Pumpe off');
.
.
if (existiert mySleep) {fhem('cancel mySleep quiet');}
.
.
« Letzte Änderung: 17 Oktober 2021, 15:22:29 von frober »
Raspi 3b mit Raspbian Stretch und relativ aktuellem Fhem,  FS20, LGW, PCA301, MySensors mit RS485(CAN-Receiver), etc.,
einiges umgesetzt, vieles in Planung :-)

********************************************
...man wächst mit der Herausforderung...

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 27503
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/
Mein Dokuwiki:
https://www.cooltux.net

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17623
  • s/fhem\.cfg/configDB/g
Antw:Wie überprüfe ich, ob ein "named" sleep exsistiert?
« Antwort #2 am: 17 Oktober 2021, 14:57:56 »
if($sleepers{$id})
Wobei $id in Deinem Beispiel 'mySleep' wäre.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline TomLee

  • Hero Member
  • *****
  • Beiträge: 3895
  • ... wer sät, der erntet ...
Antw:Wie überprüfe ich, ob ein "named" sleep exsistiert?
« Antwort #3 am: 17 Oktober 2021, 15:00:25 »
und in dem gezeigten Code steht den Klammern hinten eine Rundung besser .

Offline frober

  • Hero Member
  • *****
  • Beiträge: 1061
  • Was man nicht kann, kann man lernen...
Antw:Wie überprüfe ich, ob ein "named" sleep exsistiert?
« Antwort #4 am: 17 Oktober 2021, 15:02:24 »
https://forum.fhem.de/index.php?topic=96702.0

Hilft das?

Nicht wirklich, aber wenn ein quiet reicht, das habe ich eh schon.
Ich dachte es geht besser.

Danke
Raspi 3b mit Raspbian Stretch und relativ aktuellem Fhem,  FS20, LGW, PCA301, MySensors mit RS485(CAN-Receiver), etc.,
einiges umgesetzt, vieles in Planung :-)

********************************************
...man wächst mit der Herausforderung...

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17623
  • s/fhem\.cfg/configDB/g
Antw:Wie überprüfe ich, ob ein "named" sleep exsistiert?
« Antwort #5 am: 17 Oktober 2021, 15:02:57 »
und in dem gezeigten Code steht den Klammern hinten eine Rundung besser .

 ::) das war doch nur ein Schema, ohne Anspruch auf Funktionsfähigkeit...
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline frober

  • Hero Member
  • *****
  • Beiträge: 1061
  • Was man nicht kann, kann man lernen...
Antw:Wie überprüfe ich, ob ein "named" sleep exsistiert?
« Antwort #6 am: 17 Oktober 2021, 15:21:18 »
@betateilchen: danke, so hatte ich mir das vorgestellt :)

@TomLee: das war als Bsp. so dahin geschrieben, aber du hast natürlich Recht, ich korrigiere es, im Falle, dass es jemand benutzen möchte. ;)
Raspi 3b mit Raspbian Stretch und relativ aktuellem Fhem,  FS20, LGW, PCA301, MySensors mit RS485(CAN-Receiver), etc.,
einiges umgesetzt, vieles in Planung :-)

********************************************
...man wächst mit der Herausforderung...

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17623
  • s/fhem\.cfg/configDB/g
Antw:Wie überprüfe ich, ob ein "named" sleep exsistiert?
« Antwort #7 am: 17 Oktober 2021, 15:28:42 »
so hatte ich mir das vorgestellt

Sowas findet man am einfachsten heraus, wenn man einen Blick in die fhem.pl wirft :)
Etwas anderes habe ich auch nicht getan.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline frober

  • Hero Member
  • *****
  • Beiträge: 1061
  • Was man nicht kann, kann man lernen...
Antw:Wie überprüfe ich, ob ein "named" sleep exsistiert?
« Antwort #8 am: 17 Oktober 2021, 15:30:19 »
Sowas findet man am einfachsten heraus, wenn man einen Blick in die fhem.pl wirft :)
Etwas anderes habe ich auch nicht getan.

Ok, nur komme ich anscheinend nicht an die Variable dran
ERROR:
Global symbol "%sleepers" requires explicit package name (did you forget to declare "my %sleepers"?) at ./FHEM/99_myUtils_BrunnenpumpeSteuerung.pm line 28
Raspi 3b mit Raspbian Stretch und relativ aktuellem Fhem,  FS20, LGW, PCA301, MySensors mit RS485(CAN-Receiver), etc.,
einiges umgesetzt, vieles in Planung :-)

********************************************
...man wächst mit der Herausforderung...

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17623
  • s/fhem\.cfg/configDB/g
Antw:[gelöst]Wie überprüfe ich, ob ein "named" sleep exsistiert?
« Antwort #9 am: 17 Oktober 2021, 15:37:07 »
die Variable existiert nur innerhalb von fhem.pl.

Davon, dass Du sie in einer 99_myUtil... nutzen willst, war bisher nicht die Rede.
Vielleicht funktioniert es, den hash als Aufrufparameter Deiner Funktion mitzugeben.
Aber selbst wenn das funktionieren würde, könntest Du an dieser Stelle den hash in main nicht verändern.

-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17623
  • s/fhem\.cfg/configDB/g
Antw:[gelöst]Wie überprüfe ich, ob ein "named" sleep exsistiert?
« Antwort #10 am: 17 Oktober 2021, 15:38:32 »
warum willst Du das überhaupt prüfen?

{CommandCancel(undef, "test") if ($sleepers{"test"})}
funktioniert jedenfalls in der FHEM Befehlszeile - also innerhalb von fhem.pl.

--
« Letzte Änderung: 17 Oktober 2021, 15:41:41 von betateilchen »
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24908
Antw:[gelöst]Wie überprüfe ich, ob ein "named" sleep exsistiert?
« Antwort #11 am: 17 Oktober 2021, 16:22:38 »
Man koennte in diesem Fall auch ueber ein at nachdenken.

Offline frober

  • Hero Member
  • *****
  • Beiträge: 1061
  • Was man nicht kann, kann man lernen...
Antw:[gelöst]Wie überprüfe ich, ob ein "named" sleep exsistiert?
« Antwort #12 am: 17 Oktober 2021, 16:41:08 »
warum willst Du das überhaupt prüfen?

Ich möchte kein sleep löschen, dass nicht existiert Finde ich sauberer aus ein quiet.

So funktionieren es nun :)
defmod n_BrunnenpumpeSteuerung notify MYSENSOR_(2|3):(status(1|2|3|4)|status):.* {my $s = 0;; $s = 1 if ($sleepers{"sleepBrunnenpumpe"});; Brunnenpumpensteuerung($EVTPART1,$s);;}

sub Brunnenpumpensteuerung {
  my $SUB = 'Brunnenpumpesteuerung'; # Name der sub für Warnmeldung
  my $EVENT = shift // return "Error, sub $SUB: we need EVTPART1 as parameter!";
  my $SLEEPERS = shift // return "Error, sub $SUB: we need \$sleepers as parameter!";
  my $PUMPE = ReadingsVal('Sonoff_Brunnenpumpe','POWER','OFF');
  my $SLEEP = 'sleepBrunnenpumpe';  # Name für "named" sleep
 
  if ($EVENT eq 'on') 
  {
if ($PUMPE eq 'OFF') {fhem('set Sonoff_Brunnenpumpe on; msg |Fhem-Meldung: Brunnenpumpe| Brunnenpumpe wurde eingeschaltet');}
if ($SLEEPERS) {fhem ("cancel $SLEEP quiet")};
return;
}
else
{
fhem("sleep 10 $SLEEP quiet; set Sonoff_Brunnenpumpe off; msg |Fhem-Meldung: Brunnenpumpe| Brunnenpumpe wurde ausgeschaltet");
return;
}
return;
}
Raspi 3b mit Raspbian Stretch und relativ aktuellem Fhem,  FS20, LGW, PCA301, MySensors mit RS485(CAN-Receiver), etc.,
einiges umgesetzt, vieles in Planung :-)

********************************************
...man wächst mit der Herausforderung...

Offline frober

  • Hero Member
  • *****
  • Beiträge: 1061
  • Was man nicht kann, kann man lernen...
Antw:[gelöst]Wie überprüfe ich, ob ein "named" sleep exsistiert?
« Antwort #13 am: 17 Oktober 2021, 16:41:43 »
Man koennte in diesem Fall auch ueber ein at nachdenken.

stimmt, soweit habe ich diesmal nicht gedacht ;)
Raspi 3b mit Raspbian Stretch und relativ aktuellem Fhem,  FS20, LGW, PCA301, MySensors mit RS485(CAN-Receiver), etc.,
einiges umgesetzt, vieles in Planung :-)

********************************************
...man wächst mit der Herausforderung...