Hue Tap - Phantom-Tastendrücke

Begonnen von dantist, 03 August 2018, 20:41:20

Vorheriges Thema - Nächstes Thema

dantist

Hallo zusammen,

ich habe einen Hue Tap-Schalter in der Küche, um ein paar vordefinierte Radiosender auf den Sonos-Lautsprechern starten zu können. Es ist schon öfter vorgekommen, dass ohne Tastendruck Musik startet, und heute ist es laut Logfiles wieder passiert - während wir im Urlaub sind.

Das notify ist denkbar simpel:


SchalterHueTap {
  hueTap("$EVENT");
}


Die Funktion hueTap startet per Switch je nach Zahlencode (16, 17, 18, 34) den passenden Radiosender.

Mit anderen Hue-Komponenten habe ich keine Probleme - die Lampen von Philips und Ikea schalten nur, wenn sie sollen, ebenso die Steckdosen von Osram.

Hat jemand eine Idee, woran es liegen könnte?

Edit: Bin grade die Logfiles durchgegangen, und es scheint ein Muster zu geben: Es sind immer zwei Tastendrücke im Abstand von exakt 6 Minuten.

MadMax-FHEM

#1
Zitat von: dantist am 03 August 2018, 20:41:20
Das notify ist denkbar simpel:


SchalterHueTap {
  hueTap("$EVENT");
}


Evtl. zu "simpel" bzw. zu wenig "einschränkend", das notify triggert bei allem was zu "SchalterHueTap" kommt.

Zitat von: dantist am 03 August 2018, 20:41:20
Die Funktion hueTap startet per Switch je nach Zahlencode (16, 17, 18, 34) den passenden Radiosender.

Was macht denn die Sub "hueTap" genau, also poste doch mal den Code?

Und auch mal etwas aus dem Eventmonitor bzgl. "SchalterHueTap"...

Evtl. kommt etwas das passt und dann etwas auslöst...

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)

dantist

Ein dediziertes Logfile für den Schalter gibt es nicht, werde ich aber einrichten.

Hue Tap hat übrigens keine Batterien, wenn also niemand drauf drückt, um Strom zu erzeugen, wie kann es dann Befehle absetzen?

Hier die Funktion:


sub hueTap($) {
  use Switch;
  my ($button) = @_;
  my $action = "";

  switch($button) {
    case 16 {
      $action = "StartRadio ANTENNE%20BAYERN";
      MyLog("[Sonos] Küchenradio [Antenne Bayern] gestartet");
    }
    case 17 {
      $action = "StartRadio RMF%20FM";
      MyLog("[Sonos] Küchenradio [RMF FM] gestartet");
    }
    case 18 {
      $action = "StartFavourite SWR%20Aktuell";
      MyLog("[Sonos] Küchenradio [SWR Aktuell] gestartet");
    }
    case 34 {
      $action = "Stop";
      MyLog("[Sonos] Küchenradio gestoppt");
    }
  }
  fhem("set Sonos_Kueche $action");
}

MadMax-FHEM

#3
Zitat von: dantist am 04 August 2018, 07:23:07
Ein dediziertes Logfile für den Schalter gibt es nicht, werde ich aber einrichten.

Brauchst du nicht zwingend, sofern du sicher bist, dass das (der einzige) Auslöser für die Phantom-Tastendrücke ist bzw. der einzige Auslöser für Sonos...

Was macht denn die Sub "MyLog"?

Was ich immer mache (zumindest in der Anfangsphase) ist eine Logausgabe gleich zu Beginn mit allen Parametern die kommen, also sowas:

Log3(undef, 3, "hueTap button: $button");

Dann sehe ich wann die Funktion losgelaufen ist und mit welchem Input sie losgelegt hat.

Zitat von: dantist am 04 August 2018, 07:23:07
Hue Tap hat übrigens keine Batterien, wenn also niemand drauf drückt, um Strom zu erzeugen, wie kann es dann Befehle absetzen?

Stimmt, habe mir jetzt die HUE-Tap auch mal angeschaut...

Sicher, dass es keine weiteren Auslöser für Sonos gibt?

Welche Logeinträge (wenn du keine dedizierten für die HUE-Tap hast) zeigen dir, dass es (wieder) passiert ist?

Zitat von: dantist am 04 August 2018, 07:23:07
Hier die Funktion:

Also wie ich das sehe:

Das notify reagiert auf alles was irgenwie was mit "SchalterHueTap" liefert ohne jegliche Regex-Einschränkung.
Dadurch, dass auf "alles" reagiert wird, also auch auf Unnötiges erzeugst du auch unnötig Last.
Mag nicht schlimm sein, kommt halt drauf an was so an Events mit diesem "Inhalt" kommen...

Die Sub setzt IMMER ein "set Sonos_Kueche" ab, auch wenn gar keine "action" vorhanden/gewünscht.
Da würde ich doch noch abfragen:


