Hauptmenü

syntax error - doch was?

Begonnen von kblc, 08 Dezember 2017, 21:46:22

Vorheriges Thema - Nächstes Thema

kblc

Ich habe mein FHEM System neu aufgesetzt. Leider habe ich ein kleines Problem. Beim programmieren folgenden Befehles, habe ich wohl einen Fehler gemacht. Dennoch finde ich den Lapsus nicht. Kann mir jemand einen Hinweis geben?

Folgendes Vorhaben:

Bei einem Anruf auf meine FritzBox möchte ich neben dem Telefonklingeln auch noch einen Sound über mein Homematic MP3 Gong hören. In meinem Fall, also wenn ich (Kai) mit meiner fiktiven Telefonnummer (0123456789) anrufe, soll File 044 am HM Gong ertönen. Das hat auch immer geklappt, aber wenn ich nun folgendes in das Eingabefeld eintrage:

define AnrufKai notify FritzBox:event.*ring {if(ReadingsVal("FritzBox","external_number","") eq "0123456789" ) set HM_2077A0_Mp3 playTone 044}

bekomme ich folgende Antwort:

syntax error at (eval 99033) line 1, near ") set HM_2077A0_Mp3 "
.

Hier ein list von HM_2077A0_Mp3: Internals:
   DEF        2077A002
   NAME       HM_2077A0_Mp3
   NOTIFYDEV  global
   NR         140
   STATE      off
   TYPE       CUL_HM
   chanNo     02
   device     HM_2077A0
   READINGS:
     2017-12-08 21:23:49   CommandAccepted yes
     2017-12-08 21:23:58   recentStateType info
     2017-12-08 21:23:58   state           off
   helper:
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     role:
       chn        1
Attributes:
   alias      MP3_Gong
   group      MP3-Gong
   model      HM-OU-CFM-PL
   peerIDs    00000000,
   room       2_6_Visuell und Auditiv
   webCmd     press short:press long:playTone replay



Wobei ich bin der Meinung, dass ich keinen Satzbaufehler drinnen habe.


Vielen Dank für jede Hilfe.


KBLc
SPS, Arduino, Controllino, Sensortechnik, Elektronik

Icinger

Du kannst auf Perl-Ebene --> innerhalb von {} nicht direkt FHEM-Befehle absetzen.

Die musst du kapseln:
define AnrufKai notify FritzBox:event.*ring {if(ReadingsVal("FritzBox","external_number","") eq "0123456789" ) {fhem("set HM_2077A0_Mp3 playTone 044"}}

Oder alternativ mit dem FHEM-IF:
define AnrufKai notify FritzBox:event.*ring IF ([FritzBox:external_number] eq "0123456789" ) (set HM_2077A0_Mp3 playTone 044)
lg, Stefan
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

Otto123

Hi,

einfaches Klammerproblem
{if(<Bedingung>){<Ausführung>}}

Edit: Stefan war schneller

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

kblc

Genial, das Wochenende ist gerettet. Da bastel ich schon seit 3 Tagen rum.

Vielen vielen Dank.

KBLc
SPS, Arduino, Controllino, Sensortechnik, Elektronik

Otto123

Da wärst Du in der Zeit hier http://perldoc.perl.org/index.html mit suchen und lesen schon weiter gekommen :)
Schönes WE
Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

kblc

Ja das stimmt. Danke für den Link. Das hört sich toll an.

Mein Problem ist es meist zu erkennen nach was ich suchen soll oder wo der Fehler ist. Danke für den Hinweis. Das mit dem Link merke ich mir für die Zukunft. Das werde ich mir mal durchlesen.   Danke

Schönen 2. Advent.

KBLc
SPS, Arduino, Controllino, Sensortechnik, Elektronik