{"adoption": {"forks": 482, "observed_at": "2026-08-28T04:05:19.784231+00:00", "stars": 1668}, "canonical_url": "https://ross.abutalabs.com/products/iotclient", "card": {"archived": false, "artifact_type": "library", "description": "This is an IoT device communication protocol implementation client, which will include common industrial communication protocols such as mainstream PLC communication reading, ModBus protocol, and Bacnet protocol. This component is open source and free for life, using the most relaxed MIT open source agreement, you can modify and commercial use at will (commercial use please evaluate and test).   这是一个物联网设备通讯协议实现客户端，将会包括主流PLC通信读取、ModBus协议、Bacnet协议等常用工业通讯协议。本组件终身开源免费，采用最宽松的MIT开源协议，您可以随意修改和商业使用（商业使用请做好评估和测试）。", "domain": ["iot", "embedded-systems", "developer-tools"], "enriched": true, "function": ["sdk", "networking", "developer-tools"], "health_score": 69, "homepage": null, "language": "C#", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["zhaopeiym/IoTClient"], "name": "zhaopeiym/IoTClient", "platform": ["cross-platform", "windows", "dotnet"], "pushed_at": "2026-05-12T13:50:09+00:00", "repo": "zhaopeiym/IoTClient", "stars": 1668, "tags": ["modbus", "plc", "bacnet", "siemens-s7", "mitsubishi-plc", "omron-fins", "allen-bradley", "industrial-protocols", "csharp", "iot-communication", "automation", "linux"], "topics": ["iot", "iotclient", "tcp", "socket", "modbustcp", "modbusrtu", "modbusascii", "plc", "bacnet", "siemens", "siemens-s7", "siemens-plc", "modbus", "plc-modbus-bacnet", "mitsubishi", "mitsubishi-plc", "omron-plc", "omronfins", "omron"], "urls": [], "use_cases": ["read data from a Siemens S7 PLC in a .NET application", "communicate with Modbus TCP devices over the network", "poll Modbus RTU registers over a serial port", "integrate BACnet building automation devices", "read Omron FINS PLC registers from C#", "build an energy monitoring system that reads industrial meters", "run industrial device communication on a Raspberry Pi with .NET"], "what_it_is": "IoTClient is a C# (.NET Standard 2.0) library implementing clients for common industrial IoT communication protocols, including ModBus (TCP/RTU/ASCII), BACnet, and PLC protocols for Siemens, Mitsubishi, Omron, and Allen-Bradley devices. It enables cross-platform .NET applications to read from and write to industrial hardware, including on Linux and Raspberry Pi.", "when_to_avoid": ["you need protocols or PLC brands not covered by the library", "you require certified, vendor-supported industrial communication for safety-critical systems", "your stack is not .NET-based"], "when_to_choose": ["you need a free MIT-licensed .NET library for Modbus, BACnet, or mainstream PLC protocols", "you want cross-platform industrial communication including Linux and Raspberry Pi deployment", "you need to talk to Siemens, Mitsubishi, Omron, or Allen-Bradley PLCs from C#"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/iotclient", "repo": "zhaopeiym/IoTClient", "role": "main", "score": 60}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.784231+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:42:51.511363+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44b8bc5ccf005b83cf20d3b4603d78bad58694bc74add3007f1ca0c47239da7b", "fetched_at": "2026-08-28T04:05:19.784231+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaopeiym/IoTClient"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.784231+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:42:51.511363+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44b8bc5ccf005b83cf20d3b4603d78bad58694bc74add3007f1ca0c47239da7b", "fetched_at": "2026-08-28T04:05:19.784231+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaopeiym/IoTClient"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:42:51.511363+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44b8bc5ccf005b83cf20d3b4603d78bad58694bc74add3007f1ca0c47239da7b", "fetched_at": "2026-08-28T04:05:19.784231+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaopeiym/IoTClient"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.784231+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.784231+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.784231+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:42:51.511363+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44b8bc5ccf005b83cf20d3b4603d78bad58694bc74add3007f1ca0c47239da7b", "fetched_at": "2026-08-28T04:05:19.784231+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaopeiym/IoTClient"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.784231+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.784231+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:42:51.511363+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44b8bc5ccf005b83cf20d3b4603d78bad58694bc74add3007f1ca0c47239da7b", "fetched_at": "2026-08-28T04:05:19.784231+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaopeiym/IoTClient"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.784231+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.784231+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.784231+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:42:51.511363+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44b8bc5ccf005b83cf20d3b4603d78bad58694bc74add3007f1ca0c47239da7b", "fetched_at": "2026-08-28T04:05:19.784231+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaopeiym/IoTClient"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.784231+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:19.784231+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:42:51.511363+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44b8bc5ccf005b83cf20d3b4603d78bad58694bc74add3007f1ca0c47239da7b", "fetched_at": "2026-08-28T04:05:19.784231+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaopeiym/IoTClient"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:42:51.511363+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44b8bc5ccf005b83cf20d3b4603d78bad58694bc74add3007f1ca0c47239da7b", "fetched_at": "2026-08-28T04:05:19.784231+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaopeiym/IoTClient"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:42:51.511363+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44b8bc5ccf005b83cf20d3b4603d78bad58694bc74add3007f1ca0c47239da7b", "fetched_at": "2026-08-28T04:05:19.784231+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaopeiym/IoTClient"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:42:51.511363+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "44b8bc5ccf005b83cf20d3b4603d78bad58694bc74add3007f1ca0c47239da7b", "fetched_at": "2026-08-28T04:05:19.784231+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zhaopeiym/IoTClient"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 82, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2516, "days_push": 113, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 60, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}