actCycle bei Schaltaktoren

Begonnen von theophilou85, 14 Februar 2018, 21:00:52

Vorheriges Thema - Nächstes Thema

theophilou85

Hallo

Ich nutze "actCycle" um bei meinen Homematicgeräten eine alive-Abfrage durchzuführen. Bei den meisten Geräten wie Thermostaten, Bewegungsmelder etc. klappt das auch problemlos. Nur bei zwei HM-LC-Sw2PBU-FM und HM-LC-SW4-BA-PCB bekomme ich immer wieder "dead". Bei allen 3 Geräten war actcycle defaultmäßig auch nicht in der fhem.cfg und ich musste das Attribut manuell adden. Hier ein Beispiel eines der 3 Geräte und alle 3 Logs:

define ins00 CUL_HM 2FF75C
attr ins00 IODev scc00
attr ins00 actCycle 001:00


2018-02-13_10:09:46 ins00 Activity: alive
2018-02-13_11:09:47 ins00 Activity: dead
2018-02-13_23:00:00 ins00 CMDs_pending
2018-02-13_23:00:00 ins00 battery: ok
2018-02-13_23:00:00 ins00 CMDs_done
2018-02-13_23:09:48 ins00 Activity: alive
2018-02-14_00:09:48 ins00 Activity: dead
2018-02-14_10:00:00 ins00 CMDs_pending
2018-02-14_10:00:00 ins00 battery: ok
2018-02-14_10:00:00 ins00 CMDs_done
2018-02-14_10:09:49 ins00 Activity: alive
2018-02-14_11:09:49 ins00 Activity: dead


2018-02-12_23:09:57 swt07 CMDs_done
2018-02-12_23:19:46 swt07 Activity: alive
2018-02-13_00:19:46 swt07 Activity: dead
2018-02-14_00:46:10 swt07 CMDs_pending
2018-02-14_00:46:10 swt07 CMDs_done
2018-02-14_00:46:13 swt07 CMDs_done
2018-02-14_00:49:48 swt07 Activity: alive
2018-02-14_01:49:48 swt07 Activity: dead
2018-02-14_03:13:13 swt07 CMDs_pending
2018-02-14_03:13:13 swt07 CMDs_done
2018-02-14_03:13:15 swt07 CMDs_done
2018-02-14_03:19:48 swt07 Activity: alive
2018-02-14_04:19:48 swt07 Activity: dead


2018-02-13_18:36:41 swt08 CMDs_done
2018-02-13_18:39:47 swt08 Activity: alive
2018-02-13_19:39:47 swt08 Activity: dead
2018-02-14_16:43:05 swt08 CMDs_done
2018-02-14_16:43:07 swt08 CMDs_done
2018-02-14_16:49:49 swt08 Activity: alive
2018-02-14_17:49:49 swt08 Activity: dead
2018-02-14_17:53:58 swt08 CMDs_done
2018-02-14_17:53:58 swt08 CMDs_done
2018-02-14_17:59:49 swt08 Activity: alive
2018-02-14_18:59:49 swt08 Activity: dead
2018-02-14_20:31:29 swt08 CMDs_done
2018-02-14_20:31:29 swt08 CMDs_done
2018-02-14_20:39:50 swt08 Activity: alive


Was mache ich falsch, dass der immer wieder mal mit "dead" kommt? Alle 3 Geräte hängen an einer kontinuierlichen Stromversorgung.



frank

du hast den actiondetector wohl nicht verstanden.
er schaltet auf dead, wenn seit der letzten message 1 std (actCycle) nichts zu hören ist.

von alleine meldet sich der aktor nicht.

also: 1.  öfter schalten, oder 2. cycle verlängern, oder 3. zusätzlich das attr actionAutoTry beim actiondetector setzen.

ich nutze 24std cycle plus actionAutoTry.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

theophilou85

#2
Hi Frank

