FILTER=STATE vs. FILTER=state (nur state funktioniert)

Begonnen von heikoh81, 06 Januar 2017, 11:07:07

Vorheriges Thema - Nächstes Thema

heikoh81

Hallo zusammen,

ich verwende bei der Ansteuerung meiner Homematic-Rolladenaktoren seit >1 Jahr folgenden Befehl, um den Aktor nur dann zu betätigen, wenn er nicht schon die Zielposition erreicht hat:

set NAME=HomematicRolladenWohnzimmer:FILTER=STATE!=on on


Seit einem Update zwischen Weihnachten 2016 und Neujahr funktioniert das nicht mehr.
Zum einen sieht man im Log, dass der Befehl nochmal gesendet wird, auch wenn der Rolladen schon "on" ist, zum anderen höre ich den Aktor auch schalten.
Dies möchte ich nicht, auch um unnötige Schaltzyklen des Homematic-Relais zu vermeiden.

Experimentieren hat ergeben, dass folgender Befehl wieder korrekt funktioniert:

set NAME=HomematicRolladenWohnzimmer:FILTER=state!=on on


D.h. entscheidend ist offensichtlich die Groß-/Kleinschreibung von STATE/state.
Ich habe leider nie richtig verstanden, was der Unterschied ist.

Aber warum hat mein Befehl über lange Zeit korrekt funktioniert und seit dem Update nicht mehr?
Wurde da etwas geändert?

Viele Grüße,
Heiko

marvin78

Zum Unterschied: STATE ist das Internal STATE, welches per stateFormat durch den User anpassbar ist und state ist das Reading state, welches nur durch das Modul beschrieben werden sollte.

Ggf. liegt auch da dein Problem. Ohne lists von den Devices aber schwer zu beurteilen.

heikoh81

list:


Internals:
   DEF        2Axyz
   HMLAN1_MSGCNT 6
   HMLAN1_RAWMSG E2Axyz
   HMLAN1_RSSI -49
   HMLAN1_TIME 2017-01-06 09:27:05
   HMUSBRaspGarage_MSGCNT 5
   HMUSBRaspGarage_RAWMSG E2xyz
   HMUSBRaspGarage_RSSI -97
   HMUSBRaspGarage_TIME 2017-01-06 09:27:05
   IODev      HMLAN1
   LASTInputDev HMLAN1
   MSGCNT     11
   NAME       0_RWohnGross
   NOTIFYDEV  global
   NR         482
   NTFY_ORDER 50-0_RWohnGross
   STATE      offen
   TYPE       CUL_HM
   lastMsg    No:06 - t:10 s:2xyz
   protLastRcv 2017-01-06 09:27:05
   protSnd    6 last_at:2017-01-06 09:27:05
   protState  CMDs_done
   rssi_HMLAN1 max:-73 min:-74 avg:-73.66 lst:-74 cnt:3
   rssi_at_HMLAN1 cnt:6 lst:-49 avg:-49.83 min:-50 max:-49
   rssi_at_HMUSBRaspGarage cnt:5 min:-97 avg:-94 max:-92 lst:-97
   Readings:
     2017-01-06 09:27:01   CommandAccepted yes
     2014-09-21 20:08:02   D-firmware      2.3
     2014-09-21 20:08:02   D-serialNr      LEQ0xyz
     2015-12-25 19:49:44   PairedTo        0xxyz
     2014-09-21 19:40:44   R-driveDown     21 s
     2014-09-21 19:40:44   R-driveTurn     0.5 s
     2014-09-21 19:40:44   R-driveUp       22.3 s
     2014-09-21 19:46:09   R-pairCentral   0xxyz
     2014-09-21 19:46:10   R-sign          off
     2015-12-25 19:49:44   RegL_00.        02:01 xyz
     2015-12-25 19:49:57   RegL_01.        08:00 xyz
     2017-01-06 09:27:05   deviceMsg       on (to vccu)
     2017-01-06 09:27:05   level           100
     2017-01-06 09:27:05   motor           stop:on
     2017-01-06 09:27:05   pct             100
     2017-01-06 09:27:05   recentStateType info
     2014-09-21 19:58:48   running         -
     2017-01-06 09:27:05   state           on
     2017-01-06 09:27:05   timedOn         off
   Helper:
     HM_CMDNR   6
     cSnd       xyz
     dlvlCmd    ++A01xyz
     mId        006A
     rxType     1
     Ack:
     Dir:
       cur        stop
       rct        up
     Expert:
       def        1
       det        0
       raw        1
       tpl        0
     Io:
       newChn     +2A4988,00,00,00
       nextSend   1483691225.75446
       rxt        0
       vccu       vccu
       p:
         2A4988
         00
         00
         00
       prefIO:
         HMLAN1
     Mrssi:
       mNo        06
       Io:
         HMLAN1     -47
         HMUSBRaspGarage -97
     Prt:
       bErr       0
       sProc      0
       Rspwait:
     Q:
       qReqConf
       qReqStat
     Role:
       chn        1
       dev        1
       prs        1
     Rpt:
       IO         HMUSBRaspGarage
       flg        A
       ts         1483691225.36186
       ack:
         HASH(0x2e08640)
         068002200DB82A498800
     Rssi:
       Hmlan1:
         avg        -73.6666666666667
         cnt        3
         lst        -74
         max        -73
         min        -74
       At_hmlan1:
         avg        -49.8333333333333
         cnt        6
         lst        -49
         max        -49
         min        -50
       At_hmusbraspgarage:
         avg        -94
         cnt        5
         lst        -97
         max        -92
         min        -97
     Tmpl:
Attributes:
   IODev      HMLAN1
   IOgrp      vccu:HMLAN1
   autoReadReg 4_reqStatus
   devStateIcon offen:shutter_open geschlossen:shutter_closed
   eventMap   on:offen off:geschlossen
   expert     2_full
   firmware   2.3
   group      0_Wohnzimmer
   model      HM-LC-Bl1PBU-FM
   msgRepeat  15
   peerIDs    00000000,
   room       Rolladen
   serialNr   LEQ0xyz
   subType    blindActuator
   webCmd     stop:offen:90:80:70:60:50:40:30:20:10:geschlossen:off:statusRequest

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

marvin78


heikoh81

Ok, alles klar.
Ich vermute eine Änderung in CUL_HM nach einem Update,, weil auch die webcmd 100 und 0 nicht mehr funktioniert haben und ich on/off verwenden musste.
So kam dann vermutlich auch "offen/geschlossen" in den STATE, weil ich die eventMap auch anpassen musste...

Weil wenn ich sonst nix geändert habe, muss es ja durch das Update gekommen sein.
Never change a running system :-)

CoolTux

stop:offen:90:80:70:60:50:40:30:20:10:geschlossen:off:statusRequest

Daher kommt Dein offen geschlossen
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

heikoh81

Ja, aber ich hatte davor:

stop:offen:100:90:80:70:60:50:40:30:20:10:0:geschlossen:off:statusRequest

Und bei Klick auf 100 oder 0 hat nur jeder zweite Klick funktioniert.