Hauptmenü

Problem mit userReadings

Begonnen von LaserBrenner, 05 Juli 2018, 10:28:13

Vorheriges Thema - Nächstes Thema

LaserBrenner

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

MadMax-FHEM

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
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)

LaserBrenner

Danke für den Hinweiß
habe ich gleich geändert, aber nach wie vor die gleiche Fehlermeldung :-(

LaserBrenner

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

Otto123

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
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

LaserBrenner

Danke, das Leerzeichen wird es gewesen sein.
Wie kann ich das Ergebnis des userReadings anschauen?

Otto123

 ???
Im Reading?

Oder wie meinst Du das?
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

LaserBrenner

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ß

Otto123

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
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

LaserBrenner

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 .-(

Otto123

Ich weiß es auch nicht, sieht eigentlich gut aus. Probier doch einfach erstmal ein kleines Stück.
test {ReadingsVal($name,"state","0")}

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

LaserBrenner

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!

Otto123

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.  ;)
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

LaserBrenner

mit der Variablen test geht es.
Kann es sein das statePosition irgendwo anders verwendet wird?