Dynamic Frequency Select(DFS)與固定頻道

在5GHz無線頻道規劃上,預設都是全部開啟,然後交給AP去選擇要使用甚麼頻道。

不過有時候因為某些因素,像是混雜舊設備而不支援,就會關掉某些頻道,甚至是固定一個頻道,做到規劃上的切開降低干擾。

然而,我並不建議減少AP可選的5GHz頻道,如果基於舊設備的問題而減少,請汰舊換新,現今大多設備早已數年5GHz全頻道支援,不該為了極少數的舊設備(如舊macbook、Nintendo Switch等)去拖累靈活性。

要是有規劃的因素,大多沒有將DFS納入。

DFS是甚麼?簡單來說,為了避開與雷達同頻道,所以AP偵測到雷達,就需要自主跳開的功能。而這項功能,是地方法規的要求,也就無法說關就關。關於DFS頻道有哪些,可以從維基百科上去查詢。

維基百科:地區能用的WiFi Channels

若指定的5GHz頻道屬於DFS頻道,那麼就會在偵測到面臨雷達的時候,因為沒有其他5GHz頻道可用,然後把5GHz訊號關掉。

說到DFS,就要提到另一個Transmit Power Controll(TPC)。TPC跟DFS的用意一樣都是避免對雷達干擾,TPC則是採取降低功率的方式,而DFS則是跳開當前頻道。

現在說說臺灣,臺灣的5GHz只有DFS並沒有TPC的,以下為臺灣5GHz頻道的情形:
沒有限制:32-48, 149-161, 165
DFS:50-68, 96-144

如果把DFS占用頻道這件事情好像不是那麼容易發生,那有沒有實際發生過呢?
有,20211103上午,就因為DFS而讓96-144的WiFi Channel保持淨空。

可以看到96-144頻道幾乎沒有訊號

有時候AP的WiFI訊號會突然搜尋不到,除了AP故障,也可能是因為DFS的問題。

就算因為DFS的問題而讓AP發不出訊號,那至少也要有資訊說是DFS的因素而不發出吧。

這裡以Aruba IAP為例。

這裡指定頻道100E,讓AP沒有其他的頻道可選。實測是AP是沒有發出5GHz訊號。

從 Tech Support 去查,找到了以下的結果。

可以看到100E是OFF(R),實際沒有發送任何訊號。
關於 OFF(R) 的說明,因為雷達而關掉無線電

這樣就能很明確地得出AP沒有發送訊號是因為DFS的問題,大概可以這樣想,此時附近的AP應該都沒有100頻道,因為不合法規,沒有DFS功能的AP是無法在台灣販售的。

至於DFS什麼時候出現?會出現在哪一區?會持續多久?這就沒有人能說得準。

最近剛好碰到一些因為某些考量而選擇減少5GHz頻道的客戶,甚至是有固定5GHz頻道的客戶,然後都碰到AP沒有發送任何5GHz訊號的狀況,這DFS可能就是狀況發生的原因。

2021冬 個人常用軟硬體

隨著時間經過,設計會經過驗證,有些變成主力,有些則遺忘,有些新需求又再次浮現。個人都是以「生產力」為最高目標,「便捷」為第二。

前陣子在討論(傳教)怎麼用比較快,已經聽到兩次說用鍵盤快捷鍵也很快,左右互搏,我的概念不是很需要,他們都是打鍵盤功力很夠。

但時間會證明,證明一旦有更繁重的文書工作出現,還是想更輕鬆瀏覽,我個人配置概念還是贏,很簡單,因為以複製為例是「滑鼠選取後按鍵盤Ctrl + C」還是「滑鼠選取後按滑鼠功能鍵複製」哪個操作難度比較簡單?後者不只比較簡單便捷,還能只用單手解決。

複製乃最常用功能之一,生產力配置都是以最常用的功能列出排行榜去依序簡化,這些常用功能即便只是簡化一小步,即便是少一個拖曳,習慣之後,每天日積月累所節省的時間跟疲勞也是很可觀的。

樂於分享操作技巧,我認為提升效率是為了解放時間,時間多出來可以更多休閒或是去探索其他事物。人生時間有限,好好利用時間是很重要的。

在工作之餘,可以跟同事切磋分享一些操作,互相交流好用的軟體,個人也會因為工作需求或是境界提升,而調整了自己的習慣。

每一季下來,累積出有些改動,做個紀錄,也相信這會是很好的經驗分享。

現有:目前個人軟硬體配置
困擾與需求:上篇之後,所遇到的困擾與新的需求。
改動:誰出現取代了誰?或是送修,送終。
計畫:覺得不方便但還沒做的改動,可能等待更好的下一個或是時間去執行。

現有

  • 螢幕:三星G5 27吋、ViewSonic VX2718-2KPC-MHD搭配ErgoGrade EGHA741Q
  • 鍵盤:羅技 G913 TKL 搭配 Logitech G HUB、irock K76M 無搭配
  • 滑鼠:羅技 mx anywhere 2s (4隻) 搭配 Logitech Options
  • 郵件:Thunderbird
  • 行事曆:Thunderbird
  • 專案進度:Trello
  • 筆記:Onenote
  • 雲端硬碟:One Drive

