Autor Thema: vorschlag ergänzung SetExtensions  (Gelesen 1978 mal)

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20450
vorschlag ergänzung SetExtensions
« am: 08 Mai 2016, 12:55:41 »
anbei ein vorschlag der die SetExtensions um die folgenden dinge erweitert:

- abbrechen eines laufenden SE times -> nötig wenn z.b. über die SE mit on-for-timer eingeschaltet wird und danach noch mal per 'normalem' on. der interne SE timer läuft weiter und schaltet trotzdem nach dem timeout aus. das abbrechen muss im jeweiligen modul selber passieren wenn der device zustand ohne SE geändert wird. im hue modul habe ich schon seit langem ein RemoveInternalTimer("SE $name on-for-timer"); drin. das greift aber zum einen nur bei on-for-timer und ausserdem weiss das modul ja eigentlich nicht wie der timer heisst.

- beim starten von on-for-timer und off-for-timer wird intern der zeitpunkt und die dauer im jeweiligen device gespeichert. das hilft wenn man z.b. das devStateIcon entsprechend darstellen oder einen ablaufenden timer im frontend realisiert will. bei den devices die über die SE gehen ist anders als bei FS20 die dauer nicht am event für state sichtbar.


noch offen: sollten die SE das -for-timer auch in state schreiben? das hat aber vielleicht unerwünschte seiteneffekte.


vielleicht wäre es sinnvoll die gleichen internen helper auch aus allen modulen zu füllen die on-for-timer direkt im device lösen. z.b. FS20 und HM. FS20 geht zur zeit zwar durch parsen von state, HM geht glaube ich überhaupt nicht da auch beim schalten aus fhem der timeout nirgends steht (das es beim schalten an fhem vorbei nicht geht ist klar).

dann könnte man z.b. die oben angesprochenen timer geräte unabhängig lösen.

PS: gibt es einen grund dafür das beim list die gross/klein schreibung der hash keys verändert wird? das stört beim debuggen und copy&paste ziemlich :(
« Letzte Änderung: 08 Mai 2016, 13:02:21 von justme1968 »
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 23112
Antw:vorschlag ergänzung SetExtensions
« Antwort #1 am: 08 Mai 2016, 16:33:25 »
Vorschlag angenommen, nur {helper} habe ich entfernt.

Zitat
noch offen: sollten die SE das -for-timer auch in state schreiben?
Bin auch unsicher.

Zitat
vielleicht wäre es sinnvoll die gleichen internen helper auch aus allen modulen zu füllen die on-for-timer direkt im device lösen
Bin deiner Ansicht. Welche Module koennen das? FS20/CUL_HM:ja, ZWave/FBDECT:nein, den Rest weiss ich nicht :)

Zitat
gibt es einen grund dafür das beim list die gross/klein schreibung der hash keys verändert wird?
Ich fand das mal schoen. Bin unsicher, ob ich das immer noch so finde. :)

Offline rapster

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 929
Antw:vorschlag ergänzung SetExtensions
« Antwort #2 am: 08 Mai 2016, 16:45:10 »
HM geht glaube ich überhaupt nicht da auch beim schalten aus fhem der timeout nirgends steht (das es beim schalten an fhem vorbei nicht geht ist klar).

Das Reading 'timedOn' wird auf 'running' gesetzt bei on-for-timer, oder ist das nicht das was du meinst?

Gruß
Claudiu

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20450
Antw:vorschlag ergänzung SetExtensions
« Antwort #3 am: 08 Mai 2016, 18:07:10 »
@rudi:
Zitat
nur {helper} habe ich entfernt
das dachte ich mir schon :)

FS20 wäre schön baust du das ein oder soll ich mal schauen?

HM auch. aber ich glaube martin mag nicht.

POKEYS, TRX_LIGHT, PW_Circle, KNX und EIB scheinen alle eine eigene on-for-timer implementierung zu haben. das wäre also noch kanditaten

alle anderen scheinen über SE zu gehen. da müsste man nur den SetExtensionsCancel aufruf einbauen.


@rapster: ja. das weiss ich. aber die dauer ist nirgend wo zu sehen. selbst wenn sie bekannt war ist sie bei hm nachträglich nicht mehr zu sehen. und genau so wie bei fs20 auch aus dem event nicht direkt ablesen wenn eventMap verwendet wird.
« Letzte Änderung: 08 Mai 2016, 18:09:33 von justme1968 »
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20450
Antw:vorschlag ergänzung SetExtensions
« Antwort #4 am: 10 Mai 2016, 15:35:18 »
anbei ein vorschlag für einen patch der das TIMED_OnOff internal für FS20 einbaut sobald follow-on-for-timer gesetzt ist.

ich kann aber den teil testen der aus einem fhem set kommt, nicht über parse da ich keinen passenden sender habe.
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 23112
Antw:vorschlag ergänzung SetExtensions
« Antwort #5 am: 12 Mai 2016, 10:41:09 »
Habs eingecheckt.


FS20 "offline" zu testen ist wg. der FHZ-Erbe etwas tricky:

IODev loglevel auf 5, und gesendetes Befehl notieren.
2016.05.12 10:21:12.494 5: SW: Fhhhhbbccaa
hhhh: Housecode
bb: button
cc: command
aa: argument (Optional)

Nachricht injizieren:
{ Dispatch($defs{CUL}, "810b04f70101a001hhhhbb00ccaa", undef) }

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20450
Antw:vorschlag ergänzung SetExtensions
« Antwort #6 am: 24 Mai 2016, 12:29:00 »
es hat sich noch ein tippfehler eingeschlichen:Index: SetExtensions.pm
===================================================================
--- SetExtensions.pm (revision 11508)
+++ SetExtensions.pm (working copy)
@@ -12,7 +12,7 @@
 SetExtensionsCancel($)
 {
   my ($hash) = @_;
-  $hash = $defs{$hash} if( ref($hash) ne 'ARRAY' );
+  $hash = $defs{$hash} if( ref($hash) ne 'HASH' );

   return undef if( !$hash );
   my $name = $hash->{NAME};

fehlermeldung von hier: https://forum.fhem.de/index.php/topic,53746.msg453924.html#msg453924.
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 23112
Antw:vorschlag ergänzung SetExtensions
« Antwort #7 am: 24 Mai 2016, 19:56:14 »
Eingecheckt.

 

decade-submarginal