Hallo,
ich besitze einen Shelly TRV (Heizkörper-Thermostat), den ich über MQTT angebunden hab:
Internals:
CFGFN
CID shellytrv-kueche
DEF shellytrv-kueche
FUUID 63e3756f-f33f-f0f2-9776-3903acb3b55023f7
IODev myMQTTBroker
LASTInputDev myMQTTBroker
MSGCNT 103155
NAME MQTT2_shellytrv_kueche
NR 3579
STATE Ventil: 0.0 %<br>Bat: 34 % Profil: 3<br>Gew. Temp.: 20.0 °C
TYPE MQTT2_DEVICE
eventCount 99532
myMQTTBroker_MSGCNT 103155
myMQTTBroker_TIME 2023-03-02 19:49:38
Helper:
DBLOG:
desired-temp:
fhemDbLog:
TIME 1677782731.77101
VALUE 20.0
temperature:
fhemDbLog:
TIME 1677702897.96162
VALUE 19.8
temperature_offset:
fhemDbLog:
TIME 1677699538.09996
VALUE 0.0
thermostats_1_pos:
fhemDbLog:
TIME 1677779667.89013
VALUE 0.0
JSONMAP:
bat 0
bat_value batteryPercent
bat_voltage batteryVoltage
target_t_value desired-temp
thermostats_1_schedule mode
thermostats_1_target_t_accelerated_heating accelerated_heating
thermostats_1_tmp_value temperature
thermostats_1_valve_min_percent valve_min_percent
OLDREADINGS:
READINGS:
2023-02-08 11:11:59 IODev myMQTTBroker
2023-02-08 21:35:41 accelerated_heating off
2023-03-02 19:49:38 actions_stats_skipped 0
2023-02-08 22:00:17 associatedWith MQTT2_myMQTTBridge
2023-02-08 11:12:30 attrTemplateVersion 20221019
2023-03-02 19:49:38 batteryPercent 34
2023-03-02 19:49:38 batteryVoltage 3.421
2023-03-02 19:45:35 build_info_build_id 20220811-152343/v2.1.8@5afc928c
2023-03-02 19:45:35 build_info_build_timestamp 2022-08-11T15:23:43Z
2023-03-02 19:45:35 build_info_build_version 2022081115
2023-03-02 19:49:38 calibrated true
2023-03-02 19:49:38 cfg_changed_cnt 0
2023-03-02 19:49:38 charger false
2023-03-02 19:45:35 child_lock false
2023-03-02 19:45:35 clog_prevention true
2023-03-02 19:49:38 cloud_connected false
2023-03-02 19:49:38 cloud_enabled false
2023-03-02 19:45:35 coiot_enabled false
2023-03-02 19:45:35 coiot_peer
2023-03-02 19:45:35 coiot_update_period 3600
2023-03-02 19:49:38 dbg_flags 0
2023-03-02 19:49:36 desired-temp 20.0
2023-03-02 19:45:35 device_hostname shellytrv-8CF68108C05B
2023-03-02 19:45:35 device_mac 8CF68108C05B
2023-03-02 19:45:35 device_num_outputs 0
2023-03-02 19:45:35 device_type SHTRV-01
2023-03-02 19:45:35 discoverable false
2023-03-02 19:45:35 display_brightness 4
2023-03-02 19:45:35 display_flipped true
2023-03-02 19:49:38 fs_free 59136
2023-03-02 19:49:38 fs_size 65536
2023-03-02 19:45:35 fw 20220811-152343/v2.1.8@5afc928c
2023-03-02 19:49:38 fw_info_device shellytrv-8CF68108C05B
2023-03-02 19:49:38 fw_info_fw 20220811-152343/v2.1.8@5afc928c
2023-02-28 22:30:33 fw_ver 20220811-152343/v2.1.8@5afc928c
2023-03-02 19:49:38 has_update false
2023-03-02 19:45:35 hwinfo_batch_id 0
2023-03-02 19:45:35 hwinfo_hw_revision dev-prototype
2023-02-28 22:30:33 id shellytrv-kueche
2023-02-28 22:30:33 ip 192.168.178.50
2023-03-02 00:54:28 json2nameValueErrorText json2nameValue: no closing } found
2023-03-02 00:54:28 json2nameValueInput {"wifi_sta":{"connected":true,"ssid":"Nicos Heimnetz 2","ip":"192.168.178.50","rssi":-68},"cloud":{"enabled":false,"connected":false},"mqtt"
2023-03-02 19:45:35 lat 51.076771
2023-03-02 19:45:35 lng 12.986240
2023-03-02 19:45:35 login_default_username admin
2023-03-02 19:45:35 login_enabled false
2023-03-02 19:45:35 login_unprotected false
2023-03-02 19:45:35 login_username admin
2023-03-02 19:49:38 mac 8CF68108C05B
2023-03-02 19:49:38 mode true
2023-02-28 22:30:33 model SHTRV-01
2023-03-02 19:45:35 mqtt_clean_session true
2023-03-02 19:49:38 mqtt_connected true
2023-03-02 19:45:35 mqtt_enable true
2023-03-02 19:45:35 mqtt_id shellytrv-kueche
2023-03-02 19:45:35 mqtt_max_qos 0
2023-03-02 19:45:35 mqtt_retain false
2023-03-02 19:45:35 mqtt_server 192.168.178.5:1883
2023-03-02 19:45:35 mqtt_update_period 60
2023-03-02 19:45:35 name Heizkörper Küche
2023-02-28 22:30:33 new_fw false
2023-02-28 22:30:33 online true
2023-03-02 19:45:35 pin_code
2023-03-02 19:49:38 ps_mode 0
2023-03-02 19:49:38 ram_free 30784
2023-03-02 19:49:38 ram_total 97280
2023-02-12 12:42:20 schedule_profile 3
2023-03-02 19:49:38 serial 0
2023-03-02 19:45:35 sleep_mode_period 60
2023-03-02 19:45:35 sleep_mode_unit m
2023-03-02 19:45:35 sntp_enabled true
2023-03-02 19:45:35 sntp_server 8.8.8.8
2023-03-02 19:42:22 target_t 18
2023-03-02 19:49:36 target_t_enabled true
2023-03-02 19:49:36 target_t_units C
2023-03-02 19:49:38 temperature 21.7
2023-03-02 19:49:36 temperature_offset 0.0
2023-03-02 19:49:38 thermostats_1_boost_minutes 0
2023-03-02 19:45:35 thermostats_1_calibration_correction true
2023-03-02 19:45:35 thermostats_1_ext_t_enabled true
2023-03-02 19:45:35 thermostats_1_ext_t_floor_heating false
2023-03-02 19:45:35 thermostats_1_extra_pressure false
2023-03-02 19:45:35 thermostats_1_force_close false
2023-03-02 19:45:35 thermostats_1_open_window_report false
2023-03-02 19:49:38 thermostats_1_pos 0.0
2023-03-02 19:45:35 thermostats_1_schedule true
2023-03-02 19:49:38 thermostats_1_schedule_profile 2
2023-03-02 19:45:35 thermostats_1_schedule_profile_names_1 Frühschicht
2023-03-02 19:45:35 thermostats_1_schedule_profile_names_2 Mittelschicht
2023-03-02 19:45:35 thermostats_1_schedule_profile_names_3 Spätschicht
2023-03-02 19:45:35 thermostats_1_schedule_profile_names_4 Urlaub zu Hause
2023-03-02 19:45:35 thermostats_1_schedule_profile_names_5 Extras
2023-03-02 19:45:35 thermostats_1_schedule_rules_1 0600-01234-21
2023-03-02 19:45:35 thermostats_1_schedule_rules_2 0730-01234-18
2023-03-02 19:45:35 thermostats_1_schedule_rules_3 1715-01234-21
2023-03-02 19:45:35 thermostats_1_schedule_rules_4 2200-01234-18
2023-03-02 19:45:35 thermostats_1_schedule_rules_5 0600-56-21
2023-03-02 19:45:35 thermostats_1_schedule_rules_6 2200-56-18
2023-03-02 19:45:35 thermostats_1_schedule_rules_7 0530-01234-19.5
2023-03-02 19:45:35 thermostats_1_t_auto_enabled false
2023-03-02 19:45:35 thermostats_1_target_t_accelerated_heating false
2023-03-02 19:49:38 thermostats_1_target_t_enabled true
2023-03-02 19:49:38 thermostats_1_target_t_units C
2023-03-02 19:49:38 thermostats_1_target_t_value 20.0
2023-03-02 19:49:38 thermostats_1_target_t_value_op 8.0
2023-03-02 19:45:35 thermostats_1_temperature_offset 0.0
2023-03-02 19:49:38 thermostats_1_tmp_is_valid true
2023-03-02 19:49:38 thermostats_1_tmp_units C
2023-03-02 19:45:35 thermostats_1_valve_min_percent 0.00
2023-03-02 19:49:38 thermostats_1_window_open false
2023-03-02 19:49:38 time 19:44
2023-03-02 19:45:35 timezone Europe/Berlin
2023-03-02 19:49:36 tmp_is_valid true
2023-03-02 19:49:36 tmp_units C
2023-03-02 19:49:36 tmp_value 21.7
2023-03-02 19:45:35 tz_dst false
2023-03-02 19:45:35 tz_dst_auto true
2023-03-02 19:45:35 tz_utc_offset 3600
2023-03-02 19:45:35 tzautodetect false
2023-03-02 19:49:38 unixtime 1677782650
2023-03-02 19:49:38 update_has_update false
2023-03-02 19:49:38 update_new_version 20220811-152343/v2.1.8@5afc928c
2023-03-02 19:49:38 update_old_version 20220811-152343/v2.1.8@5afc928c
2023-03-02 19:49:38 update_status unknown
2023-03-02 19:49:38 uptime 237278
2023-02-08 21:35:41 valve_min_percent 0.00
2023-03-02 19:45:35 wifi_ap_enabled false
2023-03-02 19:45:35 wifi_ap_ssid shellytrv-8CF68108C05B
2023-03-02 19:49:38 wifi_sta_connected true
2023-03-02 19:45:35 wifi_sta_enabled true
2023-03-02 19:45:35 wifi_sta_gw 192.168.178.1
2023-03-02 19:49:38 wifi_sta_ip 192.168.178.50
2023-03-02 19:45:35 wifi_sta_ipv4_method static
2023-03-02 19:45:35 wifi_sta_mask 255.255.255.0
2023-03-02 19:49:38 wifi_sta_rssi -68
2023-03-02 19:49:38 wifi_sta_ssid Nicos Heimnetz 2
Attributes:
DbLogExclude desired-temp: set
alias Küche
devicetopic shellies/shellytrv-kueche
event-min-interval desired-temp:1800
event-on-change-reading desired-temp,thermostats_1_pos
group Heizkörper
jsonMap bat:0 bat_value:batteryPercent bat_voltage:batteryVoltage target_t_value:desired-temp thermostats_1_tmp_value:temperature thermostats_1_valve_min_percent:valve_min_percent thermostats_1_target_t_accelerated_heating:accelerated_heating thermostats_1_schedule:mode
model shelly_TRV
readingList $DEVICETOPIC/status:.* { json2nameValue($EVENT,'',$JSONMAP) }
$DEVICETOPIC/info:.* { json2nameValue($EVENT,'',$JSONMAP) }
$DEVICETOPIC/online:.* online
$DEVICETOPIC/announce:.* { json2nameValue($EVENT,'',$JSONMAP) }
shellies/shellytrv-kueche/thermostat/0/command/target_t:.* target_t
shellies/shellytrv-kueche/thermostat/0/command/schedule_profile:.* schedule_profile
shellies/shellytrv-kueche/settings:.* { json2nameValue($EVENT) }
room MQTT2_DEVICE,Temperaturen
setList accelerated_heating:on,off {my $val=$EVTPART1 eq 'on'?1:0; qq($DEVICETOPIC/thermostat/0/command/accelerated_heating $val)}
mode:auto,manual {my $val=$EVTPART1 eq 'auto'?1:0; qq($DEVICETOPIC/thermostat/0/command/schedule $val)}
schedule_profile:slider,1,1,5,1 $DEVICETOPIC/thermostat/0/command/schedule_profile $EVTPART1
desired-temp:slider,17.0,0.5,25.0,1 $DEVICETOPIC/thermostat/0/command/target_t $EVTPART1
valve:slider,0,1,100,1 $DEVICETOPIC/thermostat/0/command/valve_pos $EVTPART1
valve_min_percent:slider,0,1,100,1 $DEVICETOPIC/thermostat/0/command/valve_min_percent $EVTPART1
boost:on,off {my $val=$EVTPART1 eq 'on'?5:0; qq($DEVICETOPIC/thermostat/0/command/boost_minutes $val)}
boost_minutes $DEVICETOPIC/thermostat/0/command/boost_minutes $EVTPART1
set_boost_minutes $DEVICETOPIC/thermostat/0/command/set_boost_minutes $EVTPART1
setStateList on off
stateFormat Ventil: thermostats_1_pos %<br>Bat: batteryPercent % Profil: schedule_profile<br>Gew. Temp.: desired-temp °C
Wie man sieht, versuche ich per DBLogExclude "desired-temp set" zu filtern, denn immer, wenn ich die Temperatur über fhem setze (ob per Slider oder in einem DOIF) wird in der DB als EVENT "desired-temp: set 19.5" geloggt, was sich in ein READING "desired-temp" und einen VALUE "set 19.5" aufsplittet. Dieser Value ist insofern ungünstig, dass er meine SVG-Grafiken zerstört, da er keine reine Zahl ist und als 0 interpretiert wird. Ich brauche ihn auch nicht in der DB, weil gleichzeitig als EVENT "desired-temp: 19.5" geloggt wird, was wunderbar funktioniert. Nun bin ich regex-technisch mindestens minderbemittelt und bräuchte einen Rat, wie ich "desired-temp set" vom DBLog ausschließen kann.
TIA, Nico
Problemursache dürfte der Doppelpunkt und das Leerzeichen sein.
Probier mal
desired-temp..set
oder
desired-temp..set.*
Das hat leider beides nicht funktioniert, das Event wird immerncoh in die DB geschrieben.
Kopiere mal bitte einen vollständigen event aus dem Event Monitor und poste das hier.
2023-03-02 20:24:23 MQTT2_DEVICE MQTT2_shellytrv_kueche desired-temp: set 18.0
2023-03-02 20:24:25 MQTT2_DEVICE MQTT2_shellytrv_kueche desired-temp: 18.0
Edit:
|id |TIMESTAMP |DEVICE |TYPE |EVENT |READING |VALUE |UNIT|
|---------|-----------------------|----------------------|------------|----------------------|------------|--------|----|
|830.959|2023-03-02 20:24:25.000|MQTT2_shellytrv_kueche|MQTT2_DEVICE|desired-temp: 18.0 |desired-temp|18.0 | |
|830.958|2023-03-02 20:24:23.000|MQTT2_shellytrv_kueche|MQTT2_DEVICE|desired-temp: set 18.0|desired-temp|set 18.0| |
nächster Versuch:
desired-temp.set.*
Nope, leider auch nicht:
|id |TIMESTAMP |DEVICE |TYPE |EVENT |READING |VALUE |UNIT|
|-------|-----------------------|----------------------|------------|----------------------|------------|--------|----|
|830.988|2023-03-02 20:30:10.000|MQTT2_shellytrv_kueche|MQTT2_DEVICE|desired-temp: 17.0 |desired-temp|17.0 | |
|830.987|2023-03-02 20:30:08.000|MQTT2_shellytrv_kueche|MQTT2_DEVICE|desired-temp: set 17.0|desired-temp|set 17.0| |
Sicher bin ich mir nicht, dass das mit DbLogExclude überhaupt so funktioniert oder ob sich die dort verwendete regex nicht nur auf den readingName und nicht auch auf den Wert bezieht. Dein letzter Ausschnitt zeigt jedenfalls in diese Richtung.
Dann bliebe Dir aber noch der Weg über DbLogValueFn, um das Logging nicht erwünschter Werte auszuschließen.
attr MQTT2_shellytrv_kueche DbLogValueFn
{
if ($READING == "desired-temp" && $VALUE =~ /^set/) {$IGNORE=1;}
}
Ja! Das hat geholfen, recht herzlichen Dank!
Prima.
Machst Du dann bitte noch ein "[gelöst]" in den Titel Deines ersten Beitrags hier im Thread?
Danke.