u/Miserable-Hope-658

Ex-Metasys tech, now SDVOSB software firm — anyone have a JCI Federal Systems contact?

Background: I'm a former JCI Controls Systems Tech II (BACnet/IP, SCT/CCT/SMP, NAE/SNE, ADS/ADX) — commissioned BAS across school districts, a state university, and county facilities in central IL. laid off earlier this year.

Now running VeloVault LLC, an SBA VetCert-verified SDVOSB software company. Some of you may have seen my open-source dbexport-viewer / dbexport-parser tooling for Metasys archives — getting some use in the field for auditing and bulk-repairing .dbexport/.caf files without SCT/CCT.

I'm trying to reach JCI Federal Systems (Rockville, MD) about their SBA Mentor-Protégé Program — they have 2 open protégé slots and the technical fit is unusually clean (an SDVOSB software firm whose principal already speaks fluent Metasys).

What I've tried:

- Contact form on johnsoncontrols.com → auto-replied with their careers page (despite selecting "Suppliers" as inquiry type)

- Main inquiry line → reception routed me to an internal employee portal number that wasn't a valid format

- LinkedIn search for "Johnson Controls Federal" small business — nothing landing

Does anyone here have a Small Business Liaison Officer contact at JCI Federal Systems? Or know the right route in? Happy to keep contact info private if you DM.

Not here to trash anyone — JCI's intake is just genuinely opaque from the outside. Open-sourced the tooling because I like this stack and want to keep doing more of this work.

reddit.com
u/Miserable-Hope-658 — 1 day ago

MPP — how did you actually find your mentor? Or am I missing an obvious resource?

Quick question for anyone who's been through (or tried to get into) the SBA Mentor-Protégé Program, how did you find your mentor?

I'm an SDVOSB poking around the MPP and the public list of active agreements is a PDF that's basically unsearchable. SBA's site is set up for after you've already paired with someone — the "find a mentor" step seems to be either (a) you already had a prime relationship, (b) you cold-called large primes in your NAICS, or (c) you knew someone who knew someone.

Am I missing an obvious channel? Is there a resource or directory I haven't found? Or is it really just network + cold outreach until something sticks?

Curious whether this was painful for other small businesses or if I'm overcomplicating it.

reddit.com
u/Miserable-Hope-658 — 2 days ago

Reading .caf and .dbexport files from Metasys without SCT, CCT, or a JCI service visit — built a free browser-based viewer

**TL;DR**: Free, browser-only viewer for Metasys SCT archives (`.dbexport`) and CCT controller files (`.caf`). Drop a file on the page, see everything inside. No install, no login, no internet required after first load.

**Live demo**: https://jmsboswell67-alt.github.io/dbexport-viewer/

**Source**: https://github.com/jmsboswell67-alt/dbexport-viewer (Apache 2.0)

## Why

A few years ago someone here asked *"Is there any way to open up a .caf file without a service tech?"* — top answer was *"Without a copy of CCT or PCT there is not much you can do."*

That sentence is true. It's also the wrong answer for everyone who already has the files. If you own the building, manage the facility, scoped a vendor change, took over from a previous contractor, or got handed an archive for an energy audit — you already have the file. You just couldn't read it.

Now you can.

## What it does

- **Reads `.dbexport`** — full hierarchy (Site → Engine → Trunk → Equipment → Points) with class labels, property names, and the controller's model / firmware / IP at a glance.

- **Reads `.caf`** — tells you the controller model, firmware version, every configured point and logic block.

- **Diffs two snapshots** — object-level and property-level. SCT doesn't have this. If your contractor changed things between visits and you have backups, you can see exactly what they touched.

- **Exports CSV/JSON** — points, schedules, alarms, trend logs, scoped to whatever you've selected. Open in Excel, share with a consultant, feed into your own analysis.

- **Bulk-fixes unbound references** — drop your `UnboundReferences.csv`, get pattern detection like *"6,348 refs point to a renamed ADX"*, click one button to produce a fixed `.dbexport` with the dead refs repointed. **Including** the gnarly `Base64Zip`-wrapped ones inside User Trees, Graphics, and Programming logic. SCT makes you fix those one row at a time. This makes it a single bulk operation.

