auf der suche nach einer eleganten fehlersuche

Begonnen von the ratman, 20 Januar 2021, 09:23:09

Vorheriges Thema - Nächstes Thema

the ratman

grüß euch schon wieder *g* ...

die sinnlose vorrede:
wie jeder weiß, bin ich der "warnings-hasser" hier. und mich macht grade genau eines davon irre!
damian hat mir ja schon erklärt, dass man nicht jeden blödsinn genau ins log kriegt. vor allem meldungen, die von perl direkt kommen (hab ich das richtig kapiert?).

das problem:
ich hab ein warning, dass genau so ein fall zu sein scheint. ich weiß lediglich, dass cul_hm und ein doif darin verwickelt sind, was bei mir quasi auf so gut wie alles zutrifft. ja, und natürlich die uhrzeit, wann dass passiert ist ... steht ja im log dabei.
dass das immer nur dann passiert, wenn ich schlafe oder nicht anwesend bin, versteht sich natürlich von selbst ...

meine idee:
nun dachte ich mir, ich scheib mir z.b. ein doif, daß, sobald im log ein WARNING mit DOIF und CUL_HM kommt, alle geräte und doif's ins log schreibt, die zur selben zeit irgendwas gemacht haben.

nun mein bitte:
ich find meine idee echt super, aber bin natürlich wieder mal viel zu blöd, selbige umzusetzen.
file (log) auslesen per regex(?) und dann wieder daten - von denen ich nicht weiß, wie ich sie kriege - selber rein schreiben, und dass auch noch so, dass ich mir 12 stunden später was dazu denken kann ... ja, da bin ich genau der falsche dafür *g*.

dürft ich wieder mal eure grütze bemühen?
vielleicht gibt's ja sogar schon eine möglichkeit, die ich nur nicht kenne?
→do↑p!dnʇs↓shit←

frank

ein notify mit attr readLog kann auch auf "trigger" in fhem.log reagieren.
kann doif das auch? keine ahnung.

du kennst doch sicherlich auch die "hilfe" zur erstellung von notify/doif im eventmonitor.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Christoph Morrison

Kannst du einen Auszug aus deinem Log posten, der das Problem verdeutlicht?

the ratman

@frank
auf jeden fall ist mir kein entsprechendes attribut bei doif bekannt. aber immerhin wäre dann ein notify auch ned verkehrt. kenn mich damit nur noch weniger aus. und der rest der lösung - z.b. anhand der timestamps zu schauen, was da genau grade schalten wollte ist sowieso in beiden fällen weit über meinem können.


@Christoph Morrison
gern, sobald ich wieder was drinnen stehen hab. ich lösch immer, wenn ich update. und wann das warning kommt, steht in den sternen, drum ärgerts mich auch so, weil ich nie vor ort sitze, wenns dann mal soweit ist.

wobei das nicht auf ein spezielles problem hin zielen soll, sondern die meldungen generell abfangen soll die von perl kommen. scheinbar können die in bestimmten fällen ja nur schwer bis gar nicht von den modul autoren eingefangen werden.

generell ist zu sagen:
es ist ja nur ein warning und nichts das funzen muß, funzt hier nicht. also alles nur kür und eventuell für die zukunft zum fehlersuchen was brauchbares. denke nur, dass könnte echt hilfreich sein um solch dämliche warnings los zu werden.
→do↑p!dnʇs↓shit←

the ratman

na endlich bin ich mal dankbar für ein warning *g*

so kann sowas aussehen:2021.01.21 00:13:50 1:  PERL WARNING: Argument "" isn't numeric in numeric lt (<) at ./FHEM/10_CUL_HM.pm line 9022.
2021.01.21 00:13:50 1:  stacktrace:
2021.01.21 00:13:50 1:      main::__ANON__                      called by ./FHEM/10_CUL_HM.pm (9022)
2021.01.21 00:13:50 1:      main::CUL_HM_encodeTime16           called by ./FHEM/10_CUL_HM.pm (5412)
2021.01.21 00:13:50 1:      main::CUL_HM_Set                    called by fhem.pl (3813)
2021.01.21 00:13:50 1:      main::CallFn                        called by fhem.pl (1919)
2021.01.21 00:13:50 1:      main::DoSet                         called by fhem.pl (1951)
2021.01.21 00:13:50 1:      main::CommandSet                    called by fhem.pl (1251)
2021.01.21 00:13:50 1:      main::AnalyzeCommand                called by fhem.pl (1102)
2021.01.21 00:13:50 1:      main::AnalyzeCommandChain           called by ./FHEM/98_DOIF.pm (1843)
2021.01.21 00:13:50 1:      main::ParseCommandsDoIf             called by ./FHEM/98_DOIF.pm (2262)
2021.01.21 00:13:50 1:      main::DOIF_cmd                      called by ./FHEM/98_DOIF.pm (2521)
2021.01.21 00:13:50 1:      main::DOIF_Trigger                  called by ./FHEM/98_DOIF.pm (2735)
2021.01.21 00:13:50 1:      main::DOIF_Notify                   called by fhem.pl (3818)
2021.01.21 00:13:50 1:      main::CallFn                        called by fhem.pl (3735)
2021.01.21 00:13:50 1:      main::DoTrigger                     called by fhem.pl (4105)
2021.01.21 00:13:50 1:      main::Dispatch                      called by ./FHEM/00_HMUARTLGW.pm (1463)
2021.01.21 00:13:50 1:      main::HMUARTLGW_Parse               called by ./FHEM/00_HMUARTLGW.pm (1566)
2021.01.21 00:13:50 1:      main::HMUARTLGW_Read                called by fhem.pl (3818)
2021.01.21 00:13:50 1:      main::CallFn                        called by fhem.pl (759)
→do↑p!dnʇs↓shit←

