Hallo zusammen,
ich habe einen komplexeren AT Befehl erstellt und diesem auch einem Raum zugewiesen. Das Problem ist nur das ich das AT nicht in Fhem finden kann und auch der Raum wird nicht angelegt. Wenn ich etwas Ändern will dann lege ich das AT nochmal neu an und bekomme dann die Fehlermeldung das das AT bereits definiert ist und ich kann dann über klick auf den Namen das AT aufrufen. Ich finde das At nur in fhem.save aber nicht in "Unsorted" oder "Everything". Da das mein erstes AT ist, wo finde ich den normalerweise das AT?
Gruß
Thomas
Den Knopf <save config> hast du aber gesehen?
Dieses at sollte bei dir im Raum Notify_ATs auftauchen.
Wenn nicht solltest du mal besser nicht direkt die fhem.cfg verprügeln oder auch mal ins Logfile schauen.
Wenn man alles über das Frontend macht "spricht" FHEM auch mit einem und sagt direkt wo Fehler sind.
Sorry aber ich hab jetzt keine Lust aus deiner diffusen Fehlerbeschreibung dein at auf meine Testumgebung loszulassen - du schreibst ja nichtmal WIE du WAS machst.
Meine definierten at erscheinen immer dort wo ich sie sehen will - liegt vielleicht daran das mir die fhem.cfg egal ist.
Edith: Wenn du Codes zeigen willst dann bitte nicht als Screenshot sondern direkt in Code-Tags.
Edith2: Ein <list Name_des_at> in der Befehlszeile dürfte evtl. auch mal recht hilfreich sein.
Zitat von: Sargon am 04 Februar 2015, 20:50:20
Hallo zusammen,
ich habe einen komplexeren AT Befehl erstellt und diesem auch einem Raum zugewiesen. Das Problem ist nur das ich das AT nicht in Fhem finden kann und auch der Raum wird nicht angelegt. Wenn ich etwas Ändern will dann lege ich das AT nochmal neu an und bekomme dann die Fehlermeldung das das AT bereits definiert ist und ich kann dann über klick auf den Namen das AT aufrufen. Ich finde das At nur in fhem.save aber nicht in "Unsorted" oder "Everything". Da das mein erstes AT ist, wo finde ich den normalerweise das AT?
Gruß
Thomas
im Befehlsfenster
list Type=at
bekommst du alle at's mit link
Gruß
Karl
Zitatlist Type=at
Nein - das ist falsch.
list TYPE=at
liefert das was du meinst.
Erst selbst versuchen und dann das richtige posten.
Edith: Wem es nicht auffällt - FHEM ist case sensitive. Type != TYPE
Hi,
ich habe das AT rein über fhem angelegt und auch bearbeitet, ich habe nichts in der fhem.cfg gemacht!! Auch habe ich sicher 20 mal auf Save geklickt und auch das Log kenne ich ziemlich gut immerhin bin ich da bereits seit einigen Tagen dran. Im Log sind keine Fehlermeldungen, es macht ja auch was es soll. Mich wundert nur das ich es nicht finde.
Hier der Code zum AT:
*00:30:00 {
Log 3, "FeiertagsCheck: Start ------------------------------------------";
if($we and ($wday ne 0 or $wday ne 6)) {
if((fhem("get Hessen tomorrow") ne "none") or $wday eq 5) {
if(fhem("get Hessen yesterday") ne "none"){
Log 3, "FeiertagsCheck: Ersetze Wochentag ($wday) durch Samstag (6) und setze das Weekprofil von gestern zurück";
ChangeWeekprofile($wday,6,$wday - 1);
} else {
Log 3, "FeiertagsCheck: Ersetze Wochentag $wday durch Samstag 6";
ChangeWeekprofile($wday,6,"");
}
} else {
if(fhem("get Hessen yesterday") ne "none"){
Log 3, "FeiertagsCheck: Ersetze Wochentag ($wday) durch Sonntag (7) und setze das Weekprofil von gestern zurück";
ChangeWeekprofile($wday,7,$wday - 1);
} else {
Log 3, "Gestern war kein Feiertag, es ist nichts zusätzlich zu tun";
Log 3, "FeiertagsCheck: Ersetze Wochentag $wday durch Sonntag 7";
ChangeWeekprofile($wday,7,"");
}
}
} elsif (!$we and (fhem("get Hessen yesterday") ne "none")) {
Log 3, "FeiertagsCheck: setze das Weekprofil von gestern zurück";
ChangeWeekprofile("","",$wday - 1);
} else {
Log 3, "FeiertagsCheck: es ist nichts zu tun";
}
Log 3, "FeiertagsCheck: Ende ------------------------------------------";
}
Hier das List:
Internals:
CFGFN
COMMAND {
Log 3, "FeiertagsCheck: Start ------------------------------------------";
if($we and ($wday ne 0 or $wday ne 6)) {
if((fhem("get Hessen tomorrow") ne "none") or $wday eq 5) {
if(fhem("get Hessen yesterday") ne "none"){
Log 3, "FeiertagsCheck: Ersetze Wochentag ($wday) durch Samstag (6) und setze das Weekprofil von gestern zurück";
ChangeWeekprofile($wday,6,$wday - 1);
} else {
Log 3, "FeiertagsCheck: Ersetze Wochentag $wday durch Samstag 6";
ChangeWeekprofile($wday,6,"");
}
} else {
if(fhem("get Hessen yesterday") ne "none"){
Log 3, "FeiertagsCheck: Ersetze Wochentag ($wday) durch Sonntag (7) und setze das Weekprofil von gestern zurück";
ChangeWeekprofile($wday,7,$wday - 1);
} else {
Log 3, "Gestern war kein Feiertag, es ist nichts zusätzlich zu tun";
Log 3, "FeiertagsCheck: Ersetze Wochentag $wday durch Sonntag 7";
ChangeWeekprofile($wday,7,"");
}
}
} elsif (!$we and (fhem("get Hessen yesterday") ne "none")) {
Log 3, "FeiertagsCheck: setze das Weekprofil von gestern zurück";
ChangeWeekprofile("","",$wday - 1);
} else {
Log 3, "FeiertagsCheck: es ist nichts zu tun";
}
Log 3, "FeiertagsCheck: Ende ------------------------------------------";
}
DEF *00:30:00 {
Log 3, "FeiertagsCheck: Start ------------------------------------------";
if($we and ($wday ne 0 or $wday ne 6)) {
if((fhem("get Hessen tomorrow") ne "none") or $wday eq 5) {
if(fhem("get Hessen yesterday") ne "none"){
Log 3, "FeiertagsCheck: Ersetze Wochentag ($wday) durch Samstag (6) und setze das Weekprofil von gestern zurück";
ChangeWeekprofile($wday,6,$wday - 1);
} else {
Log 3, "FeiertagsCheck: Ersetze Wochentag $wday durch Samstag 6";
ChangeWeekprofile($wday,6,"");
}
} else {
if(fhem("get Hessen yesterday") ne "none"){
Log 3, "FeiertagsCheck: Ersetze Wochentag ($wday) durch Sonntag (7) und setze das Weekprofil von gestern zurück";
ChangeWeekprofile($wday,7,$wday - 1);
} else {
Log 3, "Gestern war kein Feiertag, es ist nichts zusätzlich zu tun";
Log 3, "FeiertagsCheck: Ersetze Wochentag $wday durch Sonntag 7";
ChangeWeekprofile($wday,7,"");
}
}
} elsif (!$we and (fhem("get Hessen yesterday") ne "none")) {
Log 3, "FeiertagsCheck: setze das Weekprofil von gestern zurück";
ChangeWeekprofile("","",$wday - 1);
} else {
Log 3, "FeiertagsCheck: es ist nichts zu tun";
}
Log 3, "FeiertagsCheck: Ende ------------------------------------------";
}
NAME FeiertagsCheck
NR 392
NTM 20:13:11
PERIODIC yes
RELATIVE no
REP -1
STATE Next: 00:30:00
TIMESPEC 00:30:00
TRIGGERTIME 1423092600
TRIGGERTIME_FMT 2015-02-05 00:30:00
TYPE at
VOLATILE 1
Attributes:
room Notify_ATs
Den Raum habe ich vorher noch nicht eingeführt erst mit dem AT das erste mal. Das ganze ist eine Feiertagssteuerung die meine Max Thermostate auf Wochenendprogramm setzt. Ich bin noch in der Entwicklung aber es scheint zu funktionieren.
Gruß
Thomas
Danke Puschel,
Das sind dann die Posts wo ich mir denke es ist besser nur zu lesen und mir meinen Teil zu denken. Das ausser den diversen IBM Hosts und alles was mit Fenster-Maus-schubsen zu tun hat, case-sensitiv ist, ist ja wohl bekannt. Dass der list Befehl auch dokumentiert ist, vielleicht auch. Und auch wenn ich diesen Befehl oft benutze, passierts mir manchmal dass ich mich vertippe. Ich wollte nur helfen, aber da bin ich jetzt mal raus.
Sent from my iPad using Tapatalk
@Sargon
Wie gesagt - meine ats finde ich dort wo ich sie haben will.
Solche ats würde ich aber nichtmehr in der Konfig selbst ablegen sondern in der 99_myUtils.pm und dann nur noch per at triggern.
Ist einfacher und übersichtlicher.
Warum das at bei dir aber nicht im zugewiesenen Raum auftaucht kann ich dir nicht sagen.
Meine kurzen at lege ich per Befehlszeile an und weise per attr-Schaltfläche den gewünschten Raum zu.
Sollte dieser noch nicht existieren kann man diesen auch dort bequem eingeben und er wird neu angelegt.
@schka17
Anfänger haben mit case sensitiv manchmal ihre Probleme.
Wenn es dein Problem ist das du auf die richtige Schreibweise hingewiesen wirst - wenn du schon helfen willst - dann denk dir was du willst.
Und Was AlLes BereIts IrgenDWO ScHoN DoKumNetiERt Sein SolLte MüSsTE JedEM kLAr seIn uNd NiEMAnd BräUChTe MeHr FraAgen.
Aber wie gesagt, wenn du helfen willst dann bitte richtig - oder lass es bleiben.
Wenn jemand nicht auf die Idee kommt anstelle von Type (das KEINE Ausgabe bringt) TYPE zu benutzen oder erst noch suchen muss wie man es schreiben soll wäre es für den Helfer doch einfacher gleich TYPE zu schreiben - oder eben besser nichts.
Falche Angaben stiften nur Verwirrung.
ZitatDas sind dann die Posts wo ich mir denke es ist besser nur zu lesen und mir meinen Teil zu denken.
Und deine Antwort hat mir wieder klar gemacht warum ich hier keinen Mod mehr mache und nur noch selten on bin.
fhem behandelt einmalig auszuführende und sich wiederholende at unterschiedlich. Diese Diskussion hatten wir in den vergangenen Tagen schon ein paarmal hier im Forum.
Hallo,
der Plan war eigentlich nur den Aufruf per AT zu machen und den Rest in eine Utils auszulagern, dass Problem ist nur das die $we und $wday zumindest schwieriger in der Utils aufzurufen ist. Deshalb habe ich es doch in der AT umgesetzt.
@Betateilchen: Nach was kann ich da suchen? Ist da eventuell was dabei was mir helfen kann?
Gruß
Thomas
$we kannst du im Aufruf mitgeben - so wie auch sonst alles was du in deiner *.pm verarbeiten willst.
Wenn du in deiner *.pm dennoch Zeiten brauchst kannst du ja mal das einbauen:
my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat, $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time);
Dazu finden sich aber zuhauf Beiträge im Wiki ;)
Ich hatte anfangs auch immer "Angst" vor einer 99_meineRoutine.pm - aber es ist echt easy.
Du kannst dir ja erstmal Logeinträge einbauen um zu schauen was wie übergeben wird und im Wiki findest du unter 99_myUtils.pm ja auch eine Hilfestellung wie die Datei grundlegend aussehen muss und dann kannst du sie ja erweitern.
Nimm nur nicht die 99_Utils.pm - die kann jederzeit durch ein update überschrieben werden.
Alles mit 99_<miregalwas>.pm wird automatisch durch fhem geladen (wenn ich das noch richtig im Kopf habe).
Zitat von: Puschel74 am 04 Februar 2015, 22:19:29
Alles mit 99_<miregalwas>.pm wird automatisch durch fhem geladen (wenn ich das noch richtig im Kopf habe).
und alles was wie 99_miregalwas
Utils.pm ausschaut, wird sogar automatisch in "Edit files" angezeigt...
Hallo zusammen,
nach dem heutigen Update (das letzte war von Gestern) 3 Restarts und 3 mal das AT neu anlegen, ist der Raum auf einmal da und auch das AT wird im Raum angezeigt.
Gruß
Thomas