HTTPMOD loggt nicht in DB ??

Begonnen von Flanders, 31 Mai 2023, 11:05:48

Vorheriges Thema - Nächstes Thema

Flanders

Hallo,

ich frage über das HTTPMOD ein Kleindevice ab, dass mir meine Pooltemperatur liefert.
Funktioniert auch gut.
Jetzt wollte ich einen Plot erstellen und bemerkte dabei, dass die Daten des HTTPMOD nicht in die DB laufen (SELECT Abfrage auf die DB).
Was mache ich falsch?

Device:
define Thermo_Pool HTTPMOD http://172.30.90.36/api 300
attr Thermo_Pool DbLogInclude sensors_01_value, sensors_01_time
attr Thermo_Pool alexaName Pool
attr Thermo_Pool alias Pooltemperatur
attr Thermo_Pool disable 0
attr Thermo_Pool event-min-interval sensors_01_value:900
attr Thermo_Pool event-on-change-reading sensors_01_value, sensors_01_time
attr Thermo_Pool event-on-update-reading sensors_01_value, sensors_01_time
attr Thermo_Pool genericDeviceType thermometer
attr Thermo_Pool homebridgeMapping clear CurrentTemperature=sensors_01_value
attr Thermo_Pool icon icoTempWasser
attr Thermo_Pool reading100JSON sensors_01_time
attr Thermo_Pool reading100Name sensors_01_time
attr Thermo_Pool reading101JSON sensors_01_mean-24_count
attr Thermo_Pool reading101Name sensors_01_mean-24_count
attr Thermo_Pool reading102JSON sensors_01_name
attr Thermo_Pool reading102Name sensors_01_name
attr Thermo_Pool reading103JSON sensors_01_mean-24_period
attr Thermo_Pool reading103Name sensors_01_mean-24_period
attr Thermo_Pool reading104JSON firmware
attr Thermo_Pool reading104Name firmware
attr Thermo_Pool reading105JSON systemname
attr Thermo_Pool reading105Name systemname
attr Thermo_Pool reading106JSON sensors_01_mean-1_count
attr Thermo_Pool reading106Name sensors_01_mean-1_count
attr Thermo_Pool reading107JSON sensors_01_mean-1_period
attr Thermo_Pool reading107Name sensors_01_mean-1_period
attr Thermo_Pool reading108JSON sensors_01_value
attr Thermo_Pool reading108Name sensors_01_value
attr Thermo_Pool reading109JSON sensors_01_mean-1_value
attr Thermo_Pool reading109Name sensors_01_mean-1_value
attr Thermo_Pool reading110JSON sensors_01_unit
attr Thermo_Pool reading110Name sensors_01_unit
attr Thermo_Pool reading111JSON secure_counter
attr Thermo_Pool reading111Name secure_counter
attr Thermo_Pool reading112JSON sensors_01_mean-24_value
attr Thermo_Pool reading112Name sensors_01_mean-24_value
attr Thermo_Pool room Aussen,GoogleAssistant,Homekit,Pool,alexa
attr Thermo_Pool siriName Pool
attr Thermo_Pool stateFormat Wasser: sensors_01_value °C
#   BUSY       0
#   DEF        http://172.30.90.36/api 300
#   FUUID      62f76a8f-f33f-7ffc-bebd-6029513c59339242
#   Interval   300
#   MainURL    http://172.30.90.36/api
#   ModuleVersion 4.1.15 - 17.12.2022
#   NAME       Thermo_Pool
#   NOTIFYDEV  global
#   NR         1205
#   NTFY_ORDER 50-Thermo_Pool
#   STATE      Wasser: 17.125 °C
#   TYPE       HTTPMOD
#   eventCount 62
#   value     
#   Helper:
#     DBLOG:
#       firmware:
#         logdb:
#           TIME       1685522417.887
#           VALUE      2.3.05-b
#       secure_counter:
#         logdb:
#           TIME       1685522417.887
#           VALUE      32528
#       sensors_01_mean-1_count:
#         logdb:
#           TIME       1685522417.887
#           VALUE      60
#       sensors_01_mean-1_period:
#         logdb:
#           TIME       1685522417.887
#           VALUE      3600
#       sensors_01_mean-1_value:
#         logdb:
#           TIME       1685522417.887
#           VALUE      16.69583
#       sensors_01_mean-24_count:
#         logdb:
#           TIME       1685522417.887
#           VALUE      1440
#       sensors_01_mean-24_period:
#         logdb:
#           TIME       1685522417.887
#           VALUE      86400
#       sensors_01_mean-24_value:
#         logdb:
#           TIME       1685522417.887
#           VALUE      16.86263
#       sensors_01_name:
#         logdb:
#           TIME       1685522417.887
#           VALUE      Water Temperature
#       sensors_01_time:
#         logdb:
#           TIME       1685522417.887
#           VALUE      Wed May 31 10:40:16 2023
#       sensors_01_unit:
#         logdb:
#           TIME       1685522417.887
#           VALUE      Celsius
#       sensors_01_value:
#         logdb:
#           TIME       1685523617.93675
#           VALUE      17.125
#       state:
#         logdb:
#           TIME       1685522949.2136
#           VALUE      reread
#       systemname:
#         logdb:
#           TIME       1685522417.887
#           VALUE      Temp2IoT
#   HttpUtils:
#     NAME       
#     addr       http://172.30.90.36:80
#     auth       0
#     buf       
#     code       200
#     compress   1
#     conn       
#     data       
#     displayurl http://172.30.90.36/api
#     header     
#     host       172.30.90.36
#     httpheader HTTP/1.0 200 OK
#Content-Type: application/json
#Content-Length: 461
#Connection: close
#     httpversion 1.0
#     hu_blocking 0
#     hu_filecount 1
#     hu_port    80
#     hu_portSfx
#     ignoreredirects 1
#     loglevel   4
#     path       /api
#     protocol   http
#     redirects  0
#     timeout    2
#     url        http://172.30.90.36/api
#     sslargs:
#   QUEUE:
#   READINGS:
#     2023-05-31 11:00:17   firmware        2.3.05-b
#     2023-05-31 11:00:17   secure_counter  32768
#     2023-05-31 11:00:17   sensors_01_mean-1_count 60
#     2023-05-31 11:00:17   sensors_01_mean-1_period 3600
#     2023-05-31 11:00:17   sensors_01_mean-1_value 16.86979
#     2023-05-31 11:00:17   sensors_01_mean-24_count 1440
#     2023-05-31 11:00:17   sensors_01_mean-24_period 86400
#     2023-05-31 11:00:17   sensors_01_mean-24_value 16.88958
#     2023-05-31 11:00:17   sensors_01_name Water Temperature
#     2023-05-31 11:00:17   sensors_01_time Wed May 31 11:00:16 2023
#     2023-05-31 11:00:17   sensors_01_unit Celsius
#     2023-05-31 11:00:17   sensors_01_value 17.125
#     2023-05-31 11:00:17   systemname      Temp2IoT
#     2023-05-31 11:00:17   temperature     17.125
#   REQUEST:
#     context    reading
#     data       
#     header     
#     ignoreredirects 0
#     num        unknown
#     retryCount 0
#     type       update
#     url        http://172.30.90.36/api
#   defptr:
#     readingBase:
#       firmware   reading
#       secure_counter reading
#       sensors_01_mean-1_count reading
#       sensors_01_mean-1_period reading
#       sensors_01_mean-1_value reading
#       sensors_01_mean-24_count reading
#       sensors_01_mean-24_period reading
#       sensors_01_mean-24_value reading
#       sensors_01_name reading
#       sensors_01_time reading
#       sensors_01_unit reading
#       sensors_01_value reading
#       systemname reading
#     readingNum:
#       firmware   104
#       secure_counter 111
#       sensors_01_mean-1_count 106
#       sensors_01_mean-1_period 107
#       sensors_01_mean-1_value 109
#       sensors_01_mean-24_count 101
#       sensors_01_mean-24_period 103
#       sensors_01_mean-24_value 112
#       sensors_01_name 102
#       sensors_01_time 100
#       sensors_01_unit 110
#       sensors_01_value 108
#       systemname 105
#     readingOutdated:
#     requestReadings:
#       update:
#         firmware   reading 104
#         secure_counter reading 111
#         sensors_01_mean-1_count reading 106
#         sensors_01_mean-1_period reading 107
#         sensors_01_mean-1_value reading 109
#         sensors_01_mean-24_count reading 101
#         sensors_01_mean-24_period reading 103
#         sensors_01_mean-24_value reading 112
#         sensors_01_name reading 102
#         sensors_01_time reading 100
#         sensors_01_unit reading 110
#         sensors_01_value reading 108
#         systemname reading 105
#   hmccu:
#
setstate Thermo_Pool Wasser: 17.125 °C
setstate Thermo_Pool 2023-05-31 11:00:17 firmware 2.3.05-b
setstate Thermo_Pool 2023-05-31 11:00:17 secure_counter 32768
setstate Thermo_Pool 2023-05-31 11:00:17 sensors_01_mean-1_count 60
setstate Thermo_Pool 2023-05-31 11:00:17 sensors_01_mean-1_period 3600
setstate Thermo_Pool 2023-05-31 11:00:17 sensors_01_mean-1_value 16.86979
setstate Thermo_Pool 2023-05-31 11:00:17 sensors_01_mean-24_count 1440
setstate Thermo_Pool 2023-05-31 11:00:17 sensors_01_mean-24_period 86400
setstate Thermo_Pool 2023-05-31 11:00:17 sensors_01_mean-24_value 16.88958
setstate Thermo_Pool 2023-05-31 11:00:17 sensors_01_name Water Temperature
setstate Thermo_Pool 2023-05-31 11:00:17 sensors_01_time Wed May 31 11:00:16 2023
setstate Thermo_Pool 2023-05-31 11:00:17 sensors_01_unit Celsius
setstate Thermo_Pool 2023-05-31 11:00:17 sensors_01_value 17.125
setstate Thermo_Pool 2023-05-31 11:00:17 systemname Temp2IoT
setstate Thermo_Pool 2023-05-31 11:00:17 temperature 17.125


