homematic mit Fehlern

Begonnen von eisman, 14 Juli 2020, 16:01:28

Vorheriges Thema - Nächstes Thema

eisman

hi,

wann wird HM wieder funktionieren, wahrscheinlich erst wenn man neue HM Geräte kauft,
wird bei mir nicht sein, neue Geräte werden keine homematic mehr sein, einfach zu nervig
die Dinger.....

zu oft gibt es Probleme,
und jetzt geht wieder was nicht expert => defReg,allReg,rawReg,templ ??????????????????????????????
kein R-xxxxxx mehr

und fhem save ist auch wieder abgeschaltet?????????????????????????????????????????????


ja ich weis ich bin noch im Kindergarten und darf nicht selber entscheiden was ich mache!!!!!!!!!!!

Als der Herr König, das noch alleine gemacht hat, war es eine schöne Software,
jetzt geht mit jeden update immer weniger, einfach kein spass mehr


.....
1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian, Homematic,ZigBee         / 1X Raspberry, ConBee / 5x ESP
1x FHEM Debian,MQTT                               / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

MadMax-FHEM

Frust: ok

ABER: wenn du ernsthaft Hilfe (oder Fehler melden) willst, dann musst du schon etwas genauer beschreiben...

Ich habe keine Ahung WOVON du "sprichst"...

Und dann besser auch nicht vermischen, weil verm. das Homematic-Problem nichts mit dem "save" Problem zu tun hat...
(welches aber vermutlich von Herrn König selbst SO eingebaut wurde ;)  / also wenn es das ist was ich vermute  / genauer wissen kann ich's ja nur, wenn du entspr. beschreibst)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

noansi

#2
Hallo Martin,

ich denke in 10_CUL_HM.pm ab Zeile 8509 bis 8514 schwebte Dir in der letzten Änderung eher so was vor:
  delete($tHash->{helper}{expert});
  foreach my $expSet (split(",",CUL_HM_getAttr($tHash->{NAME},"expert","defReg"))){
    $tHash->{helper}{expert}{def} = 1 if ($expSet eq "defReg");#default register on
    $tHash->{helper}{expert}{det} = 1 if ($expSet eq "allReg");#detail register on
    $tHash->{helper}{expert}{raw} = 1 if ($expSet eq "rawReg");#raw register on
    $tHash->{helper}{expert}{tpl} = 1 if ($expSet eq "templ" );#template on
  }


Dann klappt es auch wieder mit der Registeranzeige.

Alternativ mit einer Übersetzungstabelle:
my %CUL_HM_chgExpLvl_exptrans = (
  'defReg' => 'def', #default register on
  'allReg' => 'det', #detail register on
  'rawReg' => 'raw', #raw register on
  'templ'  => 'tpl', #template on
);

wäre auch das eine Option:
  delete($tHash->{helper}{expert});
  for my $expSet (split(",",CUL_HM_getAttr($tHash->{NAME},"expert","defReg"))){
    next if (!defined($CUL_HM_chgExpLvl_exptrans{$expSet}));
    $tHash->{helper}{expert}{$CUL_HM_chgExpLvl_exptrans{$expSet}} = 1;
  }


Mit obiger Übersetzungstabelle ginge es auch so, wenn 0 unbedingt dabei sein soll:
  my $aval = CUL_HM_getAttr($tHash->{NAME},"expert","defReg");
  for my $aentry (keys %CUL_HM_chgExpLvl_exptrans) {
    next if (!defined($CUL_HM_chgExpLvl_exptrans{$aentry}));
    $tHash->{helper}{expert}{$CUL_HM_chgExpLvl_exptrans{$aentry}} = ($aval =~ m/$aentry/s) ? 1 : 0;
  }


Gruß, Ansgar.

Pfriemler

#3
Noch ein Unbill in der letzten Version 22393 2020-07-13 18:07:46: ?
Too many arguments for main::CUL_HM_rmOldRegs at ./FHEM/10_CUL_HM.pm line 3445, near "$readCont)"
BEGIN not safe after errors--compilation aborted at ./FHEM/10_CUL_HM.pm line 4900.

Hatte das per svnupdate geholt - reload wurde gecancelt.

edit: Nachdem ich den Fehler nicht gefunden habe (die Anzahl der Argumente stimmt in Aufruf und Deklaration) mal mutig einen Neustart hingelegt - scheint zu laufen.
Reload scheint hier nicht zu funktionieren. Warum auch immer.

"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

frank

#4
bei martins "framework" schaue ich immer, ob alle 4 module zusammen passen (00_hmlan, 10_cul_hm, 98_hminfo, hmconfig).
dazu mache ich dann grundsätzlich einen fhem restart.

