Popularity
1.9
Declining
Activity
0.0
Stable
4
2
3

Monthly Downloads: 24
Programming language: Elixir
License: MIT License
Tags: Third Party APIs    

particle alternatives and similar packages

Based on the "Third Party APIs" category.
Alternatively, view particle alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of particle or a related project?

Add another 'Third Party APIs' Package

README

Particle

Build Status Hex.pm Inline docs Deps Status License

Particle Cloud API Client for Elixir:

This is an unofficial client for the Particle IoT platform's HTTP API.

Usage

Installation

def deps do
  [{:particle, "~> 0.1.0"}]
end

and run mix deps.get. Now, list the :particle application as your application dependency:

def application do
  [applications: [:particle]]
end

Configuration

You will need to set the following configuration variables in your config/config.exs file:

use Mix.Config

config :particle,
  particle_key: System.get_env("PARTICLE_KEY")

Stream Usage

Create a module responsible for the handling of the events. Customize handle_events for your application.

defmodule MyApp.ParticleEventHandler do
  alias Experimental.GenStage
  alias Particle.Stream

  use GenStage

  def start_link() do
    GenStage.start_link(__MODULE__, :ok, name: __MODULE__)
  end

  def init(:ok) do
    # Starts a permanent subscription to the broadcaster
    # which will automatically start requesting items.
    {:consumer, :ok, subscribe_to: [Stream]}
  end

  def handle_events(events, _from, state) do
    IO.inspect events
    {:noreply, [], state}
  end
end

Start the workers in the Application.

defmodule MyApp do
  use Application
  alias Particle.Stream

  def start(_type, _args) do
    import Supervisor.Spec

    children = [
      worker(Particle.Stream, ["https://api.particle.io/v1/devices/events/status", Particle.Http, [name: Stream]]), # define url here
      worker(MyApp.ParticleEventHandler, [])
    ]
    opts = [strategy: :one_for_one, name: MyApp.Supervisor]
    Supervisor.start_link(children, opts)
  end
end


*Note that all licence references and agreements mentioned in the particle README section above are relevant to that project's source code only.