bitfocus / companion-module-camstreamer-camstreamer

MIT License
2 stars 1 forks source link

Controling of CamStreamer Apps #1

Open CamStreamer opened 1 year ago

CamStreamer commented 1 year ago

Hello,

we are a developer of streaming applications for Axis cameras (https://camstreamer.com/). We received a request from our customer to be able to control our apps via your solution. I tried it on RPi with Stream Deck and it works flawlessly. So we would like to add our apps there. In the first version, we would like to implement starting/stopping the streaming and show/hide graphics.

Documentation of our API: https://camstreamer.zendesk.com/hc/en-us/categories/360001899777--API-Documentation

Nevertheless, I will summarize what we would like to have in "Connection" as you call it:

Start the stream GET request in the following form: http://**192.168.91.137**/local/camstreamer/stream/set.cgi?stream_id=**98117**&enabled=1 Variables in this request are IP address and ID of the stream.

Stop the stream Same as start, just behind enebled is zero: http://**192.168.91.137**/local/camstreamer/stream/set.cgi?stream_id=**98117**&enabled=0

Show graphics: http://**192.168.91.137**/local/camoverlay/api/enabled.cgi?id_**3**=1 Variables in the GET request are IP address and ID of the graphics, in the example number 3

Hide graphics http://**192.168.91.137**/local/camoverlay/api/enabled.cgi?id_**3**=0 Same as show, just in the end is zero behind =.

AUTHORIZATION OF REQUESTS a) Requests can use basic or digest authorization with a user and password. When I played with HTTP generic, I used HTTP header {"Authorization": "Basic cm9vdDpwYXNzMg=="} (for user root and password pass2) b) All requests can go via our camera cloud solution, so the user can be in a different network than the camera, in such cases, the IP address is replaced with our device connect address (https://serialnumber.device-connect.net/). The device connect address can be: https://b8aa44f007ee.device-connect.net/ As as authorization is used our unique DEVICE_ACCESS_TOKEN at the end of the request. An example of the first request to activate the stream is: https://b8a44f69e8ee.device-connect.net/local/camstreamer/stream/set.cgi?stream_id=3534&enabled=0&DEVICE_ACCESS_TOKEN=Y23nMqFVLfv5xxxxxxxxxxxx_system2

My idea for options for authorization is: Authorization Drop down box with options: a) Basic b) Digest c) Cloud authorization

Basic and Digest would need to fill: the user and password and Cloud authorization would require: Device Access Token

Destination a) IP address b) Device Connect Address

We would be very grateful to add this to available connections. We could also participate on the writhing the plugin, we would just need some guidelines on how to do it.

Thank you, best regards

Filip - filip.hanek@camstreamer.com

fbosman commented 1 year ago

Hi, I already made a request for a module-setup for Camstreamerfor a client. Currently I'm upgrading the Axis-ptz module. The moment that is ready I'll setup the start for the Camstreamer module. [https://github.com/bitfocus/companion-module-camstreamer-camstreamer]. When the basics are ready I will set you up as a co-developer.

CamStreamer commented 1 year ago

Hi Frans,

sounds great. I´ve tested the PTZ module and it worked as expected. That will be very helpful to be a co-worker. Starting/stopping the CamStreamer App and showing/hiding graphics are the most frequent tasks our clients wish to do. And the possibility to manage requests via our cloud can bring independence from network configuration/being in the network.

I look forward to updates.

Best, Filip

fbosman commented 1 year ago

Hi Filip,

can we have an exchange by private mail?

regards Frans info@fbosman.nl