カテゴリー: 手順書

  • 細霧冷房 制御

    HomeAssistant上、Node Redの制御を示した(具体的なエンティティが表示されていないので、データフローのイメージしか伝わらんと思う。汲んでくれ)

    動作内容

    • 以下基本動作を繰り返す
      • 日照がある間
      • 1分毎に噴霧チャンスを与える
      • 噴霧は4秒間噴霧して停止

    ただし、噴霧には以下の条件を課す

    • 気温は圃場代表点において外気温26℃以上
    • 湿度は圃場代表点において外湿度75%以下
    • 外湿度に応じて噴霧間隔を1~4分で自動調整

    留意・懸案事項

    • 細霧冷房は、噴霧の水滴が気化してナンボ。施設内湿度が上がると病気が増えるので、むやみに噴霧時間を増やさない
    • 日の出入の外側で、朝7時にカラクリON。日没時にカラクリOFFしている。どーせ早朝は湿度が高くて作動条件満たさない
    • 日照時間(≒日の出・日の入り時刻)は緯度経度により指定。周辺環境に依り日射開始~終了時刻はオフセットすること
    • 【wait by humid】ノードにて、”待ち”時間中にも関わらず、次の噴霧チャンスが巡って来た場合は、新しい方を無視
    • 弊所実装では、全ての細霧冷房設置ハウスの噴霧が同時にON/OFFされるので、水経路に架かる水撃負担を考慮して、逐次・順次作動するような工夫をしても良いかもしれない
  • SOnOffのTasmota化

    結論:Webインストーラー使えば難易度下がる

    https://tasmota.github.io/install

    準備

    ラズパイのGPIO経由でSOnOffに物理接続し、webインストーラから論理接続、フラッシュメモリの書き換えをする。多分、元のsonoffのOS?には戻せないので、その覚悟で行ってほしい(Tasmotanのほうが絶対便利)

    ・諸々接続がめんどくさいので、Windowsマシンからラズパイ画面を表示するためにVNC接続することとする
    ・ラズパイは既にインターネットに接続できる環境であることとする

    ジャンパ4線USBケーブルなんて持ってないので、複数sonoffを設定したい場合はそれぞれ設定終了する毎、ラズパイ止めて、sonoffの物理接続を外して別のsonoffに入れ替えて、ラズパイの再起動する

    物理接続

    何処のご家庭でも余っているであろう、2.56mmピッチの4ピンジャンパ端子をsonoffにはんだ付ける(ジャンパケーブルで電気信号を通す自信があるなら、ピンのはんだ付けは不要)

    また、何処のご家庭にでも余ってるであろう、ジャンパケーブル(メスーメス)にてラズパイとsonoffを接続。3.3v、GND、TX、RXを双方に接続。TX-RXはクロス関係であることに注意

    論理接続~設定

    ラズパイ起動

    仮想端末からラズパイコンフィグ実行

    sudo raspi-config

    ラズパイコンフィグウィンドウ上でシリアル通信を有効にする

    interface→serial connection→no→yes→finish

    「sonoffのボタンを押しながら」、sudo reboot実行
    コレによりsonoffはメモリ上書き可能な状態で起動する
    ラズパイが通電後のイニシャライズを始めたら、sonoffのボタンから手を離しても構わない

    ラズパイのブラウザを起動して、tasmota webインストーラーへ移動
    https://tasmota.github.io/install

    デバイスを選択(ttys0みたいな選択肢があるはず)

    表示に沿って全てデフォルトでインストール→configlationが現れる
    この時点でsonoffのtasmota化は完了している。ラズパイをシャットダウンしてジャンパケーブルを抜き、sonoff改めtasmotaのinput側に交流100v電源を入力したら、tasmota osが起動し、単独・独立のネットワーク電波(ssid)を発する。

    この際、windowsやケータイにより検出されるwifi ssidを確認すると、tasmota-xxのような電波を検知できる。windowsやケータイ(ココでは以下、windowsとする)からこのssidを選択・接続すると、一時的にwindowsのwifiがtasmotaの配下のIPとなる(windowsのインターネットは切れる)。このとき場合によっては、ブラウザが自動的に開き、tasmotaのwifi設定が促される。設定画面が表示されない場合は、tasmotaから振られたIPを確認し、IP末尾を1としてブラウザによりアクセスすることで、tasmotaの設定画面が開ける。

    ケータイ(Androidは確認済.Iphoneは知らん)アプリもあるので、携帯端末から操作もできる。自前でデバイスをスキャンすることができる。

  • wwwの在処

    /var/lib/homeassistant/homeassistant/www/

    あ…、(笑)ではない

  • Win機→NextCloudのWebDav接続

    前、サラッとググったときには、Win機のレジストリ触らないといけないような説明が2,3ヒットしたので”面倒くせーな”と思い込んで手控えてたんですが、実は簡単だった説あるw

    https://blackmagicdesign-creatorscom.jp/windows11-webdav-network-drive-setup

    1.Win機のwebclientサービスを起動して

    2.NextCloudのWebDavリンクコピーして

    3.Win機エクスプローラで「ネットワークの場所を追加する」で、指示に従い入力を進める

  • Raspberry PiでOpenVPNクライアントを自動起動する設定

    はじめに

    この手順書では、Raspberry Piの起動時にOpenVPNクライアントを自動的に起動する設定方法を説明します。設定ファイルは/etc/openvpn/client/field.ovpnを使用します。

    前提条件

    • Raspberry PiがDebianベースのOS(例:Raspberry Pi OS)で動作していること。
    • OpenVPNがインストール済みであること(sudo apt install openvpn)。
    • OpenVPN設定ファイルが/etc/openvpn/client/field.ovpnに配置されていること。

    手順

    1. OpenVPN設定ファイルの確認

    設定ファイル/etc/openvpn/client/field.ovpnが存在することを確認します。

    sudo ls /etc/openvpn/client/field.ovpn

    ファイルの権限を適切に設定します:

    sudo chmod 600 /etc/openvpn/client/field.ovpn

    2. OpenVPNサービスの有効化

    起動時に自動実行されるよう、OpenVPNクライアントサービスを有効化します。設定ファイルfield.ovpnに基づくサービス名はopenvpn-client@field.serviceです。

    sudo systemctl enable openvpn-client@field.service

    3. OpenVPNサービスの起動

    サービスを手動で起動し、動作を確認します:

    sudo systemctl start openvpn-client@field.service

    4. サービス状態の確認

    サービスが正しく動作しているか確認します:

    sudo systemctl status openvpn-client@field.service

    問題がある場合は、ログを確認します:

    sudo journalctl -u openvpn-client@field.service

    5. 設定ディレクトリの確認

    /etc/openvpn/client/ディレクトリが存在することを確認します。存在しない場合は作成します:

    sudo mkdir -p /etc/openvpn/client

    6. 追加設定(必要に応じて)

    認証ファイルの設定: field.ovpnでユーザー名/パスワード認証が必要な場合、認証ファイル(例:/etc/openvpn/client/auth.txt)を作成します:

    username
    password

    field.ovpnに以下を追加:

    auth-user-pass /etc/openvpn/client/auth.txt

    認証ファイルの権限を設定:

    sudo chmod 600 /etc/openvpn/client/auth.txt

    ログの詳細化: トラブルシューティングのためにログレベルを上げたい場合、field.ovpnに以下を追加:

    verb 4

    7. 再起動して確認

    Raspberry Piを再起動し、サービスが自動起動するか確認します:

    sudo reboot

    再起動後、サービスとVPNインターフェースを確認:

    sudo systemctl status openvpn-client@field.service
    ip addr show tun0

    tun0(または設定に応じたインターフェース)が表示されれば、VPN接続が確立しています。

    注意点

    • OpenVPNサービスが起動する前にネットワークが有効である必要があります(通常、systemdが自動で処理)。
    • OpenVPNが未インストールの場合、以下でインストール:
    • sudo apt update
      sudo apt install openvpn
    • 複数のVPN設定を使用する場合、同様の手順で別サービス(例:openvpn-client@other.service)を有効化可能。

    トラブルシューティング

    VPN接続に失敗した場合:

    • field.ovpnファイルの構文を確認。
    • ネットワーク接続を確認。
    • ログを詳細に確認してエラーを特定。

    以上で、Raspberry Piの起動時にfield.ovpnを使用したOpenVPNクライアントが自動起動する設定が完了します。

  • ラズパイでChromiumを再起動時に60秒遅延で自動起動する方法

    概要

    このガイドでは、Raspberry Pi(ラズパイ)の再起動時に、Chromiumブラウザを60秒遅延で自動起動し、指定したURL(http://192.168.20.245:8123/lovelace/env)を表示する設定方法を説明します。systemdサービスを使用して設定を行います。

    前提条件

    • Raspberry Pi OS(デスクトップ環境推奨)がインストールされている
    • Chromiumブラウザがインストール済み(未インストールの場合は後述の手順でインストール)
    • ネットワーク接続が確立されている

    手順

    1. Chromiumのインストール確認

    ターミナルで以下のコマンドを実行し、Chromiumがインストールされているか確認します。

    chromium-browser --version

    インストールされていない場合は、以下でインストールします。

    sudo apt update
    sudo apt install chromium-browser

    2. systemdサービスファイルの作成

    systemdを使用してChromiumを自動起動します。以下のコマンドでサービスファイルを作成します。

    sudo nano /etc/systemd/system/chromium.service

    以下の内容を入力します。この設定では、起動前に60秒の遅延を追加しています。

    [Unit]
    Description=Start Chromium on boot
    After=network-online.target
    
    [Service]
    Type=simple
    User=pi
    Environment=DISPLAY=:0
    ExecStartPre=/bin/sleep 60
    ExecStart=/usr/bin/chromium-browser --kiosk http://192.168.20.245:8123/lovelace/env
    Restart=always
    RestartSec=10
    
    [Install]
    WantedBy=multi-user.target

    注意

    • User=piはデフォルトのユーザー名です。異なる場合は適宜変更してください。
    • Environment=DISPLAY=:0はディスプレイ環境を指定します。必要に応じてecho $DISPLAYで確認し調整してください。

    3. systemdの設定を更新

    サービスファイルを更新した後、systemdに変更を反映させます。

    sudo systemctl daemon-reload

    4. サービスの有効化と開始

    サービスを有効化して、再起動時に自動実行されるようにします。

    sudo systemctl enable chromium.service

    サービスを今すぐ開始して動作を確認します。

    sudo systemctl start chromium.service

    5. 動作確認

    ラズパイを再起動し、60秒後にChromiumが指定URLを表示するか確認します。

    sudo reboot

    注意点

    • ネットワーク接続:ネットワーク接続が遅延する場合、ExecStartPre=/bin/sleep 60の時間を増やす(例: 90秒)ことを検討してください。
    • ディスプレイ:ディスプレイが接続されていない場合、/boot/config.txtでHDMI出力を確認してください。
    • ログ確認:エラーが発生した場合、以下のコマンドでログを確認します。
      journalctl -u chromium.service

    まとめ

    これで、ラズパイの再起動時にChromiumが60秒遅延で自動起動し、指定URLを表示する設定が完了します。問題が発生した場合は、ログを確認し、必要に応じて設定を調整してください。