r/IOT

▲ 17 r/IOT+1 crossposts

ESP32 device exposes OpenAPI - instant admin UI (forms, GPIO control, telemetry charts) without writing a dashboard

I have been working on UIGen: a runtime that turns an OpenAPI spec into a full admin UI (sidebar nav, list/detail views, config forms, charts). No React codegen, no Retool-style manual wiring. Change the spec, the UI updates.

I built an ESP32 board simulator to show what this looks like for firmware folks who expose HTTP on the device (or on a Pi gateway in front of it).

The setup (two UIs, one API)

C++ simulator (visual demo)          UIGen admin UI (from openapi.yaml)
http://localhost:8080                http://localhost:4400
       |                                       |
       +----------- same REST API -------------+
  • :8080 — interactive DevKitC diagram, live GPIO/sensor cards, event log (hand-rolled HTML/JS for the “wow” demo)
  • :4400 — generated control panel: board status, pin CRUD, sensor list, telemetry table + line chart, config forms, blink/reset actions

Both hit the same endpoints: /api/v1/pins, /api/v1/sensors, /api/v1/readings, /api/v1/config, etc.

How the OpenAPI spec was written (important)

The openapi.yaml was not auto-generated from C++. There is no reflection in httplib/ESP-IDF to do that cleanly.

We used contract-first design (same idea as a shared header file for a wire protocol):

  1. Model device resources: board, pins, sensors, readings, config, actions
  2. Define JSON schemas that match what firmware will actually emit
  3. Write openapi.yaml as the canonical contract
  4. Implement C++ handlers to match (Pin, Reading, BoardConfig structs mirror the schemas)
  5. Serve the same file at GET /openapi.yaml

If you already have curl output or C struct definitions, you do not need to start from a blank YAML file. The repo includes an AI agent skill (generate-device-openapi) that walks through drafting openapi.yaml from route tables, Postman exports, sample JSON, or struct headers. Then a second skill (auto-annotate) writes .uigen/config.yaml (labels, charts, layout, ignore rules).

Pipeline:

generate-device-openapi  →  openapi.yaml
auto-annotate            →  .uigen/config.yaml
uigen serve openapi.yaml --proxy-base http://<device-ip>:8080

Skills live in the repo under SKILLS/ and are copied into the example at examples/apps/cpp/esp32-simulator/UI/.agents/skills/ for Cursor / Copilot-style assistants.

What UIGen actually generates from the spec

From standard REST patterns in OpenAPI:

Your API Generated UI
GET /pins → array List + table
GET /pins/{id}, PUT /pins/{id} Detail + edit form
GET/PUT /config Settings form
POST /actions/blink Action form with validated body
GET /readings?sensor_id=&limit= List + line chart

Annotations in .uigen/config.yaml (not in the spec itself) drive the polish:

  • x-uigen-chart on the readings list response: xAxis: recorded_at, yAxis: value, server query.limit: 500, LTTB downsampling to ~120 points, sensor filter via x-uigen-ref to the sensors resource
  • x-uigen-ref: sensor_id and pin_id show human names instead of raw integers
  • x-uigen-ignore: hide /health, /openapi.yaml, and the visual-only /api/v1/state snapshot from the sidebar
  • Layout: sidebar app shell; centered forms for actions like “Blink LED”

Chart filters refetch the list endpoint with query params your firmware already supports (sensor_id, limit). Client-side time window presets (1m, 5m, 1h, etc.) trim the x-axis for dense telemetry without extra API work.

Why this vs RainMaker / ThingsBoard / Node-RED

  • No platform lock-in - your REST API stays yours; UIGen is a UI layer
  • Spec is the product contract - firmware, docs, and UI stay aligned
  • Works offline on LAN - uigen serve proxies to http://192.168.4.1 (typical AP mode); no cloud account required for the demo

Tradeoff: you need a decent OpenAPI file. That is what the skill is for.

Try it

git clone https://github.com/darula-hpp/uigen.git
cd uigen/examples/apps/cpp/esp32-simulator

# Terminal 1: simulator (Docker or local build)
docker compose up --build
# → http://localhost:8080

# In another terminal — run UIGen from UI/ so .uigen/config.yaml is picked up
npx @uigen-dev/cli@latest serve openapi.yaml --proxy-base http://localhost:8080
# → http://localhost:4400

