HomeMatic set on-for-timer nur manche Sekundenwerte funktionieren

Begonnen von Guest, 25 November 2012, 14:26:01

Vorheriges Thema - Nächstes Thema

Guest

Originally posted by: <email address deleted>

Hallo,

ich hab den Eindruck der Befehl set on-for-timer
funktioniert nur mit bestimmten Werten.
Laut Doku kann man den Wert einfach in Sekunden angeben, im Intervall  
[0-85825945].

Ich versuche eine schaltbare Homematic Steckdose 3h einzuschalten.
Durch den Befehl "set Luftentfeuchter on-for-timer 10800" wird die
Steckdose jedoch dauerhaft eingeschalten. Die rote LED am Stecker leuchtet
dauerhaft.

Mit kleinen Werten funktioniert on-for-timer. Z.B. "set Luftentfeuchter
on-for-timer 10" schaltet die Steckdose 10s. lang ein.
Dabei blinkt die rote LED an der Steckdose und geht dann wieder aus.

Mit den Werten 9700, 9900 und 10000 funktioniert die Sache nicht. Es wird
dauerhaft eingeschalten.

Durch probieren hab ich herausgefunden, dass der Wert 9800 funktioniert.
Die rote LED an der Steckdose blinkt. Nach Ablauf der Zeit geht die
Steckdose wieder aus.

Ich kapier das nicht. Ist das ein Bug oder ein Feature? :-)


Viele Grüße,

Thomas

Meine Konfiguration:
Fritzbox 7270 mit fhem 5.3 drauf. Daran hängt der HM Lan Adapter.


--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo,
dasselbe gilt für on-till. Ich habe da keine größeren Untersuchungen
angestellt aber kleine Zeiträume scheinen eher zu funktioniren als große.
Ich hab eine Funktion aus 99_utils geklaut und sie verändert in my_utils
gestellt. Damit erzeuge ich ein at zum abschalten.

# Gibt die relative Zeit in Sekunden
sub
abstime2relsec($)
{
  my ($h,$m,$s) = split(":", shift);
  $m = 0 if(!$m);
  $s = 0 if(!$s);
  my $t1 = 3600*$h+60*$m+$s;

  my @now = localtime;
  my $t2 = 3600*$now[2]+60*$now[1]+$now[0];
  my $diff = $t1-$t2;
  $diff += 86400 if($diff <= 0);

  return $diff
}
#

Gruß StefanP

Am Sonntag, 25. November 2012 14:26:01 UTC+1 schrieb Thomas Porcham:
>
> Hallo,
>
> ich hab den Eindruck der Befehl set on-for-timer
> funktioniert nur mit bestimmten Werten.
> Laut Doku kann man den Wert einfach in Sekunden angeben, im Intervall  
> [0-85825945].
>
> Ich versuche eine schaltbare Homematic Steckdose 3h einzuschalten.
> Durch den Befehl "set Luftentfeuchter on-for-timer 10800" wird die
> Steckdose jedoch dauerhaft eingeschalten. Die rote LED am Stecker leuchtet
> dauerhaft.
>
> Mit kleinen Werten funktioniert on-for-timer. Z.B. "set Luftentfeuchter
> on-for-timer 10" schaltet die Steckdose 10s. lang ein.
> Dabei blinkt die rote LED an der Steckdose und geht dann wieder aus.
>
> Mit den Werten 9700, 9900 und 10000 funktioniert die Sache nicht. Es wird
> dauerhaft eingeschalten.
>
> Durch probieren hab ich herausgefunden, dass der Wert 9800 funktioniert.
> Die rote LED an der Steckdose blinkt. Nach Ablauf der Zeit geht die
> Steckdose wieder aus.
>
> Ich kapier das nicht. Ist das ein Bug oder ein Feature? :-)
>
>
> Viele Grüße,
>
> Thomas
>
> Meine Konfiguration:
> Fritzbox 7270 mit fhem 5.3 drauf. Daran hängt der HM Lan Adapter.
>
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hi,

ich hab den Eindruck der Befehl set on-for-timer
> funktioniert nur mit bestimmten Werten.
> Laut Doku kann man den Wert einfach in Sekunden angeben, im Intervall  
> [0-85825945].
>
> Ich kapier das nicht. Ist das ein Bug oder ein Feature? :-)
>
Sicher ein feature - nur den added-value muessen wir noch finden ;-)

Die Zeit wird nicht linear sonder mit exponent uebergeben. FHEM macht also
eine Umrechnung, da der User die Zahl linear eingeben kann.

Ich denke, da ist ein Fehler in der Berechnung - muss  mich einmal schlau
machen.

Gruss
Martin

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hi Martin,

ja das wäre nett wenn du dich da mal schlau machen könntest.
Ich hab mit mal die sub CUL_HM_encodeTime16($) angeschaut.
Ich denke der größte Wert den dieses Unterprogramm errechnet wird FFFF
sein. Nach meiner Rechnung sind das dann 6709248 Sekunden.
Mir ist unklar wie man auf das Intervall [0-85825945] in der Doku kommt.

Wir beim Enkodieren Basis 2 verwendet?

Viele Grüße,

Thomas

