iot client (ESP32): hardware-in-the-loop (HIL) test rig in CI
メンテナーはふだん 1 日以内に返信
@issdn がすでに取り組んでいます。
2026年10月28日 から。
評価
この issue はまだ評価されていません。
説明
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.pychecks 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 orworkflow_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
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Open-Locker/Open-Locker のほかの issue
-
docs
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
Open-Locker/Open-Locker#287 ·
メンテナーはふだん 1 日以内に返信
-
Research and adopt accessibility standards for Open-Locker対応中かも @issdn が 1 日前に担当しました。 オープンbackend docs mobile-app question
Open-Locker/Open-Locker#357 · コメント 1 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
Let the store app use live updates with a self-hosted backend対応中かも @issdn が 1 日前に担当しました。 オープンbackend enhancement mobile-app
難易度 4/5 3〜5日 初心者へのやさしさ 52/100
Open-Locker/Open-Locker#353 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
enhancement mobile-app
難易度 4/5 1週間以上 初心者へのやさしさ 15/100
Open-Locker/Open-Locker#351 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
backend bug iot client
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
Open-Locker/Open-Locker#350 ·
メンテナーはふだん 1 日以内に返信
Open-Locker/Open-Locker の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
Automattic/blocks-engine#4621 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
YunoHost-Apps/snappymail_ynh#205 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
Automattic/static-site-importer#2653 ·
メンテナーはふだん 1 日以内に返信
-
Bug (unconfirmed) Search :mag:
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
FreshRSS/FreshRSS#9533 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
ExpressionEngine/ExpressionEngine#5453 ·
メンテナーはふだん 1 日以内に返信