Moin zusammen,
ich setze eine MariaDB ein und habe dafür ein DbLog Device definiert:
Internals:
COLUMNS field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
CONFIGURATION
./db.conf
DEF
./db.conf .*:.*
FUUID 5ca49ed2-f33f-5a17-e05e-79dfa9c64eae210f
FVERSION 93_DbLog.pm:v4.12.6-s25478/2022-01-17
MODE asynchronous
MODEL MYSQL
NAME myDbLog
NR 30
NTFY_ORDER 50-myDbLog
PID 2047
REGEXP .*:.*
STATE connected
TYPE DbLog
UTF8 1
dbconn mysql:database=fhem;host=localhost;port=3306
dbuser admin
HELPER:
COLSET 1
DEVICECOL 64
EVENTCOL 512
OLDSTATE connected
PACKAGE main
READINGCOL 64
TC current
TH history
TYPECOL 64
UNITCOL 32
VALUECOL 128
VERSION 4.12.6
Helper:
DBLOG:
CacheOverflowLastNum:
myDbLog:
TIME 1643503503.10157
VALUE 0
CacheUsage:
myDbLog:
TIME 1643524634.37622
VALUE 49
background_processing_time:
myDbLog:
TIME 1643524634.45665
VALUE 0.0208
countCycle:
myDbLog:
TIME 1643289985.14563
VALUE
sql_processing_time:
myDbLog:
TIME 1643503503.24209
VALUE 0.0374
state:
myDbLog:
TIME 1643500800.00676
VALUE closed until 03:00:00 (7200 seconds)
OLDREADINGS:
READINGS:
2022-01-30 07:37:14 CacheOverflowLastNum 0
2022-01-25 09:23:01 CacheOverflowLastState normal
2022-01-30 07:37:38 CacheUsage 21
2022-01-30 07:37:14 NextSync 2022-01-30 07:38:14 or if CacheUsage 25000 reached
2022-01-30 07:37:14 background_processing_time 0.0208
2021-11-03 19:20:28 countCurrent 0
2022-01-25 04:54:34 countHistory 55851
2018-08-01 08:35:09 reduceLogState reduceLogNbl finished. Rows processed: 0, deleted: 0, time: 35.00sec
2022-01-30 07:37:14 sql_processing_time 0.0076
2022-01-30 07:37:14 state connected
Attributes:
DbLogInclude CacheUsage,background_processing_time
DbLogSelectionMode Include
DbLogType History
asyncMode 1
cacheEvents 2
cacheLimit 25000
devStateIcon connected:10px-kreis-gruen disconnected:10px-kreis-rot
room LogDB
showproctime 1
syncInterval 60
Ich habe den DbLogSelectionMode auf Include gesetzt, weil ich es so verstanden habe, dass alles geloggt wird, was ich in den jeweiligen Devices mit "attr device DbLogInclude reading,reading1,reading2" definiert habe.
Aus diesem Grund habe ich alle Devices mit dem Attribute DbLogInclude ausgestattet und bei Geräten, wo nichts geloggt werden sollte DbLogExclude .* gesetzt.
Nun habe ich ein Device, wo das nicht so recht klappt:
Internals:
FUUID 60d5e483-f33f-5a17-8d79-4d2bc5cfd55b2e18
IODev myBroker
NAME bk_Windmesser_MQTT
NR 1179
STATE <div>Status: <img src="/fhem/images/default/10px-kreis-gruen.png"><br> Temperatur: 6.2°C - Luftfeuchtigkeit: 67% <br>Durchschnittliche Windgeschwindigkeit: 51.9 km/h (letzten 3h)<br>Windgeschwindigkeit: 21.6km/h <br>Böen: 36 km/h <br>Windrichtung: NW</div>
TYPE MQTT_DEVICE
Helper:
DBLOG:
alive:
myDbLog:
TIME 1643491463.83818
VALUE 1
humidity:
myDbLog:
TIME 1643524396.82097
VALUE 67
temperature:
myDbLog:
TIME 1643524582.77139
VALUE 6.2
windDirectionDegree:
myDbLog:
TIME 1643503502.61171
VALUE 315
windGust:
myDbLog:
TIME 1643503502.60346
VALUE 1.4
windGustKmh:
myDbLog:
TIME 1643471105.55191
VALUE 36
windSpeed:
myDbLog:
TIME 1643503502.55472
VALUE 1.2
OLDREADINGS:
READINGS:
2022-01-25 17:13:50 IODev myBroker
2022-01-30 05:18:56 Unwetterwarnung on
2022-01-30 06:55:04 alive 1
2022-01-14 16:57:21 error off
2022-01-30 07:39:28 humidity 67
2022-01-30 05:13:49 reset reset
2022-01-30 07:39:28 temperature 6.2
2022-01-30 07:40:30 transmission-state incoming publish received
2022-01-30 07:40:30 windAvg 51.9
2022-01-30 07:40:30 windDirectionDegree 315
2022-01-30 07:40:30 windDirectionText NW
2022-01-30 07:40:30 windGust 1.0
2022-01-30 07:40:30 windGustKmh 36
2022-01-30 07:40:30 windSpeed 0.6
2022-01-30 07:39:59 windSpeedKmh 21.6
2022-01-30 07:39:59 windSpeedSumme 5018.4
2022-01-30 07:40:30 windSpeedSummeGust 13212
2022-01-30 07:39:59 zaehlerAvg 135
2022-01-30 07:40:30 zaehlerGustAvg 216
message_ids:
sets:
subscribe:
sensor/30EDA9/alive
sensor/30EDA9/humi
sensor/30EDA9/temp
sensor/30EDA9/wind_direction
sensor/30EDA9/wind_gust
sensor/30EDA9/wind_speed
sensor/30EDA9/wind_avg
subscribeExpr:
^sensor\/30EDA9\/alive$
^sensor\/30EDA9\/humi$
^sensor\/30EDA9\/temp$
^sensor\/30EDA9\/wind_direction$
^sensor\/30EDA9\/wind_gust$
^sensor\/30EDA9\/wind_speed$
^sensor\/30EDA9\/wind_avg$
subscribeQos:
sensor/30EDA9/alive 0
sensor/30EDA9/humi 0
sensor/30EDA9/temp 0
sensor/30EDA9/wind_avg 0
sensor/30EDA9/wind_direction 0
sensor/30EDA9/wind_gust 0
sensor/30EDA9/wind_speed 0
subscribeReadings:
sensor/30EDA9/alive:
cmd
name alive
sensor/30EDA9/humi:
cmd
name humidity
sensor/30EDA9/temp:
cmd
name temperature
sensor/30EDA9/wind_avg:
cmd
name wind_avg
sensor/30EDA9/wind_direction:
cmd
name windDirectionDegree
sensor/30EDA9/wind_gust:
cmd
name windGust
sensor/30EDA9/wind_speed:
cmd
name windSpeed
Attributes:
DbLogInclude temperature,humidity,windAvg
IODev myBroker
event-on-change-reading alive,windDirectionDegree,windGust,windSpeed,temperature,humidity,windAvg
group Windmesser
icon weather_wind_speed
room MQTT_Windmesser,Balkon
stateFormat { my $alive = ReadingsNum($name,'alive',1);
if ($alive eq '1') {
return '<div>Status: <img src="/fhem/images/default/10px-kreis-gruen.png">'
.sprintf("<br> Temperatur: "
.ReadingsVal($name,'temperature','')
."°C - Luftfeuchtigkeit: "
.ReadingsVal($name,'humidity','')
."% <br>Durchschnittliche Windgeschwindigkeit: "
.ReadingsVal($name,'windAvg','')
." km/h (letzten 3h)<br>Windgeschwindigkeit: "
.ReadingsVal($name,'windSpeedKmh','')
."km/h <br>Böen: "
.ReadingsVal($name,'windGustKmh','')
." km/h <br>Windrichtung: "
.ReadingsVal($name,'windDirectionText','')
."").'</div>';
}
elsif ($alive eq '0') {
return '<div>Status: <img src="/fhem/images/default/10px-kreis-rot.png">'
.sprintf("<br> Temperatur: "
.ReadingsVal($name,'temperature','')
."°C - Luftfeuchtigkeit: "
.ReadingsVal($name,'humidity','')
."% <br>Durchschnittliche Windgeschwindigkeit: "
.ReadingsVal($name,'windAvg','')
." km/h (letzten 3h)<br>Windgeschwindigkeit: "
.ReadingsVal($name,'windSpeedKmh','')
."km/h <br>Böen: "
.ReadingsVal($name,'windGustKmh','')
." km/h <br>Windrichtung: "
.ReadingsVal($name,'windDirectionText','')
."").'</div>';
}}
subscribeReading_alive sensor/30EDA9/alive
subscribeReading_humidity sensor/30EDA9/humi
subscribeReading_temperature sensor/30EDA9/temp
subscribeReading_windDirectionDegree sensor/30EDA9/wind_direction
subscribeReading_windGust sensor/30EDA9/wind_gust
subscribeReading_windSpeed sensor/30EDA9/wind_speed
subscribeReading_wind_avg sensor/30EDA9/wind_avg
userReadings windSpeedKmh:windSpeed.*
{ my $v = ReadingsNum($NAME,'windSpeed',0) * 36;
$v;
},
windGustKmh:windGust.*
{ my $v = ReadingsNum($NAME,'windGust',0) * 36;
$v;
}
verbose 2
Ich möchte das Reading "windAvg" loggen, wie es auch im DbLogInclude steht um es in einem GPLOT auszuwerten.
Erst jetzt fiel mir im GPLOT auf, dass dieser Wert nicht geloggt wird.
Ich vermute, dass ich irgendwas falsch mache, hat jemand einen Tipp für mich?
Gruß
Mathze
Problem gelöst.
Mein Problem war, dass kein Event erzeugt wurde.
Da ich mit setreading gearbeitet habe, habe ich nun laut commandref einfach ein sleep 0.1 vorangestellt.
Gruß
Mathze