FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: LaserBrenner am 05 Juli 2018, 10:28:13

Titel: Problem mit userReadings
Beitrag von: LaserBrenner am 05 Juli 2018, 10:28:13
Hallo,
für meine Rollladensteuerung (DUOFERN) und dessen Visualisierung in Tablet-UI habe ich ein userReadings angelegt.


attr DUOFERN_Arbeitszimmer userReadings statePosition{
if(ReadingsVal($name,"moving","0") eq "up" or ReadingsVal($name,"moving","0") eq "down")
{ReadingsVal($name,"moving",0)}
elseif(ReadingsVal($name,"state","0") eq "closed" or ReadingsVal($name,"state","0") eq "opened")
{ReadingsVal($name,"state",0)}
else {ReadingsVal($name,"position",0)}}


leider bekomme ich immer eine Fehlermeldung:
Error evaluating DUOFERN_Arbeitszimmer userReading statePosition: syntax error at (eval 10182) line 5, near ") {"

Habt Ihr einen Tip für mich?

gruß
Matthias
Titel: Antw:Problem mit userReadings
Beitrag von: MadMax-FHEM am 05 Juli 2018, 10:46:33
Ich hab's jetzt nicht im Detail durch aber was mir aufgefallen ist: elseif müsste in perl elsif lauten: https://perldoc.perl.org/functions/elseif.html

Vielleicht hilft das...

Ansonsten mal Klammern "zählen" (hab ich jetzt nicht aber sieht nicht so verkehrt aus)...

