[DBRep] maxvalue Reading (und evtl userReading) Frage

Begonnen von Kai-Alfonso, 30 September 2019, 16:46:19

Vorheriges Thema - Nächstes Thema

Kai-Alfonso

ah ok,

jetzt verstehe ich das - weil das war mir nicht klar, weil ich mal das eine, mal das andere gesehen habe und ich beim ausprobieren von Sachen oft nicht zum Ergebnis gekommen bin, weil die Beispiele für meinen Anwendungsfall falsch waren, die ich mir rausgesucht habe.

Noch ne kurze Frage:

Ich erstelle mit zB. set maxValue Display ein Reading (wie vorher besprochen) mit dem Timestamp in dem Device laut Attribut Device.  Dieses Reading will ich in die DB schreiben. DBincludeMode ist aktiviert, das Reading steht im Attribut DbLogInclude und bei event-on-change/update-reading ist es auch drin. DB Einträge werden aber nicht erzeugt.
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

DS_Starter

#31
Moin Kai,

Zitat
Ich erstelle mit zB. set maxValue Display ein Reading (wie vorher besprochen) mit dem Timestamp in dem Device laut Attribut Device.  Dieses Reading will ich in die DB schreiben. DBincludeMode ist aktiviert, das Reading steht im Attribut DbLogInclude und bei event-on-change/update-reading ist es auch drin. DB Einträge werden aber nicht erzeugt.
Naja, wir verwenden hier einen "Trick" und verwenden die Funktion setReadingsVal aus fhem.pl weil du den bestimmten Timestamp haben möchtest (Erinnerung !!! Sonderfall!!! ). Diese Funktion wird keinen Event erzeugen. Kontrollier mal bitte im Eventmonitor. Ich gehe davon aus, dass kein Event generiert wird.
Wenn das so ist, kann natürlich kein DB-Eintrag erzeugt werden.
Aber auch dafür gibt es eine Lösung. Man kann sich einen Event in der subroutine erzeugen. Schau dir mal den Befehl "trigger" an. Den könntest du einbauen. Wenn du nicht klarkommst, können wir heute Abend nochmal gemeinsam schauen.

EDIT: Du kannst natürlich auch direkt in die DB schreiben ohne Event. Siehe "set ... insert" im DbRep.

LG,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Kai-Alfonso

Zitat von: DS_Starter am 04 November 2019, 07:56:45
Moin Kai,
Naja, wir verwenden hier einen "Trick" und verwenden die Funktion setReadingsVal aus fhem.pl weil du den bestimmten Timestamp haben möchtest (Erinnerung !!! Sonderfall!!! ). Diese Funktion wird keinen Event erzeugen. Kontrollier mal bitte im Eventmonitor. Ich gehe davon aus, dass kein Event generiert wird.
Wenn das so ist, kann natürlich kein DB-Eintrag erzeugt werden.
Aber auch dafür gibt es eine Lösung. Man kann sich einen Event in der subroutine erzeugen. Schau dir mal den Befehl "trigger" an. Den könntest du einbauen. Wenn du nicht klarkommst, können wir heute Abend nochmal gemeinsam schauen.

EDIT: Du kannst natürlich auch direkt in die DB schreiben ohne Event. Siehe "set ... insert" im DbRep.

LG,
Heiko


Hey  8)

Trigger kenn ich - ich versuche mich erst selber an einer Lösung. Auch wenn es nicht immer so aussieht, ich versuche immer erst selbst mein Glück, auch wenn ich nicht alles verstehe und wenn ich nicht weiterkomme, dann frage ich  8)
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

Kai-Alfonso

Du hattest recht - es wurden keine Events erzeugt.

Dan habe ich die untere Zeile so ergänzt:

[...]
     # readingsSingleUpdate($hash, $resr, $value, 1);                           # wenn man den aktuellen Timestamp setzt (Normalfall)
     setReadingsVal($hash,$read,$value,$pmts);                                 # !!! Spezialfall !!! abweichenden Timestamp setzen
