@[TOC](ws2812_Domoticz+esp8266_esp_easy_ws2812RGB燈(NeoPixel) 折騰記錄)
RGB_
Esp8266:
ESP8266 刷 Esp_Easy 固件,並設定NeoPixel 如下圖所示
在domoticz 中添加虛擬硬件,並創建虛擬傳感器 RGB 燈
在設置中查看創建的虛擬傳感器RGB 燈的IDX 並記錄下來,轉到 開關 面板 找到RGB 燈開關 分別編輯 開觸發命令 和關觸發命令
// ON
script:///opt/domoticz/scripts/python/ow12.py
// OFF
http://<esp_easy IP>/control?cmd=NeoPixelAll,0,0,0
編寫控制腳本並賦予執行權限
腳本來源於 Domoticz論壇
// /opt/domoticz/scripts/python/ow12.py
# vim /opt/domoticz/scripts/python/ow12.py
1 #!/usr/bin/env python
2
3 import requests
4 import ast
5IDX
6 ID = '剛剛創建的RGB 傳感器設備IDX'
7
8 domo_url = "http://domoticzIP:port/json.htm?type=devices&rid={}".format(ID)
9 owl_control_url = 'http://ESP_easy IP /control?cmd=NeoPixelAll,{},{},{}'
10
11 def app():
12 data = requests.get(domo_url)
13 print (data)
14 colour_data = ast.literal_eval(data.json()['result'][0]['Color'])
15 level_data = data.json()['result'][0]['Level']
16 state = data.json()['result'][0]['Data']
17 red = int(colour_data["r"])
18 green = int(colour_data["g"])
19 blue = int(colour_data["b"])
20 level = int(level_data)
21
22 redl = int((red/100) * level)
23 greenl = int((green/100) * level)
24 bluel = int((blue/100) * level)
25
26 if state == 'Off':
27 redl = 0
28 greenl = 0
29 bluel = 0
30
31 #send to light
32 _i = requests.get(url=owl_control_url.format(redl,greenl,bluel))
33
34
35 if __name__ == "__main__":
36 print (domo_url)
37 app()
//添加可執行權限
# chmod +x /opt/domoticz/scripts/python/ow12.py
參考來源:
Python script for full rgb + brightness control of easyESP neopixel