[gelöst] syntax error - und ich weiß nicht wo der Fehler herkommt (EOF-Error)

Begonnen von FHEm2005, 10 Dezember 2016, 08:57:46

Vorheriges Thema - Nächstes Thema

FHEm2005

Hallo,
seit einiger Zeit wird das FHEM-Log von einer Fehlermeldung zugemüllt:
2016.12.10 08:44:53 2: syntax error at (eval 47158) line 2, at EOF
Die Fehlermeldungen treten in 13er Gruppen auf also 13,26 und 39. Jetzt habe ich die ReadingsGroups, die 13 Positionen haben, disabled. Ich hatte die Hoffnung, dass damit der Fehler weg ist. Leider Fehlanzeige.
Da keine Herkunft enthalten ist, gestaltet sich die Suche für mich sehr schwierig.

Hat jemand einen Tipp für mich, wo ich suchen könnte. Ich habe extra nicht die komplette config angehängt, sondern wollte erst einmal abwarten.

Gruß Eberhard

[Lösung des Problems: EOF deutet lt. Dietmar63 auf fehlende Klammersetzung hin. Eine if...elsif Bedingung in Kruzform mit fehlerhaften Klammern wurde durch die Langform mit richtiger Klammersetzung ersetzt. ]
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN

MadMax-FHEM

Hi Eberhard,

habe jetzt nicht direkt die Lösung parat aber mit "attr global stacktrace 1" ( http://fhem.de/commandref_DE.html#global ) siehst du (und wir) mehr.

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)

FHEm2005

Hallo Joachim,

zwischenzeitlich hatte ich alle Definitionen ReadingsGroup gelöscht und "scheibchenweise" wieder eingefügt, bis der Fehler auftrat. Der Fehler liegt offensichtlich in diesem Attribut:

{($READING eq "temperature" || $READING eq "humidity" )? 'style="text-align:right;color:royalblue"' :  ($READING eq "absFeuchte" ) ? 'style="font-size:15px;font-weight:bold;text-align:left"'}

nach einen restart sieht das Log wie folgt aus:

2016.12.10 12:39:17 0: Server shutdown
2016.12.10 12:39:20 1: Including fhem.cfg
2016.12.10 12:39:20 3: telnetPort: port 7072 opened
2016.12.10 12:39:21 3: WEB: port 8083 opened
2016.12.10 12:39:21 3: WEBphone: port 8084 opened
2016.12.10 12:39:21 3: WEBtablet: port 8085 opened
2016.12.10 12:39:21 2: eventTypes: loaded 1144 events from ./log/eventTypes.txt
2016.12.10 12:39:21 3: Opening CUL1 device /dev/serial/by-id/usb-busware.de_CUL868-if00
2016.12.10 12:39:21 3: Setting CUL1 serial parameters to 38400,8,N,1
2016.12.10 12:39:21 3: CUL1: Possible commands: BbCFiAZEGMKUYRTVWXefmltux
2016.12.10 12:39:21 3: CUL1 device opened
2016.12.10 12:39:22 2: Switched CUL1 rfmode to HomeMatic
2016.12.10 12:39:22 3: Opening nanoCUL device /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A900HL6H-if00-port0
2016.12.10 12:39:22 3: Setting nanoCUL serial parameters to 38400,8,N,1
2016.12.10 12:39:25 3: nanoCUL: Possible commands: BCFiAGMKUYRTVWXefLltx
2016.12.10 12:39:25 3: nanoCUL device opened
2016.12.10 12:39:26 3: ESP_083382: Defined with URL http://192.168.2.29/ and interval 60
2016.12.10 12:39:27 3: HUEDevice1: I/O device is HUE
2016.12.10 12:39:27 3: HUEDevice2: I/O device is HUE
2016.12.10 12:39:27 3: HUEDevice3: I/O device is HUE
2016.12.10 12:39:27 3: HUEGroup0: I/O device is HUE
2016.12.10 12:39:27 3: HUEGroup2: I/O device is HUE
2016.12.10 12:39:29 1: Including ./log/fhem.save
2016.12.10 12:39:29 3: Device Hzg_Bad added to ActionDetector with 000:60 time
2016.12.10 12:39:30 3: Device Hzg_Bu1 added to ActionDetector with 000:30 time
2016.12.10 12:39:30 3: Device Hzg_Bu2 added to ActionDetector with 000:30 time
2016.12.10 12:39:30 3: Device Hzg_GzB added to ActionDetector with 000:10 time
2016.12.10 12:39:30 3: Device Hzg_GzR added to ActionDetector with 000:10 time
2016.12.10 12:39:30 3: Device Hzg_Ku added to ActionDetector with 000:60 time
2016.12.10 12:39:30 3: Device Hzg_Sz added to ActionDetector with 000:10 time
2016.12.10 12:39:30 3: Device Hzg_Wz1 added to ActionDetector with 000:10 time
2016.12.10 12:39:30 3: Device Hzg_Wz2 added to ActionDetector with 000:60 time
2016.12.10 12:39:30 3: Device Hzg_Wz3 added to ActionDetector with 000:60 time
2016.12.10 12:39:30 3: Device Li_Ez_Fenster added to ActionDetector with 000:10 time
2016.12.10 12:39:30 3: Device Li_Wz_Sideboard added to ActionDetector with 000:30 time
2016.12.10 12:39:30 3: Device Th_Bad added to ActionDetector with 000:10 time
2016.12.10 12:39:30 3: Device Th_Bu added to ActionDetector with 000:10 time
2016.12.10 12:39:31 3: Device Th_Ku added to ActionDetector with 000:10 time
2016.12.10 12:39:31 3: Device Th_Sz added to ActionDetector with 000:10 time
2016.12.10 12:39:31 3: Device Th_Wz_Ez added to ActionDetector with 000:10 time
2016.12.10 12:39:31 1: usb create starting
2016.12.10 12:39:32 3: Probing CUL device /dev/ttyAMA0
2016.12.10 12:39:32 3: Probing TCM_ESP3 device /dev/ttyAMA0
2016.12.10 12:39:32 3: Probing FRM device /dev/ttyAMA0
2016.12.10 12:39:37 1: usb create end
2016.12.10 12:39:37 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no associated allowed device with basicAuth. telnetPort has no associated allowed device with password/globalpassword.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2016.12.10 12:39:37 0: Featurelevel: 5.7
2016.12.10 12:39:37 0: Server started with 166 defined entities (fhem.pl:12680/2016-11-28 perl:5.020002 os:linux user:fhem pid:1142)
2016.12.10 12:39:37 5: rg_Klima: not on any display, ignoring notify
2016.12.10 12:39:38 5: rg_Klima: not on any display, ignoring notify
2016.12.10 12:39:41 5: rg_Klima: not on any display, ignoring notify
2016.12.10 12:39:54 5: rg_Klima: not on any display, ignoring notify
.
.
53 weitere gleiche Meldungen
.
.
2016.12.10 12:50:27 5: rg_Klima: not on any display, ignoring notify
2016.12.10 12:50:39 5: rg_Klima: not on any display, ignoring notify
2016.12.10 12:50:43 2: syntax error at (eval 763) line 1, at EOF