mein fhem update von gestern (14.7.) zeigt null auffälligkeiten beim start.

nur beim ausführen von "set hminfo cmdRequestG ping" habe ich nun warnungen im log gefunden.
je nach device 2 unterschiedliche:

2020.07.14 18:01:22.815 1: PERL WARNING: Argument "Unknown argument sysTime, choose one of assignHmKey:noAr..." isn't numeric in numeric eq (==) at ./FHEM/10_CUL_HM.pm line 6717.
2020.07.14 18:01:22.815 1: stacktrace:
2020.07.14 18:01:22.816 1:     main::__ANON__                      called by ./FHEM/10_CUL_HM.pm (6717)
2020.07.14 18:01:22.816 1:     main::CUL_HM_Ping                   called by ./FHEM/98_HMinfo.pm (1724)
2020.07.14 18:01:22.816 1:     main::HMinfo_SetFn                  called by fhem.pl (3790)
2020.07.14 18:01:22.817 1:     main::CallFn                        called by fhem.pl (1911)
2020.07.14 18:01:22.817 1:     main::DoSet                         called by fhem.pl (1943)
2020.07.14 18:01:22.817 1:     main::CommandSet                    called by fhem.pl (1254)
2020.07.14 18:01:22.818 1:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2712)
2020.07.14 18:01:22.818 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (981)
2020.07.14 18:01:22.818 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (590)
2020.07.14 18:01:22.819 1:     main::FW_Read                       called by fhem.pl (3795)
2020.07.14 18:01:22.819 1:     main::CallFn                        called by fhem.pl (762)
2020.07.14 18:01:22.820 1: PERL WARNING: Argument "Unknown argument statusRequest, choose one of assignHmKe..." isn't numeric in numeric eq (==) at ./FHEM/10_CUL_HM.pm line 6719.
2020.07.14 18:01:22.821 1: stacktrace:
2020.07.14 18:01:22.821 1:     main::__ANON__                      called by ./FHEM/10_CUL_HM.pm (6719)
2020.07.14 18:01:22.821 1:     main::CUL_HM_Ping                   called by ./FHEM/98_HMinfo.pm (1724)
2020.07.14 18:01:22.822 1:     main::HMinfo_SetFn                  called by fhem.pl (3790)
2020.07.14 18:01:22.822 1:     main::CallFn                        called by fhem.pl (1911)
2020.07.14 18:01:22.823 1:     main::DoSet                         called by fhem.pl (1943)
2020.07.14 18:01:22.823 1:     main::CommandSet                    called by fhem.pl (1254)
2020.07.14 18:01:22.823 1:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2712)
2020.07.14 18:01:22.824 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (981)
2020.07.14 18:01:22.824 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (590)
2020.07.14 18:01:22.824 1:     main::FW_Read                       called by fhem.pl (3795)
2020.07.14 18:01:22.825 1:     main::CallFn                        called by fhem.pl (762)

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

Pfriemler

hat sich ja geklärt. Bin gerade auch auf dem neuesten Set. Nach dem gecancelten Reload war CUL_HM funktionsunfähig (es hagelte nur unknowns im Log).
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

tndx

Ich habe zwar nicht direkt Fehler, aber "komische" Einträge im Event-Manager, die vorher nicht da waren, wenn ich ein neues Gerät pairen will:

2020-07-15 13:52:31 CUL_HM Bad_Fenster_links cfgState: updating
2020-07-15 13:52:31 CUL_HM Bad_Fenster_rechts_links cfgState: PairMiss,RegMiss
2020-07-15 13:52:31 CUL_HM Bad_HK cfgState: ok


und so weiter... Es wird jedenfalls so ziemlich jedes HM-Gerät abgefragt? Warum?

Wenn ich 3 Pairings hintereinander mache, passiert das auch 3 Mal hintereinander. Es werden dadurch wohl auch DOIFs getriggert, die auf Änderung der Status reagieren und bringen mein Display durcheinander.

Pfriemler

Erinnert mich an das spontane Öffnen einer Keymatic nach Update und Neustart, hier vor ein paar Tagen. Habe heute auch so ein Fake-Event gehabt und dort vorgestellt.
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

frank

Zitat von: tndx am 15 Juli 2020, 16:48:44
Es werden dadurch wohl auch DOIFs getriggert, die auf Änderung der Status reagieren und bringen mein Display durcheinander.
der status ändert sich doch gar nicht.
das neu reading cfgState feuert events.
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

tndx

Da bin ich mir nicht so sicher:

