FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: mani am 26 Juni 2017, 22:01:53

Titel: on-for-timer restzeit anzeigen wenn in FHEM gestartet
Beitrag von: mani am 26 Juni 2017, 22:01:53
Hallo,
möchte die verbleibende Zeit im Tablet Ui visualisiert bekommen wenn der set-on-timer in fhem aktiviert wird, leider geht das bei mir
nur wenn ich den befehl über Tablet Ui abgebe.....wie kann ich das ändern hat jemand einen Rat für mich?

Mfg Mani

Titel: Antw:on-for-timer restzeit anzeigen wenn in FHEM gestartet
Beitrag von: setstate am 27 Juni 2017, 07:54:17
Ist der Timer fest im FHEM und man könnte ihn so fix definieren?

<div data-type="switch" data-device="GalerieLicht" data-countdown="120"></div>

Wenn dem so ist, wäre mit einer kleinen Codeänderung das Problem vielleicht gelöst.

widget_famultibutton.js

nach Zeile 495 das einfügen:
checkForTimer(elem);

vorher:
   
if (elem.matchingState('get', state) === 'on') {
           faelem.setOn();
}


nachher:

if (elem.matchingState('get', state) === 'on') {
    faelem.setOn();
    checkForTimer(elem);
}


Flexibel geht das aber nicht. Bei on-for-timer wird kein Event ausgelöst, was notifiziert, ob es ein on war oder ein on-for-timer. Ich kenne auch kein Reading/Attribute, was die Zeit mitbringt.
Titel: Antw:on-for-timer restzeit anzeigen wenn in FHEM gestartet
Beitrag von: mani am 27 Juni 2017, 08:30:49
Super das hört sich ja schon gut an,
ja der Timer ist fix im FHEM der ist für die Aus bzw. Eingangszeit der Alarmanlage zuständig....
sollte aber nur in FHEM aktiviert werden können und über Tablet UI visualisiert werden event. mit dem Progress Widget.


habe mit der Anleitung aus einem anderen Forumsbeitrag diesen Code für mich umgebaut:


99_myUtils.pm

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

sub CountDown($$)
{
   my ($dev,$devState) = @_;
   my ($dummy,$ctTime) = split(/ /,$devState);
   $ctTime = sprintf("%.0f",$ctTime/60);

   if( my $TIMED_OnOff = InternalVal($dev, 'TIMED_OnOff', undef) ){
   $ctTime = $TIMED_OnOff->{DURATION}
   }
 
   

  return sprintf("%02d",$ctTime,"00");
}
#############################################################


usrReading:usrCountDown { CountDown($name, ReadingsVal($name,"state","off"));; }
#############################################################

damit ist es möglich die die Zeit welche angegeben wurde anzuzeigen.

Mfg Mani
Titel: Antw:on-for-timer restzeit anzeigen wenn in FHEM gestartet
Beitrag von: justme1968 am 27 Juni 2017, 09:32:36
wenn das on-for-timer über die setextensions implementiert ist gibt es ein internal in dem die dauer steht. mit einem user reading kann man daraus ein reading machen. damit könnte man das auch dynamisch umsetzen.

hm verwendet leider dir setextensions nicht. hier könnte man über ein notify auf set- oder über cmdalias das passende reading erzeugen.
Titel: Antw:on-for-timer restzeit anzeigen wenn in FHEM gestartet
Beitrag von: mani am 27 Juni 2017, 21:30:30
Hallo,

ok also steht in dem internal immer die restliche verbleibende Zeit? Aber wie muss ich dann das reading erzeugen?

Mfg Mani


Titel: Antw:on-for-timer restzeit anzeigen wenn in FHEM gestartet
Beitrag von: justme1968 am 27 Juni 2017, 21:36:14
im internal steht die gesamt dauer.