Readings-Update seid kurzem "komisch"

Begonnen von Pete37, 28 Juni 2016, 10:48:35

Vorheriges Thema - Nächstes Thema

Pete37

Hallo Forum,

seit einem Update (vor etwa zwei Wochen) benimmt sich meine Fhemweb-Oberfläche komisch (= unerwartet): Die Readings werden nicht mehr automatisch aktualisiert und oft auch nicht synchron - das macht mir das Debugging fast unmöglich!

Anbei ein Beispiel:
- Im Bild seht ihr state = "dtc:waiting" und gleichzeitig ein Timer der läuft
- laut Code (siehe Listing unten) geht das nicht: im Zustand "dtc:waiting" wäre der Timer zurückgesetzt. im Zustand "dtc:sun" wäre er korrekt, daher kam er auch.
- mir fällt auf, dass das Reading vom state einige Minuten älter ist, als das vom Timer. dann könnte es wieder passen.

> warum aktualisiert er die Readings nicht synchron und was kann ich tun, damit das wieder geht?
Das scheint mit dem neuen Fhemweb-Layout gekommen zu sein. Vorher hatte ich das jedenfalls nicht...

und hier das List zum betroffenen DOIF:
Internals:
   DEF        ## Regen erkannt
([?STA_BLI_Betriebsart] eq "automatik" and [DEV_WEA_Sensor:isRaining] > 0) 
(set STA_BLI_Zustand oben)

## Sonne außerhalb des Bereichs erkannt
DOELSEIF ([?STA_BLI_Betriebsart] eq "automatik" and ([DEV_WEA_Sensor:sunDirection] < 90 or [DEV_WEA_Sensor:sunDirection] > 270)) 
(set STA_BLI_Zustand oben)

## Hitze erkannt
DOELSEIF ([?STA_BLI_Betriebsart] eq "automatik" and [DEV_WEA_Sensor:temperature] >= 28) 
(set STA_BLI_Zustand unten)

## Hitze verkannt
DOELSEIF ([?STA_BLI_Betriebsart] eq "automatik" and [?STA_BLI_Zustand] eq "unten" and [DEV_WEA_Sensor:temperature] < 28) 
(set STA_BLI_Zustand sonne)

## Dunkelheit erkannt
DOELSEIF ([?STA_BLI_Betriebsart] eq "automatik" and [?STA_BLI_Zustand] eq "sonne" and [DEV_WEA_Sensor:brightness] < 20000)
(set STA_BLI_Zustand oben)

## Schatten erkannt
DOELSEIF ([?STA_BLI_Betriebsart] eq "automatik" and [?STA_BLI_Zustand] eq "sonne" and [DEV_WEA_Sensor:brightness] < 45000)
(set STA_BLI_Zustand oben)

## Sonne erkannt
DOELSEIF ([?STA_BLI_Betriebsart] eq "automatik" and [?STA_BLI_Zustand] eq "oben" and [DEV_WEA_Sensor:brightness] > 55000)
(set STA_BLI_Zustand sonne)

