Carry camera stream information on the edge protocol
Two optional fields so a user can be pointed at a printer's camera. `hello.stream_base_url` is where the gateway serves restreams - the base of the go2rtc instance it already supervises. Reported by the gateway rather than configured in the cloud, because only the gateway knows the address it is actually reachable at. That address is a LAN one, and the schema says so where someone will read it rather than leaving it to be discovered in a support ticket. A browser on the same network as the gateway can play the stream; one outside it cannot, and the relay that would fix it does not exist. For a print farm whose operator is in the workshop this is the normal case and it works; for anyone else it is a limit, and anything surfacing the field has to cope with it being unreachable. `printer_telemetry.camera_stream` is the stream's name, present only when there is one. Absent is the common answer today and the reason is worth recording: a Bambu P1/A1 publishes no RTSP URL at all - a real P1P's ipcam block carries `ipcam_dev` and `ipcam_record` and nothing to connect to - while an H2C reports `rtsps://<ip>:322/streaming/live/1`. So RTSP restreaming covers the X1/H2 class and nothing else; the rest need Bambu's proprietary port-6000 JPEG stream, which is a client no gateway has yet. Both optional and additive, so existing gateways are unaffected.
This commit is contained in:
@@ -105,6 +105,10 @@
|
||||
],
|
||||
"minimum": 0,
|
||||
"description": "How many Health-Management-System entries the printer currently has active. A count only for now - decoding the {attr, code} pairs into messages needs Bambu's HMS tables, which Continuum does not have. Readers must accept an explicit null here as equivalent to the key being absent: a gateway omits what it has no value for, but a serde-derived Rust producer emits null unless every field is annotated, and rejecting a whole batch over that is not worth it."
|
||||
},
|
||||
"camera_stream": {
|
||||
"type": "string",
|
||||
"description": "The stream name to ask the gateway's stream_base_url for, when this printer has a camera the gateway could restream. Absent means no stream: either the printer reports no camera source, or it is a model whose camera is not reachable this way. That second case is the common one today - a Bambu P1/A1 does not publish an RTSP URL at all (confirmed: a P1P's ipcam block has ipcam_dev and ipcam_record and no rtsp_url), and only the X1/H2 class does. Those need Bambu's proprietary port-6000 JPEG stream instead, which is a separate client this gateway does not have yet."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
|
||||
Reference in New Issue
Block a user