From 8f18f1f8bb4b06ddae324fb690cc7fcefb7da8dd Mon Sep 17 00:00:00 2001 From: shakemid Date: Sun, 15 Aug 2021 23:25:27 +0900 Subject: [PATCH] Add swichbotmeter plugin --- .../example-graphs/switchbotmeter-1.png | Bin 0 -> 20348 bytes plugins/sensors/switchbotmeter | 128 ++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 plugins/sensors/example-graphs/switchbotmeter-1.png create mode 100755 plugins/sensors/switchbotmeter diff --git a/plugins/sensors/example-graphs/switchbotmeter-1.png b/plugins/sensors/example-graphs/switchbotmeter-1.png new file mode 100644 index 0000000000000000000000000000000000000000..d880b7c8c9caca66ea2b75d66891ca76d123168e GIT binary patch literal 20348 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 literal 0 HcmV?d00001 diff --git a/plugins/sensors/switchbotmeter b/plugins/sensors/switchbotmeter new file mode 100755 index 00000000..41665108 --- /dev/null +++ b/plugins/sensors/switchbotmeter @@ -0,0 +1,128 @@ +#!/bin/bash +# -*- sh -*- + +: << =cut + +=head1 NAME + + switchbotmeter - Munin plugin to monitor temperature and humidity with SwitchBot Meter + +=head1 CONFIGURATION + + Obtain a token and deviceid for SwitchBot API. See the following website. + https://github.com/OpenWonderLabs/SwitchBotAPI + +=head1 ENVIRONMENT VARIABLES + + env.token : Token to access SwitchBot API. (Required) + env.deviceid : Device ID of SwitchBot Meter. (Required) + env.interval : Interval in seconds for API access. (Optional, default is 0) + env.tempunit : Temperature unit. (Optional, default is C) + +=head1 NOTES + + The amount of SwitchBot API calls per day is limited to 1000 times. + If munin-node executes this plugin every 5 minutes, the API will be called 288 times a day. + You can use env.interval parameter to prevent frequent API access. For example, if you set + env.interval 900, the API response will be cached to local file for 900 seconds(15 minutes). + +=head1 AUTHOR + + K.Cima https://github.com/shakemid + +=head1 LICENSE + + GPLv2 + +=head1 Magic markers + + #%# family=contrib + #%# capabilities= + +=cut + +. "${MUNIN_LIBDIR}/plugins/plugin.sh" + +set -o nounset +set -o pipefail + +# Token to access SwitchBot API +token=${token:?} + +# Device ID of SwitchBot Meter +deviceid=${deviceid:?} + +# Interval for API access (second) +interval=${interval:-0} + +# Temperature unit +tempunit=${tempunit:-C} + +autoconf() { + echo 'no' +} + +config() { + cat < "${MUNIN_STATEFILE}" + fi + else + fetch_api + fi + + echo temperature.value "${temperature}" + echo humidity.value "${humidity}" +} + +fetch_api() { + response=$( curl -s -H "Authorization:${token}" "https://api.switch-bot.com/v1.0/devices/${deviceid}/status" ) + + statusCode=$( echo "${response}" | jq '.statusCode' ) + if [ "${statusCode}" -ne 100 ]; then + echo Error with statusCode = "${statusCode}" + exit 1 + fi + + temperature=$( echo "${response}" | jq '.body.temperature' ) + humidity=$( echo "${response}" | jq '.body.humidity' ) +} + +# Main +case ${1:-} in +autoconf) + autoconf + ;; +config) + config + [ "${MUNIN_CAP_DIRTYCONFIG:-}" = "1" ] && fetch + ;; +*) + fetch + ;; +esac + +exit 0