Homebridge: Dimmable Dummy "Keine Antwort" in Home App

Begonnen von AB1970, 11 Januar 2021, 13:03:01

Vorheriges Thema - Nächstes Thema

AB1970

Hallo,
ich probiere jetzt schon einige Tage rum und finde keine Lösung. Wahrscheinlich sehe ich den Wald vor lauter Bäumen nicht.

Zusammengefasst: Ich habe einen Dummy, der Dimmen unterstützt. Das funktioniert mit der WebUI und mit Alexa. Eigentlich auch mit Homekit (man kann ihn dimmen und schalten). Aber die Home App zeigt immer für dieses Device "Keine Antwort an" und es stimmt bisweilen ist der Status falsch.

Hier ein Listing von meinem Device:

Internals:
   .eventMapCmd
   CFGFN      /opt/fhem/Kinderzimmer.cfg
   FUUID      5c7b3560-f33f-d82b-8444-8384ddc8997515a0
   NAME       KIJ.Standardbeleuchtung
   NR         883
   STATE      pct 0
   TYPE       dummy
   .attraggr:
   .attrminint:
   OLDREADINGS:
   READINGS:
     2020-12-21 20:07:22   .donotswitch    0
     2021-01-10 17:52:57   state           off
Attributes:
   alias      Standard Beleuchtung im Kinderzimmer Jule
   devStateIcon off|pct.0:FS20.off on|pct.100:FS20.on pct.*:dim50%
   eventMap   /on:pct 100/off:pct 0/
   genericDeviceType light
   group      Lampen
   homebridgeMapping Brightness=pct,minValue=1,maxValue=100,minStep=1,cmd=pct
   icon       it_net
   room       Homekit,Kinderzimmer,alexa
   setList    pct:slider,0,1,100
   webCmd     pct:on:off


Installierte Hombridge version ist homebridge@1.1.7

Hat jemand eine Idee?

Viele Grüße
Andreas


TomLee

Halllo,

kanns nicht ausprobieren da aktuell kein homebridge installiert, vermute du brauchst auch noch ein Reading pct.

Versuchs mal mit:

attr KIJ.Standardbeleuchtung readingList pct

Gruß

Thomas




AB1970

Hi,
super danke, dass hat in der Tat die Fehlermeldung beseitig!


Internals:
   .eventMapCmd on:noArg off:noArg
   CFGFN      /opt/fhem/Kinderzimmer.cfg
   FUUID      5c7b3560-f33f-d82b-8444-8384ddc8997515a0
   NAME       KIJ.Standardbeleuchtung
   NR         883
   STATE      off
   TYPE       dummy
   .attraggr:
   .attrminint:
   OLDREADINGS:
   READINGS:
     2020-12-21 20:07:22   .donotswitch    0
     2021-01-11 20:45:15   HomekitState    On
     2021-01-11 20:45:15   pct             100
     2021-01-11 20:41:39   state           off
Attributes:
   alias      Standard Beleuchtung im Kinderzimmer Jule
   devStateIcon off|pct.0:FS20.off on|pct.100:FS20.on pct.*:dim50%
   eventMap   /pct 100:on/pct 0:off/
   genericDeviceType light
   group      Lampen
   homebridgeMapping Brightness=pct,minValue=1,maxValue=100,minStep=1,cmd=pct,nocache
   icon       it_net
   readingList pct
   room       Homekit,Kinderzimmer Jule,alexa
   setList    pct:slider,0,1,100
   webCmd     pct:on:off


Der Status hängt allerdings immer noch. In dem obigen Beispiel wird der Dummy im Homekit mit Dim XX% (zb 02%) angezeigt.
Wo er die Werte hernimmt ist mir schleierhaft.





TomLee

k.A. . und wenn du das homebridgeMapping einfach weglässt ?

Mit dem jetzt vorhandenen Reading (pct) mein ich sollte es auch ohne klappen, sicher bin ich mir aber nicht.

AB1970

Danke für deine Hilfe, in der Tat wieder ein Fortschritt!
Ohne Homebridge Mapping wird der Ein/Aus Status korrekt angezeigt (schonmal ein Fortschritt )  allerdings ist der PCT Wert immer noch falsch.
Für weiter Ideen wäre ich sehr dankbar.




