shohei blog

【チェーンソー】STIHL MS201C

朝来に引越してはや3年、DIYで薪ストーブを導入しその魅力に取り憑かれてしまい、薪のことばかり考える日々を過すうち、見渡せば山なのになぜそこの木を切れないのかと思い、丹波市木の駅プロジェクトが行っているチェーンソー講習会を受講しました。

チェーンソー自体はAmazonで1万円代で売っているトップハンドルの小型な物と大きめな物を買って少し使っていたのですが、合計3日の実技講習で使ったのはSTIHL社のプロ用機材。もうね、これがまったく切れ味が違うので講習会後すぐに取り扱いのある店舗へ出向き購入したのがこちら。

かわいい外観

これ実は現行機種(MS201C-EM)だと10万円以上しちゃうのだけど、偶々入った店舗に旧型のデッドストックがあった。製品登場がいつなのかはざっと調べても出てこない(ネット販売しない主義の会社らしい)が10年以上前のモデルなのは確か。10年も経てばほとんどゴミ同然とされる本業との違いを痛感したが、現行モデルとの違いはインジェクション化されて高くなっただけらしいのでこちらで即決(一寸日焼けしてるけど)。ちなみに掛っていたプライスタグの消費税が5%時代っぽかったのが衝撃、えらい時代になってしまったものよ。価格は当時のままだったのだけど現行とは3万円以上も違うので良き出会いになりました。

現状杉の玉切りしかしていないが、やはり安物とはもう全く別物の切れ味なので切っていても楽しい。プロの機材は一味違うしそれを知ったら後戻りできないのはどの世界も一緒ね…と思ったのでした。

これから目立てやメンテナンスなんかも忘備録がてらここに書いていこうと思います。

3CXで電話機から留守電をオンにする方法

突然の3CXネタです。最近あちこちに入れてるのですが、忘れそうなのでとりあえずブログに書き留めておきます。

日本においてレガシーなオフィスフォンを使っていた場合「留守電をオンにセットして帰宅」みたいな需要があるみたいです。基本的に3CXとかだとOffice Hourをセットして自動的に留守電切り替えっていうスタイルになるんですけど。日本的には手動で操作したいという需要があるみたいです。

そんな時はステータス管理を使います。各エクステンション(内線)のステータスは通常「利用可能」となっていますが。「離席」にしてしまうとその内線は鳴りません。コールグループの設定で内線が全て離席になっていた場合はボイスメールへ転送という項目があるのでここを使います。

スマホ・pcクライアントからはクリックでステータス変更が可能ですが、IP電話機を使っている場合は内線「*31」にダイヤルする事で離席に設定可能です。また、「*30」に設定すれば通話可能になります。

正直この運用管理するくらいならOffice Hour 設定した方が良い気がしますがとりあえず方法はあるという事で。

ATOM Cam を使って予算1万円で畑を監視する

はじめに

この記事は「 ATOM Tech の ATOM Cam を使い畑を監視しよう」というコンセプトですが、本カメラの屋外設置は保証対象外の行為となります、また本記事にある行為はカメラ以外にバッテリーや太陽光発電パネルを扱う事になりますのでカメラ本体の故障は元より事故や発火等のリスクがある事を承知下さい。

という訳で、ATOM Cam 発売されました。たった 2,500円で国内メーカのネットワークカメラが買えるという事に驚きます。しかしここまで値段が下がれば色々と冒険もできると思います。私事ですが2020年3月に朝来に引越し、庭(というか菜園)の手入れをするのが楽しくなってきた所です、しかし週末にしか帰宅しない生活の為平日は菜園を見る事ができない、ので何とかならないのかと実は M5Camera を屋外に設置して定期的に JPEG を送付するというプログラムを書いていた所(これもサーバ側のプログラムは書いてあるので別の機会にどこかに載せます) です。という所に ATOM Cam を見つけて「これだ!」となりました。

