[Gelöst] Popup bei HM_CUL-Geräten - skipTrigger wird in fhem.pl als "Fehler"

Begonnen von KernSani, 29 Dezember 2018, 17:20:56

Vorheriges Thema - Nächstes Thema

KernSani

Hallo Rudi,

ich habe seit kurzem das seltsame Phänomen, dass ich beim schalten von CUL_HM ein Popup mit Inhalt 1 zurück bekomme, auch DOIFs etc... liefern einen Log-Eintrag mit der "1". FHEM wurde vorgestern aktualisiert. Ich habe das mal analysiert, CUL_HM gibt aus der setFn "skipTrigger" zurück:

return ("",1);# no not generate trigger out of command
.

in fhem.pl DoSet:
my ($ret, $skipTrigger) = CallFn($dev, "SetFn", $hash, ...
wird dann $ret statt $skipTrigger mit der 1 belegt und als Fehler zurückgegeben. Ich habe mir eine Log-Meldung die fhem.pl eingebaut um das zweifelsfrei zu belegen... Komisch ist nur dass sich - soweit ich das nachvollziehen konnte - an der Stelle seit langem nichts geändert hat... (Auch bei CUL_HM nicht).

Hast du eine Ahnung, was da schief stehen könnte?

Danke,

Grüße,

Oli

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

rudolfkoenig

Ich hab das versucht nachzustellen, ohne Ergebnis (sprich Problem).
Wenn ich helfen soll, brauche ich
- "list -r" Output vom IODev
- "list -r" Output von einem betroffenen Geraet
- Befehl, was du absetzt
- wie genau setzt Du den Befehl ab (click auf icon, link, Auswahl aus Menu, etc).

KernSani

Hi Rudi,

es ist egal, wie ich den Befehl (also ein set <device> on) absetze, Kommandozeile, direkt im Device, über DOIF/Notify oder über webCmd bzw. Icon, Verhalten ist immer nahezu das selbe.
* Webcmd/Icon --> Popup mit "1" (bzw... dem Wert, den ich in 10_CUL_HM als skipTrigger mitgebe)
* DOIF --> Eintrag im Log
* Kommandozeile/Device --> Anzeige von "1" im Webinterface (kein Popup)
Der Befehl wird in allen Fällen korrekt ausgeführt (für set xy off, on-for-timer etc... gilt dasselbe)

IODev:
define hmusb HMLAN 127.0.0.1:1234
attr hmusb group HomeMatic
attr hmusb hmId XXXXXX
attr hmusb hmLanQlen 1_min
attr hmusb loadLevel 0:low,40:batchLevel,90:high,99:suspended
attr hmusb room IODevices


Device

define EG_AZi_Licht CUL_HM 50A4E2
attr EG_AZi_Licht userattr consumers consumers_map floor floor_map structexclude
attr EG_AZi_Licht IODev hmusb
attr EG_AZi_Licht IOgrp vccu:hmusb
attr EG_AZi_Licht alexaName arbeitszimmer lampe
attr EG_AZi_Licht alexaRoom arbeitszimmer
attr EG_AZi_Licht alias EG Arbeitszimmer Licht
attr EG_AZi_Licht autoReadReg 4_reqStatus
attr EG_AZi_Licht expert 1_allReg
attr EG_AZi_Licht firmware 2.8
attr EG_AZi_Licht floor st_eg
attr EG_AZi_Licht genericDeviceType light
attr EG_AZi_Licht group Licht
attr EG_AZi_Licht model HM-LC-Sw1PBU-FM
attr EG_AZi_Licht peerIDs 00000000,50A4E201,50A4E202,
attr EG_AZi_Licht room Alexa,Erdgeschoss->Arbeitszimmer,Homekit,Übersicht
attr EG_AZi_Licht serialNr NEQ1645071
attr EG_AZi_Licht siriName Arbeitszimmer Licht
attr EG_AZi_Licht structexclude st_eg:.*
attr EG_AZi_Licht subType switch
attr EG_AZi_Licht verbose 2
attr EG_AZi_Licht webCmd on:off
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

Viellecht noch als Ergänzung, ich habe in fhem.pl folgendes gemacht:

  my ($ret, $skipTrigger) = CallFn($dev, "SetFn", $hash,
                $modules{$hash->{TYPE}}->{parseParams} ? parseParams(\@a) : @a);
  Log3 undef,1, "-->$dev | $ret | $skipTrigger" if ($dev eq "EG_AZi_Licht");                        ## hinzugefügt zum debuggen
  return $ret if($ret);


im Log steht dann:

2018.12.29 17:59:55 1: -->EG_AZi_Licht | 1 |

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

rudolfkoenig

Wenn ich deine Definition anwende, kriege ich im Log:
Zitat2018.12.29 18:22:46 1: configfile: wrong syntax: hmId must be 6-digit-hex-code (3 byte)
EG_AZi_Licht: unknown attribute alexaName. Type 'attr EG_AZi_Licht ?' for a detailed list.
EG_AZi_Licht: unknown attribute alexaRoom. Type 'attr EG_AZi_Licht ?' for a detailed list.
EG_AZi_Licht: unknown attribute genericDeviceType. Type 'attr EG_AZi_Licht ?' for a detailed list.
EG_AZi_Licht: unknown attribute siriName. Type 'attr EG_AZi_Licht ?' for a detailed list.

2018.12.29 18:22:46 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/10_CUL_HM.pm line 4114.
2018.12.29 18:22:46 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/10_CUL_HM.pm line 4115.
Beim Schalten (Klick auf on oder off im Raum Alexa) keine Fehler.

Ich gehe davon aus, dass CUL_HM in deinem Fall anders reagiert, als bei mir.
Wenn CUL_HM fuer $ret 1 zurueckliefert, dann ist das Problem da zu suchen.
Um es eindeutig zuordnen zu koennen, wuerde ich vor "Log3..." ein stacktrace() einbauen.


KernSani

Schande über mich... stacktrace war ein guter Tipp... Der Freezemon ist schuld  :-[ :-[ :-[

RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...