傳統調光支架燈的自動燈光

 

 

Apple 在 WWDC 2020 在 HomeKit 上發表了 Adaptive Lighting 的概念,當使用可調整色溫和亮度的燈具時,可以讓燈具的光線跟隨自然光的變化而自動調整:早晨跟晚上是柔和的暖色光線,白天則調整為幫助專注的冷白光。

 

這個功能很酷,但卻很少被提起,因為想要完整的體驗這個功能,使用者必須購買支援 Homekit 與 Adaptive Lighting 的智慧燈具,除了價格相對高昂以外,選擇也非常少。

跟蘋果發表會同步上市的 Nanoleaf 智慧燈條


最適合使用 Adaptive Lighting 的燈具應該是燈條或是間接光這種用來打亮整體空間的燈具了,但當初規劃室內燈光的時候,考慮到市售的 LED 智慧燈條要不是演色性僅有 80,或者根本就沒標示(有些會說明因為規格為 RGB 所以無法測量,原因我不確定)。原本想說那就放棄使用智慧燈具了,但在尋找合適的產品時發現一個有趣的產品:可調光的 LED 燈管, T5 支架燈 4 呎規格,演色性達 95 並且支援可調光,有 3000K 與 6500K 兩種可以選購:

可以調光的 T5 支架燈

按照燈具的使用說明,調整光線的方法為關閉電源後 3-5 秒再開啟,燈具就會緩緩亮起,當到達適合的亮度時快速重起開關,燈具就會維持在指定的亮度。

燈具調光使用說明

像這樣的產品一般來說是搭配傳統機械開關使用,不過如果透過智慧開關控制,可以很輕易的透過 Home Assistant 裡面的腳本來自動完成各種亮度的設定。

於是購買 3000K 與 6500K 兩種燈管,分別使用 Sonoff Basic R2 控制通電並且安裝在間接光盒裡面,這樣硬體的部份就建構完成了。腳本的部份,實際測試燈具從開啟到最亮時約 8~10 秒,沒有使用相關的儀器檢查,但就先設定在 3s、4s、5s、6s、以及無限來作為 20%、40%、60%、80%、100%,取得中五種亮度區段的設定。

例如設定 40% 的白光的腳本設定如下:

alias: 40 白光
sequence:
  - service: scene.turn_on //啟用開啟白光場景
    target:
      entity_id: scene.whitelight.turn_on
    metadata: {}
  - delay: //延遲 4 秒
      hours: 0
      minutes: 0
      seconds: 4
      milliseconds: 0
  - service: scene.turn_on //啟用關閉白光場景
    target:
      entity_id: scene.whitelight.turn_off
    metadata: {}
  - delay: //延遲 50 毫秒
      hours: 0
      minutes: 0
      seconds: 0
      milliseconds: 50
  - service: scene.turn_on //啟用開啟白光場景
    target:
      entity_id: scene.whitelight.turn_on
    metadata: {}
mode: single
icon: mdi:globe-light
 

可以自由設定兩種色溫的燈管亮度後,接下來是必須知道如何安排光線的亮度與色溫,由於蘋果並沒有公開 Homekit Adaptive Lighting 的相關數值,於是只能自己去找相關文件。參考 HA 組件 adaptive-lighting 中提供的相關數值來反向推出需要的數值。為了實作方便預計簡化到只有五個亮度,所以利用日出日落時間的整合來分別推算出日出以及日落前的幾小時來做時間區段。

adaptive-lighting 提供的數據


以日出日落時間為基準,將一天分成 10 種光線配置

接下來開始寫自動化,邏輯很簡單:

1.  創造一個虛擬開關命名為「間接光」,並且接回 HomeKit 方便透過 Siri 控制,作為整個系統的主要控制器。

2. 「間接光」開啟的時候,針對當下所在的時間決定要呼叫哪個白光與黃光的腳本。未來所有需要開啟或關閉間接光的場合如起床、離開家、到家,或是 Siri 語音呼叫,都透過啟動這個虛擬開關來控制。

3. 在特定時間時,偵測「間接光」為開啟時,設定切換腳本來達到調光的效果

4. 由於燈具非原生智慧燈具,為降低切換燈光時必須關燈的突兀感,將白光與黃光燈泡錯開 15 秒切換。

 

