[Gelöst] PERL WARNING: Argument isn't numeric DbLog / MQTT2_Client

Begonnen von ocin4, 22 November 2023, 14:01:24

Vorheriges Thema - Nächstes Thema

ocin4

Hallo,
ich hab einen Shelly TRV als MQTT2_Device eingebunden. Es funktioniert alles, ich erhalte nur regelmäßig im Logfile folgenden Warnungen:
2023.11.22 13:51:02 1: PERL WARNING: Argument "desired-temp" isn't numeric in numeric eq (==) at (eval 2818416) line 2.
2023.11.22 13:51:02 1: stacktrace:
2023.11.22 13:51:02 1:     main::__ANON__                      called by (eval 2818416) (2)
2023.11.22 13:51:02 1:     (eval)                              called by ./FHEM/93_DbLog.pm (1406)
2023.11.22 13:51:02 1:     (eval)                              called by ./FHEM/93_DbLog.pm (1241)
2023.11.22 13:51:02 1:     main::DbLog_Log                     called by fhem.pl (3978)
2023.11.22 13:51:02 1:     main::CallFn                        called by fhem.pl (3890)
2023.11.22 13:51:02 1:     main::DoTrigger                     called by fhem.pl (4279)
2023.11.22 13:51:02 1:     main::Dispatch                      called by ./FHEM/00_MQTT2_CLIENT.pm (583)
2023.11.22 13:51:02 1:     main::MQTT2_CLIENT_Read             called by fhem.pl (3978)
2023.11.22 13:51:02 1:     main::CallFn                        called by fhem.pl (784)
2023.11.22 13:51:02 1: PERL WARNING: Argument "valve" isn't numeric in numeric eq (==) at (eval 2818416) line 2.
2023.11.22 13:51:02 1: stacktrace:
2023.11.22 13:51:02 1:     main::__ANON__                      called by (eval 2818416) (2)
2023.11.22 13:51:02 1:     (eval)                              called by ./FHEM/93_DbLog.pm (1406)
2023.11.22 13:51:02 1:     (eval)                              called by ./FHEM/93_DbLog.pm (1241)
2023.11.22 13:51:02 1:     main::DbLog_Log                     called by fhem.pl (3978)
2023.11.22 13:51:02 1:     main::CallFn                        called by fhem.pl (3890)
2023.11.22 13:51:02 1:     main::DoTrigger                     called by fhem.pl (4279)
2023.11.22 13:51:02 1:     main::Dispatch                      called by ./FHEM/00_MQTT2_CLIENT.pm (583)
2023.11.22 13:51:02 1:     main::MQTT2_CLIENT_Read             called by fhem.pl (3978)
2023.11.22 13:51:02 1:     main::CallFn                        called by fhem.pl (784)

Hier die Definition des Shelly:
defmod MQTT2_shellytrv_bad MQTT2_DEVICE shellytrv-bad
attr MQTT2_shellytrv_bad DbLogValueFn {\
  if ($READING == "desired-temp" && $VALUE =~ /^set/) {$IGNORE=1;;}\
}
attr MQTT2_shellytrv_bad alias Bad
attr MQTT2_shellytrv_bad devicetopic shellies/shellytrv-bad
attr MQTT2_shellytrv_bad event-min-interval desired-temp:1800
attr MQTT2_shellytrv_bad event-on-change-reading desired-temp,valve,thermostats_1_pos,batteryPercent
attr MQTT2_shellytrv_bad group Heizkörper
attr MQTT2_shellytrv_bad 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 thermostats_1_pos:valve
attr MQTT2_shellytrv_bad model shelly_TRV
attr MQTT2_shellytrv_bad readingList $DEVICETOPIC/status:.* { json2nameValue($EVENT,'',$JSONMAP) }\
$DEVICETOPIC/info:.* { json2nameValue($EVENT,'',$JSONMAP) }\
$DEVICETOPIC/online:.* online\
$DEVICETOPIC/announce:.* { json2nameValue($EVENT,'',$JSONMAP) }\
$DEVICETOPIC/settings:.* { json2nameValue($EVENT) }\
$DEVICETOPIC/thermostat/0/command/target_t:.* target_t\
$DEVICETOPIC/thermostat/0/command/schedule_profile:.* schedule_profile\
$DEVICETOPIC/thermostat/0/command/boost_minutes:.* boost_minutes
attr MQTT2_shellytrv_bad room MQTT2_DEVICE,Temperaturen
attr MQTT2_shellytrv_bad 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,15.0,0.5,21.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
attr MQTT2_shellytrv_bad setStateList on off
attr MQTT2_shellytrv_bad stateFormat Ventil: valve %<br>Bat: batteryPercent % | Update: has_update
attr MQTT2_shellytrv_bad webCmd desired-temp

