Hauptmenü

If-Abfrage im notify

Begonnen von juemuc, 30 September 2017, 20:17:17

Vorheriges Thema - Nächstes Thema

juemuc

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
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

CoolTux

Die Bedingungsabfrage wird mehrfach ausgeführt weil Dein notify mehrfach getriggert wird.
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

juemuc

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
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

CoolTux

Keine Ahnung. So sehe ich nichts. Mach mal bitte ein list vom notify und den involvierten Devices
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

juemuc

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
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).