2016年11月20日日曜日

Raspberry Pi3 で KODI と Exodus

Raspberry Pi3 を導入してから、Scratch や Python で遊んでますが、実用的な使い方として、 KODI があります。

これをインストールしておけば、家庭内のファイルサーバーに溜めた 音楽ファイルや ISO化したDVD等を簡単に再生できるメディアプレイヤーとなります。

しかも、 KODI にはアドオン機能でいろいろ便利なことがあります。
中でも、 EXODUS はかなり便利だと思うのですが、なかなか日本語の解説が見つからなくて、アドオンをインストールすることすらできませんでした。

それでも、英語のページを Googleの自動翻訳等で日本語化してもらって、なんとかインストールできました。

とりあえずは、 KODI のメインメニューの「システム」から「ファイルマネージャー」を選択。
「ソースを追加」を選択すると、「メディアのパスを参照するか入力してください。」というメッセージの下に「<無し>」というボックスがあるので、そのボックス自体を選択すると、URLが入力できる。

http://fusion.tvaddons.ag

後は、その下の「メディアサーバーの名前を入れてください。」という欄に好きな名前を付けて(そのまんま「Exodus」とか)、「追加」ボタンを押せば登録完了です。

再度、設定画面の「アドオン」の中の、 Install from repository に入れば、 Exodus repository ができていると思うので、「ビデオアドオン」を選択して、「インストール」を選択。
あとは進んでいくだけ。

こんなところから設定できるとは KODI も奥が深い。

2016年11月12日土曜日

UPS のスケジュールシャットダウン

UPSのスケジュールシャットダウン機能を使っています。

うちのサーバーは社内業務専用なので、24時間稼働させる必要はありませんから、節電と、ディスクの保護(温存?)を考えて、夜間はシャットダウンして、早朝に自動起動するように設定しています。

このスケジュールはUPSに依存しています。

UPSは本来、商用電源に障害が発生した際に、一時的にUPS本体のバッテリーを利用してサーバー等に電源を供給しつづけて、障害の時間がある一定の時間を超えた場合には、サーバー等に対して、シャットダウンコマンドを送って、安全にシャットダウンさせることが任務です。

さらに、うちのように、スケジューリングを行って、サーバーのシャットダウンとブートを自動的に行うこともできるのが一般的だと思います。

うちのスケジュールは、深夜1時00分にシャットダウンし、6時間後の朝7時00分にブートするようにしています。
サーバーには起動後、別途タスクスケジューラーを使って、毎朝7時15分から特定の処理を実行するようにしています。

ところが、先日、会社の電源機器点検のために、計画停電がありました。
これは、予定上は日曜日の午前8時45分から正午まで全館停電となります。
(今回は実際には、午前8時45分から12時15分ぐらいまでの停電でした。)

そこで、計画停電の前日に、シャットダウンスケジュールを変更して、日曜日の午前1時00分にシャットダウン後、30時間後の月曜日7時00分にブートするように変更しました。
(すなわち、ブートを1回飛ばした感じの設定です。)

月曜日に出勤してみると、サーバーは機嫌よく起動していました。
「よしよし」と思いながら、念のためにイベントビューアを見てみると、「うん?なんか変」

月曜日の朝に起動しているはずなので、月曜日になった瞬間の0時00分とかは起動していないので、イベントなんか何も記録されるはずがないのに、色んなイベントが走っています。

「あれれれ?」となって、イベントをさかのぼってみたら、停電解除(すなわち計画停電後の通電開始)と同時に起動しています。

同じ条件で運用したUPSが5台あるんですが、この現象が発生したのが、H社製の1台だけ。
他の4台は、全てA社製(OEMを含む)で、全てスケジュール通りに起動しています。

このH社製のUPSはどこかのOEMなんだそうですが、クソで、今までから様々な問題というか、思った通りに動いてくれなくて、もう何度窓から投げ捨てようと思ったことか!

で、今回こそもう許せないということで、H社に猛抗議!
H社からの正式回答は、「今のことろ対応策はありません。」というものでした。

そこで、販社に、「即刻他社製のものと入れ替えてくれ!」と伝えたところ、なんとその販社から、
「念のために、A社に照会したところ、『同様の現象はA社でも保証の範囲ではありません。今回はたまたま設定どおりに起動しただけで、次回はどうなるかわかりません。』というものでした。」という答えが返ってきました。

