@hackage / wled-json

Convenient interface for interacting with WLED devices

Latest0.1.0.4

About

Metadata

  • Last updated , by alaendle
  • License BSD-3-Clause
  • Maintained by: Andreas Ländle

  • Lottery factor: 1

Links

Installation

Tested Compilers

  1. 9.10.3
  2. 9.8.4
  3. 9.6.7
  4. 9.4.8
  5. 9.2.8

Readme

wled-json ✨

Haskell bindings for controlling WLED devices, with a focus on Octolamps

Octolamp showing french flag

Introduction 💡

This Haskell library provides a convenient interface for interacting with WLED devices, particularly those based on the popular Octolamp design. It leverages the WLED API (https://kno.wled.ge/) to allow you to control various aspects of your LED lights, including:

  • Color: Set the color of your lights using various color spaces (RGB, HSV, etc.)
  • Brightness: Adjust the overall brightness of your lights

Usage 📲

import           Control.Concurrent (threadDelay)
import           WLED.Device        (getLampState, setLampState)
import           WLED.Lamp.Octocat  (octocatSpec)
import           WLED.Pattern.Flags (bulgaria)
import           WLED.Types         (diff)

main :: IO ()
main = do
    -- Connect to a WLED device
    lampState <- getLampState wledUrl
    case lampState of
        Left errMsg -> putStrLn errMsg
        Right initialState -> do
            -- Display the Bulgarian flag on an Octolamp
            _ <- setLampState wledUrl (bulgaria octocatSpec)

            -- Just sleep five seconds
            threadDelay 5000000

            -- Restore the initial state
            Right currentState <- getLampState wledUrl
            _ <- setLampState wledUrl (diff currentState initialState)
            pure ()
  where
    wledUrl = "http://192.168.178.34"

Features 👍

  • Comprehensive WLED API coverage
  • Type-safe interactions
  • Easy-to-use API
  • Specific support for Octolamps
  • Reusable pattern for other lamp designs

Contributing 🤝

Contributions are welcome! Please feel free to open an issue or submit a pull request.

License ✌️

BSD-3-Clause