fhem  ("trigger $dest $read:$value");


was dann beim Ausführen ein Event erzeugt:

2019-11-04 11:12:12.844 CUL_HM Umgebungssensor_Fassade_SuedSeite MinTempDay:9.4000

komischerweise wird aber trotzdem nix in die DB geschrieben.

Also habe ich das mal mit set insert probiert. Da ja der Timestamp ein wenig anders formatiert sein muss laut commandref (Datum,Uhrzeit), habe ich erstmal das in eine neue Variable geschrieben:


$ts      =~ /^(\d+)-(\d+)-(\d+)_(\d+)-(\d+)-(\d+)$/;                       # Aufteilung Timestamp
     my $pmts = "$1-$2-$3 $4:$5:$6";                                            # Neuzusammenstellung des Timestamp
     my $dbts = "$1-$2-$3,$4:$5:$6";


und dann

fhem ("set DbRep.Statistik insert $dbts,$value");





Kam aber irgendwie ein Fehler:

2019.11.04 11:31:05.902 3: DbRep DbRep.Statistik - WARNING - old process 7101 will be killed now to start a new BlockingCall
2019.11.04 11:31:05.957 1: readingsUpdate(DbRep.Statistik,background_processing_time,0.0685) missed to call readingsBeginUpdate first.
2019.11.04 11:31:05.960 1: stacktrace:
2019.11.04 11:31:05.962 1:     main::readingsBulkUpdate            called by ./FHEM/93_DbRep.pm (9478)
2019.11.04 11:31:05.963 1:     main::ReadingsBulkUpdateTimeState   called by ./FHEM/93_DbRep.pm (3470)
2019.11.04 11:31:05.964 1:     main::minval_ParseDone              called by (eval 2071803) (1)
2019.11.04 11:31:05.965 1:     (eval)                              called by fhem.pl (1137)
2019.11.04 11:31:05.967 1:     main::AnalyzePerlCommand            called by fhem.pl (1162)
2019.11.04 11:31:05.968 1:     main::AnalyzeCommand                called by fhem.pl (1091)
2019.11.04 11:31:05.969 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (255)
2019.11.04 11:31:05.970 1:     main::telnet_Read                   called by fhem.pl (3750)
2019.11.04 11:31:05.972 1:     main::CallFn                        called by fhem.pl (750)
2019.11.04 11:31:05.976 1: readingsUpdate(DbRep.Statistik,sql_processing_time,0.0298) missed to call readingsBeginUpdate first.
2019.11.04 11:31:05.977 1: stacktrace:
2019.11.04 11:31:05.979 1:     main::readingsBulkUpdate            called by ./FHEM/93_DbRep.pm (9480)
2019.11.04 11:31:05.980 1:     main::ReadingsBulkUpdateTimeState   called by ./FHEM/93_DbRep.pm (3470)
2019.11.04 11:31:05.981 1:     main::minval_ParseDone              called by (eval 2071803) (1)
2019.11.04 11:31:05.982 1:     (eval)                              called by fhem.pl (1137)
2019.11.04 11:31:05.983 1:     main::AnalyzePerlCommand            called by fhem.pl (1162)
2019.11.04 11:31:05.984 1:     main::AnalyzeCommand                called by fhem.pl (1091)
2019.11.04 11:31:05.985 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (255)
2019.11.04 11:31:05.986 1:     main::telnet_Read                   called by fhem.pl (3750)
2019.11.04 11:31:05.987 1:     main::CallFn                        called by fhem.pl (750)
2019.11.04 11:31:05.990 1: readingsUpdate(DbRep.Statistik,state,done) missed to call readingsBeginUpdate first.
2019.11.04 11:31:05.991 1: stacktrace:
2019.11.04 11:31:05.991 1:     main::readingsBulkUpdate            called by ./FHEM/93_DbRep.pm (9484)
2019.11.04 11:31:05.992 1:     main::ReadingsBulkUpdateTimeState   called by ./FHEM/93_DbRep.pm (3470)
2019.11.04 11:31:05.993 1:     main::minval_ParseDone              called by (eval 2071803) (1)
2019.11.04 11:31:05.993 1:     (eval)                              called by fhem.pl (1137)
2019.11.04 11:31:05.994 1:     main::AnalyzePerlCommand            called by fhem.pl (1162)
2019.11.04 11:31:05.994 1:     main::AnalyzeCommand                called by fhem.pl (1091)
2019.11.04 11:31:05.995 1:     main::AnalyzeCommandChain           called by ./FHEM/98_telnet.pm (255)
2019.11.04 11:31:05.996 1:     main::telnet_Read                   called by fhem.pl (3750)
2019.11.04 11:31:05.996 1:     main::CallFn                        called by fhem.pl (750)

Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

