{"id":22612420,"url":"https://github.com/miso-develop/opniz","last_synced_at":"2026-03-05T23:16:05.131Z","repository":{"id":135826536,"uuid":"348282558","full_name":"miso-develop/opniz","owner":"miso-develop","description":null,"archived":false,"fork":false,"pushed_at":"2023-10-11T10:27:40.000Z","size":467,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T23:46:20.683Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/miso-develop.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-16T09:15:34.000Z","updated_at":"2022-04-01T14:00:57.000Z","dependencies_parsed_at":"2023-10-11T12:33:34.900Z","dependency_job_id":null,"html_url":"https://github.com/miso-develop/opniz","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miso-develop%2Fopniz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miso-develop%2Fopniz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miso-develop%2Fopniz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miso-develop%2Fopniz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/miso-develop","download_url":"https://codeload.github.com/miso-develop/opniz/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249131243,"owners_count":21217706,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-08T17:12:47.823Z","updated_at":"2026-03-05T23:16:00.109Z","avatar_url":"https://github.com/miso-develop.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# opniz\r\n\r\n\u003cdiv align=\"center\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/22117028/274112294-10c9323f-14d3-4986-ac3e-c73c16b87f4b.png\" alt=\"logo\"\u003e\u003c/div\u003e\r\n\r\n\u003e ❗ このプロジェクトは現在アルファ版です。\r\n\r\nopnizとはM5StackデバイスをNode.js（JavaScript / TypeScript）からobnizライクに実装できるオープンソースフレームワークです。  \r\nNode.js SDKおよびArduinoライブラリがあり、WebSocketで相互通信を行います。  \r\n\r\nしくみとしてはM5StackデバイスおよびNode.js SDK間にてJSON形式のRPCメッセージをやりとりし、相互に定義されたメソッドを呼び合います。  \r\n\r\n![overview](https://user-images.githubusercontent.com/22117028/274111780-1f1e22ec-66ac-4cd0-bee3-1a19ee2eb65c.png)\r\n\r\n\r\n\r\n## 対応デバイス\r\n\r\n* M5Stack BASIC\r\n* M5Stack Core2\r\n* M5StickC\r\n* M5ATOM Matrix\r\n* M5ATOM Lite\r\n* M5ATOM Echo\r\n* M5ATOM U\r\n* M5ATOMS3\r\n* M5ATOMS3 Lite\r\n* M5Stamp Pico\r\n* M5Stamp S3\r\n* その他ESP32、ESP32-PICO-D4、ESP32-S3デバイス\r\n\r\n\r\n\r\n## Node.js SDK\r\n\r\n**[opniz SDK for Node.js](https://github.com/miso-develop/opniz-sdk-nodejs)**\r\n\r\nデバイスのRead/Writeを実行したり（Pinも動的に指定可能です）、デバイス側からのイベント（たとえばM5Stack系デバイスのボタン等）を受け取って非同期に処理を実行したりできます。  \r\n[M5Unified](https://github.com/m5stack/M5Unified)をベースにM5Stackデバイス固有のメソッドも備えています。  \r\n\r\n\r\n\r\n## Arduinoライブラリ\r\n\r\n**[opniz Arduino Library for M5Unified](https://github.com/miso-develop/opniz-arduino-m5unified)**  \r\n\r\nNode.js SDKからのRPCリクエストを処理するハンドラと、M5StackデバイスからのRPCイベントを発火するエミッタを実装したデバイスクラスを提供します。  \r\nArduino IDEおよびPlatformIOに対応しています。  \r\n[M5Unified](https://github.com/m5stack/M5Unified)を内部で使用しており、Node.js SDKより同じ書き味でメソッドを使用できます。  \r\n\r\nopniz CLIにて簡単にM5Stackデバイスへ書き込むことができます。  \r\n\r\n\r\n\r\n## opniz CLI\r\n\r\n**[opniz CLI](https://github.com/miso-develop/opniz-cli)**\r\n\r\nopniz CLIはM5Stackデバイスへopniz ArduinoライブラリのBasicスケッチをコマンドから簡単に書き込めるCLIツールです。  \r\n[Arduino CLI](https://github.com/arduino/arduino-cli)のラッパーCLIです。  \r\n\r\n\r\n\r\n## opniz Server\r\n\r\n**[opniz-server](https://github.com/miso-develop/opniz-server)**\r\n\r\nopniz Serverはopniz Node.js SDKやopnizデバイスからのJSON RPCメッセージを中継するWebSocketサーバです。  \r\nopniz Serverを介すことでWebSocketクライアント同士の接続（opnizデバイス、ブラウザ、Node.js SDK等）を行えます。  \r\n\r\nクラウド環境（PaaS、FaaS等）でも動作するため、たとえば手元のPCで動作させたopniz Node.js SDKからインターネット越しの環境にあるopnizデバイスを制御するといったことも可能です。  \r\n\r\n![opniz-server](https://user-images.githubusercontent.com/22117028/274111777-8f17b07d-380e-4f9f-8064-06fa9eb8cbde.png)\r\n\r\n\r\n\r\n## 利用可能な通信プロトコル\r\n\r\nopniz Node.js SDKでは以下の通信プロトコルを実装しています。  \r\nデフォルトでは`WebSocket (Server)`が使用されます。  \r\n\r\n* WebSocket (Server)\r\n* WebSocket (Client)\r\n* TCP (Server/Client同居)\r\n\r\nopniz Arduinoライブラリでは以下の通信プロトコルを実装しています。  \r\nデフォルトでは`WebSocket (Client)`が使用されます。  \r\n\r\n* WebSocket (Client)\r\n* TCP (Server/Client同居)\r\n\r\n使用するプロトコルによりopnizのコンストラクタパラメータが変わってきます。  \r\n\r\nまたクラウド（PaaS、FaaS）へデプロイして動作させたり、Node.js SDK同士の接続も可能です。  \r\n\r\n\r\n\r\n## ライセンス\r\n\r\n[MIT](./LICENSE)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiso-develop%2Fopniz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmiso-develop%2Fopniz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiso-develop%2Fopniz/lists"}