Danke für die schnelle Antwort. Und wie bekomme ich es gebacken, dass sich diese 3 Geräte in regelmäßigen Intervallen von alleine melden?

1.) Öfter Schalten, geht nicht. z.B: ne Lampe wird einige Tage nicht gebraucht
2.) actcycle erhöhen, geht. Melden sich denn Schaltaktoren die an 230V hängen überhaupt irgendwann, wenn sie nicht betätigt werden?
3.) actionAutoTry habe ich im Netz gar nichts gefunden. Schreibweise richtig?

Gruß

frank

attr actAutoTry => actionDetector.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

theophilou85

Danke. Hab ich mal aktiviert. Was ich jetzt aber noch nicht überlauert habe: actCycle kann man am Gerät oder auch am Actiondetector als Attribut setzen.

Am Gerät macht es meiner Meinung nach Sinn, da es ja unterschiedliche Zyklen gibt, bei denen sich die unterschiedlichen Geräte automatisch(?) melden. Aber wozu ist das Attribut am Actiondetector? Ist es der Defaultwert, wenn bei einem Gerät nicht spezifisches angegeben ist?

martinp876

Sollte im cmdref stehen. Der action detector pollt zyklisch. Das stellst du dort ein. Am device stellst du ein wie lange es schlafen darf. Komplett unterschiedlich.

theophilou85

