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.
-
ethereumex
Elixir JSON-RPC client for the Ethereum blockchain 0x063D3d782598744AF1252eBEaf3aA97D990Edf72 -
MongoosePush
MongoosePush is a simple Elixir RESTful service allowing to send push notification via FCM and/or APNS. -
cashier
Cashier is an Elixir library that aims to be an easy to use payment gateway, whilst offering the fault tolerance and scalability benefits of being built on top of Erlang/OTP
InfluxDB - Purpose built for real-time analytics at any scale.
Do you think we are missing an alternative of particle or a related project?
README
Particle
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.