DS_Starter

Nabend Kai,

Zitat
dann beim Ausführen ein Event erzeugt:

2019-11-04 11:12:12.844 CUL_HM Umgebungssensor_Fassade_SuedSeite MinTempDay:9.4000

komischerweise wird aber trotzdem nix in die DB geschrieben.

Hier müssen wir schauen ob im Device Umgebungssensor_Fassade_SuedSeite das Logging für das Reading MinTempDay eingeschaltet ist, d.h. DbLogInclude bzw. DbLogExclude entsprechend gesetzt je nachdem wie du DbLog eingerichtet hast.
Wenn du den Standard nutzt, schau mal ob der Regex von DbLog richtig gesetzt ist.

Zitat
und dann

fhem ("set DbRep.Statistik insert $dbts,$value");

Kam aber irgendwie ein Fehler:
........

Ja, mein Fehler. Habe nicht bedacht, dass man mit dem Set-Kommando direkt den zuvor laufenden Prozess abschießt. Ist insofern kein Fehler, works as designed. Aber man muss dafür ein anderes DbRep-Device nutzen.
In diesem Fall würde ich auf den set addCacheLine im DbLog umschwenken, sofern du DbLog im asynchronen Modus betreibst.

Je nachdem was du bevorzugst gucken wir uns erstmal einen Lösungsweg an.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Kai-Alfonso

Zitat von: DS_Starter am 04 November 2019, 18:45:13
Nabend Kai,

Hier müssen wir schauen ob im Device Umgebungssensor_Fassade_SuedSeite das Logging für das Reading MinTempDay eingeschaltet ist, d.h. DbLogInclude bzw. DbLogExclude entsprechend gesetzt je nachdem wie du DbLog eingerichtet hast.
Wenn du den Standard nutzt, schau mal ob der Regex von DbLog richtig gesetzt ist.
Ja, mein Fehler. Habe nicht bedacht, dass man mit dem Set-Kommando direkt den zuvor laufenden Prozess abschießt. Ist insofern kein Fehler, works as designed. Aber man muss dafür ein anderes DbRep-Device nutzen.
In diesem Fall würde ich auf den set addCacheLine im DbLog umschwenken, sofern du DbLog im asynchronen Modus betreibst.

Je nachdem was du bevorzugst gucken wir uns erstmal einen Lösungsweg an.

Also, ich habe DbLogselectionMode = include eingestellt und im Umgebungssensor_Fassade_SuedSeite  auch die ensprechenden Readings hinterlegt. Brightness etc werden auch geloggt. Hier mal das List des Devices