2020-07-15 13:52:31 CUL_HM FZ_LichtSpots cfgState: ok
2020-07-15 13:52:32 HMCCU myHMCCU hmscript /opt/fhem/hmscript.scr Device=4CZ0VF0VOG Text="/8 '@t10' 1"
2020-07-15 13:52:32 CUL_HM FZ_LichtSpots_Sw_01 cfgState: ok
2020-07-15 13:52:32 HMCCU myHMCCU hmscript /opt/fhem/hmscript.scr Device=4CZ0VF0VOG Text="/8 '@t10' 1"
2020-07-15 13:52:32 CUL_HM Garage_Tor cfgState: ok
2020-07-15 13:52:33 HMCCU myHMCCU hmscript /opt/fhem/hmscript.scr Device=4CZ0VF0VOG Text="/6 '@p03@t06 closed'"


Es wurde jedes mal (gerade Zeilennummern) ein DOIF ausgelöst, die triggern wiederum auf [FZ_LichtSpots_Sw_01] und [Garage_TorNeigung], Garage_Tor frage ich gar nicht ab. Ich habe das nicht zu Ende analysiert, aber mein Display war heute zeitweise leer und das kann nur damit zusammenhängen. Ich kann damit leben (solange meine KeyMatic nicht anfängt, Eigenleben zu entwickeln), aber das ist sicherlich nicht im Sinne des Erfinders, oder?

Pfriemler

Zitat von: frank am 15 Juli 2020, 18:19:05
der status ändert sich doch gar nicht.
das neu reading cfgState feuert events.

Sch..e auch, DAS ist es, auch bei mir. Wie so oft: Danke. Das dürfte viele User zum Umarbeiten zwingen...
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

noansi

Hallo Martin,

zumindest Franks Warnings auf "set hminfo cmdRequestG ping" ließen sich in 10_CUL_HM.pm z.B. so beheben:
sub CUL_HM_Ping($) {
  my($defN) = @_;
  return 0 if (($defs{$defN}{helper}{rxType} & 0xe3) == 0);     # no ping for config devices
  my (undef, $nres) = CUL_HM_Set($defs{$defN},$defN,"sysTime"); # noansi: fix warnings
  return 1 if (defined($nres) && 1 == $nres); # noansi: fix warnings
  foreach my $chnN($defN,map{$defs{$defN}{$_}}grep(/^channel_/,keys %{$defs{$defN}})){
    (undef, $nres) = CUL_HM_Set($defs{$chnN},$chnN,"statusRequest"); # noansi: fix warnings
    return 1 if (defined($nres) && 1 == $nres); # noansi: fix warnings
  }
  return 0;
}


Gruß, Ansgar.

tndx

Zitat von: Pfriemler am 15 Juli 2020, 18:53:19
Sch..e auch, DAS ist es, auch bei mir. Wie so oft: Danke. Das dürfte viele User zum Umarbeiten zwingen...

Wie ist das gemeint? Könnt Ihr das an meinem Beispiel erklären?

Hier ist mein DOIF:
{fhem_set("myHMCCU hmscript /opt/fhem/hmscript.scr Device=4CZ0VF0VOG Text=\"/6 '\@p03\@t06 ".[Garage_TorNeigung]."'\"");}

Hier ist die Ausgabe im Event-Manager:
2020-07-15 13:52:32 CUL_HM Garage_Tor cfgState: ok
2020-07-15 13:52:33 HMCCU myHMCCU hmscript /opt/fhem/hmscript.scr Device=4CZ0VF0VOG Text="/6 '@p03@t06 closed'"


Weder ändert sich der Status des Sensors "Garage_TorNeigung" noch gehört der abgefeurte Event "Garage_Tor cfgState: ok" zu dem Sensor. Trotzdem wird mein DOIF ausgeführt. Gut "Garage_Tor" und "Garage_TorNeigung" heißen eben ählich, genauer gesagt, ist das eine ein Substring von dem anderen, aber an welcher Stelle genau wirkt sich das aus? Und wie kann man das korrigieren?

Pfriemler

@tndx: Ich hatte mich schon gewundert, was HMCCU mit CUL_HM zu tun hat. Aha. Ein DOIF triggert und sendet etwas an HMCCU.
Wir sehen in Deinem Code aber nur den Ausführungsteil. Warum das DOIF triggert, sieht man nicht. Wir brauchen schon die ganze DEF.

"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

tndx

Es ist schon die ganze Def :) Könnte jedenfalls eine sein. Tatsächlich habe ich noch weitere Blöcke drin, aber ein Block alleine ergibt ja im perl-Modus ein lauffähiges DOIF.

ZitatSyntax Perl-Modus:

    define <name> DOIF <Template-Definitionen (optional)> <DOIF-Blöcke>

[...]

Syntax DOIF-Block:

    <Blockname (optional)> {<Perlcode mit Ereignis-/Zeittriggern in eckigen Klammern>}