そんなことってあり得る?






2016年11月5日土曜日

VBA から WIA Object を使って Exif 情報を取得

GPS 付きのデジカメで撮った JPG 写真に付加されている Exif 情報を取り出したいと思って、最近手を出し始めた Python を使うことを考えたのですが、これは仕事上必要な処理になるので、不慣れな Python で不安定なプログラムを書くより、使い慣れた VBA でどうにかならんかな?と考えていたら、こんな素晴らしいものがあることが分かりました。

WIA Object
Access(or Excel) で参照設定すれば使えます。
参照するライブラリの名前は Microsoft Windows Image Aquisition Library です。
私の環境には、 V2.0 が入ってました。( Office 2010 の Access14)

Sub GetExif()
  Dim ObjWia As Object 'WIA.ImageFile
  Set ObjWia = CreateObject("Wia.ImageFile")
    ObjWia.LoadFile "C:\Users\USER\Downloads\P12345.JPG"  '対象の写真ファイル

  On Error Resume Next
  For Each p In ObjWia.Properties
    i = i + 1
    V_ID = p.PropertyID
    V_Name = p.Name

    If p.PropertyID = 2 Or p.PropertyID = 4 Then
      V_Value = p.Value(1) + p.Value(2) / 60 + p.Value(3) / 3600  'ID=2=緯度 ID=4=経度
    Else
      V_Value = p.Value
    End If
   
    Debug.Print V_ID & " " & V_Name & " " & V_Value
   
  Next
  On Error GoTo 0
 
  Set ObjWia = Nothing
End Sub


イミディエイトウィンドウ
----------------------------------------------------------
PropertyID PropertyName PropertyValue
271 EquipMake Panasonic
272 EquipModel DMC-TZ40
274 Orientation 1
282 XResolution 180
283 YResolution 180
296 ResolutionUnit 2
305 SoftwareUsed PPP
306 DateTime 2016:11:06 11:59:33
315 Artist
531 YCbCrPositioning 2
33434 ExifExposureTime 0.025
33437 ExifFNumber 3.3
34850 ExifExposureProg 2
34855 ExifISOSpeed 400
34864 34864 1
36864 ExifVer
36867 ExifDTOrig 2016:11:06 11:59:33
36868 ExifDTDigitized 2016:11:06 11:59:33
37121 ExifCompConfig
37122 ExifCompBPP 4
37380 ExifExposureBias 0
37381 ExifMaxAperture 3.4453125
37383 ExifMeteringMode 5
37384 ExifLightSource 0
37385 ExifFlash 16
37386 ExifFocalLength 4.3
37500 ExifMakerNote
40960 ExifFPXVer
40961 ExifColorSpace 1
40962 ExifPixXDim 4896
40963 ExifPixYDim 2752
20545 20545 R98
20546 20546
41495 ExifSensingMethod 2
41728 ExifFileSource 3
41729 ExifSceneType 1
41985 41985 0
41986 41986 0
41987 41987 0
41988 41988 0
41989 41989 27
41990 41990 0
41991 41991 2
41992 41992 0
41993 41993 0
41994 41994 0
42016 42016 e97cd362db94a78a0000000000000000
0 GpsVer
1 GpsLatitudeRef N
2 GpsLatitude 36.0319055555556
3 GpsLongitudeRef E
4 GpsLongitude 138.210838888889
5 GpsAltitudeRef 0
6 GpsAltitude 0
7 GpsGpsTime
9 GpsGpsStatus A
10 GpsGpsMeasureMode 2
11 GpsGpsDop 1.9
16 GpsImgDirRef T
17 GpsImgDir 45
18 GpsMapDatum WGS-84  
27 27
28 28
29 29 2016:10:22
50341 50341
50898 50898
50899 50899
20507 ThumbnailData
20515 ThumbnailCompression 6
20525 ThumbnailResolutionX 72
20526 ThumbnailResolutionY 72
20528 ThumbnailResolutionUnit 2
513 JPEGInterFormat 5556
514 JPEGInterLength 7219
20625 ChrominanceTable
20624 LuminanceTable
----------------------------------------------------------

元々 GPS 情報が取得できているかどうかの判定に使用したくて探していたんですが、これがあれば、撮影日時やシャッタースピードなどの撮影情報も全部把握できます。
夢が広がりました。