Internals:
   .lastTimeActivity 1572874924.92943
   .lastTimebatVoltage 1572890307.78151
   .lastTimebattery 1572890432.31943
   .lastTimebrightness 1572890307.78151
   .lastTimecustomData 1572890432.31943
   .lastTimedigitalInput 1572890432.31943
   .lastTimehumidity 1572890307.78151
   .lastTimepressure 1572890181.47528
   .lastTimestate 1572890432.31943
   .lastTimetemperature 1572890432.31943
   DEF        CC5B90
   FUUID      5c509114-f33f-ce3b-592a-686607562a31c0b5
   HMUART_EG_MSGCNT 124
   HMUART_EG_RAWMSG 0500004F0A8470CC5B90000000004F26755400000005000D0E0000
   HMUART_EG_RSSI -79
   HMUART_EG_TIME 2019-11-04 19:00:32
   IODev      HMUART_EG
   LASTInputDev HMUART_EG
   MSGCNT     124
   NAME       Umgebungssensor_Fassade_SuedSeite
   NOTIFYDEV  global
   NR         168
   NTFY_ORDER 50-Umgebungssensor_Fassade_SuedSeite
   STATE      T: 7.9 P: 984.5 H: 84 B: 0.05 I: 0 X: 0
   TYPE       CUL_HM
   chanNo     01
   lastMsg    No:0A - t:70 s:CC5B90 d:000000 004F26755400000005000D0E0000
   protCmdDel 2
   protLastRcv 2019-11-04 19:00:32
   protRcv    124 last_at:2019-11-04 19:00:32
   protResnd  3 last_at:2019-11-04 16:46:44
   protResndFail 1 last_at:2019-11-04 17:28:35
   protSnd    4 last_at:2019-11-04 17:28:31
   protState  CMDs_done_Errors:1
   rssi_at_HMUART_EG cnt:124 min:-82 max:-75 avg:-77.61 lst:-79
   .attraggr:
   .attreocr:
     pressure
     humidity
     temperature
     brightness
     batVoltage
     MinTempDay
     MaxTempDay
   .attrminint:
     .*:300
     batVoltage:600
   Helper:
     DBLOG:
       batVoltage:
         DBLog:
           TIME       1572890307.79477
           VALUE      3.34
       brightness:
         DBLog:
           TIME       1572890307.79477
           VALUE      0.05
       humidity:
         DBLog:
           TIME       1572890307.79477
           VALUE      84
       pressure:
         DBLog:
           TIME       1572890181.48843
           VALUE      984.5
       temperature:
         DBLog:
           TIME       1572890432.33514
           VALUE      7.9
   READINGS:
     2019-10-23 18:01:18   .D-devInfo      010101
     2019-10-23 18:01:18   .D-stc          70
     2019-01-30 15:49:44   .R-altitude     0 m
     2019-01-30 15:49:44   .R-ledMode      undef lit:1
     2019-01-30 15:49:44   .R-lowBatLimit  2.1 V
     2019-01-30 15:49:44   .R-transmDevTryMax 6
     2019-10-23 18:00:00   .R-updateIntervall 120 s
     2019-10-23 18:01:10   .peerListRDate  2019-10-23 18:01:10
     2019-11-04 19:00:32   .protLastRcv    2019-11-04 19:00:32
     2019-11-04 14:42:04   Activity        alive
     2019-10-22 16:21:56   Batteriewechsel 22.10.2019
     2019-10-23 17:59:42   CommandAccepted yes
     2019-10-23 18:01:18   D-firmware      1.3
     2019-10-23 18:01:18   D-serialNr      PZK2993649
     2019-11-04 11:02:10   MaxTempDay      17.8000
     2019-07-25 16:38:16   MaxTempHist     76.9000
     2019-07-25 16:38:16   MaxTempYear     76.9000
     2019-11-04 03:51:15   MinTempDay      9.4000
     2019-02-15 04:46:01   MinTempHist     -3.9000
     2019-02-15 04:46:01   MinTempYear     -3.9000
     2019-10-23 18:01:09   PairedTo        0x000000
     2019-10-23 18:00:00   R-pairCentral   0x000000
     2019-10-23 18:01:09   RegL_00.        00:00 05:40 0A:00 0B:00 0C:00 12:15 14:06 20:00 21:78 22:00 23:00
     2019-11-04 19:00:32   batVoltage      3.34
     2019-11-04 19:00:32   battery         ok
     2019-11-04 19:00:32   brightness      0.05
     2019-11-04 19:00:32   customData      0
     2019-11-04 19:00:32   digitalInput    0
     2019-11-04 19:00:32   humidity        84
     2019-10-23 17:59:57   powerOn         2019-10-23 17:59:57
     2019-11-04 19:00:32   pressure        984.5
     2019-10-23 18:01:16   recentStateType info
     2019-11-04 19:00:32   state           T: 7.9 P: 984.5 H: 84 B: 0.05 I: 0 X: 0
     2019-11-04 19:00:32   temperature     7.9
   helper:
     HM_CMDNR   10
     mId        F103
     peerFriend
     peerOpt    p:UniSensor1
     regLst     0
     rxType     156
     supp_Pair_Rep 0
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       newChn     +CC5B90,00,00,00
       nextSend   1572890432.39607
       prefIO     
       rxt        2
       vccu       VCCU
       p:
         CC5B90
         00
         00
         00
     mRssi:
       mNo        0A
       io:
         HMUART_EG:
           -77
           -77
         HMUART_OG:
     prt:
       bErr       0
       sProc      0
     q:
       qReqConf   
       qReqStat   
     role:
       chn        1
       dev        1
     rssi:
       at_HMUART_EG:
         avg        -77.6129032258065
         cnt        124
         lst        -79
         max        -75
         min        -82
     shadowReg:
     tmpl:
