# `Meshcore.Commands`
[🔗](https://github.com/nyannus/meshcore_ex/blob/v0.1.0/lib/meshcore/commands.ex#L1)

Every device command in one namespace – the equivalent of Python's
`meshcore.commands`.

The functions are thin delegates; the implementation and detailed
documentation live in the topical modules:

  * `Meshcore.Commands.Device` – device configuration, stats, channels, signing
  * `Meshcore.Commands.Contact` – contact list management
  * `Meshcore.Commands.Messaging` – messages, logins, traces, flood scopes
  * `Meshcore.Commands.Binary` – status/telemetry/ACL/neighbour requests
  * `Meshcore.Commands.ControlData` – node discovery

All commands take the connection as first argument and return
`{:ok, %Meshcore.Event{}}` or `{:error, %Meshcore.Event{}}` (see
`Meshcore.Commands.Base`). Timeouts are in milliseconds.

    {:ok, event} = Meshcore.Commands.send_device_query(mc)
    event.payload.model

# `add_contact`

See `Meshcore.Commands.Contact.add_contact/2`.

# `change_contact_flags`

See `Meshcore.Commands.Contact.change_contact_flags/3`.

# `change_contact_path`

See `Meshcore.Commands.Contact.change_contact_path/4`.

# `confirm_factory_reset`

See `Meshcore.Commands.Device.confirm_factory_reset/2`.

# `export_contact`

See `Meshcore.Commands.Contact.export_contact/2`.

# `export_private_key`

See `Meshcore.Commands.Device.export_private_key/1`.

# `fetch_all_neighbours`

See `Meshcore.Commands.Binary.fetch_all_neighbours/3`.

# `force_unscoped`

See `Meshcore.Commands.Messaging.force_unscoped/1`.

# `get_advert_path`

See `Meshcore.Commands.Contact.get_advert_path/2`.

# `get_allowed_repeat_freq`

See `Meshcore.Commands.Device.get_allowed_repeat_freq/1`.

# `get_autoadd_config`

See `Meshcore.Commands.Contact.get_autoadd_config/1`.

# `get_bat`

See `Meshcore.Commands.Device.get_bat/1`.

# `get_channel`

See `Meshcore.Commands.Device.get_channel/2`.

# `get_contact_by_key`

See `Meshcore.Commands.Contact.get_contact_by_key/2`.

# `get_contacts`

See `Meshcore.Commands.Contact.get_contacts/2`.

# `get_contacts_async`

See `Meshcore.Commands.Contact.get_contacts_async/2`.

# `get_custom_vars`

See `Meshcore.Commands.Device.get_custom_vars/1`.

# `get_default_flood_scope`

See `Meshcore.Commands.Messaging.get_default_flood_scope/1`.

# `get_msg`

See `Meshcore.Commands.Messaging.get_msg/2`.

# `get_path_hash_mode`

See `Meshcore.Commands.Device.get_path_hash_mode/1`.

# `get_self_telemetry`

See `Meshcore.Commands.Device.get_self_telemetry/1`.

# `get_stats_core`

See `Meshcore.Commands.Device.get_stats_core/1`.

# `get_stats_packets`

See `Meshcore.Commands.Device.get_stats_packets/1`.

# `get_stats_radio`

See `Meshcore.Commands.Device.get_stats_radio/1`.

# `get_time`

See `Meshcore.Commands.Device.get_time/1`.

# `get_tuning`

See `Meshcore.Commands.Device.get_tuning/1`.

# `has_connection`

See `Meshcore.Commands.Device.has_connection/1`.

# `import_contact`

See `Meshcore.Commands.Contact.import_contact/2`.

# `import_private_key`

See `Meshcore.Commands.Device.import_private_key/2`.

# `reboot`

See `Meshcore.Commands.Device.reboot/1`.

# `remove_contact`

See `Meshcore.Commands.Contact.remove_contact/2`.

# `req_acl`

See `Meshcore.Commands.Binary.req_acl/3`.

# `req_acl_sync`

See `Meshcore.Commands.Binary.req_acl_sync/3`.

# `req_basic_async`

See `Meshcore.Commands.Binary.req_basic_async/3`.

# `req_basic_sync`

See `Meshcore.Commands.Binary.req_basic_sync/3`.

# `req_mma_sync`

See `Meshcore.Commands.Binary.req_mma_sync/5`.

# `req_neighbours_async`

See `Meshcore.Commands.Binary.req_neighbours_async/3`.

# `req_neighbours_sync`

See `Meshcore.Commands.Binary.req_neighbours_sync/3`.

# `req_owner_async`

See `Meshcore.Commands.Binary.req_owner_async/3`.

# `req_owner_sync`

See `Meshcore.Commands.Binary.req_owner_sync/3`.

# `req_regions_async`

See `Meshcore.Commands.Binary.req_regions_async/3`.

# `req_regions_sync`

See `Meshcore.Commands.Binary.req_regions_sync/3`.

# `req_status`

See `Meshcore.Commands.Binary.req_status/3`.

# `req_status_sync`

See `Meshcore.Commands.Binary.req_status_sync/3`.

# `req_telemetry`

See `Meshcore.Commands.Binary.req_telemetry/3`.

# `req_telemetry_sync`

See `Meshcore.Commands.Binary.req_telemetry_sync/3`.

# `request_factory_reset`

See `Meshcore.Commands.Device.request_factory_reset/1`.

# `reset_default_flood_scope`

See `Meshcore.Commands.Messaging.reset_default_flood_scope/1`.

# `reset_flood_scope`

See `Meshcore.Commands.Messaging.reset_flood_scope/1`.

# `reset_path`

See `Meshcore.Commands.Contact.reset_path/2`.

# `run_cli_command`

See `Meshcore.Commands.Device.run_cli_command/2`.

# `send_advert`

See `Meshcore.Commands.Device.send_advert/2`.

# `send_appstart`

See `Meshcore.Commands.Device.send_appstart/2`.

# `send_chan_msg`

See `Meshcore.Commands.Messaging.send_chan_msg/4`.

# `send_channel_data`

See `Meshcore.Commands.Messaging.send_channel_data/5`.

# `send_cmd`

See `Meshcore.Commands.Messaging.send_cmd/4`.

# `send_control_data`

See `Meshcore.Commands.ControlData.send_control_data/3`.

# `send_device_query`

See `Meshcore.Commands.Device.send_device_query/1`.

# `send_login`

See `Meshcore.Commands.Messaging.send_login/3`.

# `send_login_sync`

See `Meshcore.Commands.Messaging.send_login_sync/4`.

# `send_logout`

See `Meshcore.Commands.Messaging.send_logout/2`.

# `send_msg`

See `Meshcore.Commands.Messaging.send_msg/4`.

# `send_msg_with_retry`

See `Meshcore.Commands.Messaging.send_msg_with_retry/4`.

# `send_node_discover_req`

See `Meshcore.Commands.ControlData.send_node_discover_req/3`.

# `send_path_discovery`

See `Meshcore.Commands.Messaging.send_path_discovery/2`.

# `send_path_discovery_sync`

See `Meshcore.Commands.Messaging.send_path_discovery_sync/3`.

# `send_raw_data`

See `Meshcore.Commands.Messaging.send_raw_data/3`.

# `send_raw_packet`

See `Meshcore.Commands.Device.send_raw_packet/3`.

# `send_statusreq`

See `Meshcore.Commands.Messaging.send_statusreq/2`.

# `send_telemetry_req`

See `Meshcore.Commands.Messaging.send_telemetry_req/2`.

# `send_trace`

See `Meshcore.Commands.Messaging.send_trace/2`.

# `set_advert_loc_policy`

See `Meshcore.Commands.Device.set_advert_loc_policy/2`.

# `set_autoadd_config`

See `Meshcore.Commands.Contact.set_autoadd_config/2`.

# `set_channel`

See `Meshcore.Commands.Device.set_channel/4`.

# `set_coords`

See `Meshcore.Commands.Device.set_coords/3`.

# `set_custom_var`

See `Meshcore.Commands.Device.set_custom_var/3`.

# `set_default_flood_scope`

See `Meshcore.Commands.Messaging.set_default_flood_scope/2`.

# `set_devicepin`

See `Meshcore.Commands.Device.set_devicepin/2`.

# `set_flood_scope`

See `Meshcore.Commands.Messaging.set_flood_scope/3`.

# `set_manual_add_contacts`

See `Meshcore.Commands.Device.set_manual_add_contacts/2`.

# `set_multi_acks`

See `Meshcore.Commands.Device.set_multi_acks/2`.

# `set_name`

See `Meshcore.Commands.Device.set_name/2`.

# `set_other_params`

See `Meshcore.Commands.Device.set_other_params/6`.

# `set_other_params_from_infos`

See `Meshcore.Commands.Device.set_other_params_from_infos/2`.

# `set_path_hash_mode`

See `Meshcore.Commands.Device.set_path_hash_mode/2`.

# `set_radio`

See `Meshcore.Commands.Device.set_radio/6`.

# `set_telemetry_mode_base`

See `Meshcore.Commands.Device.set_telemetry_mode_base/2`.

# `set_telemetry_mode_env`

See `Meshcore.Commands.Device.set_telemetry_mode_env/2`.

# `set_telemetry_mode_loc`

See `Meshcore.Commands.Device.set_telemetry_mode_loc/2`.

# `set_time`

See `Meshcore.Commands.Device.set_time/2`.

# `set_tuning`

See `Meshcore.Commands.Device.set_tuning/3`.

# `set_tx_power`

See `Meshcore.Commands.Device.set_tx_power/2`.

# `share_contact`

See `Meshcore.Commands.Contact.share_contact/2`.

# `sign`

See `Meshcore.Commands.Device.sign/3`.

# `sign_data`

See `Meshcore.Commands.Device.sign_data/2`.

# `sign_finish`

See `Meshcore.Commands.Device.sign_finish/2`.

# `sign_start`

See `Meshcore.Commands.Device.sign_start/1`.

# `update_contact`

See `Meshcore.Commands.Contact.update_contact/3`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