困擾與需求

  • 工作效率提升 => 螢幕左右分割 => 27吋2k螢幕
  • 工作協作需求 => 使用 Onedrive 當雲端硬碟,共同編輯
  • 工作協作需求 => 練習 Trello
  • 螢幕歪斜:ViewSonic VX2718-2KPC-MHD搭配ErgoGrade EGHA741Q,螢幕無法自然保持水平,能做有空間做順逆旋轉。
  • 螢幕送修:三星曲面G5 27吋,螢幕脫離邊框。(購入不到兩個月)
  • 筆電送修:風扇噪音,應該是小砂石進入。直接免費更換散熱模組。

改動

  • Thunderbird 取代 Win10內建行事曆
  • Thunderbird 開機自動啟用
  • Win10內建行事曆 => 刪除
  • 重新使用Trello
  • Trello看版的Power-Up小工具使用行事曆,讓Thunderbird與Google行事曆匯入,保持同步。
  • Trello看板使用自動化功能,能把移入特定清單且沒有日期的卡片加入日期。按下日期完成後,將卡片自動從清單移出到另外一個。
  • 便捷左右分割 => Win + 方向鍵 => 更動滑鼠滾輪左右推功能為當前視窗放置螢幕左右半邊
  • 調整複製貼上為滑鼠滾輪左推左移與右推右移

計畫

  • 把 Evernote 去除,因為啟動到能用要數十秒。

Android 快速操作技巧

本文以「Android 12」與「Pixel 5」為主。

「任何操作,都應該以便捷生活為主,先了解自己經常用甚麼,再以此發想做探索或設定。」

要個人最佳化,首先要能知道自己經常用的功能,從前幾名開始設定,像我,Pixel5肯定要以拍照快速為主,然後日常使用為輔。

因此,個人做了使用功能的排名。

第一名:BePtt
第二名:拍照
第三名:Line Pay
其餘,頻率很少。(※個人都是靠網頁)

首先,先講一些需求:

  • Smart Lock:個人平常會配戴智慧手錶,如果手錶在手機身旁,就不需要輸入密碼。
  • 避免誤觸:有過手機自己打電話的經驗,因此希望操作手機之前,要能讓自己「手動」點亮螢幕的動作。習慣用電源鍵去關閉螢幕,希望用電源鍵啟用或是多動作的操作去開啟。
  • 針對常用的功能快捷化:依照常用功能排名,依序做優化。

Smart Lock

在 設定 > 安全性 > 進階設定 中進行設定。

避免誤觸

在 設定 > 系統 > 手勢 中進行設定,大部分的快捷操作都是在此設定。

快速開啟相機

連按兩次電源鍵,可以開啟相機。=> 快速啟動相機,避免錯過好的捕捉時機。

輕觸手機即可喚醒螢幕

連點兩次螢幕,可以點亮螢幕。=> 螢幕比電源鍵大,右撇子用食指連點兩次去點亮螢幕比按電源鍵還省力。

拿起手機即可喚醒螢幕

個人選擇關閉。=> 很容易就觸發,再加上有Smart Lock,在口袋摩擦就可能變成小精靈在操作手機。一個不小心,可能就打出很多意外的東西,因此關閉。

快速輕觸

在背面連續敲兩下,就可以選擇觸發一些行為。個人選擇打開PTT,因為那是拿起手機最常用的。手機需要到桌面,快速輕觸才有作用。如果是右撇子,很容易敲在相機鏡頭區。如果使用輕觸喚醒,那麼進入桌面需要先做一個動作,才能觸發快速輕觸。但如果用電源鍵喚醒,到桌面就能馬上使用快速輕觸。

分配

BePtt可以使用「快速輕觸」,連續敲擊背面去啟動。

相機可以透過「快速開啟相機」,連續按兩次電源鍵啟動。

Line Pay直接做成捷徑,放在主桌面,在進入桌面時可以只用一擊就點開。

習慣

一旦做了快捷化,就要讓自己改用快捷化操作,而不是用原本的操作。雖然前期會不習慣,但讓自己意識到持續更改操作,最終就能取代原本操作,在這個時候,快捷化的操作就是成功。

Aruba Controller 使用者頻寬限制之設定

Aruba OS的頻寬限制是設定在「Role」上,又分為「Per Role」、「Per User」及「Per AP Group」,假設有一個Role取名為「R1」、有兩個AP Group取名為「A1」、「A2」,有三個User取名為「U1」、「U2」與「U3」。

以Bandwidth 30M為標準:

若用Per Role,則三個User共享30M頻寬。

若用AP Group,則A1、A2分別有30M頻寬,連在A1的使用者共享一個30M頻寬,連在A2的共享另外一個頻寬。

若用User,則U1、U2與U3都享有獨自的30M頻寬。

圖示為6版,而8版也在類似位置設定。

接著,想要讓Client受到頻寬限制,就只需要讓Client能拿到有頻寬限制的Role。

使用者連到SSID,過程中所有的角色分配都是依該SSID的AAA Profile去決定。

