Autor Thema: Structure Status und dblog  (Gelesen 4769 mal)

Offline dansch

  • Jr. Member
  • **
  • Beiträge: 73
  • Hoanoho Frontend
Structure Status und dblog
« am: 27 Dezember 2013, 14:23:40 »
Hallo zusammen und Frohes Fest nachträglich an alle,

ich bin gerade dabei mir mein eigenes Frontend zu schreiben und bin dabei auf ein Problem mit Structures in Verbindung mit dem dblog in eine MySQL Datenbank gestossen, ich hoffe ihr könnt mir helfen.

Folgende ist Situation:

3 Lichtschalter wurden in eine Structure zusammengefasst:

define All_Lights structure room L_WZ_1 L_AZ_1 L_WZ_3
attr All_Lights setList on off
attr All_Lights clientstate_behavior relative
attr All_Lights clientstate_priority on off


In der Datenbank habe ich für die Structure in der Tabelle Current folgende Einträge:

2013-12-27 00:01:07   All_Lights   STRUCTURE   off   off
2013-12-27 00:00:58   All_Lights   STRUCTURE   on   on
2013-12-26 16:23:45   All_Lights   STRUCTURE   undefined   

Bei einer Statusänderung wird hier nur das Datum aktualisiert für den entsprechenden Status (on, off, undefined).

Problem:

Der Status in der Datenbank für die Structure wird nur dann aktualisiert wenn ich eines der Lichter schalte (also nicht über die Structure selbst). Sobald ich über die Structure alle Lichter gesammelt ein/ausschalte will wird der Status der Structure nicht in der Datenbank aktualisiert.


Könnt ihr mir dabei auf die Sprünge helfen woran das Verhalten liegt ? Ich würde gerne über die Structure alle Lichter gesammelt schalten können während auch der Status der Structure in der Datenbank entsprechend aktualisiert wird.

Danke!
« Letzte Änderung: 27 Dezember 2013, 14:28:48 von dansch »

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 20891
Antw:Structure Status und dblog
« Antwort #1 am: 27 Dezember 2013, 15:03:20 »
Die Ursache ist vermutlich, dass structure beim Befehl ausfuehren kein event fuer sich selbst generiert.

Offline dansch

  • Jr. Member
  • **
  • Beiträge: 73
  • Hoanoho Frontend
Antw:Structure Status und dblog
« Antwort #2 am: 27 Dezember 2013, 15:07:57 »
Gibt es eine alternative Möglichkeit um ans Ziel zu kommen ?
Mein Backend fragt via einem Websocket zur Laufzeit ständig die Datenbank auf Änderungen ab und pusht diese dann an die Frontend(s).

