2018年7月31日 星期二

舊家電換節電家電之選購技巧

舊換新划算公式
新家電的價格 – 補助款 <= 舊與新家電每年耗電差距 * 平均每度電費 * 電器平均壽命
※新家電會有許多入選名單,從中選價格越高的越好。

夏天到了,用電量也即將面臨高峰。面對上千多元的電費帳單,一方面抱怨怎麼那麼貴,一方面也在怎麼想著節電。如果家裡有超過十年的老家電,冰箱、冷氣、開飲機、電視、洗衣機等,現在更是時候該好好思考了。

近來JN也想到了節電,開始先調查家裡最耗電的電器。
全年:1.電冰箱。2.開飲機。3.電腦。
前兩名因為是全天運作,所以很容易被注意到,也因為是全天運作,所以節能的效果會更是明顯。

家電會有各自的平均壽命,如冰箱壽命至少要10年以上,熱水壺則是4年以上。在計算完每年能節省多少之後,乘上電器預期壽命,如果能超過省下超過購買時的電費,那就代表現在就換其實相當划算。

像是JN家,家中的舊冰箱已經超過20年,開飲機也已經好幾年了。JN第一個目標就是換掉舊冰箱。舊冰箱除了出廠很久,而且我們家沒有習慣去換過膠條,光是每日冰箱用電,可能就佔4度以上,我猜。看了帳單以後,JN家一天平均用10度電以上,有可能就是舊冰箱佔將近一半的貢獻。

電價是有級距的差別,如果懶得計算平均,計算省電費率時,直接一度電代2.6元計算。不過可以預期是低估,因為夏天時冰箱比較耗電,節能就能剩下更多電費,平均也應該會比2.6元還高。

20年舊冰箱換新冰箱,每天省下3度的話,一年能省下近2850元,十年省下28500元,剛好就能買一台新冰箱。如果未來電費調漲,那就可以預期省下更多錢,所以現在就是個換冰箱的好時候呢!

不過不同家電的耗能會因為一些形式不同而有差異,如容量。換購新節能家電的同時,要記住新家電的容量要大於等於舊家電的容量,這樣子才能確保不會換了反倒不適用。

JN建議可以直接從節能標章的網站看起,除了有產品分類可以快速查到各類節能產品,還有產品比一比可以比較節能效率。最重要的是能從續約間接看出家電出廠時間(出廠越久,價格理論會折舊),續越多代表出廠越久。從這裡開始是最能看得一目了然的。

節能標章網址:http://www.energylabel.org.tw/index.aspx

接下來從產品型號去搜尋價格,預期正常壽命能省下的電費超過售價,就能列入考量,這是最優先的條件。再過濾使用習慣(如:舊家電容量)之後,會有便宜的家電與稍貴的家電,建議選擇較貴的家電,一方面價位高的家電能預期料材好更耐用,或是有更多好用的功能,最重要的,也代表它省下的電更多,如果電費調漲,它帶來的效益就會更多。

近年來智慧家電與節能技術的成熟,10年前更換不划算,5年前更換可能也不划算,然而,現在則是今天不馬上更換才是真的不划算。如果以投資報酬率來看,十年以上老家電換新,能達到10%以上的年報酬率,這比定存或是績優存股還高出許多,換句話說,與其存錢倒還不換新家電來得有利。


2018年7月19日 星期四

Win10下排程執行Python。

Win10下排程執行Python

有時候,人因為有事或是其他因素,無法親自開機並執行程式。JN因為有需求,所以上網學習了要如何定時開機、定時執行程式、定時關機,本文將會分成這三部分教學。


定時開機

能夠持續開機,自然就不會有這問題。但是如果一定要關機的話,定時開機就會被需要。