必要な物

  •  ATOM Cam 本体 2500円
  • 太陽光発電パネルキット(10W) 2990円
  •  バッテリー(12v12Ah) 3480円
  • 収納ボックス 1000円くらい?

上記で大体 10,000 円くらいになりますね。
ボックスはわざわざ買わなくても家で余っている物を流用すればOKですね。ここで使っているのは PP 素材なので屋外にそのまま晒すと劣化するかもしれません…。

STEP.1 仮組
全ての物を箱から出し、仮組して動作するかチェックします。
ソーラーパネルの先はクリップになっていましたが不要なので切断します。
このケーブルを切り取りバッテリーとコントローラの接続にも使います。
バッテリーとコントローラを接続しコントローラの電源が入る事を確認し、次にソーラーパネルと接続し太陽光下で発電する事を確認します。問題無ければ ATOM Cam を取り出しコントローラのUSBポートに差し込み初期セットアップを行います。

STEP.2 ボックス加工
カメラ用の穴と、ソーラーパネルのケーブルを通す穴を開けます。ソーラーパネルを固定する用の穴が必要な場合はこちらも穴を開けます。
また、熱暴走が心配なので雨が降っても水が侵入しない場所に空気穴を開けておきます。
※カメラ用の穴はレンズ部分だけ空けると夜間オートで切り替わるナイトビジョンの時に点灯する赤外線ライトがボックス側に反射して何も見えなくなるので要対策です。現在対策確認中。
電動工具であれば穴は一発であけられるのでお勧めです。マキタのペンドライバードリルを使っています。

STEP.3 組立て
箱の中に入れましょう。
ソーラーパネルはインシュロックでボックスの蓋に固定しました。
カメラは付属の両面テープで金属プレートをボックス内側に貼り付けてマグネットで固定しますがズレるのでガムテープで位置修正してます。

STEP.4 設置
適当な場所に設置するだけです。画角が広いので良いですね。スマホのアプリで実際に見ながら設置できるので良いですね。

運用
2020年6月1日に設置2020年6月5日現在特に問題無く動作しています。

社内で構築した Rocket.Chat をインターネットから繋がるようにする

社内環境で既に構築してしまった Rocket.Chat を外部から評価したかったのでやり方を模索。

前提としては社内からインターネット上の踏み台サーバーへSSH接続可能な事。

 

