FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Nemo0815 am 29 April 2015, 11:43:45

Titel: FHEM speichert "at" manchmal nicht
Beitrag von: Nemo0815 am 29 April 2015, 11:43:45
Hallo,

folgendes habe ich nun schon mehrfach bemerkt:

Sowohl auf der Fritzbox (7490) als auch auf dem RasPi2 speichert FHEM Änderungen oftmals nicht.

Bspw. lege ich ein neues define an (z.B. at), editiere es, klicke auf modify und anschliessend auf Save. Der Save wird bestätigt (das Fragezeichen verschwindet auch). Schaue ich dann in der FHEM config nach, fehlt das neue define manchmal komplett. Auch mehrmaliges editieren des defines und erneuter Save führt dann zu keinem Eintrag in der cfg.

Nach einem FHEM Neustart verschwindet das zuvor erstellte Objekt dann auch komplett, bzw. FHEM meckert dass es irgendwelche nicht definierten Symbole gibt und ich darf alles nochmal machen (dann funktionierts meistens).

Das ganze ist allerdings sporadisch, meistens funktoiniert alles wie erwartet, also bei SAve wird alles entspr. gespeichert usw.

Woran könnte das liegen? Oder handelt es sich um einen Bug im FHEM?
Titel: Antw:FHEM speichert manchmal nicht
Beitrag von: LuckyDay am 29 April 2015, 11:52:23
mach doch ein ordentliches Beispiel  :o

at werden nicht immer in der fhem.cfg gespeichert, je nach dem wie die definition aussieht  ;)
Titel: Antw:FHEM speichert manchmal nicht
Beitrag von: Nemo0815 am 29 April 2015, 11:59:25
Beispiel nach Neustart:

Error messages while initializing FHEM:
statefile: Unknown command my, try help.
Unknown command if($d, try help.
Unknown command $d++;;, try help.
Unknown command fhem("set, try help.
Unknown command }, try help.
Unknown command else{, try help.
Unknown command fhem("set, try help.
Unknown command }, try help.
Unknown command }, try help.


Folgendes at habe ich eingetragen, welches nicht in der cfg auftaucht (wohl aber die Fehlermeldungen oben).:

define FRITZBOX.WatchdogCounter at +*00:01:00 {
my $d = Value("FRITZBOX.Watchdog");;
if($d < 60){
$d++;;
fhem("set FRITZBOX.Watchdog $d");;
}
else{
fhem("set FRITZBOX.Watchdog 0");;
}
}


Funktionieren tut das ganze solange ich FHEM nicht neu starte. Nach neustart verschwindet das at dann wieder aus der "Everything" Ansicht und funktioniert folglich auch nicht mehr.

Nach erneutem Eintragen und wiederholtem Neustart kommt dann:

2015.04.29 11:57:18 2: Error messages while initializing FHEM: statefile: Please define FRITZBOX.WatchdogCounter first Please define FRITZBOX.WatchdogCounter first
2015.04.29 11:57:18 0: Server started with 50 defined entities (version $Id: fhem.pl 8486 2015-04-26 14:16:32Z rudolfkoenig $, os linux, user root, pid 22296)
Titel: Antw:FHEM speichert manchmal nicht
Beitrag von: LuckyDay am 29 April 2015, 12:04:23
mach mal bitte ein

list FRITZBOX.WatchdogCounter

bitte
Titel: Antw:FHEM speichert manchmal nicht
Beitrag von: Nemo0815 am 29 April 2015, 12:08:14
Zitat von: fhem-hm-knecht am 29 April 2015, 12:04:23
mach mal bitte ein

list FRITZBOX.WatchdogCounter

bitte

Nach Neustart siehts so aus:

[i]No device named FRITZBOX.WatchdogCounter found[/i]

und davor:

Internals:
   CFGFN
   COMMAND    { my $d = Value("FRITZBOX.Watchdog"); if($d < 60){ $d++; fhem("set FRITZBOX.Watchdog $d"); } else{ fhem("set FRITZBOX.Watchdog 0"); } }
   DEF        +*00:01:00 { my $d = Value("FRITZBOX.Watchdog"); if($d < 60){ $d++; fhem("set FRITZBOX.Watchdog $d"); } else{ fhem("set FRITZBOX.Watchdog 0"); } }
   NAME       FRITZBOX.WatchdogCounter
   NR         224
   NTM        12:07:51
   PERIODIC   yes
   RELATIVE   yes
   REP        -1
   STATE      Next: 12:07:51
   TIMESPEC   00:01:00
   TRIGGERTIME 1430302071.94769
   TRIGGERTIME_FMT 2015-04-29 12:07:51
   TYPE       at
   Readings:
     2015-04-29 12:06:51   state           Next: 12:07:51
Attributes:


Titel: Antw:FHEM speichert manchmal nicht
Beitrag von: Nemo0815 am 29 April 2015, 12:15:09
Interessanterweise wurde nachdem ich jetzt das define oben hier aus dem Forum wieder rauskopiert hatte und komplett als ganzes in das FHEM Eingabefenster kopiert hatte es mit druck auf "Return"/Save jetzt auch in die CFG eingetragen.

Vorher hatte ich das define jeweils mit

"define FRITZBOX.WatchdogCounter at +*00:01:00 x"

Erstmal als leer angelegt, und danach editiert (also x durch was sinnvolles ersetzt).
Kann es sein dass es auf diesem Weg nicht in der CFG landet, sondern nur wenn ein komplettes Kommando auf einmal definiert wurde?

Hier jetzt in der CFG:

define FRITZBOX.WatchdogCounter at +*00:01:00 { my $d = Value("FRITZBOX.Watchdog");; if($d < 60){ $d++;; fhem("set FRITZBOX.Watchdog $d");; } else{ fhem("set FRITZBOX.Watchdog 0");; } }
Titel: Antw:FHEM speichert manchmal nicht
Beitrag von: marvin78 am 29 April 2015, 12:18:16
Das liegt vermutlich daran, dass x kein FHEM Befehl ist. Lege neue ats so an, dann funktioniert dein Vorgehen:

define FRITZBOX.WatchdogCounter at +*00:01:00 {}
Titel: Antw:FHEM speichert manchmal nicht
Beitrag von: Nemo0815 am 29 April 2015, 12:30:43
Hm interessant, funktoinieren tuts aber trotzdem, nur speichert er es eben nicht.

Bei Notify gehts übrigens (mit z.B. ... a b am Ende des defines, steht glaub ich sogar so im Wiki als Vorgehensweise).

Aber wirklich konsequent ist das nicht, oder?
Titel: Antw:FHEM speichert manchmal nicht
Beitrag von: marvin78 am 29 April 2015, 12:35:25
Anzunehmen, dass etwas, das bei notify funktioniert, auch bei at (völlig anderes Modul) funktioniert, ist aber auch nicht gerade weise.  ;)

Ich bin auch nicht sicher, ob das dein Problem wirklich löst. Das war nur ein Tipp.
Titel: Antw:FHEM speichert manchmal nicht
Beitrag von: krikan am 29 April 2015, 13:32:36
Ich kann das Problem von Nemo0815 nicht nachstellen. Die Anlage über den Weg von Nemo0815 funktioniert; auch mit dem hier gezeigten Code. Das at ist auch nach einem Neustart nicht weg.
Titel: Antw:FHEM speichert manchmal nicht
Beitrag von: Nemo0815 am 08 Juni 2015, 18:14:33
ICh habe das Problem immer noch von Zeit zu Zeit. Irgendwie speicher FHEM "at"s nicht zuverlässig ab.

Es kommt vor dass ich selbst nach einem neustart das at noch verfügbar habe, es aber nach einer Weile dann wieder aus der Konfig verschwindet. Sehr ärgerlich das ganze.

Gerade eben habe ich wieder ein at dass ich gestern erneut (habs vorher schon mehrfach verloren) angelegt hatte verloren:

Internals:
   CFGFN
   COMMAND    {
if(Value("Raspi2Fritz") eq "disconnected"){
system("/home/pi/StartFhemOnFritz.sh");;
}
}
   DEF        +*00:03:00 {
if(Value("Raspi2Fritz") eq "disconnected"){
system("/home/pi/StartFhemOnFritz.sh");;
}
}
   NAME       FritzAliveCheck
   NR         4554
   NTM        18:20:34
   PERIODIC   yes
   RELATIVE   yes
   REP        -1
   STATE      Next: 18:20:34
   TIMESPEC   00:03:00
   TRIGGERTIME 1433780434.64832
   TRIGGERTIME_FMT 2015-06-08 18:20:34
   TYPE       at
   Readings:
     2015-06-08 18:17:34   state           Next: 18:20:34
Attributes:
Titel: Antw:FHEM speichert "at" manchmal nicht
Beitrag von: mrbreil am 13 September 2015, 10:46:57
Hast du dein Problem gelöst, seit einer halben Stunde habe ich das gleiche Problem.
Fhem ist bei mir auf einem Debian PC Installiert.
Angefangen hat alles als ich per notify zwei at active und inactive setzen wollte.
Ob das jetzt zwangsläufig zusammenhäng kann ich nicht beschwören, aber davor hatte ich keine Probleme.
Habe weder in der fhem.cfg noch in der fhem.save rumgepfuscht, habe sie aber lesend geöffnet und die at's sind nicht mehr da.
Beim anlegen eines neuen at Devices erscheint auch nicht das Fragezeichen neben save config, auch nicht wenn ich dem at einen anderen Namen beim erstellen gebe.

Update:

Selbst wenn ich nach dem anlegen auf save config gehe, schreibt fhem das device nicht in die fhem.cfg.
Lege ich aber ein dummy device an erscheint sowohl das Fragezeichen zum speichern und das device steht auch in der fhem.cfg.
Titel: Antw:FHEM speichert "at" manchmal nicht
Beitrag von: mrbreil am 13 September 2015, 10:58:37
Kann das mit dem statistics Modul zusammen hängen?

Habe Verbose mal auf 5 gestellt beim anlegen eines at devices.

2015.09.13 10:55:01 4: HTTP FHEMWEB:192.168.1.31:50952 GET /fhem&room=Unsorted&cmd=define+testat+at+%2B02%3A02%3A00+set+lampe+on
2015.09.13 10:55:01 5: Cmd: >define testat at +02:02:00 set lampe on<
2015.09.13 10:55:01 5: Triggering testat (1 changes)
2015.09.13 10:55:01 5: Notify loop for testat Next: 12:57:01
2015.09.13 10:55:01 5: statistics Statistik_Kueche: Notify.261 Notification of 'testat' received. Device not monitored.
2015.09.13 10:55:01 5: statistics Statistik_Wetter: Notify.261 Notification of 'testat' received. Device not monitored.
2015.09.13 10:55:01 5: statistics stats_Bad: Notify.261 Notification of 'testat' received. Device not monitored.
2015.09.13 10:55:01 5: statistics stats_Flur: Notify.261 Notification of 'testat' received. Device not monitored.
2015.09.13 10:55:01 5: statistics stats_Schlafzimmer_Fenster: Notify.261 Notification of 'testat' received. Device not monitored.
2015.09.13 10:55:01 5: statistics stats_Schlafzimmer_Zimmer: Notify.261 Notification of 'testat' received. Device not monitored.
2015.09.13 10:55:01 5: statistics stats_Umwelt: Notify.261 Notification of 'testat' received. Device not monitored.
2015.09.13 10:55:01 5: statistics stats_Wohnzimmer: Notify.261 Notification of 'testat' received. Device not monitored.
2015.09.13 10:55:01 5: milight1_Notify: Triggered by testat; Next: 12:57:01
2015.09.13 10:55:01 5: Triggering global (1 changes)
2015.09.13 10:55:01 5: Notify loop for global DEFINED testat
Titel: Antw:FHEM speichert "at" manchmal nicht
Beitrag von: mrbreil am 13 September 2015, 22:53:28
Habe jetzt den ganzen Nachmittag/Abend Fhem neu installiert und eingerichtet, dachte vor ein paar Stunden das Problem damit zwar nicht gelöst zu haben, aber immerhin war es aus der Welt. Leider muss ich jetzt wieder feststellen das bereits angelegte und funktionierende at's einfach verschwinden. Und nein ich ediere die fhem.cfg nicht direkt sondern nur über die Weboberfläche. Fhem ist auch UpToDate.