#6
Ich habe mir die commandref und folgenden Thread (https://forum.fhem.de/index.php/topic,10465.15.html) einmal durchgelesen, bin mir aber nicht sicher alles verstanden zu haben und versuche es einmal mit eigenen Worten zu verfassen:

Der Actiondetector hat die Aufgabe zu überprüfen ob sich Geräte in einer gewissen Zeit melden (ähnlich nem watchdog). Diese Zeit wird am Gerät(!) über das Attribut actcycle eingestellt, sprich: attr Lampe actcycle 001:00 = Wenn sich die Lampe nicht innerhalb von einer Stunde meldet, wird sie als dead markiert.
Als Meldung versteht man jegliche Aktivität zwischen FHEM und der Lampe.
Der Actiondetector wacht allerdings nicht auf und sagt "Hey Lampe melde dich" und die Lampe erwidert mit "Mir geht es eh gut", sondern, er schaut lediglich ob im Zeitraum actcycle Funkverkehr zwischen FHEM und Lampe stattgefunden hat.
Außer man setzt "actAutoTry 1_on" am Actiondetector selbst und erlaubt ihm damit ein "Hey Lampe melde dich" zu senden.
Das actcycle am Actiondetector selbst kann man als Defaultwert verstehen, wenn am Gerät nicht ein anderer Wert gesetzt wurde. Hat der actiondetector also ein actcycle 000:30 und die Lampe kein actcycle, wird für die Lampe einfach 30 Minuten angenommen. Hat sie selbst ein actcycle gilt ihr eigenes.
Soweit so richtig?

Wenn dem so ist, verstehe ich aber ein Verhalten nicht.
Actiondetector:
define mon_hm CUL_HM 000000
attr mon_hm actAutoTry 1_on
attr mon_hm alias Homematic

Kein actcycle gesetzt!

Bewegungsmelder:
define mod00 CUL_HM 4E5F6A
attr mod00 IODev scc00
attr mod00 actCycle 001:00


2018-04-29_17:54:34 mod00 Activity: dead
2018-04-29_19:20:26 mod00 battery: ok
2018-04-29_19:20:26 mod00 CMDs_done
2018-04-29_19:21:04 mod00 battery: ok
2018-04-29_19:21:04 mod00 CMDs_done
2018-04-29_19:24:34 mod00 Activity: alive
2018-04-29_20:24:34 mod00 Activity: dead
2018-04-29_20:54:41 mod00 battery: ok
2018-04-29_20:54:41 mod00 CMDs_done
2018-04-29_20:58:44 mod00 battery: ok
2018-04-29_20:58:44 mod00 CMDs_done
2018-04-29_21:04:35 mod00 Activity: alive
2018-04-29_22:04:35 mod00 Activity: dead


Müsste auf Grund des actautotry der actiondetector nicht nach Ablauf der stunde ein status_request senden, eine Antwort bekommen und das Gerät nie auf "dead" setzen?

LuckyDay

das

actAutoTry

musst du an dem entsprechendem device setzten, das sich nicht selber zyklisch meldet.
so hatte ich es damals verstanden

frank

ZitatMüsste auf Grund des actautotry der actiondetector nicht nach Ablauf der stunde ein status_request senden, eine Antwort bekommen und das Gerät nie auf "dead" setzen?
genau so funktioniert es bei mir.

ist dein fhem aktuell?
poste ein list vom device.
was steht in fhem.log, wenn auf dead gesetzt wird (vorher und nachher)?

actautotry wird im actiondetector gesetzt.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

theophilou85

File    Rev   Last Change

fhem.pl 16609 2018-04-13 19:53:08Z rudolfkoenig

fhemweb.js                 16546 2018-04-03 19:51:36Z rudolfkoenig


Internals:
   DEF        4E5F6A
   IODev      scc00
   NAME       mod00
   NOTIFYDEV  global
   NR         334
   NTFY_ORDER 50-mod00
   STATE      noMotion
   TYPE       CUL_HM
   channel_01 mod00_btn00
   channel_02 mod00_btn01
   channel_03 mod00_det
   READINGS:
     2018-05-07 00:57:02   Activity        unknown
     2018-02-08 23:00:57   CommandAccepted yes
     2018-04-21 13:50:09   D-firmware      1.2
     2018-04-21 13:50:09   D-serialNr      NEQ0964139
     2018-02-08 20:13:16   PairedTo        0x000001
     2018-02-07 02:15:45   R-pairCentral   0x000001
     2018-05-06 21:59:18   battery         ok
     2018-04-21 13:50:08   brightness      134
     2018-04-21 13:50:08   cover           closed
     2018-05-07 00:57:34   motion          off
     2018-04-21 13:50:08   powerOn         2018-04-21 13:50:08
     2018-04-21 13:50:08   recentStateType info
     2018-05-07 00:57:34   state           noMotion
   helper:
     HM_CMDNR   16
     mId        00DB
     regLst     ,0
     rxType     28
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       newChn     +4E5F6A,00,00,00
       prefIO     
       rxt        2
       vccu       
       p:
         4E5F6A
         00
         00
         00
     mRssi:
       mNo       
     prt:
       bErr       0
       sProc      0
     q:
       qReqConf   00
       qReqStat   
     role:
       dev        1
Attributes:
   IODev      scc00
   actCycle   001:00
   actStatus  unknown
   alias      Motion Detector
   autoReadReg 4_reqStatus
   expert     2_raw
   firmware   1.1
   group      [Homematic] Motion Detectors
   model      HM-Sen-MDIR-WM55
   room       Sensors
   serialNr   NEQ0964139
   subType    motionAndBtn
   webCmd     getConfig:clear msgEvents


Im Fhem.log steht nichts was mit dem Device im Zusammenhang steht.

Actautotry habe ich im Actiondetector.


martinp876

Einige hm devices melden sich zyklisch. Kann man manchmal einschalten, die periode aber nicht aendern. Primaer ueberwacht der actdet , dass dies passiert. Die zeiten werden am device automatisch eingetragen.
Der actdet wacht periodisch auf (actcycle am actdet) und schaut alle devices durch. Das ist der Performance geschuldet. Es handelt sich hier immerhin um sehr langsame aktionen und auch die user reaktion ist träge ( fahre nach hause und wechsle die batterie....)
Mit einem set actdet update kann man die Prüfung zwischendurch triggern.
Als aktion wird natuerlich nicht alles zwischen fhem und dem device gesehen(seltsam). Geprüft wird ob das Device eine msg gesendet hat. Egal an wen.

Das ganze wurde erweitert auf andere devices. Hier stellt man den zyklus selbst ein. Bsp. Ist ein wandtaster welcher keine zyklische msg sendet. Ich stelle nun ein, dass ich alle 2tage eine msg sehen will. Nun muss ich sicher stellen, dass auch jemand min alke 2 tage einmal schaltet.
Next: nun habe ich devices welche ich ansprechen kann (status req). Sollten dich diese nicht in der vorgegebenen zeit melden wird ein statusreq geschickt. Kommt keine Antwort ist es tot.

frank

hier handelt es sich ja um einen wakeup sensor.
richtig konfiguriert und guter funk vorausgesetzt sollte sich der sensor alle 6 min selbst melden. das brightness reading ist allerdings schon sehr alt, scheinbar von der inbetriebnahme. schau mal hier https://homematic-forum.de/forum/viewtopic.php?f=27&t=29965&start=10

actautotry macht bei diesem device eigentlich keinen sinn, da ein statusrequest erst gesendet werden kann, wenn der sensor aufwacht und sich meldet.

in deinem list fehlen auch rssi infos und protokoll infos.
ist hminfo configcheck sauber?
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

martinp876

Zur komplettierung:
Actautotry schadet auch nichts ( hilft auch nicht, ok). Unterstützt das device kein statusrequest wird auch kein kommando geschickt. Will sagen: der anwender kann keinen fehler machen und das system belasten.

Bei manchen devices kann man das zyklische senden abschalten. Ggf. Register prüfen.
Auch einfach einmal sniffen und beobachten, dass die msgs auch kommen.

theophilou85

HmInfo hatte ich bisher nicht implementiert. Habe ich jetzt mal reingetan. regcheck ergibt:
regCheck done:

missing register list
    con00: RegL_00.,RegL_01.,RegL_04.sed00_WindowRec
    con01: RegL_00.,RegL_01.,RegL_04.sed00_WindowRec
    mod00: RegL_00.
    mod00_btn00: RegL_01.
    mod00_btn01: RegL_01.
    mod00_det: RegL_01.

Wobei con00 und con01 meine Fensterkontakte sind und mod00 besagter Bewegungsmelder.

configcheck
configCheck done:

missing register list
    con00: RegL_00.,RegL_01.,RegL_04.sed00_WindowRec
    con01: RegL_00.,RegL_01.,RegL_04.sed00_WindowRec
    mod00: RegL_00.
    mod00_btn00: RegL_01.
    mod00_btn01: RegL_01.
    mod00_det: RegL_01.

peer list incomplete. Use getConfig to read it.
    incomplete: mod00_btn00:
    incomplete: mod00_btn01:
    incomplete: mod00_det:

trigger sent to unpeered device
    triggerUnpeered: con00:000001
    triggerUnpeered: con01:000001

trigger sent to undefined device
    triggerUndefined: con00:000001
    triggerUndefined: con01:000001
    triggerUndefined: mod00_btn00:000001
    triggerUndefined: mod00_btn01:000001
    triggerUndefined: mod00_det:000001

peerNeedsBurst cannot be determined
    con00:sed00_WindowRec
    con01:sed00_WindowRec

PairedTo missing/unknown
    con00
    con01

templist mismatch
    sed00_Clima: file: ./tempList.cfg error:Can't open ./tempList.cfg: No such file or directory
    sed01_Clima: file: ./tempList.cfg error:Can't open ./tempList.cfg: No such file or directory
    the00_Climate: file: ./tempList.cfg error:Can't open ./tempList.cfg: No such file or directory
    the01_Climate: file: ./tempList.cfg error:Can't open ./tempList.cfg: No such file or directory


Den Link zum Homematicforum habe ich mir auch durchgelesen. Habe mal den Befehl: set mod00 regSet cyclicInfoMsg on rübergejagd. Richtig so?
Vielen Dank.