首先先寫「間接光」的部份,當偵測開關開啟時,根據不同時段執行不同腳本:

啟動條件:當「間接光」開關開啟時

判斷時間不同區段執行不同腳本

alias: 開啟間接光
description: ""
trigger: //偵測條件,當間接光從任何狀態變為開啟時
- platform: state
entity_id:
- input_boolean.jian_jie_guang
from: null
to: "on"
condition: []
action:
- alias: sunrise-2 //設定條件,日出前兩小時,時段為日出前 2 小時至日出前 1 小時
if:
- condition: sun
before: sunrise
after: sunrise
before_offset: "-01:00:00"
after_offset: "-02:00:00"
then: //執行黃光 40% 的腳本
- service: script.0
metadata: {}
data: {}
- service: script.yellow_light_40
data: {}
- service: notify.line_notification
metadata: {}
data:
message: sunrise -2
- alias: sunrise-1

//設定條件,日出前兩小時,時段為日出前 1 小時至日出 
    if:
- condition: sun
before: sunrise
after: sunrise
after_offset: "-01:00:00"
then:
//執行黃光 60% 的腳本
 
- service: script.0
metadata: {}
data: {}
- service: script.
yellow_light_60
data: {}
- service: notify.line_notification
metadata: {}
data:
message: Sunrise -1
...

如此即完成開啟的設定,接下來處理光線轉換的部分:

啟動條件:設定為 10 個啟動時間:日出前 2 小時、日出前 1 一小時、日出時間....

判斷條件:「間接光」開關狀態為開啟時

判斷時間不同區段執行不同腳本,這邊使用一個簡化自動化腳本的小技巧,即在觸發條件可以把所有的時段,以及條件都寫進來,然後在觸發執行的時候再進行一次判斷來決定要執行那一個行為。

例如觸發判斷就把所有時段加進來,並且條件為 「間接光」開關狀態為開啟時才執行:

 alias: 間接光模式轉換
description: ""
trigger: //以日出與日落為基準 offset 的各時段區間作為起啟動條件
- platform: sun
event: sunrise
offset: "-02:00:00"
- platform: sun
event: sunrise
offset: "-01:00:00"
- platform: sun
event: sunrise
- platform: sun
event: sunrise
offset: "01:00:00"
- platform: sun
event: sunrise
offset: "03:00:00"
- platform: sun
event: sunset
offset: "-03:00:00"
- platform: sun
event: sunset
offset: "-01:00:00"
- platform: sun
event: sunset
- platform: sun
event: sunset
offset: "01:00:00"
- platform: sun
event: sunset
offset: "02:00:00"
condition: //間接光開關為開啟的時候
- condition: state
entity_id: input_boolean.ambient_light
state: "on"

啟動條件達成後,再判斷一次當下的時間來決定要執行哪一個燈光配置

action:
- alias: "sunrise-2 " //條件命名日出前兩小時
if: //如果時間在日出前 1 小時至日出前了 2 小時
- condition: sun
before: sunrise
after: sunrise
before_offset: "-01:00:00"
after_offset: "-02:00:00"
then: //執行黃光 40% 的腳本
- service: script.yellow_light_40
data: {}

其他狀態依據相同邏輯補齊,最後完成之後,系統只要偵測人到家,就會開啟間接光並且自動幫我選擇適合的色溫與亮度。並且會根據日出日落前色溫變化較大的時間點,自動幫我重新開關燈具調整到指定的色溫與亮度。





閱讀更多 »

透過智慧開關實作洗衣機通知功能


洗衣機的通知功能是我最早在 Home Assistant 完成的功能。

最初的需求是由於洗衣機跟烘衣機運作的聲音以及完成的提示聲響都很小聲,導致常常忘記自己在洗(烘)衣服。一開始都是衣服放進去洗之後看預估時間再另外設定計時器,但總覺得整個體驗應該再更聰明一點。

市面上的智慧插座除了提供開關控制以外,有些產品還提供了電量偵測以及用電量統計的功能。利用智慧插座偵測即時的功耗數據,來判斷洗/烘衣機是否開始洗衣與結束,並且即時把狀態發到 Line 通知上面以及指定裝置語音通知,這樣就可以很輕鬆掌握機器的狀態。