Gruß, Joachim
Titel: Antw:Problem mit userReadings
Beitrag von: LaserBrenner am 05 Juli 2018, 10:49:40
Danke für den Hinweiß
habe ich gleich geändert, aber nach wie vor die gleiche Fehlermeldung :-(
Titel: Antw:Problem mit userReadings
Beitrag von: LaserBrenner am 05 Juli 2018, 10:59:01
mmh,
ich habe das userReadings jetzt mal gelöscht und FHEM neu gestartet aber unter Readings ist statePosition immer noch mit der Fehlermeldung da?
In der FHEM.cfg steht auch nix mehr von der statePosition...

verstehe ich nicht
Titel: Antw:Problem mit userReadings
Beitrag von: Otto123 am 05 Juli 2018, 11:04:00
Readings werden nicht gelöscht -> deletereading
- aber in Zeile 4 ist nach der letzten Klammer  noch 1 Zeichen, die könnten stören

Gruß Otto
Titel: Antw:Problem mit userReadings
Beitrag von: LaserBrenner am 05 Juli 2018, 11:29:16
Danke, das Leerzeichen wird es gewesen sein.
Wie kann ich das Ergebnis des userReadings anschauen?
Titel: Antw:Problem mit userReadings
Beitrag von: Otto123 am 05 Juli 2018, 12:34:59
 ???
Im Reading?

Oder wie meinst Du das?
Titel: Antw:Problem mit userReadings
Beitrag von: LaserBrenner am 05 Juli 2018, 13:07:06
Mein gesetztes userReading mit der If Anweisung wird mir nicht in der Übersicht Readings angezeigt, hätte jetzt erwartet das der Rückgabewert der IF Anweisung hier mit gelistet ist.
Wo kann ich den das Ergebnis anschauen? in der log Datei des device habe ich auch nix gefunden....

gruß
Titel: Antw:Problem mit userReadings
Beitrag von: Otto123 am 05 Juli 2018, 13:49:09
ZitatDiese benutzerdefinierte Readings werden bei jeder Aktualisierung der Gerätereadings gesetzt, indem das spezifizierte perl code { <perl code> } ausgeführt wird, und dessen Wert dem Reading zugewiesen wird.

Wenn dein Gerät DUOFERN_Arbeitszimmer seine Readings aktualisiert sollte auch das Userreading aktualisiert werden.

mach mal ein list DUOFERN_Arbeitszimmer

Gruß Otto
Titel: Antw:Problem mit userReadings
Beitrag von: LaserBrenner am 05 Juli 2018, 15:09:27
Internals:
   CODE       61F129
   DEF        61F129
   IODev      Rademacher
   LASTInputDev Rademacher
   MODEL      RolloTron Comfort Master
   MSGCNT     40
   NAME       DUOFERN_Arbeitszimmer
   NR         38
   Rademacher_MSGCNT 40
   Rademacher_RAWMSG 0FFF0F21010050000000410014000461F129FFFFFF01
   Rademacher_TIME 2018-07-05 11:55:14
   STATE      opened
   SUBTYPE    RolloTron Comfort Master
   TYPE       DUOFERN
   OLDREADINGS:
   READINGS:
     2018-07-05 11:55:14   dawnAutomatic   off
     2018-07-05 11:55:14   duskAutomatic   off
     2018-07-05 11:55:14   manualMode      off
     2018-07-05 11:55:14   moving          stop
     2018-07-05 11:55:14   position        0
     2018-07-05 11:55:14   state           opened
     2018-07-05 11:55:14   sunAutomatic    off
     2018-07-05 11:55:14   sunMode         off
     2018-07-05 11:55:14   sunPosition     65
     2018-07-05 11:55:14   timeAutomatic   on
     2018-07-05 11:55:14   ventilatingMode off
     2018-07-05 11:55:14   ventilatingPosition 80
     2018-07-05 11:55:14   version         1.4
   helper:
Attributes:
   IODev      Rademacher
   room       DUOFERN
   userReadings statePosition{
if(ReadingsVal($name,"moving","0") eq "up" or ReadingsVal($name,"moving","0") eq "down")
{ReadingsVal($name,"moving",0)}
elsif(ReadingsVal($name,"state","0") eq "closed" or ReadingsVal($name,"state","0") eq "opened")
{ReadingsVal($name,"state",0)}
else {ReadingsVal($name,"position",0)}}


Leider kein Rückgabe wert des userReadings .-(
Titel: Antw:Problem mit userReadings
Beitrag von: Otto123 am 05 Juli 2018, 15:28:50
Ich weiß es auch nicht, sieht eigentlich gut aus. Probier doch einfach erstmal ein kleines Stück.
test {ReadingsVal($name,"state","0")}

Gruß Otto
Titel: Antw:Problem mit userReadings
Beitrag von: LaserBrenner am 05 Juli 2018, 15:39:17
Internals:
   CODE       61F129
   DEF        61F129
   IODev      Rademacher
   LASTInputDev Rademacher
   MODEL      RolloTron Comfort Master
   MSGCNT     42
   NAME       DUOFERN_Arbeitszimmer
   NR         38
   Rademacher_MSGCNT 42
   Rademacher_RAWMSG 0FFF0F21010050000000410414000461F129FFFFFF01
   Rademacher_TIME 2018-07-05 15:38:18
   STATE      4
   SUBTYPE    RolloTron Comfort Master
   TYPE       DUOFERN
   OLDREADINGS:
   READINGS:
     2018-07-05 15:38:18   dawnAutomatic   off
     2018-07-05 15:38:18   duskAutomatic   off
     2018-07-05 15:38:18   manualMode      off
     2018-07-05 15:38:18   moving          stop
     2018-07-05 15:38:18   position        4
     2018-07-05 15:38:18   state           4
     2018-07-05 15:38:18   sunAutomatic    off
     2018-07-05 15:38:18   sunMode         off
     2018-07-05 15:38:18   sunPosition     65
     2018-07-05 15:38:18   test            4
     2018-07-05 15:38:18   timeAutomatic   on
     2018-07-05 15:38:18   ventilatingMode off
     2018-07-05 15:38:18   ventilatingPosition 80
     2018-07-05 15:38:18   version         1.4
   helper:
Attributes:
   IODev      Rademacher
   room       DUOFERN
   userReadings test {ReadingsVal($name,"state","0")}


das geht!
Titel: Antw:Problem mit userReadings
Beitrag von: Otto123 am 05 Juli 2018, 15:42:55
Na dann taste Dich mal Stück für Stück vorwärts. Ich vermute Dein ursprünglicher Code wird zwar fehlerfrei ausgeführt, aber ohne Ergebnis.  ;)
Titel: Antw:Problem mit userReadings
Beitrag von: LaserBrenner am 05 Juli 2018, 15:45:24
mit der Variablen test geht es.
Kann es sein das statePosition irgendwo anders verwendet wird?