This repository serves as the primary data store for the IoT Community sensors directory and their companion devices, accessible at iotCommunity.space/sensors.
The IoT Community Sensors Directory is a comprehensive database of IoT sensors and companion devices used across various IoT projects and implementations. This repository maintains the data structure and information that powers the directory website.
π€ Automated Data Sync: This repository automatically syncs sensor data from our codec registry daily, ensuring up-to-date information while preserving manual corrections.
The sensor data is stored in a single sensors.json file with the following structure:
{
"Sensor Name": {
"Description": "Detailed sensor description",
"Communication": "Communication protocol used",
"Applications": ["Application 1", "Application 2"],
"Environmental Compatibility": "Usage environment details",
"Data Formats": ["Format 1", "Format 2"],
"Technology": "Underlying technologies",
"Cost": "Cost category",
"Vendor": "Manufacturer name",
"imageUrl": "URL to sensor image (optional)",
"slug": "auto-generated-slug"
}
}Each sensor entry must include:
- Description
- Communication
- Applications (array)
- Environmental Compatibility
- Data Formats (array)
- Technology
- Cost
- Vendor
The imageUrl field is optional but recommended. The slug field is auto-generated for URL-friendly references.
This repository uses GitHub Actions to automatically sync sensor data from our codec registry:
- Schedule: Daily at midnight UTC
- Source: IoT Community Codec Registry
- Process: Fetches latest sensor data, generates technical overviews, and updates the directory
- Protection: Manual corrections are preserved using protection mechanisms
To protect your manual corrections from being overwritten by automation:
Add "_manual_edit": true to any sensor entry you've manually corrected:
{
"Your Sensor Name": {
"Description": "Your corrected description",
"Communication": "LoRaWAN",
"Cost": "Your updated cost",
"_manual_edit": true
}
}Create a manual.flag file in the sensor's assets folder:
touch assets/sensors/vendor-slug/sensor-slug/en/manual.flagCreate assets/manual_overrides.json for centralized overrides:
{
"Sensor Name": {
"Description": "Your corrected description",
"Cost": "Your corrected cost",
"custom_notes": "Any additional fields"
}
}- Add sensor data to the IoT Community Codec Registry
- The automation will automatically sync it to this repository within 24 hours
- Alternatively, manually add to
sensors.jsonfollowing the data structure above
- Fork this repository
- Create a new branch (
git checkout -b fix-sensor-data) - Modify the
sensors.jsonfile with your corrections - Important: Add
"_manual_edit": trueto protect your changes from automation - Validate your JSON before submitting
- Submit a Pull Request
"LHT65N-VIB -- LoRaWAN Vibration Sensor": {
"Description": "LoRaWAN protocol for detecting vibration and runtime. Includes temperature & humidity sensors.",
"Communication": "LoRaWAN",
"Applications": ["Smart Agriculture", "Industrial Monitoring"],
"Environmental Compatibility": "Outdoor use, IP-rated",
"Data Formats": ["JSON", "MQTT"],
"Technology": "LoRaWAN End node",
"Cost": "Affordable",
"Vendor": "Dragino",
"imageUrl": "https://dragino.com/media/k2/items/cache/3abb66d58aa91d2b7b16f08ee38a95c0_L.jpg",
"slug": "lht65n-vib-lorawan-vibration-sensor"
}βββ assets/
β βββ sensors.json # Main sensor database
β βββ manual_overrides.json # Manual corrections (optional)
β βββ cached_overviews.json # Cached AI-generated content
β βββ sensors/ # Individual sensor documentation
β βββ vendor-slug/
β βββ sensor-slug/
β βββ en/
β βββ overview.md # Technical overview
β βββ metadata.md5 # Change tracking
β βββ manual.flag # Manual protection (optional)
βββ .github/
β βββ workflows/
β β βββ sync-sensors.yml # Automation workflow
β βββ scripts/
β βββ sync_sensors.py # Sync script
βββ README.md
We provide a JSON schema for validating sensor entries. All submissions must pass schema validation before being accepted. The automation includes built-in validation to ensure data integrity.
- Trigger: Daily cron job + manual dispatch
- Process: Fetches codec data, generates overviews, updates sensors.json
- Protection: Preserves manual corrections and existing overview.md files
- Logging: Comprehensive logging for debugging and monitoring
SENSOR_TOKEN: GitHub token for repository accessAC_TOKEN: API key for generating technical overviews
- Check if you added
"_manual_edit": trueto your sensor entry - Verify the automation logs in GitHub Actions
- Create a manual.flag file for complete protection
- Submit an issue if problems persist
- Verify the sensor exists in the codec registry
- Check if a manual.flag file exists
- Review GitHub Actions logs for errors
- Ensure the sensor name format matches exactly
This repository and its contents are licensed under the MIT License. See LICENSE file for details.
For questions, suggestions, or support:
For more information about the IoT Community and our projects, please visit:
- Project About Page
- Developer Documentation
- Community Guidelines
- Codec Registry - Source data for sensor information