Attributes:
   .mId       F103
   DbLogInclude (pressure|humidity|temperature|brightness|batVoltage|MinTempDay|MaxTempDay)
   IOgrp      VCCU
   actCycle   000:60
   actStatus  alive
   alexaName  Terrasse
   alias      Umgebungssensor Fassade Süd-Seite
   autoReadReg 4_reqStatus
   event-min-interval .*:300,batVoltage:600
   event-on-change-reading pressure,humidity,temperature,brightness,batVoltage,MinTempDay,MaxTempDay
   expert     2_raw
   firmware   1.3
   group      Umgebungssensor
   icon       weather_light_meter
   model      HB-UNI-Sensor1
   peerIDs    00000000,
   room       HomeMatic
   serialNr   PZK2993649
   subType    UniSensor1
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

DS_Starter

Hmm, auf den ersten Blick kann ich nichts falsches feststellen. Das Attr DbLogInclude kannst du aber ganz einfach als KOmma getrennte Liste schreiben, ist aber gerade nebensächlich.
Dann müssen wir im DbLog gucken ... dort verbose 4 einschalten und mal bitte den Logauszug posten wenn solch ein Event erzeugt wurde.

Beispiel:

2019.11.04 19:11:22.440 4: DbLog LogDB1 -> ################################################################
2019.11.04 19:11:22.441 4: DbLog LogDB1 -> ###              start of new Logcycle                       ###
2019.11.04 19:11:22.441 4: DbLog LogDB1 -> ################################################################
2019.11.04 19:11:22.442 4: DbLog LogDB1 -> number of events received: 13 for device: SMA_Energymeter
2019.11.04 19:11:22.442 4: DbLog LogDB1 -> check Device: SMA_Energymeter , Event: Bezug_WirkP_Zaehler_Diff: 0.0108
2019.11.04 19:11:22.445 4: DbLog LogDB1 -> added event - Timestamp: 2019-11-04 19:11:22, Device: SMA_Energymeter, Type: SMAEM, Event: Bezug_WirkP_Zaehler_Diff: 0.0108, Reading: Bezug_WirkP_Zaehler_Diff, Value: 0.0108, Unit:
2019.11.04 19:11:22.446 4: DbLog LogDB1 -> check Device: SMA_Energymeter , Event: Bezug_WirkP_Kosten_Diff: 0.0029
2019.11.04 19:11:22.448 4: DbLog LogDB1 -> added event - Timestamp: 2019-11-04 19:11:22, Device: SMA_Energymeter, Type: SMAEM, Event: Bezug_WirkP_Kosten_Diff: 0.0029, Reading: Bezug_WirkP_Kosten_Diff, Value: 0.0029, Unit:
2019.11.04 19:11:22.449 4: DbLog LogDB1 -> check Device: SMA_Energymeter , Event: Einspeisung_WirkP_Zaehler_Diff: 0
2019.11.04 19:11:22.452 4: DbLog LogDB1 -> added event - Timestamp: 2019-11-04 19:11:22, Device: SMA_Energymeter, Type: SMAEM, Event: Einspeisung_WirkP_Zaehler_Diff: 0, Reading: Einspeisung_WirkP_Zaehler_Diff, Value: 0, Unit:
2019.11.04 19:11:22.452 4: DbLog LogDB1 -> check Device: SMA_Energymeter , Event: Einspeisung_WirkP_Verguet_Diff: 0.0000
2019.11.04 19:11:22.456 4: DbLog LogDB1 -> added event - Timestamp: 2019-11-04 19:11:22, Device: SMA_Energymeter, Type: SMAEM, Event: Einspeisung_WirkP_Verguet_Diff: 0.0000, Reading: Einspeisung_WirkP_Verguet_Diff, Value: 0.0000, Unit:
2019.11.04 19:11:22.457 4: DbLog LogDB1 -> check Device: SMA_Energymeter , Event: state: -582.7
2019.11.04 19:11:22.460 4: DbLog LogDB1 -> added event - Timestamp: 2019-11-04 19:11:22, Device: SMA_Energymeter, Type: SMAEM, Event: state: -582.7, Reading: state, Value: -582.7, Unit:
2019.11.04 19:11:22.461 4: DbLog LogDB1 -> check Device: SMA_Energymeter , Event: Saldo_Wirkleistung: -582.7
2019.11.04 19:11:22.464 4: DbLog LogDB1 -> added event - Timestamp: 2019-11-04 19:11:22, Device: SMA_Energymeter, Type: SMAEM, Event: Saldo_Wirkleistung: -582.7, Reading: Saldo_Wirkleistung, Value: -582.7, Unit: W
2019.11.04 19:11:22.464 4: DbLog LogDB1 -> check Device: SMA_Energymeter , Event: Bezug_Wirkleistung: 582.7
2019.11.04 19:11:22.467 4: DbLog LogDB1 -> check Device: SMA_Energymeter , Event: Bezug_Wirkleistung_Zaehler: 9519.7230
2019.11.04 19:11:22.470 4: DbLog LogDB1 -> added event - Timestamp: 2019-11-04 19:11:22, Device: SMA_Energymeter, Type: SMAEM, Event: Bezug_Wirkleistung_Zaehler: 9519.7230, Reading: Bezug_Wirkleistung_Zaehler, Value: 9519.7230, Unit: kWh
2019.11.04 19:11:22.471 4: DbLog LogDB1 -> check Device: SMA_Energymeter , Event: Einspeisung_Wirkleistung: 0.0
2019.11.04 19:11:22.474 4: DbLog LogDB1 -> added event - Timestamp: 2019-11-04 19:11:22, Device: SMA_Energymeter, Type: SMAEM, Event: Einspeisung_Wirkleistung: 0.0, Reading: Einspeisung_Wirkleistung, Value: 0.0, Unit: W
2019.11.04 19:11:22.475 4: DbLog LogDB1 -> check Device: SMA_Energymeter , Event: Einspeisung_Wirkleistung_Zaehler: 14974.4042
2019.11.04 19:11:22.478 4: DbLog LogDB1 -> added event - Timestamp: 2019-11-04 19:11:22, Device: SMA_Energymeter, Type: SMAEM, Event: Einspeisung_Wirkleistung_Zaehler: 14974.4042, Reading: Einspeisung_Wirkleistung_Zaehler, Value: 14974.4042, Unit: kWh
2019.11.04 19:11:22.480 4: DbLog LogDB1 -> check Device: SMA_Energymeter , Event: L1_Spannung: 231.4
2019.11.04 19:11:22.482 4: DbLog LogDB1 -> added event - Timestamp: 2019-11-04 19:11:12, Device: SMA_Energymeter, Type: SMAEM, Event: L1_Spannung: 231.4, Reading: L1_Spannung, Value: 231.4, Unit: V
2019.11.04 19:11:22.484 4: DbLog LogDB1 -> check Device: SMA_Energymeter , Event: L2_Spannung: 231.2
2019.11.04 19:11:22.487 4: DbLog LogDB1 -> added event - Timestamp: 2019-11-04 19:11:12, Device: SMA_Energymeter, Type: SMAEM, Event: L2_Spannung: 231.2, Reading: L2_Spannung, Value: 231.2, Unit: V
2019.11.04 19:11:22.488 4: DbLog LogDB1 -> check Device: SMA_Energymeter , Event: L3_Spannung: 232.4
2019.11.04 19:11:22.491 4: DbLog LogDB1 -> added event - Timestamp: 2019-11-04 19:11:22, Device: SMA_Energymeter, Type: SMAEM, Event: L3_Spannung: 232.4, Reading: L3_Spannung, Value: 232.4, Unit: V
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Kai-Alfonso

Hi,

so ich hab da mal geloggt. Für die anderen Readings des Devices kein Problem:

2019.11.04 19:29:48.297 4: DbLog DBLog -> ###              start of new Logcycle                       ###
2019.11.04 19:29:48.297 4: DbLog DBLog -> ################################################################
2019.11.04 19:29:48.298 4: DbLog DBLog -> number of events received: 4 for device: Umgebungssensor_Fassade_SuedSeite
2019.11.04 19:29:48.299 4: DbLog DBLog -> check Device: Umgebungssensor_Fassade_SuedSeite , Event: batVoltage: 3.34
2019.11.04 19:29:48.301 4: DbLog DBLog -> added event - Timestamp: 2019-11-04 19:29:48, Device: Umgebungssensor_Fassade_SuedSeite, Type: CUL_HM, Event: batVoltage: 3.34, Reading: batVoltage, Value: 3.34, Unit:
2019.11.04 19:29:48.303 4: DbLog DBLog -> check Device: Umgebungssensor_Fassade_SuedSeite , Event: brightness: 0.05
2019.11.04 19:29:48.304 4: DbLog DBLog -> added event - Timestamp: 2019-11-04 19:29:48, Device: Umgebungssensor_Fassade_SuedSeite, Type: CUL_HM, Event: brightness: 0.05, Reading: brightness, Value: 0.05, Unit:
2019.11.04 19:29:48.306 4: DbLog DBLog -> check Device: Umgebungssensor_Fassade_SuedSeite , Event: humidity: 86
2019.11.04 19:29:48.307 4: DbLog DBLog -> added event - Timestamp: 2019-11-04 19:29:48, Device: Umgebungssensor_Fassade_SuedSeite, Type: CUL_HM, Event: humidity: 86, Reading: humidity, Value: 86, Unit: %
2019.11.04 19:29:48.309 4: DbLog DBLog -> check Device: Umgebungssensor_Fassade_SuedSeite , Event: temperature: 8.2
2019.11.04 19:29:48.311 4: DbLog DBLog -> added event - Timestamp: 2019-11-04 19:29:48, Device: Umgebungssensor_Fassade_SuedSeite, Type: CUL_HM, Event: temperature: 8.2, Reading: temperature, Value: 8.2, Unit: °C


