Einfacher Wecker mit vielen Möglichkeiten - jetzt auch aufgepimpt

Begonnen von docb, 20 Dezember 2014, 18:13:39

Vorheriges Thema - Nächstes Thema

sasquuatch

#45
Zitat von: Loredo am 05 September 2015, 10:43:18
Das Wecker Template im ROOMMATE Modul kennt ihr?
jupp, schon mal was in der wiki zu roomates und guest gelesen, aber in wie weit hilft mir das bei meinem problem einen atWecker in verbindung mit ($we) bzw. (!$we) in der utils zu erstellen?
mein problem dabei ist, dass ich diesen Wecker endlich verstanden habe und roomates für mich wieder totales neuland ist und ich dafür wieder ewig brauche um mich rein zu arbeiten.
auch bin ich mir nicht sicher, ob roomates mir die optik gibt wie dieser wecker. durch diesen einfachen wecker sehe ich wunderbar was alles wann geschaltet wird, sprich heizung 1 std. vor weckzeit bzw. endet 5 mind. danach, etc..
ich will nicht bezweifeln, dass dies nicht auch mit roomates machbar ist, aber auf den ersten blick habe ich eben keine verbindung erkennen können, weil es einfach neu für mich ist.
ich habe in FHEM jetzt auch wieder soviele neue Baustellen, dass ich mich nicht schon wieder wo rein arbeiten möchte, insbesondere nicht wenn ich keinen vorteil darin erkennen kann.

Zitat von: sasquuatch am 28 August 2015, 17:23:51
jetzt habe ich während des tippen hiers noch etwas interessantes in der FHEM Referenz zum WeekdayTimer gefunden, wenn man den Tag 7 für wochenende nimmt bzw. 8 für das wochentage, scheint er automatisch den ($we) bzw. (!$we) integriert zu haben. ich werde mal dieses wochenende den WeekdayTimer testen und berichten.
der wecker löst mittels weekdaytimer 8 jetzt an feiertagen und urlaubstagen nicht mehr aus. nehme ich aber weekday 7 löst der wecker trotzdem am feiertag aus :S

ich finde aber einen weekdaytimer nicht so schick wie ein atWEcker, weil dieser mir keine Weckzeiten in der Gruppe aktiv anzeigt. dort wird lediglich "activ" oder "inactive" bzw. glühbirne an oder aus gezeigt. wieso mal eine glühbirne zu sehen ist mal text, verstehe ich nicht, ist mir auch nicht wichtig weil cih die weckzeit sehen möchte. habe aber auch schon gelesen, dass man sich die auslösezeiten einblenden lassen kann. muss mich damit aber noch beschäftigen wie das geht, zur Zeit habe ich ja viele FHEM baustellen.

sasquuatch

#46
so, habe jetzt endlich geholfen bekommen und der at wecker funktioniert jetzt mit ($we), es hat einfach nur ein backslash gefehlt. anbei der code für die 99_myutils.pm

##-----Wecker Wochenende Notify-----###
sub
WeckerWochenendeDummyNotifyUtils($)
{
my ($we) = @_;
if (Value("WeckerWochenendeDummy") eq "Aus")
{
fhem("delete atMarantzWEAn");
fhem("delete atMarantzWEAus");
}
else
{
fhem("delete atMarantzWEAn");
fhem("define atMarantzWEAn at *".Value("WeckerWochenendeDummy").":00 { fhem('set Marantz on') if (\$we)}");
fhem("attr atMarantzWEAn room Wecker,Home");
fhem("attr atMarantzWEAn group Aktiv");
#######--hier kommt der Timer, der nach X min. alles ausschaltet--############
my $weckzeit = Value("WeckerWochenendeDummy").":00";
my $MarantzWochenende_aus = TU_Get_Increment($weckzeit,"01:30:00");
fhem("delete atMarantzWEAus");
fhem("define atMarantzWEAus at *".$MarantzWochenende_aus." { fhem('set Marantz off') if (\$we)}");
fhem("attr atMarantzWEAus room Wecker,Home");
fhem("attr atMarantzWEAus group Aktiv");
}}

