iot client (ESP32): hardware-in-the-loop (HIL) test rig in CI

オープン
#342 コメント 0 件 リアクション 0 件 担当者 1 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@issdn がすでに取り組んでいます。

2026年10月28日 から。

評価

この issue はまだ評価されていません。

説明

enhancement iot client

Context

The firmware CI (.github/workflows/locker-firmware-ci.yml) runs only static and host gates on ubuntu-latest. On-device checks go through locker-firmware/scripts/hwtest.py run: an operator runs it by hand and commits hardware-record.json, and CI only checks that the record matches the current firmware tree (hwtest.py check). The record is an attestation, not proof, and nothing runs on a real board until someone sits at the bench.

AI review and human review don't run code on hardware either, so the RS-485 unlock path is only tested when someone remembers to test it.

Related: #56 (ESP32 locker client migration).

Scope

  • A bench rig: an ESP32 board plus at least one RS-485 lock board, connected over USB to a machine that can run a GitHub Actions self-hosted runner.
  • A CI job on that runner that flashes the PR's firmware image and runs the hwtest.py checks that need no human (console, commissioning, MQTT against a test broker, unlock over RS-485 with the lock state read back).
  • Triggers: nightly on main, and on demand for a PR (label or workflow_dispatch). It doesn't need to run on every push.
  • Checks that still need a person (e.g. physically confirming the door opened) stay in the operator-attested record.

Open questions

  • Which runner host: Raspberry Pi or a spare PC? It must not be reachable from fork PRs (self-hosted runner security).
  • How to confirm an unlock without a person: the lock board's feedback register, a door sensor, or a relay/GPIO loopback?
  • Should a red HIL run block merging, or only report?
主要言語
PHP
スター
26
フォーク
2
平均マージ
2日 14時間
マージ済み PR(30日)
14

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

  • Dockerfile・Docker Compose ファイルなし
  • プルリクエストのテンプレートなし
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

Open-Locker/Open-Locker のほかの issue

Open-Locker/Open-Locker の issue をすべて見る

似ている issue

PHP の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。