Initial Role是連上後,如果有PreshareKey需要輸入正確,後續沒有符合別的條件,所拿到預設的Role。

MAC Authentication Default Role,是通過MAC Auth的角色。

802.1X Authentication Default Role,是通過802.1X的角色。

網頁認證會有兩個Role,一個是進行網頁認證的Role,另一個是通過網頁認證的Role。進行網頁認證的Role會放在Initial Role,而通過網頁認證的Role會設定在L3 Authentication > Captive Porta Authenticationl 的 Default Role。

Client會不會去做網頁認證,取決於Client所拿到的Role,在Role中,可以找到要使用哪一個Captival Portal。

接下來,針對需要特別做頻寬限制的部分,起一個新的Profile,其設定與原來的相同,只有Role的部分不同。

一般的SSID,包含Open、PreshareKey、MAC Auth、802.1x,都是起一個AAA Profile,甚至是新SSID Profile。

而網頁認證的SSID,除了AAA、SSID之外,需要再起一個Captive Portal Authentication Profile。

以上是基礎的設定方式,接下來有進階的設定方法,在AAA Profile找到「User derivation rules」:

當使用者「通過驗證」之後,就會從這個選項所指定的規則清單,再重新分配一次角色。

在 Configuration > Authentication > User Rules 可以新增一個規則清單。

要局部化調整,我們可以針對:

  1. Client MAC:只要Client MAC等於條件設定,就設定另外的角色。
  2. AP BSSID:只要從某個AP BSSID連線的,就設定另外的角色。

如果VIP的MAC為11:22:33:44:55:66,可以用條件1,設定MAC Equal 11:22:33:44:55:66設定角色為VIP。

如果VIP習慣連線特定AP特定SSID,可以用條件2,設定BSSID Equal BSSID設定角色為VIP。

像是高層都在某間會議室連線,就能推測出會連線到哪一顆AP跟SSID,就能以條件2去做細部調整。

如果知道高層的MAC,就能用條件1去調整。

要查詢BSSID,從Dashboard進入特定AP,看到

如果是8版WebUI,可以從Client,調整顯示欄位,把BSSID顯示出來。

或者從 Security > Detected Radios 篩選Classification等於Authorized,就能看到被控管AP的各個BSSID。

G Hub的生產力配置技巧

今天我入手了G913 TKL,那種暢快的機械打擊感,純白色既特別也很好看,不然電腦周邊會一系列的黑。

對我來說,鍵盤不需要太多花俏的按鍵功能,尤其是F1與FN+F1的單鍵雙功能,再用一個開關讓使用者能FX鍵的功能切換。不過常用的FX鍵就F4、F5跟F12,最好的是把這三鍵的功能保留,其餘換成帶有巨集功能的按鍵。G Hub就有這樣的功能,真希望那些廠商可以醒悟,FN鍵的位置在不同鍵盤上也略有不同,要用FN鍵搭配真的是難度很高。

如果把常用的FX鍵保留,其餘九個FX鍵就能自定義。上次Anywhere 2S在Logitech Options有一些遺珠之憾,這次在G Hub的調教上,已經完全突破了。

回到正題,我很喜歡生產力配置,生產力配置就是把日常常用的簡化,兩鍵變一鍵,於是想到個時候,只需要一個手勢(如:按下F1),就能打開你想要開啟的程式,每次省個幾秒,由於一天會操作多次,能省下一分鐘,日積月累才是這節省時間的力量展現。

G Hub可以錄製巨集,但巨集適用一個經常發生且固定的行程。如果是記帳,打開記帳軟體之後的操作就會不同,用巨集就沒有太多幫助。

因此這篇都是「單鍵觸發單一行為」的類型。

我的配置如下:

  • F1: 字元提示命令(cmd)
  • F2: 工作專案(資料夾)
  • F3: 網路控制(控制台)
  • F6: 執行Python程式
  • F7: 打開指定Excel檔案
  • F8: 記帳軟體(WindowsApp)
  • F9: 記事本
  • F10: Excel
  • F11: 小算盤

這裡有個小巧思,由於FX鍵是四個一組的排列,可以以實體分隔做功能歸類,因此F1~F3是工作取向,F6~8是日常取向,F9~F11是簡單紀錄跟計算用,我認為這樣有助於讓自己記憶這些快捷鍵。

在G Hub跟Logitech Options,都可以設定啟動指定應用程式的功能,但是!不能有中文出現!不然會在Logi App這端就停住。

路徑不要有中文!

入門級:F1、F9、F10、F11。

這四個功能,都是只要找到對應的.exe檔案,就可以順利設定。由於是系統內建的,所以正常也都是英文路徑。

如果不知道路徑,可以開打開程式,再啟動工作管理員,點選指定程式按右鍵,開啟檔案位置。就可以找到程式的所在位置。

中階級︰F2、F3、F6、F7

接下來就是不是那麼直接的,需要做一點拐彎,好避免「中文」:或是需要上網查一些指令。這兩者都需要靠.bat幫助才能完成。

