Hallo,
es wird der eine If-Abfrage mehrfach ausgeführt, obwohl dies nicht sein dürfte. Wo liegt der Fehler?
Am Anfang hat Test den Wert 0. Am Ende den Wert 2. Warum?
defmod FB_SIP_notify notify FB_SIP.* \
{my $val1 = ReadingsVal('FB_SIP','call_state','error');;\
my $val2 = ReadingsVal('Hilfe_Juergen','state','error');;\
my $val3 = ReadingsVal('Hilfe_ANZ','state','0');;\
fhem("set FB_SIP_Status $val1");;\
if ($val1 eq "ok" and $val2 eq "an")\
{fhem("set Hilfe_Juergen aus");;\
fhem("set Hilfe_ANZ 0");;\
$val2 = ReadingsVal('TEST','state','0');;\
$val2 = $val2 + 1;;\
my $s_m = ReadingsVal("Sonos","MasterPlayer","");;\
$s_m =~ s/['[\]]+//g;;\
fhem("set TEST $val2");;\
fhem("set Sonos_Buero:FILTER=presence=appeared Speak 20 de |Der_Hilferuf_war_erfolgreich.mp3|")}}
Viele Grüße
Jürgen
Die Bedingungsabfrage wird mehrfach ausgeführt weil Dein notify mehrfach getriggert wird.
Das mag ja sein, aber die IF-Bedingung sollte dann nicht mehr gültig sein. Ich setze ja dort die Werte neu. Habe ich hier etwas übersehen?
Viele Grüße
Jürgen
Keine Ahnung. So sehe ich nichts. Mach mal bitte ein list vom notify und den involvierten Devices
Anbei die gewünschte Info.
Sollte noch etwas fehlen, bitte melden. Einige Daten haben ich durch x ersetzt. Auch habe ich die Test-Dummys wieder gelöscht. Coding kann gerne übernommen werden.
Ziel ist es über Alexa einen Hilferuf abzusetzen, der dann über die Sonos-Box bestätigt wird (oder auch nicht).
Internals:
DEF FB_SIP.*
{my $val1 = ReadingsVal('FB_SIP','call_state','error');
my $val2 = ReadingsVal('Hilfe_Juergen','state','error');
my $val3 = ReadingsVal('Hilfe_ANZ','state','0');
fhem("set FB_SIP_Status $val1");
if ($val1 eq "ok" and $val2 eq "an")
{fhem("set Hilfe_Juergen aus");
fhem("set Hilfe_ANZ 0");
my $s_m = ReadingsVal("Sonos","MasterPlayer","");;
$s_m =~ s/['[\]]+//g;;
fhem("set Sonos_Buero:FILTER=presence=appeared Speak 20 de |Der_Hilferuf_war_erfolgreich.mp3|")}
elsif ($val1 eq "canceled" and $val2 eq "an" and $val3 < 6)
{$val3 = $val3 + 1;
fhem("set Hilfe_ANZ $val3");
fhem("set Hilfe_Juergen an")}
elsif ($val1 eq "declined" and $val2 eq "an" and $val3 < 6)
{$val3 = $val3 + 1;
fhem("set Hilfe_ANZ $val3");
fhem("set Hilfe_Juergen an")}
elsif ($val3 > 5)
{fhem("set Hilfe_Juergen fail");
fhem("set Hilfe_ANZ 0");
my $s_m = ReadingsVal("Sonos","MasterPlayer","");;
$s_m =~ s/['[\]]+//g;;
fhem("set Sonos_Buero:FILTER=presence=appeared Speak 20 de |Der_Hilferuf_ist_fehlgeschlagen.mp3| ")}}
NAME FB_SIP_notify
NOTIFYDEV FB_SIP.*
NR 164
NTFY_ORDER 50-FB_SIP_notify
REGEXP FB_SIP.*
STATE 2017-09-30 22:20:53
TYPE notify
READINGS:
2017-09-30 22:20:50 state active
Attributes:
room Hilferufe
Internals:
NAME Hilfe_Juergen
NR 156
STATE aus
TYPE dummy
READINGS:
2017-09-30 20:12:04 state aus
Attributes:
alexaName Jürgen
devStateIcon an:Sirene_2:aus aus:remotecontrol/black_btn_GREEN:an fail::aus
devStateStyle style="text-align:right"
genericDeviceType switch
group Hilferufe
room Alexa,Hilferufe,Statuszentrale
setList an aus fail
webCmd :
Internals:
AC /usr/bin/sox
NAME FB_SIP
NOTIFYDEV FhemT2S
NR 46
NTFY_ORDER 50-FB_SIP
STATE initialized
TYPE SIP
VERSION V1.54 / 07.04.17
READINGS:
2017-09-30 20:12:03 call done
2017-09-30 20:12:03 call_state ok
2017-09-30 20:12:03 call_success 1
2017-09-30 20:12:03 call_time 13
2017-09-30 22:20:53 state initialized
Attributes:
T2S_Device FhemT2S
audio_converter sox
devStateIcon initialized:it_telephone@black calling:phone_ring_out@black
devStateStyle style="text-align:right"
group SIP
icon it_telephone@black
room SIP
sip_dtmf_loop once
sip_dtmf_send audio
sip_dtmf_size 2
sip_elbc no
sip_from sip:123@fritz.box
sip_ip 1xx.xxx.xx.xx
sip_listen none
sip_port xxxx
sip_registrar fritz.box
sip_ringtime 10
sip_user 123
Internals:
NAME FB_SIP_Status
NR 152
STATE ok
TYPE dummy
READINGS:
2017-09-30 22:20:53 state ok
Attributes:
devStateStyle style="text-align:right"
room Hilferufe
Internals:
NAME Hilfe_ANZ
NR 155
STATE 0
TYPE dummy
READINGS:
2017-09-30 20:12:04 state 0
Attributes:
devStateStyle style="text-align:right"
room Hilferufe
Viele Grüße
Jürgen