#!/bin/sh # # Simpel command line tool to turn predefined wled instances on/off or switch # presets. # # Author: Shy # License: CC0 print_usage() { echo "Usage: $0 [f(nordcenter)|w(ohnzimmer)] [on|off|1-17 (preset number)|dump]" } if test $# -ne 2; then print_usage exit 0 fi # Parse host argument. case "$1" in f|fnordcenter) wled_host='wled-fnordcenter.local' ;; w|wohnzimmer) wled_host='wled-wohnzimmer.local' ;; *) echo "Error: unknown host \"$1\"." >&2 print_usage exit 1 ;; esac # Parse and execute command argument. case "$2" in on) api_resp=$(curl -s -4 --json '{"on":true}' "http://$wled_host/json") ;; off) api_resp=$(curl -s -4 --json '{"on":false}' "http://$wled_host/json") ;; [1-9]|[1-9][0-7]) api_resp=$(curl -s -4 --json "{'on':true,'ps':$2}" "http://$wled_host/json") ;; dump) curl -s -4 -w '\n' "http://$wled_host/json" exit 0 ;; *) echo "Error: unknown command \"$2\"." >&2 print_usage exit 1 ;; esac curl_exit=$? if test $curl_exit -ne 0; then echo "Error: curl exited with exit code $curl_exit." exit 1 fi # Check API responce. Should be {"success":true}. if test "$(echo -n "$api_resp"|tr -c -d '[:alpha:]')" != 'successtrue'; then echo "Error: unexpected responce from WLED API." >&2 exit 1 fi