Start/Stop your DLINK DCS-5222L camera from IFTT or a basic curl request.
I did not want to open my camera to IFTT through any DLink cloud service.
I wanted full controll so I implemented it on my own (reverse engineered).
Here are the current endpoints:
Endpoint | Description |
---|---|
/camera/status | get human readable status of the camera ("ON" or "OFF") and send the result to slack |
/camera/state/on | switch on the camera |
/camera/state/off | switch off the camera |
/camera/toggle | toggle status of the camera |
Retrieving your status with curl:
curl http://localhost:3000/camera/status
My image support multiple architectures such as x86-64 and arm32v7. I use the docker manifest for multi-platform awareness.
Simply pull yo1l/homecam should retrieve the correct image for your architecture.
docker pull yo1l/homecam
The architectures supported by this image are:
Architecture | Tag |
---|---|
x86-64 | amd64 |
arm32v7 | arm32v7 |
docker create \
--name=homecam \
-p 3000:3000
-e "CAMERA_IP=192.168.0.1" \
-e "CAMERA_USERNAME=root" \
-e "CAMERA_PASSWORD=secret" \
-e "HTTP_PORT=3000" \
-e "SLACK_WEBHOOK_URL=https://hooks.slack.com/services/truc/muche/token" \
-e "SLACK_ROOM=general" \
-e "SLACK_ICON=':camera_with_flash:'" \
yo1l/homecam
version: "3"
services:
homecam:
image: yo1l/homecam
environment:
- CAMERA_IP=192.168.0.1
- CAMERA_USERNAME=root
- CAMERA_PASSWORD=secret
- HTTP_PORT=3000
- SLACK_WEBHOOK_URL=https://hooks.slack.com/services/truc/muche/token
- SLACK_ROOM=general
- SLACK_ICON=':camera_with_flash:'
ports:
- 3000:3000
restart: unless-stopped
version: "3"
services:
homecam:
image: yo1l/homecam
volumes:
- /root/.env:/usr/src/app/.env
ports:
- 3000:3000
restart: unless-stopped
Variable | Description |
---|---|
CAMERA_IP | IP Adresse of your camera with or without port. Ex: 192.168.0.5:5000 |
CAMERA_USERNAME | Admin username of the camera |
CAMERA_PASSWORD | Admin password of the camera |
HTTP_PORT | WEB Port for this server |
SLACK_WEBHOOK_URL | Slack webhook url |
SLACK_ROOM | slack room to send the status notification message |
SLACK_ICON | Icon |
Unit tests are available to check the Camera proxy which is responsible for sending commands to the camera.
npm run test
- Authentification
- Automate docker manifest creation