#!/usr/bin/env python3
import json
import os
import time
from gpiozero import LED

CMD_FILE = "/tmp/led_cmd.json"

# ===============================
# GPIO 初始化
# ===============================
red = LED(18)
green = LED(23)

def apply(cmd):
    color = cmd.get("color")
    action = cmd.get("action")

    leds = []
    if color == "red":
        leds = [red]
    elif color == "green":
        leds = [green]
    elif color == "all":
        leds = [red, green]

    for led in leds:
        if action == "on":
            led.on()
        elif action == "off":
            led.off()

# ===============================
# 啟動初始化（只做一次）
# ===============================
if not os.path.exists(CMD_FILE):
    with open(CMD_FILE, "w") as f:
        json.dump({"color": "all", "action": "off"}, f)

last_cmd = None

# ===============================
# 主迴圈（長駐）
# ===============================
while True:
    try:
        with open(CMD_FILE) as f:
            cmd = json.load(f)

        if cmd != last_cmd:
            apply(cmd)
            last_cmd = cmd

    except Exception:
        # 任何讀檔/JSON 錯誤都忽略
        pass

    time.sleep(0.1)