DBLog
define logdb DbLog ./db.conf .*:.*
attr logdb DbLogType History
attr logdb asyncMode 1
attr logdb commitMode basic_ta:on
attr logdb disable 0
attr logdb insertMode 1
attr logdb room Logfiles,Basis
attr logdb showproctime 1
attr logdb useCharfilter 1
attr logdb verbose 2
#   COLUMNS    field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
#   CONFIGURATION ./db.conf
#   DEF        ./db.conf .*:.*
#   FD         5
#   FUUID      6384a950-f33f-7ffc-0cae-b61bf6aaa6faec49
#   FVERSION   93_DbLog.pm:v5.9.0-s27617/2023-05-25
#   MODE       asynchronous
#   MODEL      MYSQL
#   NAME       logdb
#   NR         2
#   NTFY_ORDER 50-logdb
#   PID        871
#   REGEXP     .*:.*
#   SBP_PID    1150
#   SBP_STATE  running
#   STATE      connected
#   TYPE       DbLog
#   UTF8       1
#   dbconn     mysql:database=fhem;host=172.30.90.93;port=3306
#   dbuser     fhemuser
#   eventCount 1118
#   HELPER:
#     COLSET     1
#     DEVICECOL  64
#     EVENTCOL   512
#     OLDSTATE   connected
#     PACKAGE    main
#     READINGCOL 64
#     TC         current
#     TH         history
#     TYPECOL    64
#     UNITCOL    32
#     VALUECOL   128
#     VERSION    5.9.0
#   Helper:
#     DBLOG:
#       CacheOverflowLastNum:
#         logdb:
#           TIME       1685523860.55868
#           VALUE      0
#       CacheOverflowLastState:
#         logdb:
#           TIME       1685523800.55429
#           VALUE      normal
#       background_processing_time:
#         logdb:
#           TIME       1685523861.00423
#           VALUE      0.1675
#       sql_processing_time:
#         logdb:
#           TIME       1685523861.00423
#           VALUE      0.1568
#   OLDREADINGS:
#   READINGS:
#     2023-05-31 11:04:20   CacheOverflowLastNum 0
#     2023-05-31 11:03:20   CacheOverflowLastState normal
#     2023-05-31 11:04:25   CacheUsage      16
#     2023-05-31 11:04:20   NextSync        2023-05-31 11:04:50 or when CacheUsage 500 is reached
#     2023-05-31 11:04:21   background_processing_time 0.1675
#     2023-05-31 11:04:21   sql_processing_time 0.1568
#     2023-05-31 11:04:21   state           connected
#   hmccu:
#
setstate logdb connected
setstate logdb 2023-05-31 11:04:20 CacheOverflowLastNum 0
setstate logdb 2023-05-31 11:03:20 CacheOverflowLastState normal
setstate logdb 2023-05-31 11:04:25 CacheUsage 16
setstate logdb 2023-05-31 11:04:20 NextSync 2023-05-31 11:04:50 or when CacheUsage 500 is reached
setstate logdb 2023-05-31 11:04:21 background_processing_time 0.1675
setstate logdb 2023-05-31 11:04:21 sql_processing_time 0.1568
setstate logdb 2023-05-31 11:04:21 state connected