Die Funktionalität wäre für mich ziemlich wichtig :(
« Letzte Änderung: 27 Dezember 2013, 15:13:19 von dansch »

Offline dansch

  • Jr. Member
  • **
  • Beiträge: 73
  • Hoanoho Frontend
Antw:Structure Status und dblog
« Antwort #3 am: 27 Dezember 2013, 16:55:22 »
Also einen Workaround habe ich mich gerade selbst geschaffen - dieser ist aber eigentlich absolut dämlich:

Ich habe eine weitere Structure definiert, die genau so definiert ist wie die Basisstructure. Diese Structure habe ich _Btn genannt.
Schalte ich über die _Btn Structure die Lampen, bekommt die Basisstructure den Zustand mit und aktualisiert sich in der Datenbank.

Klappt, aber ist doof.

Gibt es eine Möglichkeit, das der Structure generell beigebracht wird auch für sich selbst Events auszulösen ?
Ich habe mir die structure.pm einmal im Repository angesehen, leider bin ich kein Perl Entwickler so dass mir auf Anhieb nicht klar wurde was da genau gemacht wird. Ich müsste mich zunächst in den Syntax einarbeiten um zu verstehen was ihr dort treibt.

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19341
Antw:Structure Status und dblog
« Antwort #4 am: 27 Dezember 2013, 17:30:35 »
ich kann das problem  nicht ganz nachvollziehen.

wenn ich eine structure schalte oder eine device aus einer structure ändert sich state der structure, das icon wird aktualisiert und mit inform timer sehe ich das event (sogar so oft wie die structure teilnehmer hat bzw. ein mal mehr)

kann es sein das die structure in der regex für dein dblog einfach nicht mit dabei ist?

gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline dansch

  • Jr. Member
  • **
  • Beiträge: 73
  • Hoanoho Frontend
Antw:Structure Status und dblog
« Antwort #5 am: 27 Dezember 2013, 18:01:30 »
Ich logge eigentlich alles in der db mit:

define myDBLog DbLog /etc/fhem/mysql.config .*:.*
Es scheint tatsächlich so zu sein, das von der Structure kein Event für die Structure selbst ausgeht, d.h. die Structure schert sich nicht über ihren Status wenn sie selbst zum schalten verwendet wird.

D.h. ich schalte die Structure auf "an", alle Lichter gehen "an". Aber der Status für die Structure in der DB wird NICHT gesetzt, weder für "on", "off", "undefined".
Im Gegensatz dazu, wenn ich eines der Lichter auf "an" schalte, setzt sich der Status für das Licht in der Datenbank auf "on" und auch das der Structure ist auf "on".

Probiert das mal bei euch aus mit Dummies. Ist bei mir auch über das Standard Frontend so nachvollziehbar.

Hier mal meine einfache Testkonfiguration mit Dummies:

define L_AZ_1 dummy
attr L_AZ_1 setList on off

define L_WZ_1 dummy
attr L_WZ_1 setList on off

define L_WZ_3 dummy
attr L_WZ_3 setList on off

define All_Lights structure room L_WZ_1 L_AZ_1 L_WZ_3
attr All_Lights setList on off
attr All_Lights clientstate_behavior relative
attr All_Lights clientstate_priority on off

Die Lichter gehen bei mir im Frontend auch an, auch für die Structure. Nur in der Datenbank landet der Status nicht :(

Mal anders gefragt: Bekomme ich den Status der Structure irgendwie anders raus ?
« Letzte Änderung: 27 Dezember 2013, 18:14:51 von dansch »

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19341
Antw:Structure Status und dblog
« Antwort #6 am: 27 Dezember 2013, 18:28:43 »
mit deinem Beispiel sehe ich die events bei inform timer und sie landen auch in der db...

Zitat
inform timer .*:.*
set All_Lights off
2013-12-27 18:26:57 dummy L_AZ_1 off
2013-12-27 18:26:57 dummy L_WZ_1 off
2013-12-27 18:26:57 dummy L_WZ_3 off
2013-12-27 18:26:57 structure All_Lights off

Zitat
2013-12-27 18:26:57|L_AZ_1|DUMMY|off|state|off|
2013-12-27 18:26:57|L_WZ_1|DUMMY|off|state|off|
2013-12-27 18:26:57|L_WZ_3|DUMMY|off|state|off|
2013-12-27 18:26:57|All_Lights|STRUCTURE|off|state|off|

gruss
  andre

ps: eine structure hat kein setList attribut.
« Letzte Änderung: 27 Dezember 2013, 18:31:03 von justme1968 »
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline dansch

  • Jr. Member
  • **
  • Beiträge: 73
  • Hoanoho Frontend
Antw:Structure Status und dblog
« Antwort #7 am: 27 Dezember 2013, 18:43:21 »
Bei mir leider nicht:

Events:
2013-12-27 18:37:17 dummy L_AZ_1 on
2013-12-27 18:37:17 dummy L_WZ_1 on
2013-12-27 18:37:17 dummy L_WZ_3 on
2013-12-27 18:37:25 dummy L_AZ_1 off
2013-12-27 18:37:25 dummy L_WZ_1 off
2013-12-27 18:37:25 dummy L_WZ_3 off

Die Structure kommt erst wenn ich die Lichter selbst schalte:
2013-12-27 18:46:19 structure All_Lights_EG on
2013-12-27 18:46:19 dummy L_WZ_1 on
2013-12-27 18:46:22 structure All_Lights_EG off
2013-12-27 18:46:22 dummy L_WZ_1 off


Woran könnte das liegen ? Ich fahre eine Minimalkonfiguration, nur die 3 Dummies und die Structure. Und das logging in die MySQL Datenbank:

fhem.cfg:
attr global autoload_undefined_devices 1
attr global logfile ./log/fhem-%Y-%m.log
attr global modpath .
attr global sendStatistics manually
attr global statefile ./log/fhem.save
attr global verbose 3

define telnetPort telnet 7072 global

define WEB FHEMWEB 8083 global

define WEBphone FHEMWEB 8084 global
attr WEBphone stylesheetPrefix smallscreen

define WEBtablet FHEMWEB 8085 global
attr WEBtablet stylesheetPrefix touchpad

# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog

define autocreate autocreate
attr autocreate autosave 1
attr autocreate device_room %TYPE
attr autocreate filelog ./log/%NAME-%Y.log
attr autocreate weblink 1
attr autocreate weblink_room Plots

# Disable this to avoid looking for new USB devices on startup
define initialUsbCheck notify global:INITIALIZED usb create

include /etc/fhem/mysql.include
include /etc/fhem/test.include

attr global sendStatistics never

# If the above notify did not helped, then you probably have to enable some of
# the following lines.  Verify first that /dev/xxx ist correct.

#define FHZ FHZ /dev/USB0
#define CUL CUL /dev/ttyACM0@9600 1234
#attr CUL rfmode HomeMatic

#define EUL TCM 310 /dev/ttyACM0@57600
#define BscBor TCM 120 /dev/ttyUSB0@9600
#define BscSmartConnect TCM 310 /dev/ttyUSB0@57600

mysql.include:
define myDBLog DbLog /etc/fhem/mysql.config .*:.*
test.include:
define L_AZ_1 dummy
attr L_AZ_1 setList on off

define L_WZ_1 dummy
attr L_WZ_1 setList on off

define L_WZ_3 dummy
attr L_WZ_3 setList on off

define All_Lights_EG structure room L_WZ_1 L_AZ_1 L_WZ_3
attr All_Lights_EG clientstate_behavior relative
attr All_Lights_EG clientstate_priority on off

Version 5.4 ist installiert.
« Letzte Änderung: 27 Dezember 2013, 18:47:05 von dansch »

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 19341
Antw:Structure Status und dblog
« Antwort #8 am: 27 Dezember 2013, 18:44:45 »
ist deine fhem installation auf dem aktuellen stand? als mit update aktualisiert?

gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline dansch

  • Jr. Member
  • **
  • Beiträge: 73
  • Hoanoho Frontend
Antw:Structure Status und dblog
« Antwort #9 am: 27 Dezember 2013, 18:48:07 »
Ich update mal gerade auf 5.5

Offline dansch

  • Jr. Member
  • **
  • Beiträge: 73
  • Hoanoho Frontend
Antw:Structure Status und dblog
« Antwort #10 am: 27 Dezember 2013, 18:51:07 »
Ohmann,

das wars! Hätte ich jetzt nicht vermutet das es daran lag. Ich hatte 5.4 vorher drauf.

Danke Andre!

Offline Tobias

  • Developer
  • Hero Member
  • ****
  • Beiträge: 3705
Antw:Structure Status und dblog
« Antwort #11 am: 03 Januar 2014, 17:16:20 »
das wars! Hätte ich jetzt nicht vermutet das es daran lag. Ich hatte 5.4 vorher drauf.
Diese Änderung hatte ich vor ca 3Monaten im DbLog Modul eingecheckt ;)
FHEM auf ASRock J3455-ITX im 19" Rack mit Homematic, MAX, PCA301, Panstamps, RPi für BLE Bodenfeuchtesenoren, Text2Speech.
Maintainer der Module: Text2Speech, TrashCal, MediaList

Meine Projekte auf https://github.com/tobiasfaust
u.a. PumpControl v2: Bewässerungssteuerung mit ESP und FHEM

 

decade-submarginal