透過系統服務把訊息推送到 Line 上面


將插座接入 HA 以取得更多的控制

我使用的是 Tuya 的智慧插座,用 localTuya 接入 HA 之後,會有約 20 個實體可以新增
實際運轉透過交叉比對後,只取出四個實際上有用的實體:
開關控制 onoff(1)、功耗 Power(19)、電流 mA(18)與電壓 Voltage(20),重新命名好之後就可以透過 HA 控制與監控插座的狀態。

接入 HA 取用的實體,這次要用到的是功耗數值

新增一個虛擬開關

在 configuration.yaml 裡面新增一個 input_boolean 實體,實體名稱 washing_machine,顯示名稱 Washing Machine,並且指定 mdi:washing-machine 這個圖示。

input_boolean:
  washing_machine:
    name: Washing Machine
    icon: mdi:washing-machine

新增這個虛擬開關有幾個作用,主要目的是利用開關的布林值來儲存洗衣機的狀態,由於機制是偵測智慧插座的功耗來進行,所以也利用這個狀態避免預期外的功耗變化導致誤判。
並且可以將狀態直接顯示在面板上進行監控。實際上不需要直接去控制與使用這個開關。

 

透過虛擬開關來模擬洗衣機的狀態

在面板上可以即時顯示狀態

到這邊準備工作就完成了,接下建立自動化

alias: 開始洗衣服
#自動化名稱

trigger:
  - type: power
    platform: device
    device_id:
device_id
 
   entity_id: 實體名稱
    domain: sensor
    above: 10
    for:
hours: 0
minutes: 0
seconds: 10
 #
智慧插座的 Power sensor 屬性高於 10 ,超過 10 秒時觸發 condition:
  - condition: state
    entity_id: input_boolean.washing_machine
    state: "off" #增加觸發條件 washing_machine 狀態為 off
action:
  - service: notify.line_notification
    data:
      message: 開始洗衣服 #調用 line_notification 系統服務傳送文字訊息   - service: scene.turn_on
    target:
      entity_id: scene.nest_mini_yin_liang_70
    metadata: {}
  - service: tts.azure_cognitive_speech_say
    data:
      cache: true
      entity_id: media_player.google_nest_mini
      message: 開始洗衣服
#調用 azure TTS 系統服務傳送文字轉語音訊息,透過 Google nest mini 發聲

  - service: input_boolean.turn_on
    data: {}
    target:
      entity_id: input_boolean.washing_machine
#
washing_machine 狀態設定為 on

mode: single  
到這邊開始洗衣的部份就完成了,接下來再用同樣的方式設定完成洗衣、以及烘衣機的自動化就完成整個系統了

閱讀更多 »

【iOS App】The Massive Dev Chart

雖然數位潮流當道
但是底片攝影依然是很多熱愛拍照的人的選擇
很多學校的相關科系依然保留了暗房設備以及傳統攝影的課程
黑白底片跟藥水在台灣並不難買,入門門檻其實很低
筆者閒時也喜歡拿著爸爸的Canon A-1底片相機拍拍黑白底片
偶爾自己洗一下黑白底片,享受一會暗房工作的樂趣

如果你有上過暗房課程一定會知道
要用到的藥水很多,常常都是學校同學合資一起買、一起使用的
實際操作的時候也常常是老師直接跟規定一套制式的沖洗的方法跟資訊
顯影幾分鐘、定影幾分鐘,大家都一樣
但是自己來的時候,當然是要求高品質的沖洗結果
這麼一來就需要因應軟片跟藥水的不同搭配來使用不同的沖片時間
要去廠商的網站找沖洗資訊表來參考、然後實驗才能得出不錯的沖洗效果
因為實在太麻煩了,所以國外一個知名的、仍然在販售傳統底片材料的網站DigitalTruth
統整了很多攝影師們的沖洗資訊與心得 ex: Kodak Trix400 B/W film with HC-110 dev.
這樣大家就可以參考各種不同的藥水、軟片、溫度等的資訊來調整
是個很方便的資料網站
 
而為了讓大家使用上更為便利,不用在進暗房前上網查詢做功課抄筆記
DigitalTruth推出了The Massive Dev Chart這個APP
同時有  (iPhone / Android) 兩種版本
如果你還有在自己沖洗黑白底片,那麼你一定不可以錯過這個方便的APP

