Packages
grizzly
5.2.5
9.1.4
9.1.2
9.1.1
9.1.0
9.0.0
8.15.3
8.15.2
8.15.1
8.15.0
8.14.0
8.13.0
8.12.0
8.11.3
8.11.2
8.11.1
8.11.0
8.10.0
8.9.0
8.8.1
8.8.0
8.7.1
8.7.0
8.6.12
8.6.11
8.6.10
8.6.9
8.6.8
8.6.7
retired
8.6.6
8.6.5
8.6.4
8.6.3
8.6.2
8.6.1
8.6.0
8.5.3
8.5.2
8.5.1
8.5.0
8.4.0
8.3.0
8.2.3
8.2.2
8.2.1
8.2.0
8.1.0
8.0.1
8.0.0
7.4.3
7.4.2
7.4.1
7.4.0
7.3.0
7.2.0
7.1.4
7.1.3
7.1.2
7.1.1
7.1.0
7.0.4
7.0.3
7.0.2
7.0.1
7.0.0
6.8.8
6.8.7
6.8.6
6.8.5
6.8.4
6.8.3
6.8.2
6.8.1
6.8.0
6.7.1
6.7.0
6.6.1
6.6.0
6.5.1
6.5.0
6.4.0
6.3.0
6.2.0
6.1.1
6.1.0
6.0.1
6.0.0
5.4.1
5.4.0
5.3.0
5.2.8
5.2.7
5.2.6
5.2.5
5.2.4
5.2.3
5.2.2
5.2.1
5.2.0
5.1.2
5.1.1
5.1.0
5.0.2
5.0.1
5.0.0
4.0.1
4.0.0
3.0.0
2.1.0
2.0.0
1.0.1
1.0.0
0.22.7
0.22.6
0.22.5
0.22.4
0.22.3
0.22.2
0.22.1
0.22.0
0.21.1
0.21.0
0.20.2
0.20.1
0.20.0
0.19.1
0.19.0
0.18.3
0.18.2
0.18.1
0.18.0
0.17.7
0.17.6
0.17.5
0.17.4
0.17.3
0.17.2
0.17.1
0.17.0
0.16.2
0.16.1
0.16.0
0.15.11
0.15.10
0.15.9
0.15.8
0.15.7
0.15.6
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.8
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.13.0
0.12.3
0.12.2
0.12.1
0.12.0
0.11.0
0.10.3
0.10.2
0.10.1
0.10.0
0.9.0
0.9.0-rc.4
0.9.0-rc.3
0.9.0-rc.2
0.9.0-rc.1
0.9.0-rc.0
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.0
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.0
0.4.3
0.4.2
Elixir Z-Wave library
Current section
Files
Jump to
Current section
Files
lib/grizzly/zwave/commands/time_parameters_set.ex
defmodule Grizzly.ZWave.Commands.TimeParametersSet do
@moduledoc """
This command is used to set current date and time in Universal Time (UTC).
Params:
* `:year` - the year (required)
* `:month` - the month (required - 1..12)
* `:day` - the day (required - 1..31)
* `:hour_utc` - the hour in UTC time (required - 0..23)
* `:minute_utc` - the minute in UTC time (required - 0..59)
* `:second_utc` - the second in UTC time (required - 0..59)
"""
@behaviour Grizzly.ZWave.Command
alias Grizzly.ZWave.Command
alias Grizzly.ZWave.CommandClasses.TimeParameters
@type param ::
{:year, non_neg_integer}
| {:month, 1..12}
| {:day, 1..31}
| {:hour_utc, 0..23}
| {:minute_utc, 0..59}
| {:second_utc, 0..59}
@impl true
@spec new([param()]) :: {:ok, Command.t()}
def new(params) do
command = %Command{
name: :time_parameters_set,
command_byte: 0x01,
command_class: TimeParameters,
params: params,
impl: __MODULE__
}
{:ok, command}
end
@impl true
def encode_params(command) do
year = Command.param!(command, :year)
month = Command.param!(command, :month)
day = Command.param!(command, :day)
hour_utc = Command.param!(command, :hour_utc)
minute_utc = Command.param!(command, :minute_utc)
second_utc = Command.param!(command, :second_utc)
<<year::size(16)-integer-unsigned, month, day, hour_utc, minute_utc, second_utc>>
end
@impl true
def decode_params(
<<year::size(16)-integer-unsigned, month, day, hour_utc, minute_utc, second_utc>>
) do
{:ok,
[
year: year,
month: month,
day: day,
hour_utc: hour_utc,
minute_utc: minute_utc,
second_utc: second_utc
]}
end
end