Meiner bescheiden Meinung liegt es an dem "active" und "inactive" setzten. Aber wie sollte ich anders ein at deaktivieren, da mir die Lösung das per attr disable sehr unpraktisch erscheint, da man dann die cfg speichern muss!

Daher ergeben sich mir mehrere Fragen.
Nutzt jemand überhaupt diesen "set <at_device> inactive" Befehl?
Wird dieser Befehl eigentlich von fhem noch unterstützt oder ist der schon Altbacken?
Wie löst ihr das unscharf schalten eines at?

Für jegliche Hilfe bin ich sehr Dankbar.
Titel: Antw:FHEM speichert "at" manchmal nicht
Beitrag von: franky08 am 13 September 2015, 22:56:46
Mit  disable  ;)

P.S. Ein at , angelegt ohne relativ oder periodisch, verschwindet nach einmaliger Ausführung, dass dürfte aber bekannt sein
Vg
Frank
Titel: Antw:FHEM speichert "at" manchmal nicht
Beitrag von: mrbreil am 13 September 2015, 23:11:49
aber müsste ich da nicht die cfg automatisch speichern. was ist wenn ich in der Zwischenzeit in der Weboberfläche Veränderungen durchführe und ich will gar nicht das jetzt schon gespeichert wird. Dann würde doch z.B. ein zufälliges notify das gerade  ausschlägt meine cfg speichern obwohl ich das gar nicht möchte.

Die andere Farge ist doch aber, wenn dieses attr nicht mehr unterstützt wird, warum kann ich es dann noch setzten?
Das klang jetzt böser als es sein sollte!
Ich denke ich könnte vieles auch über DOIF lösen, aber da fehlt mir das Verständnis.
Bei einem einfachen notify und at kann ich mich händisch durcharbeiten, da mir oft das Verständnis für Perl und die Syntax fehlt.
Wo ein Erfahren vielleicht zwei, drei Zeilen brauch, angele ich mich per at auf vielleicht zwanzig Zeilen zum Ziel.
Das funktioniert zwar dann, aber nach einem shutdown restart ist alles weg.
Möchte ja auch nicht für jedes meiner Probleme das Forum nerven. Ich habe Situation A, wenn ich Taser B drücke soll C ausgeführt werden, aber nur wenn Wert D = Wert E ist.
Titel: Antw:FHEM speichert "at" manchmal nicht
Beitrag von: mrbreil am 13 September 2015, 23:13:48
Zitat von: franky08 am 13 September 2015, 22:56:46
Mit  disable  ;)

P.S. Ein at , angelegt ohne relativ oder periodisch, verschwindet nach einmaliger Ausführung, dass dürfte aber bekannt sein
Vg
Frank

Habe deine Änderung erst jetzt gelesen, probiere es gleich mal aus.
Titel: Antw:FHEM speichert "at" manchmal nicht
Beitrag von: mrbreil am 13 September 2015, 23:16:31
Zitat von: franky08 am 13 September 2015, 22:56:46
P.S. Ein at , angelegt ohne relativ oder periodisch, verschwindet nach einmaliger Ausführung, dass dürfte aber bekannt sein
Vg
Frank

Eins vorher noch.
Wo steht das?  ;)