da (we) nur für das Wochende gilt und ihr das ganze für die werktage auch wollt, funktioniert leider (!$we) nicht. dann müsst ihr stattdessen ($wday) nehmen bzw. if ((\$wday == 1) || (\$wday == 2) || usw.))  ;)

niklasen

Hallo Zusammen,
ich bin fhem-Anfänger, habe aber dank des Forums alles so weit ganz gut hinbekommen.
Jetzt versuche ich mich an diesem Wecker und habe die fhem.cfg und die 99_myUtils so weit übernommen, jedoch scheitert es bei mir an der Zeitenberechnung mittels TU_Get_Decrement und TU_Get_Increment.

Die Fehlermeldung die ich erhalte:

Undefined subroutine &main::TU_Get_Decrement called at ./FHEM/99_myUtils.pm line 77.


Wenn ich den Code entsprechend anpasse und einen Versatz um wenige Sekunden einfüge, funktioniert alles soweit:

   my $weckzeit = Value("Wecker").":00";
   my $heizzeit_beginn = Value("Wecker").":20";
   my $heizzeit_ende = Value("Wecker").":40";

Kann mir jemand helfen diese TU_* Funktionen zum Laufen zu bekommen?
Übersehe ich etwas oder benötige ich ein weiteres Modul?

Ich habe mir bereits diesen Thread angeschaut: http://forum.fhem.de/index.php/topic,14449.msg101224.html#msg101224
werde daraus jedoch auch nicht schlauer. :(

Freue mich,
bekomme morgens nämlich langsam kalte Füße im Bad :)

sasquuatch

Schreib mal die Zeile 77 aus deiner 99_myUtils.pm hier hin. Am besten noch ein wenig mehr von deiner Definition


Gesendet von iPhone mit Tapatalk

niklasen

#49
Hi,
ich habe die myUtils komplett übernommen und zum Test eine Steckdose geschaltet.


