BSD-3-Clause licensed and maintained by Andreas Ländle
This version can be pinned in stack with:wled-json-0.0.1.1@sha256:d9b00a8f671c4e82aaaa82514db379f4dcc3f718a1b6d0378f79315b3714dc0d,2713

Module documentation for 0.0.1.1

wled-json ✨

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

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

Installation ⚙️

# Using cabal
cabal add wled-json

# Using stack
stack add wled-json

Usage 📲

import           Control.Concurrent
import           WLED.Device
import           WLED.Octocat.Flags (france)
import           WLED.Types

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

            -- Just sleep one second
            threadDelay 1000000
            
            -- 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

Contributing 🤝

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

License ✌️

BSD-3-Clause

Changes

Changelog for wled-json

Hopefully all notable changes to this project will be documented in this file.

The project adheres to the Haskell Package Versioning Policy.

Unreleased

  • Awesome upcoming features!

0.0.1.1 - Small cosmetic improvements - 2025-03-28

  • Demonstration:
    • Added menu and option to change wled device URL via terminal or command line argument
    • Added tool to traverse every single LED (to be able to better detect positions)
  • Octolamp Support:
    • Added more flags with three vertical stripes

0.0.1.0 - Initial release - 2024-12-02

  • Core Functionality:
    • Basic connection to WLED devices
    • Setting color, brightness, etc.
  • Octolamp Support:
    • Initial support for Octolamp-specific features (provide the French flag)