für das spezielle Reading finde ich nur das:

2019.11.04 19:27:30.920 4: DbLog DBLog -> ################################################################
2019.11.04 19:27:30.921 4: DbLog DBLog -> ###              start of new Logcycle                       ###
2019.11.04 19:27:30.921 4: DbLog DBLog -> ################################################################
2019.11.04 19:27:30.922 4: DbLog DBLog -> number of events received: 1 for device: Umgebungssensor_Fassade_SuedSeite
2019.11.04 19:27:30.923 4: DbLog DBLog -> check Device: Umgebungssensor_Fassade_SuedSeite , Event: MinTempDay:7.8000


danach kommt schon der nächste Logcycle
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

DS_Starter

Ja, für das Reading MinTempDay fehlt nach den check das "add event". DbLog sortiert es aus.
Es fehlt ein Leerzeichen hinter "MinTempDay:".

Der Eventbefehl müsste lauten:


fhem  ("trigger $dest $read: $value");

ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Kai-Alfonso

Zitat von: DS_Starter am 04 November 2019, 19:40:34
Ja, für das Reading MinTempDay fehlt nach den check das "add event". DbLog sortiert es aus.
Es fehlt ein Leerzeichen hinter "MinTempDay:".

Der Eventbefehl müsste lauten:


fhem  ("trigger $dest $read: $value");