betateilchen

#1
  • Falsches Unterforum für Fragen zu HTTPMOD oder DbLog
  • In Fällen, in denen irgendwas eventgesteuertes (wie notify oder Logging) nicht zu funktionieren scheinen, würde ich immer erstmal die "event-on-irgendwas" Attribute entfernen und auch das Attribut disable löschen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Flanders

#2
Danke, kannst Du diesen Beitrag entsprechend verschieben?

Die Eventprozeduren habe ich erst hinzugefügt, als das ganze nicht funktionierte...
Habe sie wieder entfernt...

Das Device aktualisiert jedoch, also sollte disable 0 keine Auswirkung haben....
Das war für die Winterzeit, damit nicht ständig nach einem nicht antwortenden Device gefragt wird....

Events kommen auch an (in der Deviceanzeige werden Readings orange mit einem "!")
Es wird halt nur nichts in die DB geloggt.

Greets

betateilchen

Zitat von: Flanders am 31 Mai 2023, 13:55:31Danke, kannst Du diesen Beitrag entsprechend verschieben?

Das musst Du schon selbst machen, den entsprechenden Button findest (nur) Du am Ende der Seite.

Zitat von: Flanders am 31 Mai 2023, 13:55:31Das Device aktualisiert jedoch, also sollte disable 0 keine Auswirkung haben....
Events kommen auch an (in der Deviceanzeige werden Readings orange mit einem "!")
Es wird halt nur nichts in die DB geloggt.

