Skip to content

Application for managing and viewing Dahua devices. 🚧 WORK IN PROGRESS 🚧

License

Notifications You must be signed in to change notification settings

ItsNotGoodName/ipcmanview

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IPCManView

🚧 WORK IN PROGRESS, EACH COMMIT MOST LIKELY BREAKS THE LAST 🚧

Application for managing and viewing Dahua devices.

TODO: explain why this program exists

2024-02-25.03-50-23.mp4

Features

  • Single binary1
  • View device information (e.g. software version, license, storage, …)
  • Subscribe to device events
  • View live stream of cameras
  • View snapshot of cameras
  • Publish to MQTT with Home Assistant MQTT discovery
  • View emails from devices
  1. Streaming requires MediaMTX, and MQTT requires a MQTT broker.

Usage

ipcmanview serve

Configuration

Environment Variable Default Description
DIR "ipcmanview_data" Directory path for storing data.
HTTP_HOST HTTP host to listen on (e.g. "127.0.0.1").
HTTP_PORT 8080 HTTP port to listen on.
HTTPS_PORT 8443 HTTPS port to listen on.
MQTT_ADDRESS MQTT server address (e.g. "mqtt://192.168.1.20:1883").
MQTT_TOPIC "ipcmanview" MQTT server topic to publish messages.
MQTT_USERNAME MQTT server username for authentication.
MQTT_PASSWORD MQTT server password for authentication.
MQTT_HA false Enable Home Assistant MQTT discovery.
MQTT_HA_TOPIC "homeassistant" Home Assistant MQTT discover topic.
MEDIAMTX_HOST MediaMTX host address (e.g. "192.168.1.20").
MEDIAMTX_WEBRTC_PORT 8889 MediaMTX WebRTC port.
MEDIAMTX_HLS_PORT 8888 MediaMTX HLS port.
MEDIAMTX_PATH_TEMPLATE Template for generating MediaMTX paths (e.g. ipcmanview_dahua_{{.DeviceID}}_{{.Channel}}_{{.Subtype}}).
MEDIAMTX_STREAM_PROTOCOL "webrtc" MediaMTX stream protocol1 ("webrtc" or "hls").
  1. See MediaMTX docs on whether to use WebRTC or HLS.

Roadmap

Roadmap is in order of importance.

  • View files on devices
  • Support syncing the config VideoInMode (Camera > Conditions > Profile Management) with sunrise and sunset
  • Support editing the config General (System > General)
  • Support editing the config Email (Network > SMTP(Email))
  • Support editing the config VideoAnalyseRule
  • View DAV files in local storage via RTSP (see 4.1.3 in the Dahua HTTP API PDF)
  • Create and cache thumbnails for files
  • Act as a HomeKit bridge for viewing cameras
  • Support two-way talk on cameras that support it (see ./pkg/dahuacgi/audio.go)
  • Support OpenAPI (but I don't want to write more YAML then there is code in the handlers)

About

Application for managing and viewing Dahua devices. 🚧 WORK IN PROGRESS 🚧

Topics

Resources

License

Stars

Watchers

Forks