Example paths in repo: openapi.yaml, UI/.uigen/config.yaml, C++ routes in include/api_routes.hpp.

Roadmap: same spec, phone app (React Native)

We are working on a React Native target for the same OpenAPI → UI pipeline.

Plain language: today UIGen renders a web admin panel in the browser. The RN target will render a native iOS/Android app from the same spec and config - pin toggles, config screens, telemetry charts talking to your device over WiFi on the bench or in the field.

Think “companion app for technicians” without maintaining a separate Swift/Kotlin codebase. One openapi.yaml, web console for desk work, mobile app for walk-up commissioning. Still early; the ESP32 web demo is the reference implementation for now.

Links:

Happy hacking, Id appreciate feedback or suggestions

u/Prestigious-Bee2093 — 10 hours ago
▲ 12 r/IOT+1 crossposts

Looking for a job in IoT need suggestions

Hey everyone,

Long-time lurker, first-time poster. I recently completed my Master’s in Electrical and Computer Engineering in the US and I’m an international student, which means the clock is very much ticking on finding a job before my OPT window closes. The worst part is I have no industry experience.

I’m honestly a bit overwhelmed and could use some help from people who’ve been through this:

•	Resume feedback — Is mine even ATS-friendly? Am I framing my experience right for the US job market?  
•	Where to apply — Which companies are actually hiring ECE grads right now, especially ones that are OPT/H1B friendly?  
•	Any tips specific to international students navigating this whole process?

I know this gets asked a lot, but every situation feels a little different and I’d love some personalized insight if anyone’s willing.

Thanks in advance 🙌

u/chai12072002 — 1 day ago
▲ 18 r/IOT+1 crossposts

I built an open-source MQTT Visualisation tool

You can test it out here.

It was primarily focused on a couple of specific niche use-cases, and the UX can be a little janky, but I'd love some feedback. (If you find that connecting to a very busy topic causes lag, try setting the 'drop retained messages' toggle in the 'Filter' tab.)

It's also entirely open-source and MIT licensed, so feel free to grab it for your own desires.

u/secretdark — 1 day ago
▲ 6 r/IOT

Operating Raspberry Pi + Edge AI fleets in production, pitfalls and lessons learned?

We’re currently building a fleet of Raspberry Pi 5 devices with Hailo AI Hats running computer vision workloads for the aquaculture industry. At the moment we are managing around 20 devices but a lot more to come.

The devices stream/process video, run inference on the edge, send telemetry to and business data Azure, and are remotely monitored/managed through our cloud platform.

Most of my background is in backend/cloud infrastructure, so while a lot of the distributed systems concepts feel familiar, operating physical edge devices definitely introduces a whole new category of problems 😄

The edge devices run containerised apps with Docker Compose and we have one “agent” container that manages all ops related tasks like OTA updates and other cloud communications.

I’d be curious to hear from people who have built/operated similar systems.

Things I’m especially interested in:
- OTA update strategies (we built our own OTA platform for apps but no firmware/OS support yet)
- observability/monitoring (We use Prometheus and custom made dashboard)
- remote debugging (Using ZeroTier we can SSH into the devices for debugging, but we plan to discontinue this approach and replace with outbound HTTPS due to Client’s network requirements)
- networking reliability
- handling flaky devices
- synchronization between video streams and inference results
- anything that becomes painful once you move from “few devices” to actual fleets

Would love to hear any lessons learned, pitfalls, or “I wish we had thought about this earlier” stories.

reddit.com
u/24hjh — 3 days ago
▲ 4 r/IOT

How are you folks handling IoT security across your networks these days

So I've been tinkering with IoT stuff both at home and at work for a while now, and honestly it’s kinda wild how fast these devices are spreading into everything. Smart bulbs, sensors, cameras, random coffee machines that demand wifi access… it’s getting messy fast. What freaks me out a bit is how many organizations still overlook IoT security, especially in small business settings where the networking might be more DIY than enterprise level. A lot of folks assume the router firewall is “good enough,” but man, that’s not cutting it anymore.

