komisches Verhalten eines regelmäßigen at

Begonnen von betateilchen, 26 Februar 2017, 17:22:12

Vorheriges Thema - Nächstes Thema

rudolfkoenig

@betateilchen: die Ausgabe ist normal. Ich vermute, dass im Probemfall at_Exec fehlt.

JWRu

Beide Zeilen liefert bei mir:

2017.02.27 14:17:32 1: 0=>CODE(0x26b3f38)
2017.02.27 14:17:32 1: 0=>CODE(0x26c3f80)
2017.02.27 14:17:32 1: 0=>CODE(0x2209708)
2017.02.27 14:17:32 1: 0=>CODE(0x26972c0)
2017.02.27 14:17:32 1: 1488186900=>FW_closeInactiveClients
2017.02.27 14:17:32 1: 1488215784=>at_Exec
2017.02.27 14:17:32 1: 1488232800=>at_Exec
2017.02.27 14:17:32 1: 1488236401=>FileLog_dailySwitch


Allerdings habe ich heute Vormittag für beide ats die def nochmal gespeichert, also müssten sie nach meinen bisherigen Erfahrungen heute Abend ausgeführt werden.
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

rudolfkoenig

Kannst du bitte die Ergebnisse der zweiten Zeile auch zeigen?

JWRu

Es kommt haargenau das gleiche, darum hatte ich es nicht gepostet:

2017.02.27 14:20:01 1: 0=>CODE(0x26b3f38)
2017.02.27 14:20:01 1: 0=>CODE(0x26c3f80)
2017.02.27 14:20:01 1: 0=>CODE(0x2209708)
2017.02.27 14:20:01 1: 0=>CODE(0x26972c0)
2017.02.27 14:20:01 1: 1488186900=>FW_closeInactiveClients
2017.02.27 14:20:01 1: 1488215784=>at_Exec
2017.02.27 14:20:01 1: 1488232800=>at_Exec
2017.02.27 14:20:01 1: 1488236401=>FileLog_dailySwitch
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

rudolfkoenig

Sorry, habe die falsche Zeile geportet, es sollte heissen:
{ use Data::Dumper;; map { Log 1, $intAt{$_}{TRIGGERTIME}."=>".Dumper($intAt{$_}{ARG}) } sort { $intAt{$a}{TRIGGERTIME} <=> $intAt{$b}{TRIGGERTIME} } keys %intAt }

Die 4 Zeilen am Anfang sind nicht richtig: de muessten eine Endlosschleife verursachen.

JWRu

Mit der korrigierten Zeile erhalte ich das:

2017.02.27 15:47:34 1: 1488206882=>$VAR1 = 0;


2017.02.27 15:47:34 1: 1488215784=>$VAR1 = {
          'RELATIVE' => 'no',
          'DEF' => '*{sunset(-1200,"16:00","22:30")} set Gartenbeleuchtung on',
          'COMMAND' => 'set Gartenbeleuchtung on',
          'REP' => -1,
          'READINGS' => {
                          'state' => {
                                       'TIME' => '2017-02-27 12:12:56',
                                       'VAL' => 'Next: 18:16:24'
                                     }
                        },
          'PERIODIC' => 'yes',
          'TYPE' => 'at',
          'TRIGGERTIME_FMT' => '2017-02-27 18:16:24',
          'TIMESPEC' => '{sunset(-1200,"16:00","22:30")}',
          'NAME' => 'Gartenbeleuchtung_an',
          'NR' => 34,
          'NTM' => '18:16:24',
          'TRIGGERTIME' => 1488215784,
          'STATE' => 'Next: 18:16:24'
        };

2017.02.27 15:47:34 1: 1488232800=>$VAR1 = {
          'TRIGGERTIME' => 1488232800,
          'STATE' => 'Next: 23:00:00',
          'NAME' => 'Gartenbeleuchtung_aus',
          'NR' => 35,
          'TRIGGERTIME_FMT' => '2017-02-27 23:00:00',
          'TIMESPEC' => '23:00',
          'PERIODIC' => 'yes',
          'TYPE' => 'at',
          'READINGS' => {
                          'state' => {
                                       'VAL' => 'Next: 23:00:00',
                                       'TIME' => '2017-02-27 12:13:08'
                                     }
                        },
          'COMMAND' => 'set Gartenbeleuchtung off',
          'REP' => -1,
          'RELATIVE' => 'no',
          'DEF' => '*23:00 set Gartenbeleuchtung off'
        };