TomLee

#5
ist der pct-Wert nur falsch beim Status EIN/AUS und die Zwischenschritte korrekt?

Wir haben mit einem setter und Reading pct, wie ich es bis jetzt verstanden habe, praktisch einen HM dimmer nachgebildet :

Zitatelse if( match = s.PossibleSets.match(/(^| )pct\b/) ) {
    // HM dimmer
    if( !this.service_name ) this.service_name = 'light';
    this.mappings.On = { reading: 'pct', valueOff: '0', cmdOn: 'on', cmdOff: 'off' };
    this.mappings.Brightness = { reading: 'pct', cmd: 'pct', delay: true };

Wenn die Zwischenschritte korrekt angezeigt werden dann versteh ich es bis jetzt so das du dein eventMap anpassen musst.

Das aber das erste mal das ich in den Code schaue, kann mich auch irren, weil verstehen tu ich ihn nur Ansatzweise.


AB1970

Nein im Moment ist der Wert in der Home App generell falsch.


Internals:
   .eventMapCmd on:noArg off:noArg
   CFGFN      /opt/fhem/Kinderzimmer.cfg
   FUUID      5c7b3560-f33f-d82b-8444-8384ddc8997515a0
   NAME       KIJ.Standardbeleuchtung
   NR         875
   STATE      pct 54
   TYPE       dummy
   .attraggr:
   .attrminint:
   READINGS:
     2020-12-21 20:07:22   .donotswitch    0
     2021-01-16 10:58:55   HomekitState    On
     2021-01-16 10:58:55   pct             54
     2021-01-13 10:56:59   state           on
Attributes:
   alias      Standard Beleuchtung im Kinderzimmer Jule
   devStateIcon off:FS20.off on:FS20.on pct.*:dim50%
   eventMap   /pct 100:on/pct 0:off/
   genericDeviceType light
   group      Lampen
   icon       it_net
   readingList pct
   room       Homekit,Kinderzimmer Jule,alexa
   setList    pct:slider,0,1,100
   stateFormat {
my $pct = ReadingsVal("KIJ.Standardbeleuchtung", "pct", "");
if($pct eq "0")
{
return "off";
}
elsif ($pct eq "100")
{
return "on";
}
else
{
return "pct ".$pct;
}
}
   webCmd     pct:on:off



Woher holt sich die Hombridge ihre Werte von state, Pct oder STATE?
Wie kann ich das Problem debuggen, wie mir ausfällt zeigt auch mein Echo Show falsche Prozentwerte an , mag allerdings nich das gleiche Problem sein.
Gerade mal versucht Testweise STATE so zu verbiegen das es  es off/on oder pct xx anzeigt ,  bringt allerdings nicht viel.
Wo stammt dein Code Segment her ? vielleicht kann ich Testweise mal ein paar Logs reinsetzen

TomLee

#7
Hab das eben mal ausprobiert und die Vermutung das du nach deinen Änderungen an den Attributen Hombridge nicht neu gestartet hast.

Ein/Aus und auf Prozentwerte stellen klappt bei mir einwandfrei, der Prozentwert wird korrekt angezeigt:

defmod du_testx dummy
attr du_testx alexaName honig
attr du_testx genericDeviceType light
attr du_testx readingList pct
attr du_testx room Homekit,Test
attr du_testx setList pct:slider,0,1,100

setstate du_testx on
setstate du_testx 2021-01-16 11:57:40 pct 28
setstate du_testx 2021-01-16 11:57:39 state on


edit:

auch in der Alexa-App werden die Prozentwerte korrekt angezeigt.
Zitat
Wie kann ich das Problem debuggen, ...

Wie ich es bisher verstanden habe:

Mit dem Init-Skript:

sudo service homebridge stop

und dann manuell im .homebridge Ordner mit homebridge --debug starten

Mit systemd:

sudo systemctl stop homebridge

und dann manuell im .homebridge Ordner mit homebridge --debug starten

ZitatWo stammt dein Code Segment her ?

https://github.com/justme-1968/homebridge-fhem/blob/master/lib/fhem.js