Skip to content

http-cgi als Steuerweg nachziehen (Paritaet zur Bridge) - #143

Merged
larszu merged 3 commits into
mainfrom
feat/http-cgi-control-path
Sep 28, 2026
Merged

larszu merged 3 commits into
mainfrom
feat/http-cgi-control-path

Conversation

@larszu

@larszu larszu commented Sep 23, 2026

Copy link
Copy Markdown
Owner

Zieht den neuen Verbindungsweg http-cgi der sony-camera-bridge in die Fähigkeitstabelle dieses Planers nach, damit caps:parity grün bleibt.

  • ControlPath-Union um http-cgi erweitert
  • MODE_PAINT['http-cgi'] = [] (reiner PTZ-Weg ohne Paint, wie birddog wird focus in der Paint-Tabelle nicht geführt)
  • Wege-Label ergänzt
  • BRIDGE_SOURCE.commit auf den Bridge-Stand gesetzt, der http-cgi einführt (e74a3bc)

Merge-Reihenfolge: Dieser PR zuerst mergen, dann den Bridge-PR — sonst schlägt die caps:parity-CI der Bridge fehl, weil sie diesen Planer auscheckt.

722 Tests unverändert grün.

🤖 Generated with Claude Code

https://claude.ai/code/session_01FyNcs3piXCiz5oec81HgMr

larszu and others added 3 commits September 23, 2026 12:46
Die Bridge hat einen neuen Verbindungsweg http-cgi bekommen: PTZ ueber die
Web-CGI der Kamera (Vissonic/PTZOptics ptzctrl.cgi, Sony SRG/BRC /command/)
als Alternative zu VISCA. caps:parity verlangt, dass die Faehigkeitstabelle
dieses Planers dieselben Wege kennt.

http-cgi ist ein reiner PTZ-Weg ohne Paint -- wie birddog wird focus in der
Paint-Tabelle nicht gefuehrt, also `MODE_PAINT['http-cgi'] = []`. Dazu die
ControlPath-Union und das Wege-Label. BRIDGE_SOURCE.commit auf den Stand der
Bridge gesetzt, der http-cgi einfuehrt.

722 Tests unveraendert gruen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FyNcs3piXCiz5oec81HgMr
…Geraetetyp-Id

BEFUND. `cameraExport.ts` schreibt `deviceTypeId` in die camera-list,
damit der Cable-Planner die Kamera autoritativ auf ihr Datenblatt
aufloest statt ueber den Modellnamen zu raten. Gemessen: das Feld war an
NEUN von 377 Kameras gesetzt. Bei 368 stand `undefined` — die Bruecke war
gebaut und trug nichts.

`src/data/geraetetypIds.ts` (erzeugt) haelt die Id je Quell-Id fuer alle
377 Kameras, 835 Objektive und 49 Rigs. Sie ist UUIDv5 ueber einen festen
Namensraum und die Quell-Id, gerechnet im cable-planner
(`npm run katalog:uebernahme`) — dieselbe Rechnung, die dort die
Katalog-GUIDs schreibt. Damit koennen die beiden nicht auseinanderlaufen.

WARUM EINE TABELLE UND NICHT DIE RECHNUNG. UUIDv5 braucht SHA-1. Im
Browser ist das `crypto.subtle.digest` und damit asynchron — eine
Nachschlagefunktion, die ein Promise zurueckgibt, muesste jeden Aufrufer
anfassen.

Die neun von Hand gesetzten GUIDs gewinnen weiter: sie sind aelter als
die Ableitung, und gespeicherte Plaene zeigen auf sie.

Der Test haelt drei Goldwerte fest. Wer den Namensraum aendert, macht sie
rot — daran haengt jede gespeicherte Verknuepfung in jedem Projektfile.

README: die Zahlen waren stark veraltet (54+ Kameras, 163+ Objektive
gegen tatsaechlich 377 und 835), die 49 Rigs fehlten ganz.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FntKzZSdGxdQEgeQrYT727
main war 30 Commits voraus und hat in der Zwischenzeit die Geraetebibliothek
(devices.zumpelars.de), die camera-list v3 und 35 Datenblattlinks bekommen.
Zwei Konflikte, beide inhaltlich:

1. `cameraExport.ts` — main hat den Eintrag stark erweitert (z, mount,
   focalMm, extender, lens, pan, tilt, presets) und dabei auf `text()`/`zahl()`
   umgestellt. Genommen ist mains Fassung, hineingesetzt nur der eine Rueckfall,
   um den es hier geht:
       deviceTypeId: text(def?.deviceTypeId) ?? geraetetypIdVon('camera', def?.id)
   Die von Hand gesetzte GUID gewinnt weiter.

2. README — mains Abschnitt beschreibt inzwischen selbst, wie eine Kamera im
   Cable-Planner zu ihren Anschluessen findet: ueber die von Hand gesetzten und
   die namentlich exakt passenden GUIDs, 16 von 377. Das ist dieselbe Frage von
   der anderen Seite, also steht der eigene Absatz jetzt DANEBEN und nicht
   dagegen -- und er nennt die Zahl, die mains Absatz offen laesst: die anderen
   361 gingen ohne jede Identitaet hinueber.

DIE ERZEUGTE TABELLE WAR DANACH FALSCH, und das hat ein Test gefunden, nicht
ein Blick: `bmd-ursa-12k` traegt auf main eine von Hand gesetzte GUID, die es
beim Erzeugen der Tabelle noch nicht gab -- die Ableitung hatte sie
ueberschrieben. `src/data/geraetetypIds.ts` ist neu erzeugt (aus dem
cable-planner, `npm run katalog:uebernahme`); die Zahl bleibt 1261, die
Zuordnung nicht.
@larszu
larszu merged commit 90f15f2 into main Sep 28, 2026
1 check passed
@larszu
larszu deleted the feat/http-cgi-control-path branch October 7, 2026 22:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant