dohertj2 dohertj2
  • Joined on 2026-02-20
dohertj2 opened issue dohertj2/lmxopcua#527 2026-07-31 09:54:31 -04:00
DriverInstanceActor.DisconnectObserved has no production sender — a driver whose device dies mid-run is never detected, never reconnects, and never reports comms loss
dohertj2 pushed to main at dohertj2/scadaproj 2026-07-31 08:15:33 -04:00
f7f4554a36 docs(index): OtOpcUa MQTT driver — write-through (#508), Sparkplug primary-host STATE (#511), structured Template/DataSet flattening (#515)
dohertj2 commented on issue dohertj2/lmxopcua#515 2026-07-31 08:15:03 -04:00
feat(mqtt): Sparkplug DataSet / Template / PropertySet metric support

Implemented and live-gated. master 857a10b4 (feature commit c74ccc55).

Flattened to sibling tags, as decided:

dohertj2 closed issue dohertj2/lmxopcua#515 2026-07-31 08:15:03 -04:00
feat(mqtt): Sparkplug DataSet / Template / PropertySet metric support
dohertj2 commented on issue dohertj2/lmxopcua#511 2026-07-31 08:14:38 -04:00
feat(mqtt): Sparkplug primary-host STATE publishing (ActAsPrimaryHost)

Implemented and live-gated. master 857a10b4 (feature commit 7f2108dc).

All three legs, or none — as the issue required. SparkplugPrimaryHost publishes a retained {"online":true,...}…

dohertj2 closed issue dohertj2/lmxopcua#511 2026-07-31 08:14:38 -04:00
feat(mqtt): Sparkplug primary-host STATE publishing (ActAsPrimaryHost)
dohertj2 pushed to master at dohertj2/lmxopcua 2026-07-31 08:14:14 -04:00
857a10b4f7 merge: MQTT primary-host STATE (#511) + structured-metric flattening (#515)
c74ccc55b5 feat(mqtt): flatten Sparkplug Template/DataSet metrics to sibling tags (#515)
7f2108dcf2 feat(mqtt): Sparkplug primary-host STATE publishing, Primary-gated (#511)
Compare 3 commits »
dohertj2 commented on issue dohertj2/lmxopcua#511 2026-07-31 06:46:01 -04:00
feat(mqtt): Sparkplug primary-host STATE publishing (ActAsPrimaryHost)

Decision (owner, 2026-07-31): primary-host duty is Primary-gated. Not yet implemented — recording the decision and a constraint the issue does not cover, found while scoping.

The…

dohertj2 commented on issue dohertj2/lmxopcua#515 2026-07-31 06:46:01 -04:00
feat(mqtt): Sparkplug DataSet / Template / PropertySet metric support

Decision (owner, 2026-07-31): flatten to sibling tags. Not yet implemented — recording the settled design so the mapping question is closed.

dohertj2 closed issue dohertj2/lmxopcua#508 2026-07-31 06:42:59 -04:00
feat(mqtt): write-through (IWritable) — Sparkplug NCMD/DCMD + plain publish (design P3)
dohertj2 commented on issue dohertj2/lmxopcua#510 2026-07-31 06:42:58 -04:00
fix(adminui): _canRebirth is captured at browse-open, so a reaped session still draws Request-rebirth

Fixed in master 2a7d1167 — option 1, plus a bit more.

RawBrowseModal re-probes CanRequestRebirth on arm and on confirm. The second one is not belt-and-braces: the reap can land between…

dohertj2 closed issue dohertj2/lmxopcua#510 2026-07-31 06:42:58 -04:00
fix(adminui): _canRebirth is captured at browse-open, so a reaped session still draws Request-rebirth
dohertj2 commented on issue dohertj2/lmxopcua#514 2026-07-31 06:42:58 -04:00
fix(adminui): Request-rebirth cannot be armed on a Sparkplug plant that has not birthed since the browse window opened

Fixed in master 2a7d1167.

Confirmed the issue's read: MqttBrowseSession.ResolveRebirthTargets already handles a bare {group}/{edgeNode} — its own comment calls that case *"the prime…

dohertj2 closed issue dohertj2/lmxopcua#514 2026-07-31 06:42:58 -04:00
fix(adminui): Request-rebirth cannot be armed on a Sparkplug plant that has not birthed since the browse window opened
dohertj2 commented on issue dohertj2/lmxopcua#512 2026-07-31 06:42:58 -04:00
refactor(mqtt): .Browser references .Driver — extract the client-options builder so the layering exception can go

Fixed in master 2a7d1167. .Browser now references .Contracts + a new .Transport leaf, and not the runtime .Driver.

Two corrections to the issue.

**1. It costed this as one…

dohertj2 closed issue dohertj2/lmxopcua#512 2026-07-31 06:42:58 -04:00
refactor(mqtt): .Browser references .Driver — extract the client-options builder so the layering exception can go
dohertj2 commented on issue dohertj2/lmxopcua#508 2026-07-31 06:42:58 -04:00
feat(mqtt): write-through (IWritable) — Sparkplug NCMD/DCMD + plain publish (design P3)

Implemented in master 2a7d1167, live gate passed.

dohertj2 commented on issue dohertj2/lmxopcua#513 2026-07-31 06:42:57 -04:00
fix(adminui): the MQTT tag editor writes a meaningless payloadFormat into a Sparkplug tag blob

Fixed in master 2a7d1167.

MqttTagConfigModel.ToJson now writes payloadFormat in Plain mode only.

Sharper than the issue states, and worth recording. This was not preserving a retyped…

dohertj2 closed issue dohertj2/lmxopcua#513 2026-07-31 06:42:57 -04:00
fix(adminui): the MQTT tag editor writes a meaningless payloadFormat into a Sparkplug tag blob
dohertj2 commented on issue dohertj2/lmxopcua#509 2026-07-31 06:42:57 -04:00
fix(adminui): a Sparkplug metric whose name contains / cannot be browse-committed

Fixed in master 2a7d1167. Node Control/Rebirth now commits.

The mapper was already correct. It carried metricName verbatim; only the derived tag Name — a RawPath segment — tripped…