一開始執行程式,就會看到超詳盡的底片列表,按照不同的字母排列
真的超級多的,很多在臺灣連聽都沒聽過的底片也在其中


選定好軟片種類以及你使用的沖洗液之後,會自動進入程式的計時畫面
畫面上可以看到程式依照資料庫,把每一階段的沖洗流程都配好時間給你了
TMAX400、使用D-76顯影液(1:3濃度使用)、溫20度
顯影15分鐘、停影1分鐘、定影5分鐘、去海波2分鐘、水洗10分半


而APP還可以根據你的需求改成黑色背光模式
這個在暗房放相作業時非常重要,不然iphone的背光螢幕可是會讓你的相紙通通曝光的
可以選擇綠色/紅色模式



當你調製好藥水,按下Start之後,APP就會開始計時
這邊很貼心的就是程式會依照沖洗的狀況發出聲音指示你沖洗的動作
一般我們為了讓藥水充分與軟片上的乳劑充分的作用
我們會每一分鐘為單位,前10秒做搖晃,後50秒讓藥水沉靜以充分發揮作用
這個APP也會在每分鐘的前10秒發出聲音提醒使用者動作
非常的貼心


顯影完畢時程式一樣會發出聲響提醒並自動停在準備下一個步驟的畫面
這時候使用者要做換藥水的動作
換好藥水之後按continue就會自動進入下一個步驟的計時


有了這個APP的幫助,攝影師已經不用再事前多花費時間計算沖片時的各階段時間
然後在工作時還得手忙腳亂的查詢筆記
一切只需要依照APP的安排與指示,循序漸進的就可以完成沖片的工作

看到自己沖洗出來的底片顯現出你拍攝的影像
真的是非常的有成就感
翻出家裡沉靜多時的底片相機,一起來拍底片吧!


 

相關連結
DigitalTruth
The Massive Dev Chart  (iPhone版本下載 / Android版本下載 )


 
閱讀更多 »

TAXONA 方格相機24X24

ZEISS IKON TAXONA
為ZEISS IKON生產的輕便型相機
最特別的一點就是雖然一樣是使用常見的135底片
片幅卻不同於一般36X24的3:2比例,而是採用24X24的1:1大小
一捲36張底片約可拍攝52張左右
採用鏡間快門,重量約400g,以小相機來說相當扎實

不過這系列機型蠻多不同小細節的變化
查了一下果然還是跟東、西德的歷史有關
簡單來說在1938年推出可換鏡頭式的24X24測距連動式相機TENAX II之後
稍後在1939年推出TENAX I ,沒錯,比較晚推出的反而寫I,且採用固定鏡頭、更簡單的機構
鏡頭大部分都配備Novar 3.5 cm f/3.5 lens,以及少量的3.5 cm f/2.8 Tessar款式
快門最高則為1/300秒


戰後東西德分家(約略為1948年),東德 ZEISS IKON公司繼續生產TENAX系列
這時的鏡頭配備Zeiss Novar 35mm f/3.5,以及37.5mm f/3.5 Tessar鏡頭
部分機型則提供了1/500的快門
在1953年做了大幅度修改、除了把機頂的構圖窗收入機身外、不久改名為TAXONA(因為東德名稱版權問題)
並且把Novar 鏡頭改名為Novonar,最後一款修改則把過片桿的尖端改為黑色,並於1959年停產