At my company, we started mapping out all connected devices on our network and it was eye opening. There were like 20+ devices no one could identify at first. That’s when we realized we needed better visibility into the wireless environment itself. We looked into a few soluti͏ons and ended up testing Bast͏ille’s wireless intrusion dete͏ction system. It’s doing real-time detection for unauthorized wireless devices in our facility, and it's actually saved us some time in a couple of instances already. Not trying to sound like I’m shilling for them, but it did make me rethink how little oversight we had before.

Personally, I’m more interested in building a layered approach instead of relying on one tool. Stuff like network segmentation and zero trust setups seem worth exploring, but those are pain to configure right imo.

Curious what you all are doing for IoT threat detection or access control in your environments? Are you rolling your own monitoring scripts or using any commercial tools like Bastille’s?

reddit.com
u/Majestic_League_6061 — 3 days ago
▲ 0 r/IOT+1 crossposts

Urgent! Arduino cloud issue

I have a senior design project evaluation in less than 9 hours. Our project contains cloud dashboard and LCD too so I made a one code that combines both. The thing that I don’t know is that this code made the Arduino uno R4 offline and not connected to the cloud easily, so i spend hours trying to make it work till i decided to delete the device and when i tried to add it as new device it gave me (device verification failed) so because of the limited time I went and bought new arduino uno r4 it connected as new device but the minute I uploaded the combined code it became offline! I tried many thing and it didn’t became online.. so I knew that it was the code but even though when I did reset it and uploaded an empty or small code it didn’t work.. I spent days and hours trying to make it work so disappointing I want any kind of help to make it online again.
Thank you.

reddit.com
u/EILA09 — 3 days ago
▲ 25 r/IOT

Why is every IoT dashboard tool made for big companies?

I do IoT installs for a living. Small jobs, a few clients.

The problem is after the install I still need to show clients their data. Every tool I try is either way too complex or way too expensive (around 2$ per device) for what I actually need.

Like I just want to:
- See all my devices in one place if they’re online.
- Simple dashboard
- Get an alert when some data is above a threshold (eg, water consumption higher)
- white-label so I can resell to my customers

I checked Datacake, TagoIO, Ubidots and a few others. They do too much stuff I don’t need, but they are too expensive for what I need. As today, I need yo monitor around 100 warer meter devices (sending every 12h)

Am I missing something or is there nothing in the middle just for a white-label for IOT installers instead of enterprise grade?

reddit.com
u/Adept_You8104 — 5 days ago
▲ 9 r/IOT

Looking for IoT developers interested in helping with an open source internet resilience project

I am working on an open source project called Flareless.

The goal is to explore a more resilient way to deliver web content when normal CDN routes fail. Right now, the project has a working demo that shows static routing tests, CDN failover behavior, timeout handling, origin fallback, and an optional peer assisted layer.

Demo:

https://deerspotter.github.io/flareless/demo/

GitHub repo:

https://github.com/DeerSpotter/flareless/

I am not selling anything. This is not a company or paid product. It is a free open source project that I am building because I think the internet needs more resilient delivery options, especially for smaller projects, public information, and systems that should not depend on one provider staying healthy.

I am posting here because the peer assisted portion touches IoT style problems. Device identity, safe routing, bandwidth limits, trust scoring, health checks, local network behavior, and how small devices or user owned nodes could assist delivery without becoming unsafe or abusive.

I am looking for experienced IoT developers or networking developers who would be willing to look at the idea, give feedback, test the demo, open issues, or suggest a better architecture.

The project is still early, but the goal is to make something boring, real, testable, and useful.

reddit.com
u/DeerSpotter — 4 days ago
▲ 3 r/IOT

Help an undergrad with IoT project

Hi! I’m a current undergrad who just got funding for her IoT project on building a moisture sensor using IoT principles (and also a N2O gas analyzer likely, because my partner may have dropped the project last minute)… however I know absolutely nothing about IoTs besides a bit of Python and I am getting the sense my PI will not be helping too much… if anybody could pitch in and help guide me to some tutorials on even where to start with this project, and some advice from your own experience, it would all be greatly appreciated :)

reddit.com
u/syneral — 5 days ago
▲ 13 r/IOT+1 crossposts

python BACnet stacks playground updates

For any field techs that are bored, learn Python!