- **"If I delete this point, what graphics break?"** — indexes every Metasys binding from every graphic in the archive. Drop in a dbexport, see exactly which graphics reference any given point.

Tested against a real-world archive (109 graphics, 12,271 objects, 17 engines): repoint feature transformed **7,538 dead `DACC-ADX-01:` refs to `DACC-ADX-02:` in 30 seconds**. Graphics view indexed 92 graphics with 930 bound points in another ~5 seconds. Everything in-browser.

## How it works

Single HTML file, ~210 KB, runs entirely client-side. JSZip handles the unzip. Every parse happens locally — your file never leaves your machine. Works offline after the page loads.

The class and attribute dictionaries (249 classes, 276 properties) were extracted from JCI's publicly-distributed Launcher resource bundles and the SMP/SCT Help PDFs — factual ID→name mappings only, not their code or files. Standard interop reference work (Sega v. Accolade / Feist v. Rural / EU Software Directive Art. 6 territory).

## What it can't do (yet)

- **Render graphics**. We extract the bindings but don't draw the symbols. Both the XAML and TSEGraph schemas would each need a real renderer.

- **Edit object structure**. The repoint feature does prefix substitution only — no add/delete/rewire.

- **Decode every property**. About 5 attribute IDs that account for ~25,000 occurrences in a typical archive (3135, 4306, 721, 52, 931) aren't in any JCI public document — they're runtime-only. We show them honestly as "Property NNNN" rather than guess.

- **Talk to live engines**. Read-only against files you already have. No BACnet polling, no REST API client, no risk to your live system.

## What would help most

  1. **Try it with your archive and tell me what's wrong**. The `references/inventory_unknowns.py` script in the repo scans a `.dbexport` and reports every unknown class/property ID. Paste output in an issue and the names get baked in.

  2. **Live engine enum captures** if you've got SMP or SCT online access. Specifically `GET /api/v6/schemas/enums/<setName>` for about a dozen documented enum sets (`reliabilityEnumSet`, `unitEnumSet`, `jciSystemStatusEnumSet`, `writePriorityEnumSet`, `displayPrecisionEnumSet`, `objectCategoryEnumSet`, `auditOriginAppEnumSet`, `auditClassesEnumSet`, `auditActionTypeEnumSet`...). One curl per set. Paste responses in an issue and we close the enum-decoding gap for the whole community.

  3. **CCT logic-block class IDs**. If you have CCT installed, about 30 class IDs in `.caf` files have no public name (526, 528, 530, 555, 556, 561, 568, 658-660 etc.). Open a sample `.caf`, tell me what kind of block each is, I'll add them.

  4. **Sample archives** — different firmware versions, oddball controllers, sites with non-college load profiles. Diversity helps the heuristics improve.

  5. **Cross-vendor extension** — the architecture maps to Tridium Niagara, Siemens Desigo, Honeywell EBI. If any of those are your world and you want to fork or contribute, open an issue.

  6. **Just kick the tires and report bugs**. Especially graphics from different generations, obscure property data types, anything that fails to load.

---

*Not affiliated with Johnson Controls. Metasys, SCT, CCT, ADX, NAE, NCE, SNE, and FEC are trademarks of Johnson Controls, used here for descriptive interoperability reference only.*

u/Miserable-Hope-658 — 6 days ago
▲ 7 r/google

It is extremely difficult to work with Google as a developer, in adsense, admob, Google ads, and Google play. I think the main frustration is that there is such a massive lack of human moderation as shown in the example above, you basically just get a template back that doesnt address the issue you raised. Essentially, was submitting my app for open testing, and there was compliance issues. But, the app was suspended before I could fix the issue. I appealed, the appeal form asks two things, if you reject their finding or if you fixed the problem. I checked that I fixed the issue, in reality I was unable to as Google limited functionality in me being able to correct my app. I essentially told them that as soon as you restore functionality, I can correct the issues you brought to my attention. But, it was unread, and I had to submit a new app after a day or two of work. This is frustrating, but I am not trying to be combative or put Google as a company down because they have some really amazing products. I really just would love there to be some dialogue on how Google can try to create a better environment for developers and marketers and personally would love to be able to help with this.

u/Miserable-Hope-658 — 17 days ago