P.S. Habe gerade gesehen wie spät es ist, wird heute nix mehr.
Aber erst mal vielen Dank für deine Hilfe.
Rückblickend auf diesen viel zu kurzen Sonntag, macht deine Aussage durch aus Sinn.
Könnte mir vorstellen das es daran lag, die at verschwunden sind waren alles absolute at.
Das erklärt zwar noch nicht warum ich irgendwann keine neuen at mehr anlegen kann, aber dank dir bin ich auf einem guten Weg.
Titel: Antw:FHEM speichert "at" manchmal nicht
Beitrag von: franky08 am 13 September 2015, 23:28:00
Um Missverständnissen vorzubeugen:

at 23:00:00 wird einmal ausgeführt und verschwindet
at *23:00:00 OK
at +*23:00:00 OK

ZitatDefine
define <name> at <timespec> <command>

<timespec> Format:
  • [*{N}]<timedet>
    Das optionale + zeigt, dass die Angabe relativ ist (also zur jetzigen Zeit dazugezählt wird).
    Das optionale * zeigt, dass die Ausführung wiederholt erfolgen soll.
    Das optionale {N} nach dem * bedeutet, dass der Befehl genau N-mal wiederholt werden soll.
    <timedet> ist entweder HH:MM, HH:MM:SS oder {perlfunc()}, wobei perlfunc HH:MM or HH:MM:SS zurückgeben muss. Hinweis: {perlfunc()} darf keine Leerzeichen enthalten.
Steht übrigends in der commendref  :)

VG
Frank
Titel: Antw:FHEM speichert "at" manchmal nicht
Beitrag von: mrbreil am 13 September 2015, 23:32:01
Ja, Danke das war mir bewusst.
Leider steht da aber nicht das ein at at 23:00:00 irgendwann gelöscht wird.
Werde es morgen nach der Abreibt ausprobieren, vielen Dank für eure Hilfe.
Titel: Antw:FHEM speichert "at" manchmal nicht
Beitrag von: marvin78 am 14 September 2015, 09:21:31
Es wird auch nicht gelöscht. Es landet erst gar nicht in der config. Von Löschen kann hier nicht die Rede sein, da ein solches at ja nur zur einmaligen Ausführung gedacht ist. Und ja, das ist sehr wohl dokumentiert.
Titel: Antw:FHEM speichert "at" manchmal nicht
Beitrag von: Nemo0815 am 20 Dezember 2015, 17:39:04
Ich habe das Problem auch immer noch (sporadisch), gerade eben. Das AT verschwindet sofort nach neustart von FHEM:

+*00:05:00 {
if ((Value("myTwilight") > 9) )
{
  fhem("set AbendDummy true");
}
elsif(($hms gt "01:30") && ($hms lt "06:00"))
{
  fhem("set AbendDummy false");
}
}


Beim ersten Versuch (erster Neustart) war wenigstens noch eine Klammer ("{") vorhanden, beim zweiten (nachdem ichs wieder neu angelegt hatte) ist es vollständig weg.

Angelegt über folgendes Kommando, dann editiert wie oben:

define SetAbendDummyAt at +*00:05:00 {}

Beim dritten Versuch bleibts jetzt anscheinend (hoffentlich) in der CFG gespeichert, aber schön ist das nicht...
(ich musste das übrigens so machen weil Twilight seit dem letzten Update keine Events mehr erzeugt...)
Titel: Antw:FHEM speichert "at" manchmal nicht
Beitrag von: Nemo0815 am 29 Juni 2018, 08:12:21
Hallo zusammen,

mal wieder plötzlich ein Problem mit den ATs (bin mittlerweile auf ner anderen HW und SW!)

Ändere ich hier etwas und speichere, ist die Änderung nach FHEM restart wieder weg. Reproduzierbar mehrfach hintereinander versucht.
Ansonsten nichts geändert an der cfg. Nur von Zeit zu Zeit ein FHEM update durch geführt (ist auf aktuellem Stand).

Hat jemand ne Idee?


