Packages
grizzly
9.1.2
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
mix.exs
defmodule Grizzly.MixProject do
use Mix.Project
@version "9.1.2"
def project do
[
app: :grizzly,
version: @version,
elixir: "~> 1.16",
elixirc_paths: elixirc_paths(Mix.env()),
start_permanent: Mix.env() == :prod,
deps: deps(),
dialyzer: dialyzer(),
description: description(),
package: package(),
docs: docs(),
test_coverage: [
ignore_modules: [~r/^GrizzlyTest/, ~r/^Mock/, ~r/^Mix/]
]
]
end
def application do
[
extra_applications: [:logger, :crypto, :ssl, :sasl]
]
end
def cli do
[
preferred_envs: ["hex.publish": :docs, docs: :docs, dialyzer: :test]
]
end
def elixirc_paths(:test), do: ["test/support", "lib"]
def elixirc_paths(_), do: ["lib"]
defp deps do
[
{:alarmist, "~> 0.4", only: [:test]},
{:beam_notify, "~> 1.0 or ~> 0.2.0"},
{:cerlc, "~> 0.2"},
{:circuits_uart, "~> 1.0"},
{:circular_buffer, "~> 1.0 or ~> 0.4.2"},
{:credo_binary_patterns, "~> 0.2.3", only: [:dev, :test], runtime: false},
{:credo, "~> 1.4", only: [:dev, :test], runtime: false},
{:ctr_drbg, "~> 0.1"},
{:dialyxir, "~> 1.4.0", only: [:test, :dev], runtime: false},
{:ex_doc, "~> 0.21", only: [:docs, :test], runtime: false},
{:exmodem, "~> 0.1"},
{:exqlite, "~> 0.33"},
{:junit_formatter, "~> 3.3", only: :test},
{:mimic, "~> 2.0", only: [:dev, :test]},
{:muontrap, "~> 1.6"},
{:nimble_options, "~> 1.0"},
{:property_table, "~> 0.3"},
{:quokka, "~> 2.11", only: [:dev, :test], runtime: false},
{:sweet_xml, "~> 0.7", only: [:dev, :test]},
{:telemetry_registry, "~> 0.3"},
{:telemetry, "~> 0.4.3 or ~> 1.0"},
{:thousand_island, "~> 1.3"}
]
end
defp dialyzer() do
ci_opts =
if System.get_env("CI") do
[plt_core_path: "_build/plts", plt_local_path: "_build/plts"]
else
[]
end
[
flags: [:unmatched_returns, :error_handling, :missing_return, :extra_return],
plt_add_apps: [:mix, :ex_unit]
] ++ ci_opts
end
defp description do
"Elixir Z-Wave library"
end
defp package do
[
licenses: ["Apache-2.0"],
links: %{"GitHub" => "https://github.com/smartrent/grizzly"}
]
end
defp docs() do
[
extras: ["README.md", "CHANGELOG.md", "docs/cookbook.md"],
main: "readme",
logo: "./assets/grizzly-icon-yellow.png",
favicon: "./assets/grizzly-icon-yellow.png",
source_ref: "v#{@version}",
source_url: "https://github.com/smartrent/grizzly",
skip_undefined_reference_warnings_on: ["CHANGELOG.md"],
groups_for_modules: [
Core: [
Grizzly,
~r/^Grizzly\.Associations/,
Grizzly.Events,
Grizzly.Inclusions,
Grizzly.Indicator,
Grizzly.Network,
Grizzly.Node,
Grizzly.Options,
Grizzly.Report,
Grizzly.Supervisor,
Grizzly.Trace,
Grizzly.Trace.Record
],
"Command Definitions": [
Grizzly.ZWave.Command,
Grizzly.ZWave.Commands,
Grizzly.ZWave.CommandSpec,
Grizzly.ZWave.ParamSpec
],
Behaviours: [
Grizzly.CommandHandler,
Grizzly.FirmwareUpdateHandler,
Grizzly.InclusionHandler
],
"Virtual Devices": [
Grizzly.VirtualDevices,
Grizzly.VirtualDevices.Device
],
"Z/IP Gateway": [
Grizzly.ZIPGateway,
~r/^Grizzly\.ZIPGateway/
],
"Firmware Updates": [
~r/^Grizzly\.FirmwareUpdates/
],
Requests: [
~r/^Grizzly\.(Requests)/
],
Storage: [
~r/^Grizzly\.Storage/
],
"Z-Wave": [
Grizzly.ZWave,
Grizzly.ZWave.CommandClass,
Grizzly.ZWave.DeviceClass,
Grizzly.ZWave.DeviceClasses,
Grizzly.ZWave.DSK,
Grizzly.ZWave.Encoding,
Grizzly.ZWave.IconType,
Grizzly.ZWave.Notifications,
Grizzly.ZWave.QRCode,
~r/^Grizzly\.ZWave\.Security/,
~r/^Grizzly\.ZWave\.SmartStart/,
Grizzly.ZWave.ZWEnum,
Grizzly.Inclusions.ZWaveAdapter
],
Transports: [
Grizzly.Transport,
Grizzly.Transport.Response,
Grizzly.Transports.DTLS,
Grizzly.Transports.UDP
],
"Z-Wave Protocol": [
~r/^Grizzly\.ZWave\.CommandClasses/,
~r/^Grizzly\.ZWave\.Commands/
]
],
nest_modules_by_prefix: [
Grizzly.ZWave.CommandClasses,
Grizzly.ZWave.Commands
],
before_closing_body_tag: &before_closing_body_tag/1
]
end
defp before_closing_body_tag(:html) do
"""
<script defer src="https://cdn.jsdelivr.net/npm/mermaid@10.2.3/dist/mermaid.min.js"></script>
<script>
let initialized = false;
window.addEventListener("exdoc:loaded", () => {
if (!initialized) {
mermaid.initialize({
startOnLoad: false,
theme: document.body.className.includes("dark") ? "dark" : "default"
});
initialized = true;
}
let id = 0;
for (const codeEl of document.querySelectorAll("pre code.mermaid")) {
const preEl = codeEl.parentElement;
const graphDefinition = codeEl.textContent;
const graphEl = document.createElement("div");
const graphId = "mermaid-graph-" + id++;
mermaid.render(graphId, graphDefinition).then(({svg, bindFunctions}) => {
graphEl.innerHTML = svg;
bindFunctions?.(graphEl);
preEl.insertAdjacentElement("afterend", graphEl);
preEl.remove();
});
}
});
</script>
"""
end
defp before_closing_body_tag(_), do: ""
end