上面是辛苦整理資料出來的約略歷史
不過現在市面上可以看到的TAXONA
大致上可以依據使用鏡組的不同,分成兩種版本:
也就是Tessar 37.5mm F3.5(似乎不是每一台都有紅以及Novonar Anastigmat 35mm F3.5 紅這兩種
最簡單的分辨方法就在鏡頭的外型,Tessar款的鏡頭外第二圈是由內往外斜出去,Novonar則為內凹的形式
另外當然鏡頭上也會用文字明確的標示出類型
Tessar 37.5mm F3.5
Novonar 35mm F3.5
 
我手上的版本是屬於後者,至於對成像有什麼差異,在網路上也是眾說紛紜
畢竟這種縮小片幅的機器、畫質也不是主要訴求,最主要還是在於輕便、節省底片消耗吧

TAXONA正面圖:
一圈圈像塔狀堆砌的鏡頭跟控制環是TAXONA的一大特色
最內圈可以直接選擇使用的光圈
畫面上9點鐘方向的撥桿是控制快門速度,選擇的快門可以鏡頭上方的小窗口看到
光圈環外面就是對焦環,待會可以在上視圖看到
10點鐘的撥桿則是快門,非常有趣的位置
至於最明顯的1點鐘的撥桿,則是這台機器的過片桿
有些地方因此戲稱它為招財貓

 

 

 

 

上視圖: 

可以看到左邊是迴片盤
右邊為計數器(需要手動歸零)
計數器旁邊的小按鈕為退片紐
這邊也可以看到對焦環所設定的刻度(在鏡頭上方),採用的單位是公尺
至於鏡頭黑色底座部分有一個小孔,畫面上指出現一半的,那個是閃燈同步孔



後視圖:
所有的功能全部擺在前面跟上面了,這邊相當簡潔
上方小圓孔是觀景窗,雖然很小不過使用上並不會覺得特別窄
機背則是清楚的標明了ZEISS IKON的寶塔商標
下視圖:
機身底部只有一個機背鎖
另外黑色的孔其實不是標準腳架孔,而是跟皮套固定的孔位

要打開後背很簡單,上圖指著Z是表示鎖住的意思
只需要將按鈕旋轉(用大拇指強壓旋轉)並且推到A的方向及位置即可:

跟多數底片相機設計的不一樣,屬於機背可以整個取下來的設計
另外還有一個片軸,片軸很重要可別弄丟了
印象中使用一樣的設計的有EXA系列相機
聽說片軸也是可以通用的
(不過這張照片上的片軸放錯位置就是了)
裝底片的方式也很簡單,首先要先手動把計數器歸零
這顆按鈕的操作方式跟底部背蓋固定紐一樣
接下來取出135底片,建議在最末端的部分稍微折一下,可以增加底片固定在片軸上的能力
我想多數手動底片機的都適用這個技巧,可以避免底片沒裝好結果辛苦半天拍出空白片的狀況

然後將對折的部分直接卡住片軸上的縫
然後就平穩的放入底片室


再蓋上背蓋就完成了,記得底部的背蓋鎖用原本的方式鎖回去固定

再來是確定底片有裝好的檢查步驟
通常熟練的裝好的話,第一張是白片,再下一張則是火燒片頭,頂多白片占了兩張這樣
我會使用1~2張來確認底片有沒有裝好

檢查方式也很簡單,先用輕微的力道旋緊迴片盤,注意控制力道以免片頭脫落
這個步驟主要是要把底片拉緊

然後就可以直接按快門、過片
只要迴片盤有跟著旋轉,基本上就可以確定底片安裝完成了
當然這個方法一樣適用於絕大多數的手動機身


拍完之後要記得退片才能取出底片
TAXONA的退片紐位置很神奇,放在相機的頂部
不知道的人還以為它是快門紐
操作方式也很特別,不像一般手動機身是按一次就好
它的設計是必須一直按著才有作用
所以退片的時候必須兩手並用,一手按著退片紐,另外一隻手則去撥動迴片盤
轉到聽到喀一聲然後手感不同的時候應該就差不多了












其實在拍攝之前,就稍微瀏覽過了網路上TAXONA的拍攝效果
發現老鏡頭除了無法跟陽光對幹之外,對於彩色底片色彩的表現亦不是很討喜
所以這台機器在手邊主要還是拍黑白的照片,階調也讓人滿意,這顆小小的鏡頭銳利度跟對比度都相當不錯
實拍照片:
TAXONA[1]27 TAXONA[1]48-2 TAXONA[1]15 TAXONA[1]29 TAXONA[1]24 TAXONA[1]47 歡迎香蕉大人

曾經借給朋友拍過幾捲,來個友情贊助幾張吧:
彩色的ZABU貓不是夜貓
拍黑白味道很不錯[暗房]自己跟自己玩兒
最後放一張用FM2幫它拍的
真的是一台很精緻的扎實的隨身機
TAXONA

延伸閱讀:
Flickr上的TAXONA群組
WIKI上的關於TANAX I 條目
WIKI上關於TANAX II 條目
閱讀更多 »