Einfacher Wecker mit vielen Möglichkeiten - jetzt auch aufgepimpt

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

Vorheriges Thema - Nächstes Thema

tik-tak-tok

Hi Bruno,

in fhem.cfg steht:
define Wecker dummy
attr Wecker alias Wecker stellen
attr Wecker devStateIcon AUS:off
attr Wecker group Wecker
attr Wecker icon ring
attr Wecker room Wecker
attr Wecker setList state:AUS,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,05:00,05:15,05:$
attr Wecker webCmd state:AUS
define noWecker notify define noWecker notify Wecker {\\
if (Value("Wecker") eq "AUS")\\
  { fhem("delete atWecker") if (defined($defs{'atWecker'}));;;;;;;;\\
} else {\\
  fhem("delete atWecker") if (defined($defs{'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");;;;;;;;\\
  }\\
}
attr noWecker room Wecker


in der 99_myutils.pm steht:sub
Wecken()
{
  fhem("set myMPD volume 100;set myMPD playfile Willkommen.mp3");
}

BKSolo

Hallo, eine erster Überblick zum Code ergibt keine klaren Fehlerhinweise.

Was ich jedoch im Fhem www image ... Verzeichnis nicht gefunden habe, ist das icon ring. Such mal ob Du das in deiner Fhem Installation findest. Hängt dein Problem damit zusammen?
Die vielen generierten ;; kannst Du auch kürzen wie unten im Code aufgezeigt.


Ich habe dein Code wie folgt angepasst

define WeckerE dummy
attr WeckerE alias WeckerE stellen
attr WeckerE devStateIcon Aus:general_aus@red
attr WeckerE group WeckerE
attr WeckerE icon Wecker.Wochenende
attr WeckerE room WeckerE
attr WeckerE setList state:Aus,18:00,18:15,18:30,18:35,18:40,18:45,18:50,18:55,19:00,19:05,19:10,19:15,19:20,19:25,19:30,19:35,20:00,20:15,20:30,20:45,21:00,00:00
attr WeckerE webCmd state:Aus
define noWeckerE notify define noWeckerE notify WeckerE{\
if (Value("WeckerE") eq "Aus")\
{ fhem("delete atWeckerE")  if (defined($defs{'atWeckerE'})) ;;\
} else {\
  fhem("delete atWeckerE") if (defined($defs{'atWeckerE'}));;\
  fhem("define atWeckerE at ".Value("WeckerE").":00 {Wecken()};;");;\
  fhem("attr atWeckerE room WeckerE");;\
  fhem("attr atWeckerE group WeckerE");;\
  fhem("attr atWeckerE alias Nächster aktiver Wecker:");;\
  fhem("attr atWeckerE icon general_aus\@red");;\
  }\
}
attr noWeckerE room WeckerE

Stör dich nicht am E am Ende, musste das tun da ich bereits ein Wecker definiert hatte.

in der 99_myutils.pm steht bei mir

sub
Wecken()
{
  fhem( "set arduinorelay1 on");
}

Was nur eine Led auf einem Arduino einschaltet.

So läuft es bei mir.  Viel Erfolg
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 Bruno,

ändert leider auch nichts. ;-/ Es passiert einfach nichts.
Das möglicherweise fehlende Icon ist doch mit dem von dir zuletzt geposteten Code nicht mehr relevant, da ein anderes verwendet wird?

Verstehe ich das richtig das im Raum Unsorted oder Everything nachdem ich einen Wecker gestellt habe ein Device "Wecker_at" auftauchen sollte?
Wenn ja, hapert es wohl daran. Das taucht nicht auf.

Danke & Gruß,
Mike

sasquuatch

Zitat von: tik-tak-tok am 30 Januar 2017, 17:20:47
define noWecker notify define noWecker notify Wecker
sicher dass das so in deiner fhem.cfg drin steht?  :o
https://wiki.fhem.de/wiki/Notify

Zitat von: tik-tak-tok am 30 Januar 2017, 17:20:47
define noWecker notify define noWecker notify Wecker {\\
if (Value("Wecker") eq "AUS")\\
  { fhem("delete atWecker") if (defined($defs{'atWecker'}));;;;;;;;\\
} else {\\
  fhem("delete atWecker") if (defined($defs{'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");;;;;;;;\\
  }\\
}
attr noWecker room Wecker
ich bin jetzt kein crack, aber wo übergiebst du die infos von deinem notify an dein myutils sub?
was ich damit meine, es gibt keine verbindung zwischen notify und der myutils. woher weiß dein notify, die infos die du in deinem sub stehen hast?


wie ein notify aussehen könnte:
define noWeckerE notify WeckerE {Wecken();;}


jetzt musst du aber alles aus deinem notify, ordentlich in deine myutils packen
if (Value("WeckerE") eq "Aus")\
{ fhem("delete atWeckerE")  if (defined($defs{'atWeckerE'})) ;;\
} else {\
  fhem("delete atWeckerE") if (defined($defs{'atWeckerE'}));;\
  fhem("define atWeckerE at ".Value("WeckerE").":00 {Wecken()};;");;\
  fhem("attr atWeckerE room WeckerE");;\
  fhem("attr atWeckerE group WeckerE");;\
  fhem("attr atWeckerE alias Nächster aktiver Wecker:");;\
  fhem("attr atWeckerE icon general_aus\@red");;\
  }\
}

weil dass der sinn der myutils ist, sonst könntest du gleich den kleinen rest aus der myutils in dein notify packen und brauchst kein myutlis mehr. das mit der myutils macht man nur, damit die fhem.cfg nicht überladen wird, was du gerade mit deinem notify aber machst.

BKSolo

Hallo Mike,  ich habe nochmals auf einem Beispiel aufbauend den folgenden Code erstellt. Dieser ruft keine Subroutine vom Myutils auf (wäre aber weiterhin leicht zu ergänzen).

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");;\
    {Log 3, "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") ;;\
  {Log 3, "define atWecker_Uhrzeit gesetzt"};;\
  fhem("attr atWecker_Uhrzeit room Wecker_B");;\
  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 Wecker_B


Das läuft bei mir.
Wenn eine Zeit über die Auswahl gesetzt wird, wird auch im Logfile ein Eintrag geschrieben (Kontrolle)
Wenn die Zeit erreicht wird, wird die entsprechende Led eingeschaltet.
Jetzt kann über die Auswahl entweder Aus gewählt werden, was keine neuen Zeit setzt.
Und bei mir die entsprechende Led wieder ausgeschalten wird.
Oder direkt eine neue Zeit gesetzt werden kann und im Logfile erneut ein Eintrag geschrieben wird (Kontrolle)

Nun hoffe ich es geht bei dir auch.

Noch ein Hinweis zu
Zitatich bin jetzt kein crack, aber wo übergiebst du die infos von deinem notify an dein myutils sub?

der Aufruf erfolgt mit Wecken() im Code
fhem("define atWecker at ".Value("Wecker").":00 {Wecken()};;");;\\
mit dem ganzen wird wieder ein atWecker definiert mit der erneuten Zeit hinterlegt die im Wecker steht und dem Aufruf Wecken() der nach der erreichten Zeit aufgerufen wird.
Da es sich um ein Beispiel handelt, wird in myutils nur wenig aufgeführt, was jederzeit auch erweitert werden kann.

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

sasquuatch

Zitat von: BKSolo am 02 Februar 2017, 17:23:52
fhem("define atWecker at ".Value("Wecker").":00 {Wecken()};;");;\\
das habe ich überlesen, ist aber auch das Problem, wenn es Zehn mal Wecker heisst, ist ein Wecken schwerer heraus zu lesen, dass macht einem die fehlersuche schwerer  :-\

ich versuche bei mir klarere defintionen zu wählen wie, atWecker, WeckerNotify, WeckerDummy und WeckerUtils, dann kann man fehler leichter raus lesen, gelingt mir aber auch nicht immer  :-[

tik-tak-tok

Hi Bruno,

danke für die Antwort. Jetzt haut es hin :-)

Mein Code im "Anschalten_Notify" zum zugehörigen Dummy "WeckerMike" sieht nun wie folgt aus:
WeckerMike:on {fhem ("set Wecker_Uhrzeit 21:57;set myMPD volume 100") }

Ich würde nun gerne nur noch eins (vorerst) einbauen wollen, und zwar das nach 30 Minuten der Dummy "Wecker_Mike" auf off gesetzt wird.
Alternativ ginge auch ein at Befehl zu Uhrzeit xx:xx:xx.

Leider bekomme ich das nicht umgesetzt. ;-)

Kannst du mir diesbezüglich nochmal helfen?
Mit "on-for-timer" habe ich es versucht und mit at Befehl auch. Leider beides ohne Erfolg, vermutlich an der falschen Stelle gesetzt.

Im Anhang noch ein paar Screenshots. :-)

Danke & LG,
Mike

PS: Angeschaltet wird weiterhin, aber meinen Wunsch zum Abschaltbefehl erhört FHEM nicht. Ich vermute ich habs an den falschen Stellen gesetzt. Obwohl ich es an mehreren Stellen versucht habe.

BKSolo

Hallo Mike, eine Erweiterung zu meinem Code Wecker_Uhrzeit. Dabei nehme ich Codefragmente wie sie in diesem Forum mit Antwort #1 von docb aufgezeigt wurde.

im fhem.cfg

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("delete atWeckere")   if (defined($defs{'atWeckere'}));;\
    fhem("set arduinorelay3 off");;\
    {Log 3, "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") ;;\
  {Log 3, "define atWecker_Uhrzeit gesetzt"};;\
  {Weckerzeit_Ende_aktivieren()};;\
  fhem("attr atWecker_Uhrzeit room Wecker_B");;\
  fhem("attr atWecker_Uhrzeit group Wecker_Uhrzeit");;\
  fhem("attr atWecker_Uhrzeit alias Nächster aktiver Wecker:");;\
  fhem("attr atWecker_Uhrzeit icon audio_volume_mid\@red");;\
  }\
}
attr noWecker_Uhrzeit group Wecker_Uhrzeit
attr noWecker_Uhrzeit room Wecker_B


in diesem erfolgt ein Aufruf {Weckerzeit_Ende_aktivieren()};;\  ins myutils wo folgendes definiert ist


sub
Weckerzeit_Ende_aktivieren()
{
  if(Value("Wecker_Uhrzeit") eq "Aus")
  {
   return ("Zuerst den Wecker aktivieren");
  }
  else #Wecker an
  {
   my $weckzeit = Value("Wecker_Uhrzeit").":00";
   my $weckzeit_ende = TU_Get_Increment($weckzeit,"00:30:00");
   fhem("define atWeckere at ".$weckzeit_ende." set arduinorelay3 off");
   fhem("attr atWeckere room Wecker_B");
   fhem("attr atWeckere group Wecker_Uhrzeit");
   fhem("attr atWeckere alias Weckzeit endet um");
   fhem("attr atWeckere icon audio_volume_mid\@green");
   return ("Weckzeit_Ende erreicht");
  }
}


Wo set arduinorelay3 off steht, kannst Du deinen Wecker_Mike:off einsetzen.

Die Ausschaltzeit ist in diesem Beispiel mit 30 Minuten fix, aber es kann mit einem weiteren Wert in fhem.cfg variabel gestaltet werden.

Beachte auch, dass Du weitere Funktionen ins myutils kopieren musst, wie es docb beschreibt:
ZitatWichtig: damit das addieren und subtrahieren von Zeiten funktioniert (TU_Get_Decrement und TU_Get_Increment), braucht ihr die 99_TimeUtils.pm von hier (http://forum.fhem.de/index.php/topic,14449.msg91796.html#msg91796).



Viel Erfolg - 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

Bei den MyUtils Sachen stelle ich mich zu doof an. Hättest du Zeit und Lust mir kurz per TeamViewer mal auszuhelfen? :-)

BKSolo

Mike, können wir - schreib über private Mitteilungen deine Koordinaten.  Gr. 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

sasquuatch

Zitat von: docb am 22 Dezember 2014, 15:55:51

fhem(\"set BA_Heizung desiredTemperature \".Value(\"Wecker_Bad_Heizen\"));;;;}");


Ich hatte damals nicht alles aus deinem Wecker übernommen, aber wollte das mit der Heizung vor dem aufstehen auf eine bestimmte temperatur hochfahren lassen. indem ich mittels dummy als variable die ich sehr simpel täglich ändern kann, ohne den AT jedes mal neu stellen zu müssen. Es will aber bei mir nicht klappen.

mein Dummy:
define WeckerBadVorheizen dummy
attr WeckerBadVorheizen setList state:Aus,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5
attr WeckerBadVorheizen webCmd state:Aus


mein at:
define atBadHeizungFaehrtHoch at *06:00:00 { fhem('set Bad_Wandthermostat desired-temp '.Value'WeckerBadVorheizen')') if (($wday == 1) || ($wday == 2) || ($wday == 3) || ($wday == 4) || ($wday == 5) && ($month == 10) || ($month == 11) || ($month == 12) || ($month == 1) || ($month == 2) || ($month == 3) )}


letztendlich kann ich auch ganz einfach folgenden befehl aus dem at in die Befehlszeile eingeben und schauen was passiert:
set Bad_Wandthermostat desired-temp '.Value('WeckerBadVorheizen')

dann gibt es diesen Fehler:
Invalid temperature '.Value('WeckerBadVorheizen'), choose one of on off 6.0 6.5 7.0 7.5 8.0 8.5 9.0 9.5 10.0 10.5 11.0 11.5 12.0 12.5 13.0 13.5 14.0 14.5 15.0 15.5 16.0 16.5 17.0 17.5 18.0 18.5 19.0 19.5 20.0 20.5 21.0 21.5 22.0 22.5 23.0 23.5 24.0 24.5 25.0 25.5 26.0 26.5 27.0 27.5 28.0 28.5 29.0 29.5

also muss irgendwas am code der variablen falsch sein, aber ich weiß nicht was:
'.Value('WeckerBadVorheizen')

docb

Hi,
ich der Abruf des Value ist meiner Ansicht nach Fehlerhaft. Versuche es mal so:

fhem("set Bad_Wandthermostat desired-temp".ReadingsVal("WeckerBadVorheizen", "state", "0"));
Zudem sollte dein setList state nur Werte drin haben, die dein desired-temp versteht - ich weiß nicht, ob der "Aus" kann, oder das nicht eher "off" sein sollte (so wäre das zumindest bei meinen Homematic Wandthermostaten HM-TC-IT-WM-W-EU).
Viele Grüße
doc
I love FHEM!

Fixel2012

Ohne jemanden komisch zu kommen, oder so.

Es gibt inzwischen einen neues "richtiges" Wecker Modul. Es nennt sich Alarmclock: http://commandref.fhem.de/#alarmclock
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

docb

He, das ist ja cool, danke für den Hinweis. Bei der Entwicklungsgeschwindigkeit von Fhem verpasse ich sicher einen ganzen Haufen Module. Das habe ich jetzt gleich mal installiert - sehr cool, DANKE!
I love FHEM!

sasquuatch

#74
Zitat von: docb am 02 Dezember 2017, 00:07:23
Hi,
ich der Abruf des Value ist meiner Ansicht nach Fehlerhaft. Versuche es mal so:

fhem("set Bad_Wandthermostat desired-temp ".ReadingsVal("WeckerBadVorheizen", "state", "0"));
Zudem sollte dein setList state nur Werte drin haben, die dein desired-temp versteht - ich weiß nicht, ob der "Aus" kann, oder das nicht eher "off" sein sollte (so wäre das zumindest bei meinen Homematic Wandthermostaten HM-TC-IT-WM-W-EU).
Viele Grüße
doc
danke, aber es geht trotzdem nicht,. das hatte ich anfangs auch mal, aber da hies es eben nur, wie jetzt auch:
desired-temp requires parameter: [on|off|6.0..30.0]
das Aus soll eigentlich nur zeigen, es ist nicht gewünscht das eine Temperaturänderung erfolgen soll, bei einem falschen Wert passiert dann ja nichts. mache ich ein off, schaltet er ja aus. mache ich ein on, lässt er zwar an, aber dann sieht es im dummy aus, als wäre er noch an.
ich habe auch alle werte des dummy mal geändert, das geht nicht weg.

@fixel2012: danke für den hinweis. hat mich endlich mal bewegt auf fhem 5.8 upzudaten  ;D
muss ich mal testen

NACHTRAG: Im moment weiß ich nicht, ob ich den wecker gut oder schlecht finden soll. für meinen Wecker habe ich einen Dummy, mit einem Drop Down Menü und dort suche ich mir die Zeit raus die ich gerade brauche und muss nicht nervend in den Wecker gehen, mir die Tage raus suchen an denen er wecken soll und dann noch die Zeit eingeben. Da hilft es auch wenig Profile speichern zu können, weil ich nicht immer zur selben zeit aufstehe, da bräuchte ich dann ungefähr zwanzig profile. ok, könnte dann natürlich 20 wecker anlegen. und wenn ich jetzt anfange ein dummy zu bauen, mit einem notify oder DOIF, bin ich genau da, wo ich jetzt schon bin.
ich sehe momentan keine erleichterung.
bei den befehlen bin ich unsicher, weil ich befehle ausführe die zu unterschiedlichen zeiten anfangen und aufhören. z.b. soll die heizung im bad 40 min vor der weckzeit hoch fahren. zur weckzeit das radio im schlafzimmer, 20 min nach der weckzeit die kaffeemaschine angehen, dann irgendwann radio im wohnzimmer etc., keine ahnung wie das hier geht. könnte mir vorstellen das dies vielleicht auch mit at´s gelöst wird, so wie ich es ja schon mache.
bohr und was ich ganz besonders liebe, eine commandref nur auf englisch. da brauche ich erst gar nicht anfangen zu lesen mit meinen grundkenntnissen im englischen und wenn ich dann den thread raus suchen muss, damit ich es auf deutsch habe, dann braucht es auch keine commandref.