Internals:
   COMMAND    {
if(!$we && (Value("Urlaub") eq "nein") && (ReadingsVal("Aussentemperatur","temperature",0) > -1)) {
fhem("set Rollo.Buero Auf");;
#fhem("set Rollo.VorderesZimmer Auf");;
}
fhem ("set RolloTempschutzAktiv off");;
}
   DEF        *06:45 {
if(!$we && (Value("Urlaub") eq "nein") && (ReadingsVal("Aussentemperatur","temperature",0) > -1)) {
fhem("set Rollo.Buero Auf");;
#fhem("set Rollo.VorderesZimmer Auf");;
}
fhem ("set RolloTempschutzAktiv off");;
}
   NAME       RolloRauf
   NR         53
   PERIODIC   yes
   RELATIVE   no
   REP        -1
   STATE      Next: 06:45:00
   TIMESPEC   06:45
   TRIGGERTIME 1530333900
   TRIGGERTIME_FMT 2018-06-30 06:45:00
   TYPE       at
   READINGS:
     2018-06-29 08:09:07   state           Next: 06:45:00
Attributes:
Titel: Antw:FHEM speichert "at" manchmal nicht
Beitrag von: Otto123 am 29 Juni 2018, 09:38:42
Moin,

beschreibe doch mal exakt alle Handgriffe des Vorganges
ZitatÄndere ich hier etwas und speichere,

Da gibt es ja durchaus viele Möglichkeiten, siehe auch hier (https://forum.fhem.de/index.php/topic,87856.msg803186.html#msg803186).  ;)

Gruß Otto
Titel: Antw:FHEM speichert "at" manchmal nicht
Beitrag von: betateilchen am 29 Juni 2018, 10:13:42
Mich würde ja viel mehr interessieren, WAS da geändert wird.

Und vor allem, ob nach der Änderung die Konfiguration überhaupt gespeichert wird oder ob man dem Irrglauben verfällt, dass ein geändertes DEF automatisch in der Konfiguration gespeichert wird, wenn man auf "Modify" klickt.

Achja: die Internals die oben gepostet wurden, können m.E. nicht vollständig sein.
Titel: Antw:FHEM speichert "at" manchmal nicht
Beitrag von: Nemo0815 am 30 Juni 2018, 20:29:44
Hallo,

Die Änderung ist schon oben in dem Codeschnipsel enthalten, ich habe die eine Zeile mit der Raute auskommentiert.
Ist aber egal, hatte sie auch schon komplett rausgelöscht statt zu kommentieren mit dem exakt gleichen Resultat - nach fhem Neustart ist wieder der alte Stand da.

Ich drücke natürlich nach modifiy auf speichern und fhem bestätigt mir das auch mit der entsprechenden Meldung.

Und was da oben im Code steht ist alles was der List Befehl her gibt.
Das at hatte ich so schon einige Jahre in meiner config und es hat auch funktioniert, nur wollte ich jetzt einfach ein Rollo rausnehmen, was auch funktioniert, solange fhem nicht neu gestartet wird.
Titel: Antw:FHEM speichert "at" manchmal nicht
Beitrag von: Otto123 am 30 Juni 2018, 21:05:08
Guten Abend,

was ergibt denn in der Consolels -l /opt/fhem/fhem.cfg
Falls FHEM im Pfad /opt/fhem installiert ist  ;)
Oder im Browser
{qx "ls -l ./fhem.cfg"}


Gruß Otto
Titel: Antw:FHEM speichert "at" manchmal nicht
Beitrag von: Nemo0815 am 30 Juni 2018, 22:08:19
Argh, danke. Daran hatte ich noch gar nicht gedacht. Hatte vor kurzem mal ein Backup wieder eingespielt, das hat mir wohl die Rechte verhunzt...

-rw-r--r-- 1 root root 54486 Jun  1 21:17 ./fhem.cfg
Titel: Antw:FHEM speichert "at" manchmal nicht
Beitrag von: betateilchen am 30 Juni 2018, 23:09:26
*POPCORN*