Remember, nearly every coding language has network stack packages such as BACnet libraries. You can combine your BACnet and network technology skills with programming to build some really interesting projects.

Also remember, if you spend enough time experimenting with this stuff and combine it with IT certifications in security, Linux, or networking, it can really help create a strong-looking résumé, especially for smart building and IoT-related jobs.

Doing some pretty fun experiments lately in the Python BACnet stacks playground.

YouTube Video:
https://youtu.be/XLkdfd_YOZE

In this recent project, we combined Raspberry Pi GPIO sensor readings from a digital temperature sensor, all in Python, with a BACpypes3 BACnet server to create a local BACnet API. BACnet communication is very common in OT environments, especially in building automation systems (BAS) for communication between HVAC control devices.

We also successfully explored securely sending the data to AWS IoT Core over MQTT.

Another area we’re experimenting with is whether agentic AI workflows could eventually help engineer, scaffold, maintain, and troubleshoot real BAS applications in the field. We also discussed how AI might fit into typical BAS contracting timelines and workflows.

The Python BACnet stacks playground now includes AI-generated Python mini lessons aimed at BAS technicians who are already technical and understand HVAC systems. The latest additions include Guideline 36 algorithms and Python learning content.

Down the pipeline, we plan to continue exploring:

  • Cursor AI IDE vibe coding workflows
  • Generic AWS Lambda handlers in Python
  • Database integration
  • Dashboarding concepts for a complete building-to-cloud pipeline

A future Vibe Code App 13 will explore a DIY-style BACnet router using a generic USB RS-485 adapter with driver code written in the C BACnet Stack to handle BACnet MS/TP, while BACnet/IP is handled by BACpypes3, all tied together on a Linux Raspberry Pi system.

If anyone here is working in BACnet, BAS, OT, or smart buildings, I’d genuinely be interested in hearing what kinds of DIY/open-source workflows or AI-assisted tooling you’re experimenting with as well.

I’m also open to freelance consulting work involving custom BACnet driver scripting, data modeling, fault detection, optimization algorithms, or other smart building software projects. DM me please if interested.

GitHub Repo:

https://github.com/bbartling/py-bacnet-stacks-playground

u/Then-Disk-5079 — 5 days ago
▲ 5 r/IOT

1NCE for non-company users?

Hello ya folks,

I am looking for a small, 100mb-1gb sim card for a homemade GPS tracker, and I found 1NCE, they offer really competitive pricing, $30 for a 500mb card including shipping, but they also state in their FAQ that private customers are not allowed, however, I'm wondering if that even matters?

I mean, how are they gonna find out I'm not a company? And if they did, would they terminate my account?

reddit.com
u/WavexDK — 4 days ago
▲ 4 r/IOT

Real time project advices needed

Hello everyone,I am interested in IIoT,I wanna join real time coaching institutes,if anyone has any idea please let me know.

Thanks in advance

reddit.com
u/Connect_Quarter4710 — 7 days ago
▲ 6 r/IOT

IOT lighting

I know this is more of an engineering circle, but who better to ask.

Who, in your opinions, has the best IOT security when it comes to controlled lighting?

My wife and I were just talking about the Razer Aether product line, but our biggest concern is just adding a mesh of internet connected microphones with potentially spotty back-end security.

Assistant controlled is fine, what I would rather is no mic no speaker lighting. I have had Google Nest speakers and I found the ability to voice command anywhere in the house to be really underwhelming after a while, and once I got better speakers, the meshed audio became moot.

Not everything needs to have all the bells and whistles half assed... just knock the key purpose out of the park.

reddit.com
u/Lin093 — 6 days ago
▲ 5 r/IOT

MQTT Monitor App for Mobile Phone

Can you please recommend me some good MQTT monitoring app for Mobile Phone. I want to monitor the MQTT Network.

reddit.com
u/samir_haq — 7 days ago
▲ 3 r/IOT

Our ESL system is straight up failing during flash sales. Anyone dealt with price collisions?

During flash sales,our ESL system shows inconsistent pricing across the same products.Price updates are triggered every 30–60 seconds with multiple admins updating simultaneously across ~25,000 labels.Some shelves show old prices, others show new discounts, and some toggle between both values.Backend uses a cloud pricing engine with queued updates and an API limit of 200 requests/sec. We suspect update queue congestion, race conditions, or base station caching issues.

