ProductPromotion
Logo

Elixir

made by https://0x3d.site

GitHub - jeffutter/particle-elixir: An Elixir Client for the Particle Cloud API
An Elixir Client for the Particle Cloud API. Contribute to jeffutter/particle-elixir development by creating an account on GitHub.
Visit Site

GitHub - jeffutter/particle-elixir: An Elixir Client for the Particle Cloud API

GitHub - jeffutter/particle-elixir: An Elixir Client for the Particle Cloud API

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

Articles
to learn more about the elixir concepts.

Resources
which are currently available to browse on.

mail [email protected] to add your project or resources here 🔥.

FAQ's
to know more about the topic.

mail [email protected] to add your project or resources here 🔥.

Queries
or most google FAQ's about Elixir.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory