eRemote RM mini を導入
先日の OS 更新で動かなくなった、パソコン制御の赤外線リモコン Tira2 の代わりに、eRemote RM mini を購入した。
python-broadlink をインストール
自宅サーバでは、朝の「めざましじゃんけん」の自動化などの処理とか、ブラウザでリモコン操作とかやってるので、まずは linux 環境から、制御できるようにこの記事を参考に設定。
((インストール)) $ sudo aptitude install python-dev python-pip $ sudo pip install broadlink ((リモコンを探す)) $ ./broadlink_discovery --device この出力の タイプ,ホスト名,MACアドレスの行 "0x2712 192.168.xxx.yyy XXXXXXXXXXXX" を eremote.device みたいに保存 ((リモコン学習)) $ cd $インストール先/python-broadlink/cli $ ./broadlink_cli --device @eremote.device --learnfile tv-power ((リモコン送信)) $ ./broadlink_cli --device @eremote.device --send @tv-power
ブラウザのリモコン操作
まずは、使っていたリモコン、TV, DVDレコーダ, CATVセットトップボックス の機能を学習させる。
Tira 用のブラウザページを、eRemote 用に修正。実際の送信部分の処理をすげ替えるだけなので、簡単に終了。
OSの更新で、USBRH, Tira2が動かなくなった
Linux/Debian で、ホームオートメーションとして10年前から使っていた、USBRH(温湿度センサー)、Tira2(赤外線リモコン送受信機)が動かなくなった。
部屋の温度を nagios,munin でモニタリングしたり、部屋のAV機器をリモコン操作できるようにしていたけど、Debian/Buster/sid を使っているもんだし、USB デバイスの扱いが新しいデバイス向けに厳格になったんだろうな。古いハードウェア扱いになったのか、デバイスが認識されず /dev/usb の中からも消えてしまった。まあ仕方ないか。
技を使えば認識できるようになるとは思うけど、普通のホームデバイス使ったほうが楽だよな。Siri や Google Home mini と連動させて、それなりに便利だったんだけど。
仕方がないので、Amazonで売れ筋で安いやつということで、eRemote mini を発注した。
PowerShellおちるぞ…
Mac や Linux で Microsoft の PowerShell が動くようになったということで、ちょいとテスト。
$ curl https://packages.microsoft.com/keys/microsoft.asc ¥ | sudo apt-key add - $ sudo sh -c 'echo "deb [arch=amd64] ¥ https://packages.microsoft.com/repos/microsoft-debian-stretch-prod stretch main" ¥ > /etc/apt/sources.list.d/microsoft.list' $ sudo aptitude update $ sudo aptitude install powershell
んで、使い方もよく知らないけど、ひとまず pwsh 起動。
root@host:/home/foobar# pwsh PowerShell v6.0.0 Copyright (c) Microsoft Corporation. All rights reserved. https://aka.ms/pscore6-docs Type 'help' to get help. PS /home/ei/t-saitoh> Segmentation fault root@host:/home/foobar#
起動するけど、30秒ほどほっておくと、勝手に Segmentation Fault で落ちる。
役に立たんじゃん。早々に、”aptitude purge powershell”。
pychromecastを使ってgoogle homeにキャスト
Google Homeを活用を模索するなか、Google Home は chromecast のスピーカーでもあるので、パソコンからchromecastの制御の記事を探してみた。
すると、pychromecast の記事を発見。
$ sudo aptitude install python-pychromecast
記事を参考に python script をコピペしたけど開発がすすんで関数名などが変更となっているようで、github 側の記事をみてちょっとだけ修正。pythonをいつも使っていないので、chromecast の試行錯誤の前に、漢字コードの扱いの方で四苦八苦。
#!/usr/bin/python2 # -*- coding: utf-8 -*- from __future__ import print_function import sys import re import time import pychromecast #------ ddev = "" #------ args = sys.argv args.pop(0) dev = "" # device url = "" # chromecast URL mtype = "" # media type # コマンドライン引数からキャスト内容を取得 if len( args ) == 3 : dev, url, mtype = args elif len( args ) == 2 : dev, url, mtype = [ ddev ] + args elif len( args ) == 1 : dev = ddev url = args[0] if re.match( r'\.mp4$' , url ) : mtype = 'video/mp4' elif re.match( r'\.mp4$' , url ) : mtype = 'audio/mp3' elif re.match( r'\.jpg$' , url ) : mtype = 'image/jpeg' elif re.match( r'\.png$' , url ) : mtype = 'image/png' # デバイス一覧を取得 chromecasts = pychromecast.get_chromecasts() # 指定したデバイスを見つける cast = next( cc for cc in chromecasts if cc.device.friendly_name.encode( 'utf-8' ) == dev ) cast.wait() # キャスト開始 mc = cast.media_controller mc.play_media( url , mtype ) mc.block_until_active()
Symbol’s value as variable is void: last-command-char
Emacs25 の anthy.el で、”Symbol’s value as variable is void: last-command-char”のエラーがでるようになった。
他の方の記事をみて、$HOME/.emacs.d/init.el に以下を書き加える。
(define-obsolete-variable-alias 'last-command-char 'last-command-event "at least 19.34")
aptitude purge nano
Linux で vipw とか visudo とかのコマンドを実行する時に、”vi”という名前のくせに、エディタ nano が起動して相変わらず使い方が判らない。
“export EDITOR=vi”とかをやりながら使っていたけど、よく考えたら nano なんて使ってないし、消せば alternative 機能が vim.tiny に切り替えてくれる。 だったら素直に “sudo aptitude purge nano” でいいじゃん。
Raspberry Piに温湿度計とLCDモジュール
LCDディスプレィ接続
まずは、秋月の8×2のキャラクタLCDディスプレィ(AQM0802A)を接続してみた。
MZ-80C内のGPIOを、真上に接続するのはモニタ部分と干渉するので、I2C用のコネクタは背面に(MZ80C的には下側)につけて引き伸ばし。
当然ながら、8×2の小さいLCDを選んだのは、モニタ部分に埋め込むためなので、厚紙を切って配置してみた。参照先のサンプルコードも無事に動いて、”ハローワールド”の表示。
LCDのバックライト機能があるのだけど、GPIO4のポートをON/OFFしても光らない。なぜ…
単純に、バックライトのLEDのA,Kがはんだ付けしてなかっただけ…(x_x;
作業メモ
- BME280使用 温湿度・気圧センサモジュールキット
- JP3:short(I2C使用),JP2,JP1:open(No pullup)
- 1:VDD, 2:GND, 3:NC, 4:SDA, 5:GNDでアドレス0x76, 6:SCL
- 参考記事
- Raspberry Piキャラクタ液晶ディスプレイモジュールキット バックライト付
- JP1,JP2,JP3:open
- 参考記事
- Raspberry Pi Model A+
MZ-80C
忘れた頃に、MZ-80C入荷しました。こりゃ、おっさん(じーさん)ホィホィな製品だわ。
# ちなみに、本物の MZ-80 は、所有したことはない。
でも、たぶん1週間もすれば、WiFi-USB刺して、Rasbianなサーバになってるだろう。
内蔵ゲームの感想
ちなみに、内蔵の「平安京エイリアン」やってみたけど、一匹も倒せんかった。
自分の歳よりも古いゲームをした、うちの子供の感想。「キー操作が反応悪かったり、キー配置(移動のワードスター配列)がキモっ」とのことでした。
# それでも、私より上手く遊んでたけど。
改造するか
さっそく、I2C接続の小さなLCDモジュールと、温度湿度モジュールを発注。
ついに MovableType を卒業するか…
自宅サイトは、MovableType で運用してきたけど、 movabletype-opensource もメンテナンスされなくなってた。
MovableType の login エラー
だましだまし使っていようと思っていたけど、OS の更新をかけたら、
Got an error: Unescaped left brace in regex is illegal here in regex; marked by <-- HERE in m/{{ <-- HERE support}}/?/
みたいなエラーで、login できなくなった。 ちょいと、ソースを触れば login できるようになるとは思うけど、 ここらが “MovableType卒業” の潮時か。
blog の変遷
自宅サイトは、2000年ぐらいから、BLOG を運用してるはずだけど、 最初は手書き。途中で HNS(Hyper Nikki System) に切り替えたけど、 途中で MovableType に移行(自宅は2008年に移行)。
最古記事は、2003年だけどこの記事は、HNS のデータを Export して Movable-Type に取り込んだもののはず。
WordPress に移行
ということで、以前から WordPress のページは準備していたので、 そっちに切り替えよう。
メールでの投稿とかの機能は切っちゃおう。
ということで、この記事が我が家の MovableType 最後かな。