diff --git a/components/weather-setting.vue b/components/weather-setting.vue
new file mode 100644
index 0000000..eaaeb8c
--- /dev/null
+++ b/components/weather-setting.vue
@@ -0,0 +1,123 @@
+
+
+
+
+
+
diff --git a/composables/states.ts b/composables/states.ts
index 8fc9f39..4d54cb5 100644
--- a/composables/states.ts
+++ b/composables/states.ts
@@ -33,6 +33,13 @@ export const isChimeEnabled = () => useState
('isChimeEnabled', () => fa
// 予鈴の有効/無効
export const isPreChimeEnabled = () => useState('isPreChimeEnabled', () => false);
+// 天気の広域地方番号
+export const weatherWideRegionNumber = () => useState('weatherWideRegionNumber', () => "010300");
+// 天気のoffice番号
+export const weatherOfficeNumber = () => useState('weatherOfficeNumber', () => "130000");
+// 天気の地域番号
+export const weatherAreaNumber = () => useState('weatherAreaNumber', () => "130010");
+
// 現在の室温
export const roomTmp = () => useState('roomTemp', () => null);
// 現在の気圧
diff --git a/utils/weather-code.ts b/utils/weather-code.ts
new file mode 100644
index 0000000..23d6039
--- /dev/null
+++ b/utils/weather-code.ts
@@ -0,0 +1,27 @@
+/**
+ * 気象庁の地域番号と地域名のクラス
+ */
+export class regionCodeName {
+ code: string;
+ name: string;
+
+ constructor(code: string, name: string) {
+ this.code = code;
+ this.name = name;
+ }
+}
+
+/**
+ * 気象庁の地域番号で親コードから子コードの番号と地域名のリストを取得する
+ * @param parentsObj 親要素のオブジェクト (例:centers)
+ * @param parentCode 親要素のコード (例:010300[関東地方])
+ * @param childrenObj 子要素のオブジェクト (例:offices)
+ * @returns 子要素のコードと地域名のリスト (例:{130000: "東京都"}, 140000: "神奈川県", ...])
+ */
+export function getWeatherAreaCodes(parentsObj:any, parentCode:string, childrenObj:any) {
+ // 親要素内の地域のコードを取得する
+ const childrenCodes = Object(parentsObj)[parentCode]["children"] as Array;
+ return childrenCodes.map((code) => {
+ return new regionCodeName(code, Object(childrenObj)[code]["name"]);
+ });
+}
\ No newline at end of file