reddit.com
u/lucky_maurya9839 — 7 days ago
▲ 20 r/IOT

Multi-Sensor Fusion Based Personalized Environmental Monitoring System (PEMS) built using ESP32.

Hey guys, i made a project called Multi-Sensor Fusion Based Personalized Environmental Monitoring System (PEMS) built using ESP32.

The system monitors AQI, UV, temperature, noise, and user activity in real time, then combines them into a single Exposure Score out of 100. Instead of giving alerts based only on instant values, I’m trying a time-based exposure model where longer exposure increases risk faster.

Example:

  • High AQI for 2–3 mins , small score increase
  • High AQI for 20–30 mins , much faster increase

I also used an accelerometer because I thought physical activity should affect exposure (more movement = potentially more inhalation). If the exposure score crosses 80+, an LED blinks and a Telegram alert is sent to the user’s phone.

Currently using:

  • ESP32
  • MQ135(i know it isn't accurate but most of the aqi sensor is costly so made this has alternate)
  • BMP280
  • GUVA-S12SD
  • MAX9814
  • MPU6050
  • OLED display
  • ThingSpeak + Streamlit dashboard

Would love honest feedback from you guys. Does the time-based exposure idea make sense? Also, are there any improvements or integrations you think would make this more useful/practical?

u/Alive_Acadia4581 — 8 days ago
▲ 13 r/IOT

Best IoT connectivity platforms in 2026?

Trying to evaluate IoT connectivity platforms for 2026 and curious what people here are actually using in production. What’s been reliable for you so far?

reddit.com
u/One_curious_brain_30 — 10 days ago
▲ 6 r/IOT+2 crossposts

Change colors, logos on ThingsBoard CE for free! instead of 100$

https://preview.redd.it/72ugxm7kun0h1.png?width=2560&format=png&auto=webp&s=41114ec9282427d2bd3d347d169b420fb0e516ee

So i am building this project: github.com/iamkaran/tb-override It lets you save 100$ and use the OSS Version of ThingsBoard!

Features:

It lets you change the colors, logos, radius, borders everything related to CSS at runtime without the need of rebuilding from source and you can even save themes to change the UI using presets in a click of a button!

Backstory:

I have been using ThingsBoard (PE) for over 3 years now and i am always irritated by it as the only reason i am paying like 150$ is because i need the White-labeling it provides even though i knew the CE edition is already OSS (and has everything in unlimited) but in reality doing white-labeling from the source is a pain in the ass.

And that's when i got an idea for a project like this (i built it a year ago in python but since it solved an actual problem i decided to re-write it in go and maybe make it better and easier to use) Also i didn't use any AI (i dont want to promote ai slop)

How it works:

tb-override using NGINX to proxy your thingsboard instance but in the process we intercept the HTML Response and literally inject our own CSS files:

<link rel="stylesheet" href="/custom.css">
<link rel="stylesheet" href="/rules.css">

Right now it only works on Linux with NGINX for reverse proxying but in the future i will make it more flexible

Can you guys show some support by ⭐'ing it? Someone out there will be helped by it!

reddit.com
u/Much-Grab3826 — 10 days ago
▲ 2 r/IOT

[Review Request]OV3660 camera connected → 1.5V LDO gets extremely hot on ESP32-S3 custom board

I’m designing a custom ESP32-S3 board with an OV3660 camera sensor, and I’m facing a strange power issue.

The moment I connect the camera sensor through the FPC connector, my 1.5V LDO starts getting extremely hot within seconds.

Without the camera connected, everything seems normal.

https://preview.redd.it/lx23cj6oq11h1.png?width=371&format=png&auto=webp&s=250e678c6e0f3b31f183301776f496e5ce94b3bd

https://preview.redd.it/301vqqcnq11h1.png?width=286&format=png&auto=webp&s=2f5fec62250be17a0fad7ec4abbc536512476cf2

https://preview.redd.it/b73dxjmmq11h1.png?width=772&format=png&auto=webp&s=baa3dfe7d502c9849ed3269d9c2b090210da3706

reddit.com
u/Aadarsan1234 — 8 days ago