diff --git a/fhem/CHANGED b/fhem/CHANGED index 4f36b8adc..8c37bdf86 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -1,5 +1,6 @@ # Add changes at the top of the list. Keep it in ASCII, and 80-char wide. # Do not insert empty lines here, update check depends on it. + - feature: 60_Watches: countDownInit accept format only - bugfix: 98_RandomTimer: prevent irritations whith 78 or 4we,!$we timespecs; some PBP related changes. - bugfix: 73_AutoShuttersControl: fix Can't locate object method diff --git a/fhem/FHEM/60_Watches.pm b/fhem/FHEM/60_Watches.pm index 1bf2d8d33..06655e25a 100644 --- a/fhem/FHEM/60_Watches.pm +++ b/fhem/FHEM/60_Watches.pm @@ -71,6 +71,7 @@ BEGIN { # Versions History intern my %vNotesIntern = ( + "0.24.0" => "26.05.2020 entry of countDownInit can be in format ", "0.23.2" => "20.05.2020 english commandref ", "0.23.1" => "10.05.2020 some more changes for PBP severity 3 ", "0.23.0" => "10.05.2020 attr 'digitalBorderDistance' now also valid for digital watches, some changes for PBP ", @@ -216,7 +217,7 @@ sub Set { ## no critic 'compl $prop = ($prop ne "") ? $prop : 70; # Stunden $prop1 = ($prop1 ne "") ? $prop1 : 70; # Minuten $prop2 = ($prop2 ne "") ? $prop2 : 70; # Sekunden - return qq{The value for "$opt" is invalid. Use parameter "hh mm ss" like "19 45 13".} if($prop>24 || $prop1>59 || $prop2>59); + return qq{The value for "$opt" is invalid. Use parameter "hh mm ss" like "19 45 13".} if($prop>23 || $prop1>59 || $prop2>59); my $at = sprintf("%02d",$prop).":".sprintf("%02d",$prop1).":".sprintf("%02d",$prop2); @@ -228,13 +229,19 @@ sub Set { ## no critic 'compl delReadings ($name, "alarmed"); } elsif ($opt eq "countDownInit") { - $prop = ($prop ne "") ? $prop : 70; # Stunden - $prop1 = ($prop1 ne "") ? $prop1 : 70; # Minuten - $prop2 = ($prop2 ne "") ? $prop2 : 70; # Sekunden - return qq{The value for "$opt" is invalid. Use parameter "hh mm ss" like "19 45 13".} if($prop>24 || $prop1>59 || $prop2>59); + my $ct; + if($prop && $prop1) { # Format: hh mm ss + $prop2 = ($prop2 ne "") ? $prop2 : 70; # Sekunden + return qq{The value for "$opt" is invalid. Use parameter "hh mm ss" like "19 45 13" \nor alternatively only one entry in seconds.} if($prop>23 || $prop1>59 || $prop2>59); + $ct = $prop*3600 + $prop1*60 + $prop2; # in Sekunden umgewandelt ! + + } elsif ($prop && !$prop1) { # Format: Sekundenangabe + $ct = $prop; + + } else { + return qq{The value for "$opt" is invalid. Use parameter "hh mm ss" like "19 45 13" \nor alternatively only one entry in seconds.}; - my $st = int(time*1000); # Millisekunden ! - my $ct = $prop*3600 + $prop1*60 + $prop2; # Sekunden ! + } delReadings ($name, "countInitVal"); @@ -277,7 +284,7 @@ sub Set { ## no critic 'compl readingsSingleUpdate($hash, "state", "initialized", 1); } elsif ($opt eq "time") { - return qq{The value for "$opt" is invalid. Use parameter "hh mm ss" like "19 45 13".} if($prop>24 || $prop1>59 || $prop2>59); + return qq{The value for "$opt" is invalid. Use parameter "hh mm ss" like "19 45 13".} if($prop>23 || $prop1>59 || $prop2>59); readingsBeginUpdate ($hash); readingsBulkUpdate ($hash, "hour", $prop); @@ -2355,7 +2362,7 @@ As time source the client (browser time) as well as the FHEM server can be set
  • alarmSet <hh> <mm> <ss>
    - Sets the alarm time in the format hh hours (24), mm minutes and ss seconds.
    + Sets the alarm time in the format hh hours, mm minutes and ss seconds.
    If the time reaches the defined value, an event of the reading "alarmed" is triggered.
    This set command is only available for digital stopwatches.

    @@ -2376,13 +2383,15 @@ As time source the client (browser time) as well as the FHEM server can be set
    -
  • countDownInit <hh> <mm> <ss>
    - Sets the start time of a countdown stopwatch with hh hours(24), mm minutes and ss seconds.
    +
  • countDownInit <hh> <mm> <ss> | <seconds>
    + Sets the start time of a countdown stopwatch. + The format can be <hh> hours, <mm> minutes and <ss> seconds or alternatively only one entry in seconds.
    This set command is only available with a digital countdown stopwatch.

      - Example
      - set <name> countDownInit 0 30 10 + Examples
      + set <name> countDownInit 0 30 10
      + set <name> countDownInit 3600

    @@ -2448,7 +2457,7 @@ As time source the client (browser time) as well as the FHEM server can be set
  • time <hh> <mm> <ss>
    - Sets a static time display with hh hours(24), mm minutes and ss seconds.
    + Sets a static time display with hh hours, mm minutes and ss seconds.
    This set command is only available for a digital clock with static time display.

      @@ -2765,7 +2774,7 @@ Als Zeitquelle können sowohl der Client (Browserzeit) als auch der FHEM-Server
    • alarmSet <hh> <mm> <ss>
      - Setzt die Alarmzeit im Format hh-Stunden(24), mm-Minuten und ss-Sekunden.
      + Setzt die Alarmzeit im Format hh-Stunden, mm-Minuten und ss-Sekunden.
      Erreicht die Zeit den definierten Wert, wird ein Event des Readings "alarmed" ausgelöst.
      Dieses Set-Kommando ist nur bei digitalen Stoppuhren vorhanden.

      @@ -2786,13 +2795,15 @@ Als Zeitquelle können sowohl der Client (Browserzeit) als auch der FHEM-Server
      -
    • countDownInit <hh> <mm> <ss>
      - Setzt die Startzeit einer CountDown-Stoppuhr mit hh-Stunden(24), mm-Minuten und ss-Sekunden.
      +
    • countDownInit <hh> <mm> <ss> | <Sekunden>
      + Setzt die Startzeit einer CountDown-Stoppuhr. + Das Format kann sein <hh> Stunden, <mm> Minuten und <ss> Sekunden oder alternativ nur eine Angabe in Sekunden.
      Dieses Set-Kommando ist nur bei einer digitalen CountDown-Stoppuhr vorhanden.

        Beispiel
        - set <name> countDownInit 0 30 10 + set <name> countDownInit 0 30 10
        + set <name> countDownInit 3600

      @@ -2858,7 +2869,7 @@ Als Zeitquelle können sowohl der Client (Browserzeit) als auch der FHEM-Server
    • time <hh> <mm> <ss>
      - Setzt eine statische Zeitanzeige mit hh-Stunden(24), mm-Minuten und ss-Sekunden.
      + Setzt eine statische Zeitanzeige mit hh-Stunden, mm-Minuten und ss-Sekunden.
      Dieses Set-Kommando ist nur bei einer Digitaluhr mit statischer Zeitanzeige vorhanden.