sub
Wecken_BaHe_aktivieren()
{
if(Value("Wecken_Bad_Heizen") eq "Aus") # Heizen auf Aus
{
  fhem("delete atWeckerBAHEs");
  fhem("delete atWeckerBAHEe");
}
else                                #Heizen auf An 
{
  if(Value("Wecker") eq "Aus")
  {
   fhem("set Wecken_Bad_Heizen Aus");
   fhem("delete atWeckerBAHEs");
   fhem("delete atWeckerBAHEe");
   return ("Zuerst den Wecker aktivieren");
  }
  else #Wecker an
  {
   my $weckzeit = Value("Wecker").":00";
##ab hier treten die Probleme auf:
   my $heizzeit_beginn = TU_Get_Decrement($weckzeit,"00:02:00");
   my $heizzeit_ende = TU_Get_Increment($weckzeit,"00:00:30");[
   fhem("define atWeckerBAHEs at ".$heizzeit_beginn." {fhem(\"set Steckdose_1 on");
   fhem("attr atWeckerBAHEs room Wecker");
   fhem("attr atWeckerBAHEs group Aktiv");
   fhem("attr atWeckerBAHEs sortby 4");
   fhem("attr atWeckerBAHEs alias Vorheizen des Bades auf ".Value("Wecken_Bad_Heizen")." Grad um");
   fhem("attr atWeckerBAHEs icon max_heizungsthermostat\@green"); 
   fhem("define atWeckerBAHEe at ".$heizzeit_ende." {fhem(\"set Steckdose_1 off");
   fhem("attr atWeckerBAHEe room Wecker");
   fhem("attr atWeckerBAHEe group Aktiv");
   fhem("attr atWeckerBAHEs sortby 6");
   fhem("attr atWeckerBAHEe alias Heizphase des Bades endet um");
   fhem("attr atWeckerBAHEe icon max_heizungsthermostat\@green"); 
  }
}
}


Was ich erreichen wollte, dass die Steckdose 2 Minuten vor und 30 Sekunden nach Weckzeit schaltet.

sasquuatch

#50
eins vorweg, ich kenne mich mit perl nicht besonders aus und eventuell schauen hier auch profis rein. ansonsten musst du dein perl code nochmal im entsprechenden bereich hier im forum posten, falls ich oder ein anderer dir nicht weiter helfen konnte.

was ich sehe ist die rechteckige klammer [ am ende der unten stehenden zeile die ich nicht verstehe. für mich als perl noob scheint die falsch zu sein. Ich vermute das ist der fehler aus zeile 77, den sie geht zwar auf, aber schließt nicht mehr und danach ist halt alles falsch.

   my $heizzeit_ende = TU_Get_Increment($weckzeit,"00:00:30");[


bevor du hier weiter machst, mache erst mal die rechteckige klammer weg und teste das mal.
was für mich auch nicht schlüssig ist, warum machst du ein backslash \ ?

   fhem("define atWeckerBAHEs at ".$heizzeit_beginn." {fhem(\"set Steckdose_1 on");


ach ja, hier fehlt auch die } die das ganze wieder schließt, aber auch " und ) . das fehlt bei 2 zeilen.

möglicherwise ist der backslash egal, aber ich würde das mal ändern und schauen ob es auch ohne backslash geht. halt mal rum testen.
kannst es also so versuchen:

   fhem("define atWeckerBAHEs at ".$heizzeit_beginn." {fhem("set Steckdose_1 on")}");


noch was, hast du in deiner 99_myutils.pm nur einen kleinen fehler, wird fhem eventuell gar nichts mehr aus deiner 99_myutils.pm ausführen. sprich alles was korrekt ist, wird auch nicht ausgelöst. also wenn du 9 wecker hast die alle ok sind und dann kommt der 10. der einen fehler hat, lösen auch die 9 nderen wecker nicht mehr aus. vielleicht liege ich da jetzt falsch, aber bei mir war das so in meinen versuchen.

ich ändere auch alles was in der 99_myutils drin ist,  in FHEM selbst ab. da sieht man nach speichern auch immer, ob es einen syntax fehler gibt oder nicht, mit Angabe der entsprechenden zeile.

wenn du also folgendes in dein FHEM einträgst:

attr WEB JavaScripts codemirror/fhem_codemirror.js
attr WEB codemirrorParam { "theme":"eclipse", "lineNumbers":true }
attr WEB editConfig 1

bekommst du einen ganzen schönen editor um in FHEM die 99_myutils.pm zu editeren und findest z.b. die zeilen mit den fehlern viel leichter.
falls du in WEBtablet oder WEBphone arbeitest, entsprechend oben ändern ;)

niklasen

Hej,
danke für deine Antwort.
Die eckige Klammer war ursprünglich nicht im Code, das war leider ein Überbleibsel aus dem Post hier, ich hatte versucht die Zeile fett zu markieren.

Meine Subroutine sieht nun so aus:

sub
Wecken_BaHe_aktivieren()
{
if(Value("Wecken_Bad_Heizen") eq "Aus") # Heizen auf Aus
{
  fhem("delete atWeckerBAHEs");
  fhem("delete atWeckerBAHEe");
}
else                                #Heizen auf An 
{
  if(Value("Wecker") eq "Aus")
  {
   fhem("set Wecken_Bad_Heizen Aus");
   fhem("delete atWeckerBAHEs");
   fhem("delete atWeckerBAHEe");
   return ("Zuerst den Wecker aktivieren");
  }
  else #Wecker an
  {
   my $weckzeit = Value("Wecker").":00";
   my $heizzeit_beginn = TU_Get_Decrement($weckzeit,"00:02:00");
   my $heizzeit_ende = TU_Get_Increment($weckzeit,"00:00:30");
   fhem("define atWeckerBAHEs at ".$heizzeit_beginn." {fhem(\"set Steckdose_1 on\")}");
   fhem("attr atWeckerBAHEs room Wecker");
   fhem("attr atWeckerBAHEs group Aktiv");
   fhem("attr atWeckerBAHEs sortby 4");
   fhem("attr atWeckerBAHEs alias Vorheizen des Bades auf ".Value("Wecken_Bad_Heizen")." Grad um");
   fhem("attr atWeckerBAHEs icon max_heizungsthermostat\@green"); 
   fhem("define atWeckerBAHEe at ".$heizzeit_ende." {fhem(\"set Steckdose_1 off\")}");
   fhem("attr atWeckerBAHEe room Wecker");
   fhem("attr atWeckerBAHEe group Aktiv");
   fhem("attr atWeckerBAHEs sortby 6");
   fhem("attr atWeckerBAHEe alias Heizphase des Bades endet um");
   fhem("attr atWeckerBAHEe icon max_heizungsthermostat\@green"); 
  }
}


Die Backslashes in

fhem("define atWeckerBAHEe at ".$heizzeit_ende." {fhem(\"set Steckdose_1 off\")}");
brauche ich als Escape Zeichen, anders zeigt mir mein Editor an, dass der Code nicht korrekt wäre.

Aber ich glaube daran scheitert es auch nicht.
Der Fehler kommt weiter oben:

Undefined subroutine &main::TU_Get_Decrement called at .

Für mich ist es auch so, dass der Code von oben nach unten durchläuft.
Die Routinen weiter oben werden fehlerfrei abgearbeitet.

Den Code Editor installiere ich mir auf jeden Fall, danke für den Tipp.
Damit erspart man sich das hin- und her kopieren.

sasquuatch

hast recht, da habe ich auch gar nicht mehr drauf geachtet, dass der fehler ja in der Zeile drüber bei "Decrement" war.
einzige idee die ich noch habe, du verwendest diese zeile doppelt in deiner 99_myutils.pm:

my $heizzeit_beginn = TU_Get_Decrement($weckzeit,"00:02:00");
-dann einfach aus $heizzeit_beginn2 machen.

-könntest auch zu testzwecken mal aus dem Decrement ein Increment machen oder
-die ganze zeile löschen und schauen was dann passiert.
-oder die incrementzeile hochkopieren und zu decrement umschreiben und einen anderen namen wählen für $heizzeit_ende
-oder oder
so kann man stück für stück die fehler eingrenzen. zumindest mache ich das immer so und wenn es dann gar keine lösung mehr gibt, wie bei meinem problem mit $we, muste ich dann auch im "Codeschnipsel" bereich nachfragen. komisch ist nur, dass es bei docb keine probleme gibt :S

ansonsten muss mal jemand anderes drüber schauen

BKSolo

#53
Das zweite Beispiel weiter oben aufgeführt.  Ich habe diese übernommen und dabei noch kleinere Abweichungen / Fehler im Code korrigiert.
Deshalb erlaube ich mir den Code, wie ich ihn (ohne Fehlermeldungen) bei mir habe, hier nochmals aufzuzeigen.


#--------

define Wecker_Uhrzeit dummy
attr Wecker_Uhrzeit alias Wecker Uhrzeit stellen
attr Wecker_Uhrzeit devStateIcon Aus:general_aus@red
attr Wecker_Uhrzeit room B_Wecker
attr Wecker_Uhrzeit setList state:AUS,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:35,06:40,06:45,06:50,06:55,07:00,07:05,07:10,07:15,07:20,07:25,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45
attr Wecker_Uhrzeit sortby 1
attr Wecker_Uhrzeit webCmd state:Aus


define noWecker_Uhrzeit notify Wecker_Uhrzeit {\
if (Value("Wecker_Uhrzeit") eq "Aus")\
  { fhem("delete atWecker_Uhrzeit")   if (defined($defs{'atWecker_Uhrzeit'}));;\
  } else {\
  fhem("delete atWecker_Uhrzeit")  if (defined($defs{'atWecker_Uhrzeit'})) ;;\
#  fhem("define atWecker_Uhrzeit at ".Value("Wecker_Uhrzeit").":00 set ".Value("Kaffeemaschine")." on");;\
  fhem("define atWecker_Uhrzeit at ".Value("Wecker_Uhrzeit").":00 set Kaffeemaschine on");;\
  }\
}
attr noWecker_Uhrzeit room B_Wecker


Gruss, Bruno
Raspberry PI 2/3 - CUL-433(V3) - CUL-868 (V3) - Jeelink 868 - 433 S/E Eigenbau
TX29DTH-IT - FHT80B - FHT80TF - FS20KSE
FHEMobile 3.7r803 - Fhem2Fhem - Alpha2 - OZW672 - TelegramBot

Loredo

Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

BKSolo

Habe das erste Beispiel noch herausgenommen da vermutlich noch Probleme enthalten sind.
Nach der Überarbeitung gebe ich es hier wieder bekannt.
Raspberry PI 2/3 - CUL-433(V3) - CUL-868 (V3) - Jeelink 868 - 433 S/E Eigenbau
TX29DTH-IT - FHT80B - FHT80TF - FS20KSE
FHEMobile 3.7r803 - Fhem2Fhem - Alpha2 - OZW672 - TelegramBot

Sandmann

Hallo alle,

ich möchte den Wecker auch mal probieren, läuft er denn nu ?
Könnt ihr den dann vlt. nochmal hier rein schreiben ?
Das wäre super.
Bis denn dann
Sandman

BKSolo

Hallo, habe mich in letzter Zeit vorallem mit One-Wire und Temperatursonden befasst und deshalb nicht mehr ajour mit dem Wecker.

Was bei mir immer noch als Test läuft ist:


define Wecker_Uhrzeit dummy
attr Wecker_Uhrzeit alias Wecker Uhrzeit stellen
attr Wecker_Uhrzeit devStateIcon Aus:general_aus@red
attr Wecker_Uhrzeit group Wecker_B
attr Wecker_Uhrzeit room Wecker_B
attr Wecker_Uhrzeit setList state:Aus,05:00,05:15,05:30,05:45,06:00,06:15,06:30,06:35,06:40,06:45,06:50,06:55,07:00,07:05,07:10,07:15,07:20,07:25,07:30,07:45,08:00,08:15,08:30,08:45,09:00,09:15,09:30,09:45,10:00,10:15,10:30,10:45,11:00,11:15,11:30,11:45,12:00,12:15,12:30,12:45,13:00,13:15,13:30,13:45,14:00,14:15,14:30,14:45,15:00,15:15,15:30,15:45,16:00,16:15,16:30,16:45,17:00,17:15,17:30,17:45,18:00,18:15,18:30,18:45,19:00,19:15,19:30,19:45,20:00,20:15,20:30,20:45,21:00,21:15,21:30,21:45,22:00,22:15,22:30,22:45,23:00,23:15,23:30,23:45,00:00,00:15,00:30,00:45,01:00,01:15,01:30,01:45,02:00,02:15,02:30,02:45,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45
attr Wecker_Uhrzeit sortby 1
attr Wecker_Uhrzeit webCmd state:Aus


define noWecker_Uhrzeit notify Wecker_Uhrzeit {\
if (Value("Wecker_Uhrzeit") eq "Aus")\
{  fhem("delete atWecker_Uhrzeit")   if (defined($defs{'atWecker_Uhrzeit'}));;\
    fhem("set arduinorelay3 off");;\
  } else {\
  fhem("delete atWecker_Uhrzeit")  if (defined($defs{'atWecker_Uhrzeit'})) ;;\
  fhem("define atWecker_Uhrzeit at ".Value("Wecker_Uhrzeit").":00 set arduinorelay3 on") ;;\
  fhem("attr atWecker_Uhrzeit room Setup");;\
  fhem("attr atWecker_Uhrzeit group Wecker_Uhrzeit");;\
  fhem("attr atWecker_Uhrzeit alias Nächster aktiver Wecker:");;\
  }\
}
attr noWecker_Uhrzeit group Wecker_Uhrzeit
attr noWecker_Uhrzeit room Setup


Auf die eingestellte Zeit wird bei einem angehängten Arduino eine LED eingeschaltet. Mit klicken auf AUS wird diese wieder ausgeschaltet.

Der von docb aufgezeigte Wecker mit verschiedenen Schaltungen habe ich auch testmässig am Laufen - mache aber nichts damit.

Gruss, Bruno

Raspberry PI 2/3 - CUL-433(V3) - CUL-868 (V3) - Jeelink 868 - 433 S/E Eigenbau
TX29DTH-IT - FHT80B - FHT80TF - FS20KSE
FHEMobile 3.7r803 - Fhem2Fhem - Alpha2 - OZW672 - TelegramBot

tik-tak-tok

Hallo,

ich möchte den Wecker auch gerne nutzen. Leider gibts ein Problem, es wird offenbar nichts ausgeführt?
Im Log sehe ich folgendes:2017.01.29 19:56:16 1: PERL WARNING: Possible unintended interpolation of @red in string at (eval 2440) line 1.
2017.01.29 19:56:16 3: eval: my $SELF='noWecker';my $EVENT='21:15';my $EVTPART0='21:15';my $NAME='Wecker';my $TYPE='dummy';{  if (Value("Wecker") eq "AUS")   { fhem("delete atWecker");  } else {   fhem("delete atWecker");   fhem("define atWecker at ".Value("Wecker").":00 {Wecken()}");   fhem("attr atWecker room Wecker");   fhem("attr atWecker group Wecker");   fhem("attr atWecker alias Nächster aktiver Wecker:");   fhem("attr atWecker icon ring\@@red");   } }
2017.01.29 19:56:16 1: ERROR evaluating my $SELF='noWecker';my $EVENT='21:15';my $EVTPART0='21:15';my $NAME='Wecker';my $TYPE='dummy';{  if (Value("Wecker") eq "AUS")   { fhem("delete atWecker");  } else {   fhem("delete atWecker");   fhem("define atWecker at ".Value("Wecker").":00 {Wecken()}");   fhem("attr atWecker room Wecker");   fhem("attr atWecker group Wecker");   fhem("attr atWecker alias Nächster aktiver Wecker:");   fhem("attr atWecker icon ring\@@red");   } }: Global symbol "@red" requires explicit package name at (eval 2440) line 1.

2017.01.29 19:56:16 3: noWecker return value: Global symbol "@red" requires explicit package name at (eval 2440) line 1.

2017.01.29 19:56:22 1: PERL WARNING: Possible unintended interpolation of @red in string at (eval 2441) line 1.
2017.01.29 19:56:22 3: eval: my $TYPE='dummy';my $NAME='Wecker';my $EVTPART0='20:00';my $EVENT='20:00';my $SELF='noWecker';{  if (Value("Wecker") eq "AUS")   { fhem("delete atWecker");  } else {   fhem("delete atWecker");   fhem("define atWecker at ".Value("Wecker").":00 {Wecken()}");   fhem("attr atWecker room Wecker");   fhem("attr atWecker group Wecker");   fhem("attr atWecker alias Nächster aktiver Wecker:");   fhem("attr atWecker icon ring\@@red");   } }
2017.01.29 19:56:22 1: ERROR evaluating my $TYPE='dummy';my $NAME='Wecker';my $EVTPART0='20:00';my $EVENT='20:00';my $SELF='noWecker';{  if (Value("Wecker") eq "AUS")   { fhem("delete atWecker");  } else {   fhem("delete atWecker");   fhem("define atWecker at ".Value("Wecker").":00 {Wecken()}");   fhem("attr atWecker room Wecker");   fhem("attr atWecker group Wecker");   fhem("attr atWecker alias Nächster aktiver Wecker:");   fhem("attr atWecker icon ring\@@red");   } }: Global symbol "@red" requires explicit package name at (eval 2441) line 1.

2017.01.29 19:56:22 3: noWecker return value: Global symbol "@red" requires explicit package name at (eval 2441) line 1.


Gebe ich wie auf Seite 1 beschrieben "{Wecken();;}" in die Befehlszeile ein erscheint mein Weckton wie gewünscht.

Kann mir jemand weiterhelfen?

Vielen Dank :-),
Mike

BKSolo

Hallo, kannst bitte hier dein Code mitgeben, den Du ins Fhem.cfg eingegeben hast, aber auch den, der im 99_myutils.pm steht.

Danke, Bruno
Raspberry PI 2/3 - CUL-433(V3) - CUL-868 (V3) - Jeelink 868 - 433 S/E Eigenbau
TX29DTH-IT - FHT80B - FHT80TF - FS20KSE
FHEMobile 3.7r803 - Fhem2Fhem - Alpha2 - OZW672 - TelegramBot