Reverse ssh tunnel を安定運用する
[http://qiita.com/syoyo/items/d31e9db6851dfee3ef82]

ここを参考に3000番ポートをポートフォワードで踏み台から転送できるようにする。

これだけで踏み台から(もしくは踏み台にSSHしてポートフォワード掛ければ) Rocket.Chat へ接続できるようになる。

しかしこれだと一々接続しなければ行けないのでさらにこの踏み台サーバーのポートを直接叩けば Rocket.Chatが使えるようになるには下記の設定を入れる。

まずは、踏み台側sshdの設定変更、これで外部から受け付けられる

nano /etc/ssh/sshd_config
GatewayPorts yesを追加
sudo /etc/init.d/sshd restart

次にIPのFORWARD設定

sudo nano /etc/default/ufw
#DEFAULT_FORWARD_POLICY="DROP"
DEFAULT_FORWARD_POLICY="ACCEPT"

sudo nano /etc/ufw/sysctl.conf
net/ipv4/ip_forward=1</pre>

最後にiptables(ufw)の変更、

nano /etc/ufw/before.rules
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -m tcp -p tcp --dst <IP ADDRESS> --dport <OUTBOUND PORT> -j DNAT --to-destination 127.0.0.1:<FORWAD PORT>
COMMIT
ufw reload

これで繋がるようになるはず。

php70-php-gdを入れても設定が反映されなかった

WordPressではGDというライブラリを使い画像の処理を行っているそうな。
サムネイル(アイキャッチ)の縮小や画像編集で「ご利用中のホスティング環境は画像の回転機能に対応していません。」が出る場合はこれが上手く動いていないのが原因。

CentOSなのでこんな感じ

# yum list |grep php-gd
php70-php-gd.x86_64                        

#yum install php70-php-gd

これで使えるようになると思ったらどうも反応しない。
phpinfoにもGDの項目がenable以前に表示もされていない。

というわけで下記を行なったところ解決。

 

extension=/opt/remi/php70/root/usr/lib64/php/modules/gd.so

Let’s Encrypt してみたけどハマった

このブログを載せているサーバがDebian6だったの気付き8まで一気にアップグレードしました。

Let’s Encryptが気になったので導入してみる事に。

ガイド通りにやったら問題無く証明書を作成する所まではできたがApacheがどうしてもエラーになる。

SSLのチェックサイトではoversized record received with length とか怒られてしまうのだが原因はapache2のvirtualhostの記述にありました。

<VirtualHost *:80> の形式と
<VirtualHost HOGEHOGE.com> の形式が混在してしまうとSSL(ポート443)ではなく通常のページを返すようです。

最終的にApacheのログレベルをtraceにしててやっと気づきましたが大分ハマってしまったので記事にしときました。

 

CPIにownCloud 8をインストールする

htaccessをこうすれば動く

# Version: 8.0.2

Options +FollowSymLinks
 <IfModule mod_fcgid.c>
 <IfModule mod_setenvif.c>
 <IfModule mod_headers.c>
 SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
 RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
 </IfModule>
 </IfModule>
 </IfModule>
 <IfModule mod_php5.c>
 php_value upload_max_filesize 513M
 php_value post_max_size 513M
 php_value memory_limit 512M
 php_value mbstring.func_overload 0
 php_value always_populate_raw_post_data -1
 <IfModule mod_env.c>
 SetEnv htaccessWorking true
 </IfModule>
 </IfModule>
 <IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
 RewriteRule ^\.well-known/host-meta /public.php?service=host-meta [QSA,L]
 RewriteRule ^\.well-known/host-meta\.json /public.php?service=host-meta-json [QSA,L]
 RewriteRule ^\.well-known/carddav /remote.php/carddav/ [R]
 RewriteRule ^\.well-known/caldav /remote.php/caldav/ [R]
 RewriteRule ^apps/calendar/caldav\.php remote.php/caldav/ [QSA,L]
 RewriteRule ^apps/contacts/carddav\.php remote.php/carddav/ [QSA,L]
 RewriteRule ^remote/(.*) remote.php [QSA,L]
 RewriteRule ^(build|tests|config|lib|3rdparty|templates)/.* /503.php [L]
 RewriteRule ^(\.|autotest|occ|issue|indie|db_|console).* /503.php [L]
 #RewriteRule ^(build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
 #RewriteRule ^(\.|autotest|occ|issue|indie|db_|console).* - [R=404,L]
 </IfModule>
 <IfModule mod_mime.c>
 AddType image/svg+xml svg svgz
 AddEncoding gzip svgz
 </IfModule>
 <IfModule mod_dir.c>
 DirectoryIndex index.php index.html
 </IfModule>
 AddDefaultCharset utf-8
 Options -Indexes
 <IfModule pagespeed_module>
 ModPagespeed Off
 </IfModule>
 <IfModule mod_headers.c>
 <FilesMatch "\.(css|js)$">
 Header set Cache-Control "max-age=7200, public"
 </FilesMatch>
 </IfModule>

ErrorDocument 403 /owncloud/core/templates/403.php
 ErrorDocument 404 /owncloud/core/templates/404.php

<Limit GET POST OPTIONS>
 Order allow,deny
 Allow from all
 </Limit>
 <LimitExcept GET POST OPTIONS PROPFIND DELETE PROPPATCH MKCOL PUT COPY>
 Order deny,allow
 Deny from all
 </LimitExcept>
 <IfModule mod_dav.c>
 Dav Off
 </IfModule>