## nichts erkannt
DOELSE ()
   NAME       CMD_BLI_Automatik
   NR         755
   NTFY_ORDER 50-CMD_BLI_Automatik
   STATE      dtc : waiting
   TYPE       DOIF
   CHANGED:
     wait_timer: no timer
   Readings:
     2016-06-28 10:44:50   Device          DEV_WEA_Sensor
     2016-06-28 10:06:44   cmd             8
     2016-06-28 10:06:44   cmd_event       DEV_WEA_Sensor
     2016-06-28 10:06:44   cmd_nr          8
     2016-06-28 10:44:50   e_DEV_WEA_Sensor_brightness 52000
     2016-06-28 10:44:50   e_DEV_WEA_Sensor_isRaining 0
     2016-06-28 10:44:50   e_DEV_WEA_Sensor_sunDirection 115.5
     2016-06-28 10:44:50   e_DEV_WEA_Sensor_temperature 24.8
     2016-06-28 10:06:44   state           dtc : waiting
     2016-06-28 10:44:50   wait_timer      no timer
   Condition:
     0          InternalDoIf($hash,'STA_BLI_Betriebsart','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "automatik" and ReadingValDoIf($hash,'DEV_WEA_Sensor','isRaining','','',AttrVal($hash->{NAME},'notexist',undef)) > 0
     1          InternalDoIf($hash,'STA_BLI_Betriebsart','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "automatik" and (ReadingValDoIf($hash,'DEV_WEA_Sensor','sunDirection','','',AttrVal($hash->{NAME},'notexist',undef)) < 90 or ReadingValDoIf($hash,'DEV_WEA_Sensor','sunDirection','','',AttrVal($hash->{NAME},'notexist',undef)) > 270)
     2          InternalDoIf($hash,'STA_BLI_Betriebsart','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "automatik" and ReadingValDoIf($hash,'DEV_WEA_Sensor','temperature','','',AttrVal($hash->{NAME},'notexist',undef)) >= 28
     3          InternalDoIf($hash,'STA_BLI_Betriebsart','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "automatik" and InternalDoIf($hash,'STA_BLI_Zustand','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "unten" and ReadingValDoIf($hash,'DEV_WEA_Sensor','temperature','','',AttrVal($hash->{NAME},'notexist',undef)) < 28
     4          InternalDoIf($hash,'STA_BLI_Betriebsart','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "automatik" and InternalDoIf($hash,'STA_BLI_Zustand','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "sonne" and ReadingValDoIf($hash,'DEV_WEA_Sensor','brightness','','',AttrVal($hash->{NAME},'notexist',undef)) < 20000
     5          InternalDoIf($hash,'STA_BLI_Betriebsart','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "automatik" and InternalDoIf($hash,'STA_BLI_Zustand','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "sonne" and ReadingValDoIf($hash,'DEV_WEA_Sensor','brightness','','',AttrVal($hash->{NAME},'notexist',undef)) < 45000
     6          InternalDoIf($hash,'STA_BLI_Betriebsart','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "automatik" and InternalDoIf($hash,'STA_BLI_Zustand','STATE','','',AttrVal($hash->{NAME},'notexist',undef)) eq "oben" and ReadingValDoIf($hash,'DEV_WEA_Sensor','brightness','','',AttrVal($hash->{NAME},'notexist',undef)) > 55000
   Devices:
     0           DEV_WEA_Sensor
     1           DEV_WEA_Sensor
     2           DEV_WEA_Sensor
     3           DEV_WEA_Sensor
     4           DEV_WEA_Sensor
     5           DEV_WEA_Sensor
     6           DEV_WEA_Sensor
     all         DEV_WEA_Sensor
   Do:
     0:
       0          set STA_BLI_Zustand oben
     1:
       0          set STA_BLI_Zustand oben
     2:
       0          set STA_BLI_Zustand unten
     3:
       0          set STA_BLI_Zustand sonne
     4:
       0          set STA_BLI_Zustand oben
     5:
       0          set STA_BLI_Zustand oben
     6:
       0          set STA_BLI_Zustand sonne
     7:
       0
   Helper:
     event      brightness: 52000,sunDirection: 115.5,sunHeight: 50,temperature: 24.8,isRaining: 0,T: 24.8 W: 2.3 IR: 0 B: 52000,wind: 2.3
     globalinit 1
     last_timer 0
     sleepdevice DEV_WEA_Sensor
     sleepsubtimer 0
     sleeptimer -1
     timerdev   DEV_WEA_Sensor
     timerevent brightness: 52000,sunDirection: 115.5,sunHeight: 50,temperature: 24.8,isRaining: 0,T: 24.8 W: 2.3 IR: 0 B: 52000,wind: 2.3
     triggerDev DEV_WEA_Sensor
     timerevents:
       brightness: 52000
       sunDirection: 115.5
       sunHeight: 50
       temperature: 24.8
       isRaining: 0
       T: 24.8 W: 2.3 IR: 0 B: 52000
       wind: 2.3
     timereventsState:
       brightness: 52000
       sunDirection: 115.5
       sunHeight: 50
       temperature: 24.8
       isRaining: 0
       state: T: 24.8 W: 2.3 IR: 0 B: 52000
       wind: 2.3
     triggerEvents:
       brightness: 52000
       sunDirection: 115.5
       sunHeight: 50
       temperature: 24.8
       isRaining: 0
       T: 24.8 W: 2.3 IR: 0 B: 52000
       wind: 2.3
     triggerEventsState:
       brightness: 52000
       sunDirection: 115.5
       sunHeight: 50
       temperature: 24.8
       isRaining: 0
       state: T: 24.8 W: 2.3 IR: 0 B: 52000
       wind: 2.3
   Internals:
     0           STA_BLI_Betriebsart:STATE
     1           STA_BLI_Betriebsart:STATE
     2           STA_BLI_Betriebsart:STATE
     3           STA_BLI_Betriebsart:STATE STA_BLI_Zustand:STATE
     4           STA_BLI_Betriebsart:STATE STA_BLI_Zustand:STATE
     5           STA_BLI_Betriebsart:STATE STA_BLI_Zustand:STATE
     6           STA_BLI_Betriebsart:STATE STA_BLI_Zustand:STATE
     all         STA_BLI_Betriebsart:STATE STA_BLI_Zustand:STATE
   Itimer:
   Readings:
     0           DEV_WEA_Sensor:isRaining
     1           DEV_WEA_Sensor:sunDirection
     2           DEV_WEA_Sensor:temperature
     3           DEV_WEA_Sensor:temperature
     4           DEV_WEA_Sensor:brightness
     5           DEV_WEA_Sensor:brightness
     6           DEV_WEA_Sensor:brightness
     all         DEV_WEA_Sensor:isRaining DEV_WEA_Sensor:sunDirection DEV_WEA_Sensor:temperature DEV_WEA_Sensor:brightness
   Regexp:
     0:
     1:
     2:
     3:
     4:
     5:
     6:
     All:
   State:
   Trigger:
Attributes:
   cmdState   dtc : rain|dtc : range|dtc : heat|dct : cold|dct : dark|dct : shade|dct : sun|dtc : waiting
   fp_FLP_BLI_SystemDetails 166,81,0
   group      Command
   room       BLI Rollaeden
   wait       120:0:300:600:120:1200:600:0

Fhem auf Raspberry Pi3 mit Fritzbox inkl. Steckdosen, Philips Hue inkl. Orsam Lightify-Lampen, eq-3 Max!, SONOS, Rollotron Rolläden, Asus ZenPad, Samsung Galaxy xCover 3

rudolfkoenig

Ich sehe drei moegliche Ursachen:
1. die Verbindung zwischen dem FHEM Server und der Browser ist gestoert, z.Bsp. wegen Virus-Suchprogramm.
2. DOIF generiert keine Events (das kann man mit dem EventMonitor pruefen, falls Punkt 1. ausgeschlossen ist)
3. Bug in FHEMWEB.pm/fhemweb.js

Ich pruefe gerne 3., aber vorher moechte ich ein Beleg, dass 1. und 2. ok ist. Zum Pruefen brauche ich die komplette DOIF Definition (mit Attributen), und ein Screenshot der JavaScript-Console nachdem man die Bildschirm-Aenderung vermisst hat.

ZitatDas scheint mit dem neuen Fhemweb-Layout gekommen zu sein.
Was ist damit denn gemeint?

CoolTux

Hallo Rudi

Ich denke er meint das was Andre für die Detailansicht entwickelt hat. Was eigentlich nur in der Raumübersicht zu sehen ist. Mir fällt gerade der Name nicht ein  :-[


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

rudolfkoenig

Hat diese Zeile ueberhaupt einen Namen? In solchen Faellen helfen Screenshots :)
Ich bezweifle aber, dass diese Aenderung solche Auswirkungen hat.
Es sei denn, ich kriege Beweise...

CoolTux

Ich glaube auch nicht an einen Zusammenhang.
Da helfen dann nur Deine Tipps/Anweisungen zu befolgen. Von 1-2

Schauen wir mal was der Kollege uns anbieten kann.  ;D
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Pete37

Hallo,

- Virus-Programm hat ich jetzt mal deaktiviert, Problem besteht weiter.
- Browser gleich mal aktualisiert (Chrome)
- im Event-Monitor tauchen Events auf, allerdings erst im "Nachhinein": Erst wenn der Befehl auch ausgeführt wurde, was durch einen Wait verzögert ist. Damit ist der Zustand aber eigentlich auch gleich verlassen, weil die Kriterien jetzt nicht mehr dazu stimmen. Ich bekomme also angezeigt, welcher DOIF-Zweig zuletzt komplett ausgeführt wurde, nicht in welchem er derzeit steht und per Timer wartet. Das erklärt auch, warum der Zeitstempel des state in den Readings nicht zu dem anderen passt (siehe Bild im ersten Post). Das mag so gewollt sein, für mich ist es irritierend...

2016-06-29 13:05:46 DOIF CMD_BLI_Automatik wait_timer: no timer
2016-06-29 13:05:46 DOIF CMD_BLI_Automatik cmd_nr: 7
2016-06-29 13:05:46 DOIF CMD_BLI_Automatik cmd: 7
2016-06-29 13:05:46 DOIF CMD_BLI_Automatik cmd_event: DEV_WEA_Sensor
2016-06-29 13:05:46 DOIF CMD_BLI_Automatik dct : sun
Fhem auf Raspberry Pi3 mit Fritzbox inkl. Steckdosen, Philips Hue inkl. Orsam Lightify-Lampen, eq-3 Max!, SONOS, Rollotron Rolläden, Asus ZenPad, Samsung Galaxy xCover 3

rudolfkoenig

Zusammenfassung fuer mich: das hier beschriebene Verhalten ist eine DOIF-"Ueberraschung", und hat nichts mit FHEMWEB zu tun.

Pete37

ok, verstehe. Dann werde ich mal einen neuen Punkt beim DOIF aufmachen. Habe da schon einen Teil meines Problems lösen können - ist aber ne Krücke...

Danke für die Hilfe hier!
Fhem auf Raspberry Pi3 mit Fritzbox inkl. Steckdosen, Philips Hue inkl. Orsam Lightify-Lampen, eq-3 Max!, SONOS, Rollotron Rolläden, Asus ZenPad, Samsung Galaxy xCover 3

Ellert

#8
Im DOIF ist vor einiger Zeit ein Attribut " timerevent " eingeführt worden, vielleicht hilft das weiter, s. http://fhem.de/commandref_DE.html#DOIF_timerevent

Pete37

danke für den Tipp, werde ich gleich mal probieren
Fhem auf Raspberry Pi3 mit Fritzbox inkl. Steckdosen, Philips Hue inkl. Orsam Lightify-Lampen, eq-3 Max!, SONOS, Rollotron Rolläden, Asus ZenPad, Samsung Galaxy xCover 3