2017.02.27 15:47:34 1: 1488236401=>$VAR1 = {
          'ORDER' => '92',
          'NotifyFn' => 'FileLog_Log',
          'DefFn' => 'FileLog_Define',
          'SetFn' => 'FileLog_Set',
          'FW_summaryFn' => 'FileLog_fhemwebFn',
          'LOADED' => 1,
          'SVG_sampleDataFn' => 'FileLog_sampleDataFn',
          'SVG_regexpFn' => 'FileLog_regexpFn',
          'FW_detailFn' => 'FileLog_fhemwebFn',
          'AttrFn' => 'FileLog_Attr',
          'AttrList' => 'addStateEvent:0,1 archiveCompress archivecmd archivedir createGluedFile:0,1 disable:0,1 disabledForIntervals eventOnThreshold logtype mseclog:1,0 nrarchive reformatFn',
          'GetFn' => 'FileLog_Get',
          'UndefFn' => 'FileLog_Undef'
        };


Ich habe allerdings zwischenzeitlich TelegramBot eingerichtet - die entsprechenden Zeilen habe ich weggelassen (da tauchen UserID, token etc. im Klartext auf  ;))
Woher die Endlosschleife kommt, weiß der Himmel.
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

rudolfkoenig

Schaut alles friedlich aus. Sicherheitshalber "attr Gartenbeleuchtung.* verbose 5" ausfuehren, und warten, bis was schiefgeht. Dann im Log schauen, bzw. diese Zeilen wiederholen.

betateilchen

Ich habe das fehlerhafte at jetzt aus meiner Konfiguration gelöscht und identisch wieder neu angelegt.
Seither funktioniert das device, wie es soll.

Kann es irgendein Reihenfolge-Problem beim FHEM-Start geben, die dazu führen kann, dass ein at nicht korrekt arbeitet?

Die Tatsache, dass es nach einem defmod oder durch ein spätes Anlegen per notify auf global:INITIALIZED immer funktioniert hat, bringt mich zu der Vermutung.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

Ich kann es mir nur vorstellen, dass irgendetwas, was nach dem at drankommt, den Eintrag aus %intAt entfernt. Also nicht at selbst ist schuld, sondern etwas anderes.

betateilchen

Aber bei den 8 devices, die ich oben aufgelistet hatte, ist doch nichts dabei, was so ein Verhalten an den Tag legt.


Defined modules:
  FHEMWEB  : 1
  FileLog  : 1
  at       : 1
  cmdalias : 1
  configDB : 1
  notify   : 2
  telnet   : 1
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

Das waere schonmal deswegen tragisch, weil ich fuer alle Module bis auf configDB verantwortlich bin, d.h. mit 87.5% wahrscheinlichkeit der Verursacher bin... :(
-> Will sagen: habe keine Idee.

betateilchen

#26
Zitat von: rudolfkoenig am 27 Februar 2017, 18:48:52
weil ich fuer alle Module bis auf configDB verantwortlich bin,

Für configDB bin ich verantworlich und ich kann sagen, dass configDB sich nicht für %intAt interessiert.

Es ist also ein FHEM-Mysterium :)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

BerndArnold

Mein Endlos-at hatte ich vorgestern Abend deaktiviert (set ... inactive) und habe es gestern Abend wieder aktiviert (set ... active). Seit gestern Abend macht es genau das, was es soll: es wird alle 15 Sekunden ausgeführt. Auch nach einem Fhem-Neustart kann ich die von mir beschriebene Endlosschleife nicht mehr beobachten.
Das set inactive/active hatte ich auch vorgestern Abend versucht. Da blieb es jedoch bei der Endlosschleife.

Habe jetzt auf meinen anderen zwei Fhem-Instanzen, wo das gleiche at definiert ist, ein Update durchgeführt und neugestartet. Keine Endlosschleife. Die ats werden alle 15 Sekunden ausgeführt.

Ich werde das weiter beobachten und falls ich noch etwas dazu beitragen kann, mich wieder melden.
FHEM auf Raspberry Pi mit Arch Linux
2x HM-LAN, 1x CUL
HomeMatic, FS20, Dreambox, Fritzbox
MQTT zur Kommunikation mit zweiter und dritter FHEM-Instanz

JWRu

Auch bei mir sind die ats gestern und heute problemlos ausgeführt worden.
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

cwiechers

Hallo zusammen,
endlich mal ein Thread der auch meine Probleme beschreibt.

Seit einigen Tagen bleiben meine at's auch immer nach einiger Zeit unvermittelt stehen.

define Rolladen_morgens at *{twilight("Kaarst","sr","6:40","9:00")} { if (!($we)) { fhem("set EIB_1203 Hoch");;;; } }

Eine manuelle Aktion z.B. mit einem:
define temp twilight 51.2337962 6.6229446 1 664340;delete temp

stößt das System wieder für einen zufälligen Zeitraum an.

Ich bin am verzweifeln  .....