2016.12.10 12:50:43 2: syntax error at (eval 764) line 1, at EOF

2016.12.10 12:50:43 2: syntax error at (eval 765) line 1, at EOF

2016.12.10 12:50:43 2: syntax error at (eval 766) line 1, at EOF

2016.12.10 12:50:43 2: syntax error at (eval 767) line 1, at EOF

....  usw.


Ich kann keinen Fehler finden und muss passen. Notfalls werfe ich das attr weg...  :-\

Gruß
Eberhard
Gruß Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN

Dietmar63

Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

MadMax-FHEM

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)

FHEm2005

Zitat von: Dietmar63 am 10 Dezember 2016, 14:18:05
EOF Bedeuten immer zu wenig Klammern

Das war der durchgreifende Hinweis!! Danke Dietmar63.

da ich nicht so wirklich die fehlenden Klammern entdecken kann, habe ich die if....elsif Kurzform einfach aufgelöst. Nun ist aus der fehlerhaften Bedingung  :

attr rg_Klima valueStyle {
if ($READING eq "temperature" || $READING eq "humidity" || $READING eq "measured-temp")
{'style="text-align:right;color:royalblue"'}
elsif
($READING eq "absFeuchte" )
{'style="font-size:15px;font-weight:bold;text-align:center"'}
}


geworden und funktioniert auch erwartungsgemäß ohne Fehlermeldungen. Trotzdem würde mich eine fehlerfreie Kurzform interessieren.

Viele(n) Grüße und Dank
Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN

Erdnuss

Hallo,
ich bin nun über genau die gleiche Meldung 'gestolpert'.

Die Kurzform der if...else Anweisung benötigt zwei Bedingungs-Operatoren.

In dem Beispiel:
"{($READING eq "temperature" || $READING eq "humidity" )? 'style="text-align:right;color:royalblue"' :  ($READING eq "absFeuchte" ) ? 'style="font-size:15px;font-weight:bold;text-align:left"'}"

fehlt somit ein abschließender Bedinguns-Operator else ':'.

"{($READING eq "temperature" || $READING eq "humidity" )
    if     ? 'style="text-align:right;color:royalblue"'
  else   :  ($READING eq "absFeuchte" )
    if       ? 'style="font-size:15px;font-weight:bold;text-align:left"'}"

Mit dem Fragezeichen '?' wird der Teil ausgeführt wenn die Bedingung 'wahr' ist und mit dem Doppelpunkt ':' der Alternativ-Teil 'else'.
Die Klammerschreibweise erlaubt es auf den 'else' Teil zu verzichten.

Gruß, Reiner