9/09/2025

SwitchbotでAPIv1.0を取得した際の実行結果

 概要

SwitchbotでAPIを取得する際に、各Switchbot製品のdeviceIdを取得する必要があり、APIv1.0で取得する実行結果。
APIv1.0で取得すると、コマンドがシンプルなのと一度で取得できるので、おすすめ。
コマンドにあるトークンはSwitchbotのスマフォアプリケーションから代入してください。

$ curl -H "Authorization:トークン" -X GET "https://api.switch-bot.com/v1.0/devices" | jq

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1289  100  1289    0     0  13568      0 --:--:-- --:--:-- --:--:-- 13568

{
  "statusCode": 100,
  "body": {
    "deviceList": [
      {
        "deviceId": "",
        "deviceName": "",
        "deviceType": "Plug Mini (JP)",
        "enableCloudService": true,
        "hubDeviceId": ""
      },
      {
        "deviceId": "",
        "deviceName": "",
        "deviceType": "MeterPro(CO2)",
        "enableCloudService": false,
        "hubDeviceId": ""
      },
      {
        "deviceId": "",
        "deviceName": "",
        "deviceType": "Plug",
        "enableCloudService": true,
        "hubDeviceId": ""
      },
      {
        "deviceId": "",
        "deviceName": "",
        "deviceType": "Meter",
        "enableCloudService": true,
        "hubDeviceId": ""
      },
      {
        "deviceId": "",
        "deviceName": "",
        "deviceType": "Hub Mini",
        "enableCloudService": false,
        "hubDeviceId": ""
      },
    ]
  },
  "message": "success" 

9/07/2025

警子ちゃん4G:DN-1500GXのFWアップデート手順

概要
株式会社isa社の製品警子ちゃん4Gシリーズのファームウェアアップデート手順

手順
1.DN-1500GXのIPにWebブラウザでアクセスする

2.DN-1500GXにログインする


3.左ペインの「基本設定」-「本体情報」のリンクをクリックする
4.本体情報画面から「F/Wバージョン」の項目にあるバージョンを確認する


5.左ペインの「管理ツール」-「ファームウェアアップデート」をクリックする

6.ファームウェアアップデート画面の「参照」ボタンをクリックし、ファームウェアファイル
を選択する

7.「実行」ボタンをクリックする

8.アップデート完了するまで待機。

9.アップデート後、再起動され、F/Wversionの情報が更新されていることを確認する






9/06/2025

ZabbixでSwitchbotを監視する手順

概要
Switchbot社のIoT製品をZabbixでSwitchotAPIを使って、データ取得して監視する手順

環境
HW:GZBOXミニPC 
OS:Alma Linux 9.6
Web:httpd-2.4.62-4
AP:PHP-8.3.19-1
DB:mysql-8.0.41-2
Zabbix:7.4.1
Switchbot:9.15

前提
SwitchbotのHubで設定し、アプリで情報が取得可能な状態

概要手順
A.Switchbot APIを取得するためのトークン、クライアントシークレットの取得
B.各SwitchbotのデバイスIDを確認
C.ZabbixServerに外部スクリプトの有効化
D.Pythonのスクリプト実行環境準備
E.Pythonの外部スクリプト設置
F.ZabbixのSwitchbot監視用テンプレート作成
G.ZabbixのSwitchbot監視用アイテム作成
H.Switchbotのホスト作成

詳細手順
A.Switchbot APIを取得するためのトークン、クライアントシークレットの取得
01.AndroidもしくはiPhoneのアプリケーションを起動

02.「プロフィール」-「設定」-「開発者向けオプション」でトークン、クライアントシークレットの取得を取得

03.トークン、クライアントシークレットの値を作業するPCにGmailなどの方法でコピーする

B.各SwitchbotのデバイスIDを確認
01.ZabbixServerにSSHでログインし、コマンドからAPIでデバイスIDを取得します。
※後述の手順でデバイスIDが必要になります。
"Authorization:トークン"はA-03で取得したトークンの値を代入してください。
$curl -H "Authorization:トークン" -X GET "https://api.switch-bot.com/v1.0/devices" | jq

C.ZabbixServerに外部スクリプトの有効化
01.zabbix_server.confのコメントアウトされているExternalScripts
の項目をコメント解除します。
デフォルトだと、「/usr/lib/zabbix/externalscripts」ですが、
必要な場合は、別のパスを指定してください。
vi /etc/zabbix/zabbix_server.conf
#ExternalScripts=/usr/lib/zabbix/externalscripts
ExternalScripts=/usr/lib/zabbix/externalscripts

02.ZabbixServerのサービスを再起動します。
$systemctl restart zabbix-server

D.Pythonのスクリプト実行環境準備
※PIPとrequestsがインストール済みの場合は、この手順は不要です。
01.PIPのインストール
$ curl -kL https://bootstrap.pypa.io/get-pip.py | python

02.requestsのインストール
$python -m pip install requests

E.Pythonの外部スクリプト設置
01.d_yanさんが作成いただいたPythonスクリプト「switchbot_api.py」を「/usr/lib/zabbix/externalscripts」に配置する。

https://qiita.com/d_yan/items/805f50a6f1139fa94215

02.スクリプトのパーミッションの設定
$chmod 0755 switchbot_api.py

03.スクリプトのオーナーを変更
$chown zabbix:zabbix switchbot_api.py

04.スクリプトの権限を確認
$ls -l switchbot_api.py
-rwxr-xr-x 1 zabbix zabbix 1439  switchbot_api.py

05.スクリプトの動作確認
Pythonのスクリプトに前述した手順で取得したトークン、クライアントシークレット、デバイスIDを代入し、実行結果を確認する。
$ ./switchbot_api.py トークン クライアントシークレット デバイスID

F.ZabbixのSwitchbot監視用テンプレート作成
※Switchbot社のすべてのアイテム

01.Zabbixの左ペインの「データ収集」-「テンプレート」から
「テンプレートの作成」ボタンをクリックする

02.新規テンプレート画面から
テンプレート
テンプレート名:Swichbot_meter
テンプレートグループ:Swichbot
※項目の入力は必達だが、識別しやすい文字列

テンプレート-マクロ
前述の手順で取得した情報をマクロに入力する
{$AUTHORIZATION}:トークン
{$CLIENT_SECRET}:クライアントシークレット
{$DEVICEID}:デバイスID

G.ZabbixのSwitchbot監視用テンプレートアイテム作成
01.API取得用共通アイテムを作成
アイテム-アイテム
名前  :switchbot.api ※任意
タイプ :外部チェック
キー  :switchbot_api.py[{$AUTHORIZATION},{$CLIENT_SECRET},{$DEVICEID}]
データ型:テキスト
監視間隔:Xm
※SwitchbotのAPI取得回数は1日1万という制限があるため、
取得デバイスの状況次第では監視間隔を広げる必要があります。
1分で取得する場合は6デバイスが1万回になります。

アイテム-保存前処理
名前   :JSONPath
パラメータ:$.body

02.各製品に合わせたアイテム作成
各製品によって取得できるアイテムが異なります。
Eの手順で作成したスクリプトを実行し、取得されるアイテムを確認します。
取得されたアイテムのデータ型については、参考URLからデータ型を設定します。

参考URL
https://github.com/OpenWonderLabs/SwitchBotAPI?tab=readme-ov-file#python-3-example-code

H.Switchbotのホスト作成
01.左ペインの「ホスト」-「ホストの作成」ボタンをクリック

02.「ホスト」-「ホスト」作成
ホスト名:識別しやすい名称
テンプレート:前述の手順でテンプレートを作成
ホストグループ:識別しやすい名称

03.「ホスト」-「マクロ」作成
{$AUTHORIZATION}:トークン
{$CLIENT_SECRET}:クライアントシークレット
{$DEVICEID}:デバイスID

補足

APIの取得制限にあたる1万回にいたらない頻度を計算すると、以下になります。

参考
1日=24時間=1440分=86400秒

1分監視の場合
1デバイスx(1日=1440分÷1分)=1440回
6デバイスx(1日=1440分÷1分)=8640回
7デバイスx(1日=1440分÷1分)=10080回

2分監視の場合
1デバイスx(1日=1440分÷2分)=720回
13デバイスx(1日=1440分÷2分)=9360回
14デバイスx(1日=1440分÷2分)=10080回

5分監視の場合
1デバイスx(1日=1440分÷2分)=288回
34デバイスx(1日=1440分÷5分)=9792回
35デバイスx(1日=1440分÷5分)=10080回


8/31/2025

ZabbixAgent2環境でchrony テンプレートを利用する手順

 概要
Zabbixで利用されているtemplate_chrony_accuracy_japaneseは、
ZabbixAgent2はEnableRemoteCommandsの設定が無効になっているため
ReadMEの記載では監視できないため、補足の手順になります。

環境
HW:GZBOXミニPC 
OS:Alma Linux 9.6
Web:httpd-2.4.62-4
AP:PHP-8.3.19-1
DB:mysql-8.0.41-2
Zabbix:7.4.1

利用テンプレート
template_chrony_accuracy_japanese

前提
・chronyが設定されており、時刻同期がされていること
・template_chrony_accuracy_japaneseのテンプレートを適用済みなこと

手順
1.ZabbixAgent2のconf設定に追記します。
$ vi /etc/zabbix/zabbix_agent2.conf

AllowKey=system.run[*]
UnsafeUserParameters=1

2.ZabbixAgent2をリスタートします。
$systemctl restart zabbix-agent2

3.ZabbixAgent2のステータスが正常なこと。
$systemctl restart zabbix-agent2


4.chronyテンプレートのアイテムが取得されていること

参考URL
https://www.zabbix.com/jp/integrations/chrony

ZabbixServer7でMySQLを監視する手順

 概要
Zabbixで利用されているMySQL by Zabbix agent 2は、
Zabbixのテンプレートを適用するだけでは、
監視できないため監視するための設定手順
今回は、MySQL系で構成したZabbixServer自身の監視方法のため、
自身のアカウントで、構成しています。
ZabbixServerからリモート先のMySQL系を監視する際には、
アカウントを別で設定することなどのセキュリティを考慮する必要があります。

環境
HW:GZBOXミニPC 
OS:Alma Linux 9.6
Web:httpd-2.4.62-4
AP:PHP-8.3.19-1
DB:mysql-8.0.41-2
Zabbix:7.4.1

利用テンプレート
MySQL by Zabbix agent 2

手順
1.MySQL by Zabbix agent 2のテンプレートをZabbixServerに適用


2.マクロで、MySQL用追加する
{$MYSQL.DSN}:tcp://localhost:3306
{$MYSQL.PASSWORD}:Mysqlのrootパスワード
{$MYSQL.USER}:root

3.LLDでアイテムやグラフが追加されること

参考URL
https://www.zabbix.com/jp/integrations/mysql


LibreOffice-CalcでOSのライトorダークモードと連動させない方法

 概要 LibreOfficeは、デフォルトではOSのライトorダークモードと連動する設定になっています。 LibreOfficeの表計算ソフトCalcだとセルの部分がダークモードだと、視認しにくい問題があり、OSのダークモードと連動しないようにする設定手順があります。 前提 ・...