Was mir noch auffällt: Dein DbLog device soll alles loggen .*:.*
Dann brauchst Du eigentlich das Attribut DbLogInclude im HTTPMOD device nicht zu setzen.

Mach doch mal mit verbose 5 ein Logging von einer Temperaturänderung, dann würde man auch sehen, was da in DbLog passiert.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

DS_Starter

Wenn du dir in deinem DbLog Device setzt:

verbose = 4
verbose4Devs = Thermo_Pool    (das ist nicht nötig, erhöht aber die Lesbarkeit im Logfile weil nur Infos zu Thermo_Pool ausgeschrieben werden)

dann siehst du im Log etwa dies:

2023.06.01 17:54:23.821 4: DbLog LogDB1 - ################################################################
2023.06.01 17:54:23.822 4: DbLog LogDB1 - ###              start of new Logcycle                       ###
2023.06.01 17:54:23.823 4: DbLog LogDB1 - ################################################################
2023.06.01 17:54:23.823 4: DbLog LogDB1 - number of events received: 2 of device: Rep.Show.DbSize
2023.06.01 17:54:23.825 4: DbLog LogDB1 - check Device: Rep.Show.DbSize , Event: INFO_history.data_index_length_MB: 10556.97
2023.06.01 17:54:23.831 4: DbLog LogDB1 - added event - Timestamp: 2023-06-01 17:54:23, Device: Rep.Show.DbSize, Type: DBREP, Event: , Reading: INFO_history.data_index_length_MB, Value: 10556.97, Unit:
2023.06.01 17:54:23.832 4: DbLog LogDB1 - check Device: Rep.Show.DbSize , Event: done

Das "check Device" zeigt dir dass ein Event von dem Device (Rep.Show.DbSize) verarbeitet werden soll und welcher.
Und "added event" muss! kommen wenn der Regex-Filter erfolgreich durchlaufen wurde. Wenn das nicht kommt, würde dein Event gefiltert und nicht geloggt.

Wie betateilchen schon schrieb ist DbLogInclude in deinem Setup nicht sinnvoll.
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