定時關機需要兩塊的配合:WIN10的設定、BIOS的設定。(JN的主機板是ASUS Z370

必須要把WIN10的快速啟動給取消掉,BIOS的定時啟動才會正常作動


「WIN10的設定」
1.搜尋「電源與睡眠」,進入設定。
2.從右側的相關設定,進入「其他電源設定」。
3.左側控制台首頁下方,點選「選擇按下電源按鈕時的行為」。
4.把「開啟快速啟動」關掉。若無法變更,則選點上方「變更目前無法使用的設定」再嘗試關掉快速啟動。

「BIOS」
1.進入BIOS,找到高級電池管理。(※其他BIOS幾乎也在電池管理
2.開啟「由RTC喚醒」。
3.設定定時喚醒時間。 
※如果沒有先取消「快速啟動」,直接設定此部分可能會無法正常運行。


定時執行程式

定時執行程式會分成兩部分:系統設定、Python程式碼注意事項。尤其是Python程式碼注意事項,常常一個疏漏,就無法如預期地順利執行,但是因為在編寫程式(JN用Visual Studio)上卻是沒有任何問題的。所以,請務必要仔細再仔細地檢查需要定時執行的程式碼。

「系統設定」
1.搜尋「排程工作」,進入排程工作。
2.點選右側的「建立工作」,在「一般」分頁下的安全性設定,勾選「以最高權限執行」。
3.在「觸發程序」,建立自己想要執行程式的時間。
4.在「動作」,「新增」→「瀏覽」自己想要定時執行的程式(.py),按下確定。

※在其他Blog有看到需要設定引數,但是JN此篇沒有設定,因為設定引數方式,是以「python.exe」去執行。如果沒有設定,就是以「cmd」執行。
#2019-07-07:建議輸入引數,在「程式或指令碼」輸入「python」,在「新增引數」輸入完整位置。若不輸入引數,若有用到requests套件則會挑出。只要輸入引數之後,就能正常運作。

兩者的差別在於偵錯與速度,不過會出錯的地方兩者都是一樣的,所以JN會選擇效能較優的「cmd」也就是直接執行.py檔案而不設定引數的方式。
要注意JN有提到的「出錯的地方」,因為使用定時執行程式的環境下,常常是人不在電腦前面的時候,若是有錯,往往只能看到程式已經停止運作而消失在工作列,便無從得知是哪一部份出了問題,建議使用「logging」模組去紀錄程式的運作情形。

「Python程式碼注意事項」
1.不要使用「from XXX import YYY」,也建議不要使用「import YYY as ZZZ」。
※要特別留意到引入的其他自製套件,它們也不能有「from XXX import YYY」
2.不要使用相對路徑,請使用絕對路徑。(Ex: C:\abc\def\mypy.py      不要mypy.py
3.不要包含中文路徑,請使用英文路徑。(Ex: C:\asd\fgh\mypy.py      不要 C:\我的程式\asd
※建議使用「logging」去紀錄程式運作,因為使用排程工作的程式碼出錯會直接終止程式,不會在出錯的地方停住。所以使用logging,萬一程式碼出錯,還能從log去尋找蛛絲馬跡。


定時關機

定時關機有兩種作法,一種是使用「cmd」打上「shutdown -s -c "-s 關機。 -c 顯示提示字串。 -t 設定逾期秒數" -t 300」,然後會在三百秒後關機。另外一種是在python程式碼,引入「os」模組,打上「os.system('c:\\windows\\SysWoW64\\shutdown -s -c "-s 關機。 -c 顯示提示字串。 -t 設定逾期秒數" -t 300')」

使用cmd的方法,可以搭配排程工作,能更精準的在指定時間關機。直接在「排程工作」「動作」「新增」,把關機指令「shutdown -s  -t 300」貼上到指令或程式碼去,它會提示似乎已包含引數,點選「是」。最後在「觸發程序」設定要執行的時程。

使用python的方法,可以搭配「time」模組去取得當前時間,或是在程式結束之前執行關機指令。


後記

這篇文章是已經閱覽過數篇相關,JN覺得可以寫一篇集大成的,給有需要的人直接的參照。JN加註了一些細節,都是JN在嘗試時有用到的,並不是網路教學都有寫到的,也希望能讓人在嘗試時更快找到哪個環節出了問題。