if( $action ne "" )
{
  fhem("set Sonos_Kueche $action");
  Log3(undef, 3, "hueTap Sonos was set, actions was $action");
}


oder so ähnlich...

Was passiert, wenn du

set Sonos_Kueche

also ohne action absetzt?

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)

dantist

$action sollte immer befüllt sein. Soweit ich weiß, kann Hue Tap nur vier Werte, einen für jeden drückbaren Knopf. Alle Werte werden im Switch behandelt, jeweils mit eigenem Log-Eintrag.

MyLog ist eine selbstgebastelte Funktion für ein eigenes Logfile. Daher kann ich zu 100% sagen, dass der Trigger nur vom HueTap kommt. Nur dort wird der entsprechende Eintrag geschrieben. Das sieht bei den fraglichen Tastendrücken dann so aus:

2018-08-03_12:36:35 LogHelper [Sonos] Küchenradio [SWR Aktuell] gestartet
2018-08-03_12:30:35 LogHelper [Sonos] Küchenradio [SWR Aktuell] gestartet


Man beachte den zeitlichen Abstand.

Sobald ich zu Hause bin, werde ich zusätzlich alles ins normale Logfile schreiben. Bin aber weiterhin stutzig, besonders weil es immer zwei mal im Abstand von exakt 6 Minuten passiert.

MadMax-FHEM

Du schreibst eben nur ins Log, wenn etwas erwartetes kommt...

Wenn aber etwas kommt was du in deinem Switch/Case nicht abfängst, dann ist $action eben "leer" aber das set-Kommando wird trotzdem ausgelöst...

Daher mache ich zu Beginn gleich eine Logausgabe die immer kommt und ins Log die Ausgangssituation schreibt...

So sehe ich immer wenn das notify getriggert wird und wodurch und nicht nur (wie bei dir) bei erwarteten Ereignissen...

Nochmal: das notify triggert auf alles was SchalterHueTap enthält egal was danach noch kommt...

Daher ja auch der Tipp mal im Eventmonitor zu kucken was da noch so kommt mit diesem "Inhalt"...

Und nochmal: egal was das notify triggert es wird am Ende ein set ausgeführt...

Einfach auf Basis von Annahmen, dass etwas so sein muss und alles andere mit "das kann nicht sein" ausblenden wird irgendwann schief gehen...

Oder man hat Glück, mehr nicht...

Ob das aber hier (das einzige) Problem ist weiß ich nat. nicht.
Ich hab nur geschrieben was anhand vom geposteten notify und Code zu ersehen war...

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)

dantist

So, vorhin ist es wieder passiert, leider hatte ich das Log nur auf Verbose 3. Da der Schalter nicht angerührt wurde, könnte ich mir höchstens vorstellen, dass die Hue Bridge rumspinnt?

Mit Verbose 4 fällt mir außerdem auf, dass der Schalter irrsinnig viele Events triggert. Keine Ahnung, ob das normal ist.

2018.08.07 00:09:24 4: using HUEBridge_HTTP_Request: GET sensors/2
2018.08.07 00:09:24 4: parse status message for SchalterHueTap
2018.08.07 00:09:26 4: using HUEBridge_HTTP_Request: GET sensors/2
2018.08.07 00:09:26 4: parse status message for SchalterHueTap
2018.08.07 00:09:27 4: using HUEBridge_HTTP_Request: GET sensors/2
2018.08.07 00:09:27 4: parse status message for SchalterHueTap
2018.08.07 00:09:28 4: using HUEBridge_HTTP_Request: GET sensors/2
2018.08.07 00:09:28 4: parse status message for SchalterHueTap
2018.08.07 00:09:29 4: using HUEBridge_HTTP_Request: GET sensors/2
2018.08.07 00:09:29 4: parse status message for SchalterHueTap


Die Readings hänge ich als Grafik dran. Der state stand bis vorhin auf 2018-07-27, dem letzten echten Tastendruck. Der ändert sich auch brav, wenn man den Schalter betätigt.


MadMax-FHEM

Hast du jetzt mal eine von den gemachten Vorschlägen umgesetzt?

Also eine Logausgabe (meine wäre auch bei verbose 3 gekommen, ansonsten zu testzwecken einfach statt der 3 eine 1) gleich zu Beginn der Sub!?

Dann würdest du ja sehen mit was/warum die Sub getriggert wird...

Weil das notify halt nun mal auf alles reagiert wo SchalterHueTap vorkommt, ganz egal wo das herkommt, wer es auslöst (und warum)...

Auch in den Eventmonitor schauen (und Filter auf SchalterHueTap setzen) würde dir zeigen was da so an Events kommt...
Den kannst du ja mal in nem Fenster mitlaufen lassen...

Mehr (und öfter) kann ich dazu (mit den aktuellen Infos) nicht sagen...

P.S.: Logausgaben/einträge müssen noch lange keine Events erzeugen. Kommt auf div. Einstellungen an. Daher ja: Eventmonitor!

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)