diff --git a/lib/circuits_quickstart/application.ex b/lib/circuits_quickstart/application.ex index f8d66eb..d6d806c 100644 --- a/lib/circuits_quickstart/application.ex +++ b/lib/circuits_quickstart/application.ex @@ -7,6 +7,7 @@ defmodule CircuitsQuickstart.Application do def start(_type, _args) do if Nerves.Runtime.mix_target() != :host do + advertise_device() setup_wifi() end @@ -19,6 +20,26 @@ defmodule CircuitsQuickstart.Application do Supervisor.start_link(children, opts) end + defp advertise_device() do + # See https://hexdocs.pm/nerves_discovery/ + MdnsLite.add_mdns_service(%{ + id: :nerves_device, + protocol: "nerves-device", + transport: "tcp", + port: 0, + txt_payload: [ + "serial=#{Nerves.Runtime.serial_number()}", + "product=#{Nerves.Runtime.KV.get_active("nerves_fw_product")}", + "description=#{Nerves.Runtime.KV.get_active("nerves_fw_description")}", + "version=#{Nerves.Runtime.KV.get_active("nerves_fw_version")}", + "platform=#{Nerves.Runtime.KV.get_active("nerves_fw_platform")}", + "architecture=#{Nerves.Runtime.KV.get_active("nerves_fw_architecture")}", + "author=#{Nerves.Runtime.KV.get_active("nerves_fw_author")}", + "uuid=#{Nerves.Runtime.KV.get_active("nerves_fw_uuid")}" + ] + }) + end + defp setup_wifi() do kv = Nerves.Runtime.KV.get_all()