Enocen Taster löst eine 99_myutils Routine mehrmals (zu viel) aus

Begonnen von nosfreatu, 26 Oktober 2018, 20:33:24

Vorheriges Thema - Nächstes Thema

nosfreatu

Hallo zusammen
Ich möchte mittels FHEM ein Musiksystem (Bluesound) mittels Enocean Tastern steuern. Das System lässt sich per http-Befehlern nach dem Muster http://urlxxx/Play bewerkstelligen.
Zu diesem Zweck habe ich eine myutils Datei mit mehren Routinen erstellt.


use strict;
use warnings;
use POSIX;


sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
 
}

# Enter you functions below _this_ line.

my $ipadr = "192.168.1.201:11000";

sub
StopBS() {
  GetHttpFile($ipadr, "/Stop");
}

sub
PlayBS() {
  GetHttpFile($ipadr, "/Play");
}

sub
PresetBS($) {
  my ($preset) = @_;
  GetHttpFile($ipadr, "/Preset?id=".$preset);
}

sub
VolrelBS($) {
  my ($volrel) = @_;
  GetHttpFile($ipadr, "/Volume?db=".$volrel);
 
}

sub
BluetoothBS() {
    GetHttpFile($ipadr, "/Play?url=Capture:bluez");
}

sub
LineBS() {
    GetHttpFile($ipadr, "/Play?url=Capture:plughw:0,0/48000/24/2");
}

sub
SkipBS() {
    GetHttpFile($ipadr, "/Skip");
}

sub
LoadplaylistBS() {
    GetHttpFile($ipadr, "/Load?name=demo");
}
1;


Wenn ich in der FHEM Befehlszeile zum Beispiel {SkipBS()} funktioniert das gande einwandfrei.
Wenn ich jedoch das Ganze mittels Enocen Taster steuern will, wird die entsprechende Routine mit einem Tastendruck mehrmals aufgerufen

Hier der Notify Eintrag für den Befehl Skip.
define skip notify Handsender:A0 set {SkipBS()} 1

Und hier die Schalter Definition
define Handsender EnOcean 00138F5C
attr Handsender IODev TCM_ESP3_0
attr Handsender eep F6-02-01
attr Handsender manufID 7FF
attr Handsender room EnOcean
attr Handsender subType switch
attr Handsender teachMethod RPS
define FileLog_Handsender FileLog ./log/Handsender-%Y.log Handsender
attr FileLog_Handsender logtype text
attr FileLog_Handsender room EnOcean


Weiss jemand was das Problem sein könnte? Vielleicht ruft FHEM die Routine solange auf solange der Schalter gedrückt ist.
Ich habe zuerst das ganze mit Httpmod realisiert, was auch geklappt hat, war jedoch umständlich, da ich bei einem IP Adress Wechsel des Musikplayers bei allen Aufrufen Skip, Volume etc. die Adresse ändern musste. Hier kann ich im File nur einmal die Adresse anpassen.

Gruss
Beat Graf

MadMax-FHEM

In den EventMonitor schauen und prüfen welche Events kommen...
Vermutlich kommen mehr Events die passen und dann auslösen.

Entweder anderen Event nehmen, also anderes RegEx beim Notify oder evtl. hilft event-on-change-reading oder in der myUtils mehrfaches Aufrufen in kurzer Zeit verhindern oder oder oder...

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)

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net