.bat是什麼?當你執行它的時候,就會以cmd去逐行執寫好的指令。因此,只要cmd能做到的,.bat就能做到,最後G hub或是Logitech Options配置就能做到。

F2: 工作專案(資料夾)

這個難在有出現中文路徑,中文路徑改寫在.bat中,結果還是沒有跑出如預期的結果。

開特定資料夾的指令是「explorer <Folder Path>」,若碰到中文,.bat的編碼要為ANSI,不能是UTF8。用記事本去寫的話,在另存新檔時,就能在對話框下方找到編碼選項做俢改。

F3: 網路控制(控制台)

難在指令需要Google一下,找到了就沒啥難題。

指令為「control ncpa.cpl」

F6: 執行Python程式

除了指令跟環境變數需要Google找如何設定,不然也可以執行python.exe再配個引數。

接下來就面臨Python環境的問題與工作目錄的跑掉的問題。如果需要用到python,相信都有一定瞭解能解決狀況,這邊就不多說了。

F7: 打開指定Excel檔案

指令為「start “” “<Excel File Path>”」

困難級:F8

F8: 記帳軟體(WindowsApp)

要打開的APP是從Windows Store安裝的話,就會被安裝在WindowsApps資料夾內。

如果想打開這資料夾,會發現自己的權限無法打開。當然就算能透過工作管理員找到App的.exe檔位置,也是徒勞,因為權限不足是打不開的。

我記帳軟體是用「Money Pro」,幾乎每天都會用電腦記帳,只好Google怎麼開啟,剛好就找到一篇文章,過程需要有相當技術底才能想出來,但文章寫得好,照著做是很容易的,就能找到指令去執行從Windows Store安裝的App。

接著我以「Money Pro」為例,示範整個流程。

左下角Win > 右鍵 > Windows PowerShell

因為要找的APP名為「Money Pro」,輸入指令:

Get-AppxPackage -Name "*MoneyPro*"

如果找不到,可以把Name更精簡。此例的Money Pro需要將中間的空白去掉才找得到。

此處需要把 PackageFamilyName 的值記錄下來。

iBearLLC.MoneyPro-PersonalFinanceBudgetBills_pyxe037ww88ja

接著換下一個指令,輸入:

(Get-AppxPackage -Name "*MoneyPro*" | Get-AppxPackageManifest).package.applications.Application

此處需要把 Id 的值記錄下來。

App

最後一步,要用「explorer.exe」帶引數「shell:appsFolder\<PackageFamilyName>!<Id>」。換成cmd上能執行的話,如果要執行Money Pro,可以使用以下指令

explorer "shell:appsFolder\iBearLLC.MoneyPro-PersonalFinanceBudgetBills_pyxe037ww88ja!App"

在G Hub中系統->啟動應用程式,如下圖把參數設定好。

在G Hub把參數設定

WiFi常見干擾

WiFi用無線訊號構築了網路的最後一哩路。

要能檢測現場的WiFi,第一個就是先用肉眼觀察實體的干擾,這類的干擾通常會固定出現於現場。第二個則是使用儀器與軟體去看,這部分需要一些培養,熟能生巧。通常要使用到儀器與軟體的干擾就不是那麼固定,會有時好時壞的狀況,一旦狀況好轉,多半也意味干擾源不見了。

以下為「固定干擾」、「不固定干擾」清單。

固定干擾
嚴重:距離、水泥牆、關上的厚大門、維修孔上天花板(周圍有金屬管道)
普:輕隔間、維修孔上天花板
低:玻璃

不固定干擾
嚴重:同頻道的無線熱點、走動、有線端海量封包、同名SSID且收訊強度相當但兩者不是統一控制系統
普:網路環境不穩、對外頻寬被榨乾
低:AP訊號強度降弱

特別說明的干擾

  • 距離:距離遠會讓訊號不好,室內型一般來說無阻礙十二公尺為建議值。因為距離而訊號不好只有新增無線設備才能解決。
  • 走動:走動會讓訊號強度波動變大,不只是自身的走動,周圍人走動也會。
  • 同頻道的無線熱點:在網路吃到飽普及的時代,開熱點是很常見的,但手機、筆電的選頻道是比較難控制的,它們可能會直接頻道相撞。這樣的干擾源會很靠近Client。
  • 同名SSID且收訊強度相當但兩者不是統一控制系統:在同名的條件下,Client會自動選擇最強的訊號做連結,不過訊號強度用軟體跟儀器看其實是波動的,於是一時東強一時西強,連上的無線設備也波動,但因為不同控制系統,切換連上無線設備時可能會斷斷斷。

固定干擾雖然未必能解決,但可以被掌握。不固定干擾是一個無法管控的不定時炸彈。瞭解干擾也能釐清是到底是無線設備本身的問題還是環境問題,不然一般人很容易都往設備去怪罪。

不過,就算受到干擾,對於無線網路會因為品質不好而重傳變慢,訊號太差會不穩斷線。但「變慢不代表無法上網,品質不佳並非是無線設備故障」,這是很重要的概念。

沒有概念的,會一股腦把問題都怪罪在無線設備上,這就是一般人的直覺。