Argh, das Leerzeichen hatte ich gar nicht mitbekommen. Vielen lieben Dank. Hat jetzt funktioniert.  8)
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

DS_Starter

Habs auch nicht gleich gesehen. Schön das es jetzt funktioniert.  :D

LG
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Kai-Alfonso

Zitat von: DS_Starter am 04 November 2019, 19:53:05
Habs auch nicht gleich gesehen. Schön das es jetzt funktioniert.  :D

LG

Das hat mir keine Ruhe gelassen mit dem Leerzeichen vom Trigger. Ich habe noch mal nachgeschaut, wo ich die exakte Syntax herhabe. Im Wiki steht es ohne Leerzeichen: https://wiki.fhem.de/wiki/Trigger

nur ein bestimmtes Reading triggern
Manchmal möchte man nicht auf state prüfen (wie z.B. bei einem Dummy) sondern auf ein bestimmtes Reading. Hierfür lautet die Syntax

trigger <Device> <Reading>:<Value>
Also z.B.

trigger Stromzaehler power:1000


Jetzt die Frage: ist es im Wiki falsch oder eine Besonderheit? Weil das Event kam ja, nur kein added event
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

DS_Starter

Moin Kai,

im Wiki nicht ganz korrekt möchte ich sagen.
Wenn du dir im Eventmonitor die anderen Events anschaust wirst du feststellen, dass immer ein Leerzeichen zwischen Reading: und dem Wert ist.
So splittet DbLog auch die Events. Filelog z.B. muss das nicht tun und ist demzufolge auch nicht so relevant.
Ich könnte das Splitting im DbLog anpassen, muss mir aber genau überlegen ob das keine unerwünschten Nebeneffekte hat.
Vielleicht ist es besser bei Rudi nachzufragen, vllt. war früher irgendwann mal an dieser Stelle kein Leerzeichen.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Kai-Alfonso

Zitat von: DS_Starter am 05 November 2019, 09:24:27

Vielleicht ist es besser bei Rudi nachzufragen, vllt. war früher irgendwann mal an dieser Stelle kein Leerzeichen.

Ich mach Ihn mal auf diesen Thread aufmerksam  8)
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

rudolfkoenig

readingsBulkUpdate fuegt die Events in die Liste mitmy $rv = "$reading: $value";
[...]
addEvent($hash, $rv);
hinzu.

Das trigger Befehl setzt die Argumente ohne Umformatierung einfach ab, bei trigger muss man nicht mal Value angeben.
Das Beispiel in der Wiki ist fuer die meisten Module (die, wie empfohlen, readings*Update verwenden) falsch.