2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

🌿 ラズパイを活用した『社内環境(温湿度)見える化システム』番外編【祝日取得のAPI連携】

Last updated at Posted at 2025-05-23

はじめに

こんにちは、piyovateです🐣✨

今回は番外編として、これまで手動で管理していたホームページ上の「休日(休業日)」を、自動的に祝日APIと連携して更新する仕組みを作りました!祝日が毎年自動更新されるので、手間を省き運用が楽になりますよ✨


🎯 今回の目標

  • 国民の祝日を外部APIから自動取得
  • 手動で臨時休業日を追加可能な仕組みを維持

🌐 使用するAPI

今回使用したAPIはこちらです:

https://api.national-holidays.jp/

このAPIを利用することで、常に最新の祝日情報が自動で反映されます。

⚠️ ご利用の際は必ず利用規約をご確認ください。


⚙️ Step1:設定ファイルの修正

祝日APIのURLを設定します。年が変わっても自動で取得されるよう、JavaScriptで年を自動取得しています。

// raspi-config.js
const ENV_CONFIG = {
    national_holidays_apiUrl: `https://api.national-holidays.jp/${new Date().getFullYear()}`,
    holidays: [
        '2021-07-21', // 例:創業日などの臨時休業日をここに追加
    ]
};

🔄 Step2:API連携処理の追加

以下のように、祝日を取得する関数を追加しました。

// env-status.js
async function fetchHolidays() {
    const response = await fetch(ENV_CONFIG.national_holidays_apiUrl);
    if (!response.ok) throw new Error('祝日データ取得失敗');
    const holidays = await response.json();
    return holidays.map(day => day.date);
}

(async function initializeHolidays() {
    try {
        const apiHolidays = await fetchHolidays();

        // 手動設定日とAPI取得日のマージ
        ENV_CONFIG.holidays = Array.from(new Set([...ENV_CONFIG.holidays, ...apiHolidays]));
        console.log('祝日取得成功:', ENV_CONFIG.holidays);
    } catch (err) {
        console.error('祝日取得エラー:', err);
    }
    await updateComfortStatus();
})();

🚩 動作確認

これにより、

  • 毎年の国民の祝日が自動で更新
  • 手動指定した臨時休業日(創業日など)も設定可能

となります。

表示例:

休業日

これで管理も楽になりましたね!✨


📌 休日(休業日)の追加手順

ホームページ上に表示される「休業日」を追加する場合は、以下のファイルを修正します。

設定ファイルの場所

assets/js/raspi-config.js

変更方法

holidays: [
    '2021-07-21', // 例:創業日と同様の形式で休業日を入力してください
    // 臨時休業日をここに追加
]
  • 国民の祝日はAPIにより自動取得のため対応は不要です。

🎉 完成!

今回は番外編として、自動化による効率化を実現しました。
次回もお楽しみに🐣✨

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?