setstate MQTT2_shellytrv_bad Ventil: 0.0 %<br>Bat: 99 % | Update: false
setstate MQTT2_shellytrv_bad 2023-11-17 22:53:12 IODev myMQTTBroker
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 actions_stats_skipped 0
setstate MQTT2_shellytrv_bad 2023-11-17 22:39:13 associatedWith MQTT2_myMQTTBridge
setstate MQTT2_shellytrv_bad 2023-11-18 19:33:57 bat 99
setstate MQTT2_shellytrv_bad 2023-11-18 19:33:57 bat_value 99
setstate MQTT2_shellytrv_bad 2023-11-18 19:33:57 bat_voltage 4.091
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 batteryPercent 99
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 batteryVoltage 4.085
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 build_info_build_id 20231009-064451/v2.2.1@1e8f2795
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 build_info_build_timestamp 2023-10-09T06:44:51Z
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 build_info_build_version 2023100906
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 calibrated true
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 cfg_changed_cnt 0
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 charger false
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 child_lock false
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 clog_prevention true
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 cloud_connected false
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 cloud_enabled false
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 coiot_enabled false
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 coiot_peer
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 coiot_update_period 3600
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 dbg_flags 0
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 desired-temp 19.0
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 device_hostname shellytrv-8CF681105F59
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 device_mac 8CF681105F59
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 device_num_outputs 0
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 device_type SHTRV-01
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 discoverable true
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 display_brightness 7
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 display_flipped true
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 fs_free 59388
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 fs_size 65536
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 fw 20231009-064451/v2.2.1@1e8f2795
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 fw_info_device shellytrv-8CF681105F59
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 fw_info_fw 20231009-064451/v2.2.1@1e8f2795
setstate MQTT2_shellytrv_bad 2023-11-21 06:51:22 fw_ver 20231009-064451/v2.2.1@1e8f2795
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 has_update false
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 hwinfo_batch_id 0
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 hwinfo_hw_revision dev-prototype
setstate MQTT2_shellytrv_bad 2023-11-21 06:51:22 id shellytrv-bad
setstate MQTT2_shellytrv_bad 2023-11-21 06:51:22 ip 192.168.xx.xx
setstate MQTT2_shellytrv_bad 2023-11-20 01:12:34 json2nameValueErrorText json2nameValue: no closing } found
setstate MQTT2_shellytrv_bad 2023-11-20 01:12:34 json2nameValueInput {"wifi_sta":{"connected":true,"ssid":"xxxx","ip":"192.168.xx.xx","rssi":-61},"cloud":{"enabled":false,"connected":false},"mqtt"
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 lat 51.099900
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 lng 12.970600
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 login_default_username admin
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 login_enabled false
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 login_unprotected false
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 login_username admin
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 mac 8CF681105F59
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 mode false
setstate MQTT2_shellytrv_bad 2023-11-21 06:51:22 model SHTRV-01
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 mqtt_clean_session true
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 mqtt_connected true
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 mqtt_enable true
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 mqtt_id shellytrv-bad
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 mqtt_max_qos 0
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 mqtt_retain false
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 mqtt_server 192.168.xx.yy:1883
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 mqtt_update_period 60
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 name Heizkörper Bad
setstate MQTT2_shellytrv_bad 2023-11-21 06:51:22 new_fw false
setstate MQTT2_shellytrv_bad 2023-11-21 06:51:22 online true
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 pin_code
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 ps_mode 0
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 ram_free 30784
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 ram_total 97280
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 serial 0
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 sleep_mode_period 60
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 sleep_mode_unit m
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 sntp_enabled true
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 sntp_server time.google.com
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:00 target_t 19
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 target_t_enabled true
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 target_t_units C
setstate MQTT2_shellytrv_bad 2023-11-18 19:33:57 target_t_value 20.0
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 temperature 20.2
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 temperature_offset 0.0
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 thermostats_1_boost_minutes 0
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 thermostats_1_calibration_correction true
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 thermostats_1_ext_t_enabled true
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 thermostats_1_ext_t_floor_heating false
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 thermostats_1_extra_pressure true
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 thermostats_1_force_close true
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 thermostats_1_open_window_report false
setstate MQTT2_shellytrv_bad 2023-11-18 19:33:57 thermostats_1_pos 0.0
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 thermostats_1_schedule false
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 thermostats_1_schedule_profile 1
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 thermostats_1_schedule_profile_names_1 Livingroom
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 thermostats_1_schedule_profile_names_2 Livingroom 1
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 thermostats_1_schedule_profile_names_3 Bedroom
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 thermostats_1_schedule_profile_names_4 Bedroom 1
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 thermostats_1_schedule_profile_names_5 Holiday
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 thermostats_1_schedule_rules_1 0600-0123456-23
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 thermostats_1_schedule_rules_2 2300-0123456-18
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 thermostats_1_t_auto_enabled true
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 thermostats_1_target_t_accelerated_heating true
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 thermostats_1_target_t_enabled true
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 thermostats_1_target_t_units C
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 thermostats_1_target_t_value 19.0
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 thermostats_1_target_t_value_op 8.0
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 thermostats_1_temperature_offset 0.0
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 thermostats_1_tmp_is_valid true
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 thermostats_1_tmp_units C
setstate MQTT2_shellytrv_bad 2023-11-18 19:33:57 thermostats_1_tmp_value 19.0
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 thermostats_1_valve_min_percent 0.00
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 thermostats_1_valve_min_report 1.00
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 thermostats_1_window_open false
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 time 01:20
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 timezone Europe/Berlin
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 tmp_is_valid true
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 tmp_units C
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 tmp_value 20.2
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 tz_dst false
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 tz_dst_auto true
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 tz_utc_offset 3600
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 tzautodetect true
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 unixtime 1920500404
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 update_has_update false
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 update_old_version 20231009-064451/v2.2.1@1e8f2795
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 update_status unknown
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 uptime 111845
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 valve 0.0
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 wifi_ap_enabled false
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 wifi_ap_ssid shellytrv-8CF681105F59
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 wifi_sta_connected true
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 wifi_sta_enabled true
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 wifi_sta_gw 192.168.xx.zz
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 wifi_sta_ip 192.168.xx.xx
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 wifi_sta_ipv4_method static
setstate MQTT2_shellytrv_bad 2023-11-22 13:45:04 wifi_sta_mask 255.255.255.0
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 wifi_sta_rssi -58
setstate MQTT2_shellytrv_bad 2023-11-22 13:54:53 wifi_sta_ssid xxxx

Was kann ich tun, um die Warnungen zu beseitigen? Der Ventilstand ändert sich regelmäßig, das müllt das Logfile leider ganz schön zu.

Danke im Voraus!
Nico

betateilchen

#1
$READING == "desired-temp"
== ist für numerische Vergleiche.
Wenn Du Texte vergleichen willst, solltest Du stattdessen eq verwenden.

Das sind perl Grundlagen und es hat weder etwas mit DbLog noch mit MQTT2 zu tun...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

ocin4

Danke, das war es. Hat mich der stacktrace leider nicht so drauf hingewiesen.
Außerdem wurde mir das so in diesem Beitrag hier von dir so gezeigt...