Ich bekomme momentan mit der aktuellen fhem.pl recht häufig (immer?) diese Ausgaben beim Zugriff auf "WEBApi". "WEBApi" ist bei mir eine zusätzliches Gerät vom Typ FHEMWEB über welches Tasker & Co. Sachen schalten können.
018.02.28 09:32:16.327 4: WEBApi_127.0.0.1_53944 GET /api?cmd=set%20env_presence%20transition%20leaving&fwcsrf=geheim&XHR=1; BUFLEN:0
2018.02.28 09:32:16.327 4: authorize WEBApi/cmd/set: allowed_WEBApi returned dont care
2018.02.28 09:32:16.328 1: PERL WARNING: Use of uninitialized value $r in numeric eq (==) at fhem.pl line 5099.
2018.02.28 09:32:16.328 1: stacktrace:
2018.02.28 09:32:16.328 1: main::__ANON__ called by fhem.pl (5098)
2018.02.28 09:32:16.328 1: main::Authorized called by fhem.pl (1186)
2018.02.28 09:32:16.328 1: main::devspec2array called by fhem.pl (1788)
2018.02.28 09:32:16.328 1: main::CommandSet called by ./FHEM/98_cmdalias.pm (99)
2018.02.28 09:32:16.328 1: main::CommandCmdAlias called by fhem.pl (1173)
2018.02.28 09:32:16.328 1: main::AnalyzeCommand called by fhem.pl (1026)
2018.02.28 09:32:16.328 1: main::AnalyzeCommandChain called by ./FHEM/01_FHEMWEB.pm (2517)
2018.02.28 09:32:16.328 1: main::FW_fC called by ./FHEM/01_FHEMWEB.pm (850)
2018.02.28 09:32:16.329 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.28 09:32:16.329 1: main::FW_Read called by fhem.pl (3528)
2018.02.28 09:32:16.329 1: main::CallFn called by fhem.pl (690)
2018.02.28 09:32:16.329 4: authorize WEBApi/devicename/env_presence: allowed_WEBApi returned dont care
2018.02.28 09:32:16.329 1: PERL WARNING: Use of uninitialized value $r in numeric eq (==) at fhem.pl line 5102.
2018.02.28 09:32:16.329 1: stacktrace:
2018.02.28 09:32:16.329 1: main::__ANON__ called by fhem.pl (5102)
2018.02.28 09:32:16.329 1: main::Authorized called by fhem.pl (1186)
2018.02.28 09:32:16.329 1: main::devspec2array called by fhem.pl (1788)
2018.02.28 09:32:16.330 1: main::CommandSet called by ./FHEM/98_cmdalias.pm (99)
2018.02.28 09:32:16.330 1: main::CommandCmdAlias called by fhem.pl (1173)
2018.02.28 09:32:16.330 1: main::AnalyzeCommand called by fhem.pl (1026)
2018.02.28 09:32:16.330 1: main::AnalyzeCommandChain called by ./FHEM/01_FHEMWEB.pm (2517)
2018.02.28 09:32:16.330 1: main::FW_fC called by ./FHEM/01_FHEMWEB.pm (850)
2018.02.28 09:32:16.330 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.28 09:32:16.330 1: main::FW_Read called by fhem.pl (3528)
2018.02.28 09:32:16.330 1: main::CallFn called by fhem.pl (690)
2018.02.28 09:32:16.330 1: PERL WARNING: Use of uninitialized value $r in numeric eq (==) at fhem.pl line 5103.
2018.02.28 09:32:16.331 1: stacktrace:
2018.02.28 09:32:16.331 1: main::__ANON__ called by fhem.pl (5103)
2018.02.28 09:32:16.331 1: main::Authorized called by fhem.pl (1186)
2018.02.28 09:32:16.331 1: main::devspec2array called by fhem.pl (1788)
2018.02.28 09:32:16.331 1: main::CommandSet called by ./FHEM/98_cmdalias.pm (99)
2018.02.28 09:32:16.331 1: main::CommandCmdAlias called by fhem.pl (1173)
2018.02.28 09:32:16.331 1: main::AnalyzeCommand called by fhem.pl (1026)
2018.02.28 09:32:16.331 1: main::AnalyzeCommandChain called by ./FHEM/01_FHEMWEB.pm (2517)
2018.02.28 09:32:16.331 1: main::FW_fC called by ./FHEM/01_FHEMWEB.pm (850)
2018.02.28 09:32:16.331 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (537)
2018.02.28 09:32:16.331 1: main::FW_Read called by fhem.pl (3528)
2018.02.28 09:32:16.331 1: main::CallFn called by fhem.pl (690)
2018.02.28 09:32:16.337 3: Forbidden device env_stats for WEBApi_127.0.0.1_53944
2018.02.28 09:32:16.337 4: authorize WEBApi/devicename/env_stats: allowed_WEBApi returned prohibited
list WEBApi
Internals:
CONNECTS 7
CSRFTOKEN geheim
DEF 8085 global
FD 25
NAME WEBApi
NR 546
NTFY_ORDER 50-WEBApi
PORT 8085
STATE Initialized
TYPE FHEMWEB
Attributes:
csrfToken geheim
group Schnittstellen
room System
verbose 5
webname api
list allowed_WEBApi
Internals:
NAME allowed_WEBApi
NR 547
STATE validFor:WEBApi
TYPE allowed
allowedCommands set
allowedDevices env_fritzbox,env_presence,wz_mode,sys_di_voiceCtrl,wz_lightSpot,env_guestWifi
validFor WEBApi
READINGS:
2018-02-27 18:17:07 state validFor:WEBApi
Attributes:
allowedCommands set
allowedDevices env_fritzbox,env_presence,wz_mode,sys_di_voiceCtrl,wz_lightSpot,env_guestWifi
room System
validFor WEBApi
Was ich auch nicht ganz verstehe ist diese Meldung:
Forbidden device env_stats for WEBApi_127.0.0.1_53944
Der eigentliche Befehl über FHEMWEB geht ja an Device "env_presence" und das ist auch gelistet bei "allowedDevices". Warum meckert er an, dass "env_stats" forbidden sei? Um das Device geht es ja nicht direkt. "env_stats" wird ja maximal indirekt als Folge des "set" auf "env_presence" angefasst. Evtl. Folgefehler von der Warning?
Wenn ich mir Dein stacktrace anschaue, wäre meine erste Vermutung, dass eher in einem cmdalias etwas schiefgeht.
2018.02.28 09:32:16.328 1: main::devspec2array called by fhem.pl (1788)
2018.02.28 09:32:16.328 1: main::CommandSet called by ./FHEM/98_cmdalias.pm (99)
2018.02.28 09:32:16.328 1: main::CommandCmdAlias called by fhem.pl (1173)
2018.02.28 09:32:16.328 1: main::AnalyzeCommand called by fhem.pl (1026)
2018.02.28 09:32:16.328 1: main::AnalyzeCommandChain called by ./FHEM/01_FHEMWEB.pm (2517)
(von unten nach oben zu lesen!)
Falls fhem.pl aktuell, ist, dann hat jemand verbose des betroffenen Geraetes auf einem nicht-numerischen Wert gesetzt.
Danke, werde beiden Hinweis mal nachgehen, aber spontan konnte ich nichts finden (ja, fhem.pl ist aktuell).
list .* verbose
WEBApi 5
bd_hmVirtualWeather 0
global 3
sz_lightLedWall 3
Und das sind meine aliase:
list TYPE=cmdalias DEF
sys_ca_dvbReceiverPause set wz_dvbReceiver pause AS set wz_dvbReceiver remoteControl PAUSE
sys_ca_dvbReceiverPlay set wz_dvbReceiver play AS set wz_dvbReceiver remoteControl PLAY
sys_ca_reloadVbs reloadvbs AS reload 99_VBSUtils_Logic;reload 99_VBSUtils_Config;reload 99_VBSUtils;reload 99_VBSUtils_Calendar;reload 99_VBSUtils_Lights;reload 99_VBSUtils_WakeupAlarm;reload 99_VBSUtils_VoiceCtrl.pm
sys_ca_szMediaCenterOff set sz_kodi powerOff AS set sz_swHtpc off;set sz_swTv off
sys_ca_szMediaCenterOn set sz_kodi powerOn AS set sz_swHtpc on;set sz_swTv on
sys_ca_tvOff set wz_tv off AS set wz_tv POWEROFF
sys_ca_wzDvbReceiverWol set wz_dvbReceiver poweron AS set wz_dvbReceiverWol on
sys_ca_wzKodiWol set wz_kodi on AS set wz_kodiWol on
sys_ca_wzTvCecOn set wz_tv on AS set wz_tvCec CECCommand on
Zitat von: betateilchen am 28 Februar 2018, 10:33:45
Wenn ich mir Dein stacktrace anschaue, wäre meine erste Vermutung, dass eher in einem cmdalias etwas schiefgeht.
Ich hab mal probeweise alle cmdalias-Geräte bei mir gelöscht. Der Fehler besteht erstmal weiterhin.
Zitat von: rudolfkoenig am 28 Februar 2018, 10:49:12
Falls fhem.pl aktuell, ist, dann hat jemand verbose des betroffenen Geraetes auf einem nicht-numerischen Wert gesetzt.
Hm aber es geht doch um die Variable $r, oder? Die ist doch das Ergebnis vom Aufruf von "CallFn". Verstehe den Zusammenhang zu verbose momentan noch nicht.
Ist das ein FHEM-Bug oder ist da irgendwas faul bei mir? Das gilt es vermutl. noch raus zu finden. Ich hab momentan nicht mehr viele Ideen :( Kann ich noch irgendwas bereit stellen bzw. ausprobieren, was helfen könnte? Danke!
ZitatHm aber es geht doch um die Variable $r, oder?
Hast Recht, die Zeilenangabe 5098 hat mich verwirrt.
Habe in 96_allowed.pm den return Wert angepasst, war ein einem Fall undefined statt 1.
Danke Rudi, damit sind die Warnings weg.
Für das andere Problem ("forbidden") hab ich hier mal einen neuen Thread gemacht, da es ja mit der Warning offenbar nix zu tun hat:
https://forum.fhem.de/index.php/topic,85083.0.html