Wiki-Artikel zu "Dimmer" - Fehlermeldung nur bei "dimdown"

Begonnen von Bronze, 27 September 2026, 16:57:18

Vorheriges Thema - Nächstes Thema

Bronze

Hallo,
habe Dimmer versucht auf meine Installation zu übertragen.
Habe nur 3 GA, die Rückmeldung für EinAus fehlt.

Das Listing sieht so aus:
Internals:
   CFGFN     
   DEF        2/1/10:dpt1:EinAus:set:nosuffix\
2/1/12:dpt5.001:Dimmen:set:nosuffix\
2/1/11:dpt5.001:DimmStatus:listenonly:nosuffix
   FUUID      6ab91f2a-f33f-4950-47a0-1338afa314ada57f
   IODev      myKNXGW
   LASTInputDev myKNXGW
   MSGCNT     22
   NAME       Dimmer
   NR         306
   STATE      50 %
   TYPE       KNX
   eventCount 48
   model      dpt1
   myKNXGW_MSGCNT 22
   myKNXGW_TIME 2026-09-27 16:45:28
   GADDETAILS:
     DimmStatus:
       CODE       0210b
       MODEL      dpt5.001
       NO         3
       OPTION     listenonly
       RDNAMEGET  DimmStatus
       RDNAMESET  DimmStatus
       SETLIST    :slider,0,1,100
     Dimmen:
       CODE       0210c
       MODEL      dpt5.001
       NO         2
       OPTION     set
       RDNAMEGET  Dimmen
       RDNAMESET  Dimmen
       SETLIST    :slider,0,1,100
     EinAus:
       CODE       0210a
       MODEL      dpt1
       NO         1
       OPTION     set
       RDNAMEGET  EinAus
       RDNAMESET  EinAus
       SETLIST    :on,off,toggle
   GADTABLE:
     0210a      EinAus
     0210b      DimmStatus
     0210c      Dimmen
   Helper:
     DBLOG:
       Dimmen:
         LOG_fhemdb:
           TIME       1790520328.36021
           VALUE      50
       EinAus:
         LOG_fhemdb:
           TIME       1790517771.34129
           VALUE      on
       EinAus-set:
         LOG_fhemdb:
           TIME       1790519974.59722
           VALUE      off
       last-sender:
         LOG_fhemdb:
           TIME       1790520328.36021
           VALUE      1.1.33
       state:
         LOG_fhemdb:
           TIME       1790520328.36021
           VALUE      50
   OLDREADINGS:
   READINGS:
     2026-09-27 16:45:28   Dimmen          50 %
     2026-09-27 16:43:01   IODev           myKNXGW
     2026-09-27 16:45:28   last-sender     1.1.33
     2026-09-27 16:45:28   state           50 %
Attributes:
   devStateIcon off:li_wht_off:on on:li_wht_on:off 0.*:li_wht_off:on \d+.*:li_wht_on:off
   eventMap   {
usr=>
{
'^dimup'=>
'" . sprintf("Dimmen %d",
minNum(100,ReadingsNum($NAME,"Dimmen",0) + 10))
. "', \
'^dimdown'=>
'" . sprintf("Dimmen %d",
maxNum(0,ReadingsNum($NAME,"Dimmen",0) - 10))
.  "'
}, \
fw=>{'^dimup'=> 'dimup', '^dimdown'=> 'dimdown'} 
}
   stateCmd   { if ($gadName eq 'DimmStatus')
{\
    fhem ("sleep 0.05 quiet;;setreading $name Dimmen $state;;");; \
  }\
  elsif ($gadName eq 'EinAus') {\
    my $val = ($state eq 'on')?'100':'0';;\
    fhem ("sleep 0.05 quiet;;setreading $name Dimmen $val;;");;\
  }\
  return $state;;\
}
   webCmd     :dimup:dimdown:Dimmen
   widgetOverride Dimmen@set:slider,0,5,100

Es funktioniert soweit, nur das Kommando "dimdown" verursacht jedes Mal folgenden Fehler:
invalid cmd: "set Dimmer EinAus dimdown" issued - ignored
dimup funktioniert bis zum Grenzwert 100%.

Weiterhin habe ich noch folgende Frage:
Das Reading EinAus wird nicht angezeigt.
Ich bräuchte aber ein zuverlässiges Reading, das den Zustand der Leuchte anzeigt - mangels Rückmelde-GA - wie kann man das bitte noch einbauen?

Besten Dank vorab für die Unterstützung!

Bronze

Nach ein paar weiteren Syntax-Versuchen bekomme ich nun folgende Fehlermeldung im state:


IF: no left bracket: {\ fhem ("sleep 0.05 quiet;setreading Dimmer Dimmen 65 %;"); \ }\ elsif (Dimmen eq 'EinAus') {\ my $val = (65 % eq 'on')?'100':'0';\ fhem ("sleep 0.05 quiet;setreading Dimmer Dimmen $val;");\ }\ return 65 %;\}

Da ich meine, den Code richtig kopiert zu haben, suche ich verzweifelt den wohl vorliegenden Syntax-Fehler.

RalfRog

Inhaltlich kann ich da nicht viel zu sagen, aber wenn ich auf dem Smartphone richtig gezählt habe:
2 mal {
3 mal }
Also fehlt wie die Meldung besagt eine "left bracket"  ;)
FHEM VM Debian13 (trixie) auf Proxmox VE9  (Futro S740) - nanoCUL, HM-MOD-RPI-PCB und MAX!Cube über LAN
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder sowie Shelly 3EM, 1PM, PlugS und IT Schaltsteckdosen

erwin

Hi,
da ist wieder das leidige Thema doppelte Strichpunkte braucht man / braucht man nicht, jenachdem wie man die Beispiele in die eigene config übernimmt. Siehe auch das zitierte Wiki, letzter Absatz!

Vorschlag für statecmd Attr:
ausgehend vom detail-view auf attr statformat clicken und mit c&p folgendes übernehmen:
{ if ($gadName eq 'DimmStatus') {
    fhem ("sleep 0.05 quiet;setreading $name Dimmen $state;");
  }
  elsif ($gadName eq 'EinAus') {
    my $val = ($state eq 'on')?'100':'0';
    fhem ("sleep 0.05 quiet;setreading $name Dimmen $val;");
  }
  return $state;
}
Dimmstatus wir hier nur dazu benutzt, falls jemand von einem externen KNX-Taster "dimmt", diesen wert auf den slider zu mappen.

Änliche Vorgangsweise für eventmap - darauf achten, dass keine doppelten Strichpunkte und keine backslash (\) vorkommen!
sorry für die späte Antwort, ich war auf Offline-Urlaub  ;D
l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Bronze

Vielen Dank.

Ursächlich war tatsächlich im eventMap ein Backslash vor dimdown, was dann auch das unterschiedliche Verhalten dimup / dimdown erklärte.

Jetzt habe ich eine prima Vorlage für alle Leuchten.