frank

dein doif setzt wohl einen homematic dimmer/rgb mit einem befehl (up/down/old/pct) mit einer optionalen ramptime.
die ramptime ist eventuell im falschen format.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

the ratman

ja, is schon klar ... ich hab auch kein problem mit dem warning, sondern mit dem finden des entsprechenden doif's

nur welches doif macht das? um das leicht zu finden, wäre eben obige idee gedacht
→do↑p!dnʇs↓shit←

frank

kommen da so viele dimmer in frage, die gestern abend gegen 00:13 durch ein doif "bespasst" wurden?

steht denn vor dem warning nicht der schaltbefehl im log?
bei mir steht zb beim schalten:
2021.01.20 08:11:14.851 3: CUL_HM set DimUP01 off noArg
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

the ratman

#8
nein, tut er nicht. sonst wärs ja einfacher *g*

du, wie gesagt: generell gehts mir um die schnelle fehlersuche, nicht um diesen speziellen fehler.

in dem fall weiß ich sogar, was er da bemängelt - habs extra für diesen fred herausgefordert. ich hab hier 2 gang lichter, die per readingsgroup ihre ausschalt zeit eingestellt kriegen können. nach mitternacht (und da weiß ich nicht warum) fehlt manches mal der wert. es gibt folgendes attr im entsprechenden doifwait
[$SELF:gz_timer,180]:
[$SELF:sz_timer,180]
lasse ich also das ",180" beim wait attr weg, kommt obiger fehler. aber nicht immer.

das problem zu finden hat mich irre lang genervt, vor allem, weil ich die def, nicht ein attr am radar hatte. und genau solche such orgien würd ich mit meinem wunsch-doif vermeiden wollen.
hätte ich ein solches doif gehabt, hätte ich ja sofort im log gesehen, dass ich selber geschaltet hab. aber zu der ungefähren zeit wurden auch div. geräte für den nachtbetrieb geschaltet, rollos in nachtstellung gebracht, blaaa. da sind dann unmengen an doif's beteiligt die alle ungefähr zu der zeit schalten.

dieser ganze fred hier ist also als präventivmaßnahme für schnelle fehlersuche gedacht, nicht für ein aktuelles problem.
→do↑p!dnʇs↓shit←

frank

Zitatdieser ganze fred hier ist also als präventivmaßnahme für schnelle fehlersuche gedacht, nicht für ein aktuelles problem.
sorry.

trotzdem:  ;)

hast du die logausgabe der set/get über "attr hminfo verbCULHM" extra abgeschaltet/verändert?
lässt sich also auch unabhängig von verbose generell setzen, zb zur fehlersuche.


scheinbar hat cul_hm zb ein problem, wenn ich bei set pct nur eine zeit-option angebe.
zeilennummer sollte bei neuestem update mit deiner warning identisch sein):

2021.01.21 12:42:34.454 3: CUL_HM set DimUP01 pct 50 15
2021.01.21 12:42:34.455 1: PERL WARNING: Argument "" isn't numeric in numeric lt (<) at ./FHEM/10_CUL_HM.pm line 9011.


ohne warning funktioniert dieses:
2021.01.21 12:38:36.587 3: CUL_HM set DimUP01 pct 50 15 5
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

the ratman

nene, an cul_hm spiel ich mich nicht rum ... solang die sensoren melden und meine schalter schalten, paßt das auch.
allerdings fahr ich fhem global mit verbose 1 und stelle nur höher, wenns ein helfer wünscht. ich will auch ehrlich gsagt ned jeden schaltvorgang im log haben.

interessant - ich schalte ALLE meine hm-schalter mit "pct x" und keinem weiteren zusätzlichen wert.
würde der ja jedes mal ein warning schreiben, würd mein log warscheinlich übergehen.

bin nicht nur deswegen verwirrt jetzt, sondern weil mein warning eben auch mit dem korrekten angeben beim doif attr wait weg ist.
für mich "milchmädchen" heißt: kein warning == kein problem.

jessas, was wir hier schon wieder aufreißen. dabei wollt ich doch nur ein regex von nem könner + die info, wie ich ein log überwachen und beschreiben kann *g*
→do↑p!dnʇs↓shit←

the ratman

du hast recht.

hatte das warning wieder. mal schauen, ob er sich mit pct 80 0 0 ein kriegt.

ich frag mich jetzt natürlich, warum. und auch: warum nur der schalter und nicht alle andern auch?
→do↑p!dnʇs↓shit←

frank

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html