這裡要提一個概念「Health」,這是Aruba用於衡量client傳輸品質的數字,簡單來說就是「傳輸成功率」,100%就是嘗試數跟成功數相同,而50%就是嘗試數是成功數的兩倍,換句話說,要傳一個封包,需要傳兩次才能成功。

在訊號良好之處,嚴重干擾甚至頻道對撞,對於無線傳輸影響不大。如果health已經沒有百分百,變得六十五十甚至四十時,干擾影響會相當明顯,讓本來不夠好的無線表現雪上加霜,直接死傷慘重。

因此高密度部署能改善干擾,或是使用效能更好的機型,新機型不論抗干擾跟無線訊號強度都有明顯長進。

個人使用的儀器與軟體

筆電:inssider、CommViewForWiFi + 外接網卡

Android手機,WiFi分析儀
※Android10以後需要在開發人員選項中解鎖WiFi掃描的限制。(個人有遇到這個問題

延伸閱讀

智能家庭中樞實評-檢驗ap傳輸效能,實測抗干擾能

无线干扰的20种错误说法: 纠正错误说法以实现稳定高效
的无线网络

Aruba IAP 在apboot模式下轉換成Thin AP

條件:Aruba IAP、AP Console線、Aruba Controller環境

原理:Aruba AP會存兩個OS版本,位置分別是0和1。開機是由變數「os_partition」去決定要讀取0或1位置的OS。所以,只要讓AP從Controller下載AP的OS,並指定開這位置的OS,就能變相讓IAP在ap_boot模式就切換到Thin AP。

操作:

  1. 進入apboot模式:接上Console,開啟連線,再接上電源。AP開機後,待提示出現,按Enter以進入apboot模式。
  2. osinfo:輸入該指令,查看目前os的位置0與1的版本資訊。
  3. bootfile:輸入「printenv」,會有一行bootfile=ipqxxxx.ari(※依AP系列有差異,5xx系列為ipq807x.ari),此為AP從Controller更新OS下載的檔案名稱。
  4. set serverip <Controller IP>:指定AP要從Controller更新OS。
  5. set master <Controller IP>:指定AP要去向Controller報到。
  6. upgrade os <bootfile>:AP更新OS,如果是AP 5xx系列,指令為「upgrade os ipq807x.ari」
  7. osinfo:查看剛剛更新的OS在位置0或1,若更新OS時未指定位置,則為0。
  8. set os_partition 0:指定AP從OS位置0載入OS並開機。
  9. save:儲存變數
  10. boot:開機

指令模板:

#檢查os位置0和1的版本,留意是否皆為IAP版本
osinfo 
#取得bootfile的名稱
printenv
#變數設定
setenv os_partition 0
setenv master <Controller IP>
setenv serverip <Controller IP>
save
# 取得os,AP使用DHCP取得IP
upgrade os <bootfile>
boot

額外補充:

  1. 如果要轉換成Remote AP,在apboot模式設定變數時,加入「set remote_ap 1」。

結語:

Aruba AP 3xx系列的IAP不會自動轉換,所以一般流程都是等AP拿到IP後開完機,然後輸入帳密,從WebUI去轉換成由控制器管理的Campus AP。

Aruba AP 5xx系列的UAP會自動轉換,個人對於5xx系列的轉換機制與時間還不太熟。基本流程也可以照著3xx系列的IAP操作。

不過,除了是早期建置,中後期的追加數目都不會太多,中後期還會面臨到增加的網路安全措施,白話就是AP報到的環境就可能不如手冊上的理想。

因此,為了避免節外生枝,也減少作業時間,在中後期追加時,建議用本文的方式,用Console線去做AP設定,可以讓整體報到流程縮減成兩次開機:第一次照本文設定,然後AP取得Controller上的設定後重開機。第二次開機完,即正常運作。

Aruba Airwave 8.2.7 升級到 8.2.1x 版

這是我第一次升級Airwave,這篇會把需要的步驟給寫詳細。

升級最重要的目的是「把設定一路帶到最新的版本」,因為Airwave無法直接匯入設定,所以只能慢慢升。升級很花時間,不過只要把設定帶到最新版的話,可以Backup帶回去,然後自己起Airwave再Restore設定,然後在自家一路升到最新,再Backup。最後讓客戶起一台最新版的Airwave,再把最新的Backup以及既有License灌回去。

參考資料:Upgrade airwave from 8.2.7 to 8.2.10Upgrading Airwave to 8.2.7

準備:

  1. 待升級Airwave
  2. 備份現有Airwave的License
  3. Airwave 8.2.10.1 install ova
  4. 新安裝的Airwave 8.2.10.1
  5. SFTP(WinSCP)
  6. Airwave 8.2.9.0 upgrade package
  7. Airwave 8.2.10.1 upgrade package
  8. Airwave 8.2.1x upgrade package

檔案很大,下載需要時間,升級過程也很漫長。

概念是
8.2.7 => 8.2.9
8.2.9 = > 8.2.10
8.2.10(CentOS6) = > 8.2.10 (CentOS7)
8.2.10 (CentOS7) = > 8.2.1x

8.2.9到8.2.10有OS升級,所以無法讓8.2.7直接升到8.2.1x,得先升到8.2.8或8.2.9才能升到8.2.10。而8.2.7最高只有支援到AP 3xx系列,但現在已經不少使用AP 5xx系列,所以一定得升級Airwave才能。

特別留意!每次升級都要做備份!也要注意資源是否足夠,以免資源不足讓升級發生狀況。(個人在筆電上練習,就直接記憶體用滿當兩次。)

首先要以Airwave的升級方法為主,先登入Airwave, 進入選單,8.2.9版本在Advanced 、8.2.10版本在Users,進入,然後添加AAA File Transfer User,這樣才能用WinSCP以SFTP的方式把檔案傳入或取出Airwave。

而8.2.9版本前後上傳檔案的地方有落差:
8.2.9前:「/user」、8.2.9後:「/var/ampcli/user」
如果升級到8.2.9版之後,沒有找到Folder,請按下重新整理。

步驟:

  1. !用Web GUI登入,備份現有License資訊!
  2. 登入待升級Airwave(8.2.7)
  3. 新增AAA File Transfer User。
  4. 備份Airwave(8.2.7)
  5. 用SFTP,取出Airwave(8.2.7)備份檔
  6. 用SFTP,傳入Airwave(8.2.9.0) Upgrade Package
  7. 升級到Airwave(8.2.9.0)
  8. 備份Airwave(8.2.9.0)
  9. 用SFTP,取出Airwave(8.2.9.0)備份檔。
  10. 用SFTP,傳入Airwave(8.2.10.1) Upgrade Package
  11. 升級到Airwave(8.2.10.1, CentOS6)
  12. 備份Airwave(8.2.10.1, CentOS6)
  13. 用SFTP,取出Airwave(8.2.10.1, CentOS6)備份檔
  14. !關閉舊Airwave!用ova install安裝新的Airwave(8.2.10.1, CentOS7)※注意記憶體資源
  15. Airwave(8.2.10.1, CentOS7)的IP、Gateway、DNS、SSL等皆比照舊Airwave設定
  16. 新增AAA File Transfer User。
  17. 用SFTP,傳入Airwave(8.2.10.1, CentOS6)備份檔
  18. Restore Airwave(8.2.10.1, CentOS6)備份檔
  19. Restart System
  20. 備份Airwave(8.2.10.1, CentOS7)
  21. 用SFTP,取出Airwave(8.2.10.1, CentOS7)備份檔
  22. 用SFTP,傳入Airwave(8.2.1x) Upgrade Package
  23. 升級到Airwave(8.2.1x)
  24. 備份Airwave(8.2.1x)
  25. 用SFTP,取出Airwave(8.2.1x)備份檔
  26. 「可選」刪除舊Airwave。

步驟繁瑣反覆,過程等待時間很長,也蠻可能出意外,所以備份檔要勤備份。

Homeassitant HACS使用客製庫(Custom repositories)安裝流程

有些客製庫是在HACS內搜尋不到,這時就需要手動安裝。

如 Line_Notify:https://github.com/maxmacstn/HA-Line-Notify

點選 Integrations
點選右上方三點,選擇 Custom repositories

輸入 客庫製的URL,並且選取分類。

以 Line Notify為例,就直接把github的網址貼上,並且選取 Integration。

按下 ADD 就完成了。

添加之後需要重新啟用HA伺服器

Homeassistant用Line Notify發布訊息

需要HACS

參考資料: Dcard 教學 打造你的智慧家庭吧! HA 串接 Line 推播通知

參考的那篇已經寫得詳盡,但這篇會重新寫過,並且附上好用的python幫助取得Access Token。

要讓HA可以透過Line Notify發訊息,主要可以分成三步驟:

  1. 申請Line Notify服務
  2. 在 HACS 安裝 Line_Notify
  3. 修改Configuration.yaml

申請Line Notify服務

進入 Line Notify 的網頁,按右上方登入,然後右上方點擊<使用者名稱>,展開選單並點選「管理登錄服務」。

按下登錄服務

服務名稱會變成在 Line Notify 傳送訊息的前綴,傳出的訊息會變成:「JN溫馨提醒:」

同意並前往下一步,跳轉到確認頁面後,按登錄。

前往信箱收信,會看到一封主旨為「LINE Notify註冊用網址通知」,點選信中的「LINE Notify註冊用網址」,就能完成服務登錄。

點擊信中網址後,彈出網頁會顯示電子郵件認證完成,之後在前往服務一覽。

在管理登錄服務一頁,可以看到剛剛新增的服務,然後點進去。

接下來把「Client ID」、「Client Secret」跟「Redirect_URL」準備好,這裡有個我做的線上python:GetLineNotifyToken,可以幫助你快速進行。
(這線上Python執行起來比起參考文章說用postman需要安裝等等的操作起來簡單許多。

按綠色三角形執行
稍等片刻,就會跳出 ClientID:

請用「左鍵連點兩下」選取 Client ID 跟 Client Secret等,避免選到不必要且看不見的字符,然後用 Ctrl + Shift + V 貼上到 Console 視窗。

會自動生成連結,請點擊連結。

可能會需要登入LINE帳號,如果已經登錄了,會看到下方的樣子,選擇一對一的聊天室,然後點選同意並連動。

點選同意並連動
會收到通知

接著頁面會跳轉到 Redirect_URL,從上方網址取出 Code。

如圖例,Code為「FDYeqCLk0WSSQd0DjsydOL」。
※每個 Code 只能產生一次的 Access Token

如果有順利取得,會出現Access Token,用「左鍵連點兩下」選取,用「滑鼠右鍵叫出選單並按複製」。

如圖例,Access Token為「zey…….v7I」。

在 HACS 安裝 Line_Notify

Line_Notify:https://github.com/maxmacstn/HA-Line-Notify

在HACS使用客製庫(Custom repositories)輸入上方網址,然後安裝。
HACS使用客製庫(Custom repositories)安裝流程

然後重新啟動HA伺服器。

修改Configuration.yaml

在Configuration.yaml加入下方設定

notify:
  - platform: notify_line
    name: jn_is_so_sweet # id
    access_token: <Access Token>

保存,然後重啟HA伺服器。

接著從開發工具,找到 notify.jn_is_so_sweet ,輸入 Message,按下 執行服務。

LINE跳出通知,收到剛剛從HA發出的訊息。

Message該值可以使用 template ,傳遞實體的訊息。

Line Notify也可傳遞圖片,像是把圖片傳到HA上面,或是擷取carama的圖片,再透過Line Notify發送。

Homeassitant的Text-to-Speech(TTS)服務

這篇要介紹一些HA上面的TTS服務,如果搭配可以投放(Cast)的音箱,就能做到客製化的語音提醒。

內建:Google Translate Text-to-Speech

要如何使用?直接在 configuration.yaml 中加入下方官方範例的設定。HA伺服器重啟之後,就能在服務中找到一個 tts.google_say,就能輸入語言與投放的設定,按下執行服務就能將文字轉語音播放出來。

# Example configuration.yaml entry for Google Translate TTS service
tts:
  - platform: google_translate
    cache: true
    cache_dir: /tmp/tts
    time_memory: 300
    language: 'zh-tw'  # Default Language
    base_url: http://<Your HA IP address>:8123
    service_name: google_say
media_player.jn_room 是 google mini nest 2

然後發現語音會以外國腔唸出來,這裡要轉成中文腔調,就需要做 Language 的設定。勾選並設定為「zh-CN」,就會是熟悉的Google小姐語音。

zh-CN這值是從 google翻譯 抓出來,繁體中文的語音是 zh-TW。

注意網址的部分,左邊是sl=zh-CN,右邊是tl=zh-TW
上方圖片顯示的清單是HA實際能用的Language

更改預設語言,之後就不需要每次執行服務都指定 Language 為 zh-tw。

# Example configuration.yaml entry for Google Translate TTS service
tts:
  - platform: google_translate
    cache: true
    cache_dir: /tmp/tts
    time_memory: 300
    language: 'zh-tw'  # Default Language
    base_url: http://<Your HA IP address>:8123
    service_name: google_say

HACS:ReversoTTS

從HACS安裝該整合,重啟之後,在 configuration.yaml 加入下方設定,就能使用其中文TTS。

tts:
  - platform: reversotts
    language: 'Lulu-Mandarin-Chinese' #有哪些語言可從官方連結看到清單
    pitch: "100"
    bitrate: "320k"  
    service_name: reversotts_say

由於 Language 已經在 configuration.yaml 中設定好了,在 服務 這裡就不需要再設定 Language 也能講中文。

The language to use. Supported languages are in this table , please use only the name from LangCode column:

LangCodeVoiceGenderLanguage
Leila-ArabicLeila22kFemaleArabic
Mehdi-ArabicMehdi22kMaleArabic
Nizar-ArabicNizar22kMaleArabic
Salma-ArabicSalma22kFemaleArabic
Lisa-Australian-EnglishLisa22kFemaleAustralian English
Tyler-Australian-EnglishTyler22kMaleAustralian English
Jeroen-Belgian-DutchJeroen22kMaleBelgian Dutch
Sofie-Belgian-DutchSofie22kFemaleBelgian Dutch
Zoe-Belgian-DutchZoe22kFemaleBelgian Dutch
Alice-BE-Belgian-FrenchAlice-BE22kFemaleBelgian French
Anais-BE-Belgian-FrenchAnais-BE22kFemaleBelgian French
Antoine-BE-Belgian-FrenchAntoine-BE22kMaleBelgian French
Bruno-BE-Belgian-FrenchBruno-BE22kMaleBelgian French
Claire-BE-Belgian-FrenchClaire-BE22kFemaleBelgian French
Julie-BE-Belgian-FrenchJulie-BE22kFemaleBelgian French
Justine-Belgian-FrenchJustine22kFemaleBelgian French
Manon-BE-Belgian-FrenchManon-BE22kFemaleBelgian French
Margaux-BE-Belgian-FrenchMargaux-BE22kFemaleBelgian French
Marcia-BrazilianMarcia22kFemaleBrazilian
Graham-BritishGraham22kMaleBritish
Lucy-BritishLucy22kFemaleBritish
Peter-BritishPeter22kMaleBritish
QueenElizabeth-BritishQueenElizabeth22kFemaleBritish
Rachel-BritishRachel22kFemaleBritish
Louise-Canadian-FrenchLouise22kFemaleCanadian French
Laia-CatalanLaia22kFemaleCatalan
Eliska-CzechEliska22kFemaleCzech
Mette-DanishMette22kFemaleDanish
Rasmus-DanishRasmus22kMaleDanish
Daan-DutchDaan22kMaleDutch
Femke-DutchFemke22kFemaleDutch
Jasmijn-DutchJasmijn22kFemaleDutch
Max-DutchMax22kMaleDutch
Samuel-Finland-SwedishSamuel22kMaleFinland Swedish
Sanna-FinnishSanna22kFemaleFinnish
Alice-FrenchAlice22kFemaleFrench
Anais-FrenchAnais22kFemaleFrench
Antoine-FrenchAntoine22kMaleFrench
Bruno-FrenchBruno22kMaleFrench
Claire-FrenchClaire22kFemaleFrench
Julie-FrenchJulie22kFemaleFrench
Manon-FrenchManon22kFemaleFrench
Margaux-FrenchMargaux22kFemaleFrench
Andreas-GermanAndreas22kMaleGerman
Claudia-GermanClaudia22kFemaleGerman
Julia-GermanJulia22kFemaleGerman
Klaus-GermanKlaus22kMaleGerman
Sarah-GermanSarah22kFemaleGerman
Kal-Gothenburg-SwedishKal22kMaleGothenburg Swedish
Dimitris-GreekDimitris22kMaleGreek
he-IL-Asaf-Hebrewhe-IL-AsafMaleHebrew
Deepa-Indian-EnglishDeepa22kFemaleIndian English
Chiara-ItalianChiara22kFemaleItalian
Fabiana-ItalianFabiana22kFemaleItalian
Vittorio-ItalianVittorio22kMaleItalian
Sakura-JapaneseSakura22kFemaleJapanese
Minji-KoreanMinji22kFemaleKorean
Lulu-Mandarin-ChineseLulu22kFemaleMandarin Chinese
Bente-NorwegianBente22kFemaleNorwegian
Kari-NorwegianKari22kFemaleNorwegian
Olav-NorwegianOlav22kMaleNorwegian
Ania-PolishAnia22kFemalePolish
Monika-PolishMonika22kFemalePolish
Celia-PortugueseCelia22kFemalePortuguese
ro-RO-Andrei-Romanianro-RO-AndreiMaleRomanian
Alyona-RussianAlyona22kFemaleRussian
Mia-ScanianMia22kFemaleScanian
Antonio-SpanishAntonio22kMaleSpanish
Ines-SpanishInes22kFemaleSpanish
Maria-SpanishMaria22kFemaleSpanish
Elin-SwedishElin22kFemaleSwedish
Emil-SwedishEmil22kMaleSwedish
Emma-SwedishEmma22kFemaleSwedish
Erik-SwedishErik22kMaleSwedish
Ipek-TurkishIpek22kFemaleTurkish
Heather-US-EnglishHeather22kFemaleUS English
Karen-US-EnglishKaren22kFemaleUS English
Kenny-US-EnglishKenny22kMaleUS English
Laura-US-EnglishLaura22kFemaleUS English
Micah-US-EnglishMicah22kMaleUS English
Nelly-US-EnglishNelly22kFemaleUS English
Rod-US-EnglishRod22kMaleUS English
Ryan-US-EnglishRyan22kMaleUS English
Saul-US-EnglishSaul22kMaleUS English
Sharon-US-EnglishSharon22kFemaleUS English
Tracy-US-EnglishTracy22kFemaleUS English
Will-US-EnglishWill22kMaleUS English
Rodrigo-US-SpanishRodrigo22kMaleUS Spanish
Rosa-US-SpanishRosa22kFemaleUS Spanish
以上是 ReversoTTS 可用的語言表

如何使用 Pixel 5 天文縮時綠影

聽說有這項功能,但身為擁有 Pixel 5 的使用者,卻無法正確地使用它。

上網搜尋只有一些新聞稿,但寫得不清不楚,這邊就簡單地教學如何使用。

首先,打開相機,切換到「夜視」模式。

在低光源的情境下,放到穩定的位置,幾秒之後就會自動切換成天文模式。

按下拍攝,等待時間超過兩分半鐘的天文攝影,就會自動產生天文縮時綠影。
(※如果沒有超過2.5分鐘,就不會產生天文縮時綠影!)

如果夜拍光源量多到天文攝影無法超過兩分半鐘,請搭配 減光鏡 使用。

相機內建說明

如果上述條件齊,相機版本也支援,但仍舊無法看到天文縮時錄影的影片,以下是確認天文縮時綠影的選項有沒有打開。

打開相機 > 點上方 V 字展開選單 > 選齒輪(設定)
點選進階
確定「啟用天文攝影縮時錄影模式」是啟用的