Am Sonntag, 25. November 2012 16:54:20 UTC+1 schrieb Martin:
>
> Hi,
>
> ich hab den Eindruck der Befehl set on-for-timer
>> funktioniert nur mit bestimmten Werten.
>> Laut Doku kann man den Wert einfach in Sekunden angeben, im Intervall  
>> [0-85825945].
>>
>> Ich kapier das nicht. Ist das ein Bug oder ein Feature? :-)
>>
> Sicher ein feature - nur den added-value muessen wir noch finden ;-)
>
> Die Zeit wird nicht linear sonder mit exponent uebergeben. FHEM macht also
> eine Umrechnung, da der User die Zahl linear eingeben kann.
>
> Ich denke, da ist ein Fehler in der Berechnung - muss  mich einmal schlau
> machen.
>
> Gruss
> Martin
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Am Sonntag, 25. November 2012 21:25:36 UTC+1 schrieb Thomas Porcham:
>
> Hi Martin,
>
> ja das wäre nett wenn du dich da mal schlau machen könntest.
> Ich hab mit mal die sub CUL_HM_encodeTime16($) angeschaut.
> Ich denke der größte Wert den dieses Unterprogramm errechnet wird FFFF
> sein. Nach meiner Rechnung sind das dann 6.709.248 Sekunden.
> Mir ist unklar wie man auf das Intervall [0-85.825.945] in der Doku kommt.
>
> Wir beim Enkodieren Basis 2 verwendet?
>

ich habe gestern eine neuen Version eingestellt - hast du die angesehen
oder die vorher?
Nach xml ist es eine gleitkommazahl mit 11 bit mantisse und 5 bit exponent.
Vorher hatte jemand - sicher durch experimentiern und evtl ohne  die xml
info - den naheliegenden Wert von 12:4 mant:exp angenommen.

Ausserdem gilt der Faktor 10
=> (7ff*2^1f)/10 = 439,589,902,745.6

Das ist immer noch groesser als 85,825,945.6.

Die wirklich langen Werte zu testen habe ich vermieden.

6.709.248sec = 77 Tage
85.825.945 sec = 993Tage = 2,7 Jahre
439,589,902,745.6sec = 13939 Jahre

==> die Formel sollte stimmen - die Berechnung auch, wenn ich keinen Bug
drin habe. Die Zahl 11:5 float ist scheinbar ein HM standart. Es ist aber
gut moeglich, dass intern (im HM device) die langen timer nicht
unterstuetzt werden und einfach gekappt wird.

Falls es einer ausprobieren will und einen Schalter hat, den er laufen
lassen kann weare es prima. Wenn man mehrere Stunden laufen lassen will
kann man auch on-till nehmen.

Gruss
Martin

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo Martin,

danke für den Bugfix!
Ich habe mit zufälligen Werten bis 24h getestet und mein Schalter nimmt
alle Werte an.
Die rote LED blinkt nun immer und zeigt somit an, dass ein Timer läuft (?).

Mit 3h habe ich auch getestet. Der Schalter hat brav nach 3h abgeschalten.

Vielen Dank, Schöne Grüße aus Tirol,

Thomas


Am Montag, 26. November 2012 12:39:32 UTC+1 schrieb Martin:
>
>
>
> Am Sonntag, 25. November 2012 21:25:36 UTC+1 schrieb Thomas Porcham:
>>
>> Hi Martin,
>>
>> ja das wäre nett wenn du dich da mal schlau machen könntest.
>> Ich hab mit mal die sub CUL_HM_encodeTime16($) angeschaut.
>> Ich denke der größte Wert den dieses Unterprogramm errechnet wird FFFF
>> sein. Nach meiner Rechnung sind das dann 6.709.248 Sekunden.
>> Mir ist unklar wie man auf das Intervall [0-85.825.945] in der Doku kommt.
>>
>> Wir beim Enkodieren Basis 2 verwendet?
>>
>
> ich habe gestern eine neuen Version eingestellt - hast du die angesehen
> oder die vorher?
> Nach xml ist es eine gleitkommazahl mit 11 bit mantisse und 5 bit
> exponent. Vorher hatte jemand - sicher durch experimentiern und evtl ohne  
> die xml info - den naheliegenden Wert von 12:4 mant:exp angenommen.
>
> Ausserdem gilt der Faktor 10
> => (7ff*2^1f)/10 = 439,589,902,745.6
>
> Das ist immer noch groesser als 85,825,945.6.
>
> Die wirklich langen Werte zu testen habe ich vermieden.
>
> 6.709.248sec = 77 Tage
> 85.825.945 sec = 993Tage = 2,7 Jahre
> 439,589,902,745.6sec = 13939 Jahre
>
> ==> die Formel sollte stimmen - die Berechnung auch, wenn ich keinen Bug
> drin habe. Die Zahl 11:5 float ist scheinbar ein HM standart. Es ist aber
> gut moeglich, dass intern (im HM device) die langen timer nicht
> unterstuetzt werden und einfach gekappt wird.
>
> Falls es einer ausprobieren will und einen Schalter hat, den er laufen
> lassen kann weare es prima. Wenn man mehrere Stunden laufen lassen will
> kann man auch on-till nehmen.
>
> Gruss
> Martin
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com