remotetwo-integration-denonavr

module
v0.2.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 31, 2023 License: MPL-2.0

README

A Unfolded Circle Remote Two Integration for Denon AV Receiver

GitHub Workflow Status (with event) GitHub GitHub (Pre-)Release Date

This Unfolded Circle Remote Two integration driver written in Go implements is to control a Denon AV Receiver.

Currently a MediaPlayer entity and some Button entities are implemented.

The project uses the goucrt library.

How to use

Denon AVR Integration for a Unfolded Circle Remote Two

Usage:
  rtintg-denonavr-amd64 [flags]

Flags:
      --debug                         Enable debug log level
      --disableMDNS                   Disable integration advertisement via mDNS
  -h, --help                          help for rtintg-denonavr-amd64
  -l, --listenPort int                the port this integration is listening for websocket connection from the remote (default 8080)
      --registration                  Enable driver registration on the Remote Two instead of mDNS advertisement
      --registrationPin string        Pin of the RemoteTwo for driver registration
      --registrationUsername string   Username of the RemoteTwo for driver registration (default "web-configurator")
      --remoteTwoIP string            IP Address of your Remote Two instance (disables Remote Two discovery)
      --remoteTwoPort int             Port of your Remote Two instance (disables Remote Two discovery) (default 80)
      --ucconfighome string           Configuration directory to save the user configuration from the driver setup (default "./ucconfig/")
      --websocketPath string          path where this integration is available for websocket connections (default "/ws")

As a Container

You can start the Integration as a container by using the released container images:

Example to start the DenonAVR Integration:

docker run ghcr.io/splattner/remotetwo-integration-denonavr:v0.2.7

To keep the setup data persistet mount a volume to /app/ucconfig:

docker run -v ./localdir:/app/ucconfig ghcr.io/splattner/remotetwo-integration-denonavr:v0.2.7

For the mDNS adventisement to work correctly I suggest starting the integration in the host network. And you can set your websocket listening port with the environment variable UC_INTEGRATION_LISTEN_PORT:

docker run --net=host -e UC_INTEGRATION_LISTEN_PORT=10000 -v ./localdir:/app/ucconfig ghcr.io/splattner/remotetwo-integration-denonavr:v0.3.7
Configuration
Environment Variables

The following environment variables exist in addition to the configuration file:

Variable Values Description
UC_CONFIG_HOME directory path Configuration directory to save the user configuration from the driver setup.
Default: ./ucconfig/
UC_DISABLE_MDNS_PUBLISH true / false Disables mDNS service advertisement.
Default: false
UC_INTEGRATION_LISTEN_PORT int The port this integration is listening for websocket connection from the remote.
Default: 8080
UC_INTEGRATION_WEBSOCKET_PATH string Path where this integration is available for websocket connections.
Default: /ws
UC_RT_HOST string IP Address of your Remote Two instance (disables Remote Two discovery via mDNS for registration)
UC_RT_PORT int Port of your Remote Two instance (disables Remote Two discovery via mDNS for registration)
UC_ENABLE_REGISTRATION string Enable driver registration on the Remote Two instead of mDNS advertisement.
Default: false
UC_REGISTRATION_USERNAME string Username of the RemoteTwo for driver registration.
Default: web-configurator
UC_REGISTRATION_PIN string Pin of the RemoteTwo for driver registration

How to Build and Run

# in cmd/rtintg-denonavr
go get -u
go build .
Docker
docker build -f build/Dockerfile -t  ghcr.io/splattner/remotetwo-integration-denonavr:latest

Verifying

Checksum
Checksums
wget https://github.com/splattner/remotetwo-integration-denonavr/releases/download/v0.2.7/goucrt_0.2.7_checksums.txt
cosign verify-blob \
  --certificate-identity 'https://github.com/splattner/remotetwo-integration-denonavr/.github/workflows/release.yaml@refs/tags/v0.2.7' \
  --certificate-oidc-issuer 'https://token.actions.githubusercontent.com' \
  --cert https://github.com/splattner/remotetwo-integration-denonavr/releases/download/v0.2.7/rtintg-denonavr_0.2.7_checksums.txt.pem \
  --signature https://github.com/splattner/remotetwo-integration-denonavr/releases/download/v0.2.7/rtintg-denonavr.1.3_checksums.txt.sig \
  ./rtintg-denonavr_0.2.7_checksums.txt

You can then download any file you want from the release, and verify it with, for example:

wget https://github.com/splattner/remotetwo-integration-denonavr/releases/download/v0.2.7/rtintg-denonavr_0.2.7_linux_amd64.tar.gz.sbom
wget https://github.com/splattner/remotetwo-integration-denonavr/releases/download/v0.2.7/rtintg-denonavr_0.2.7_linux_amd64.tar.gz
sha256sum --ignore-missing -c checksums.txt

And both should say "OK".

You can then inspect the .sbom file to see the entire dependency tree of the binary.

Docker image
cosign verify ghcr.io/splattner/remotetwo-integration-denonavr:v0.2.7 --certificate-identity 'https://github.com/splattner/remotetwo-integration-denonavr/.github/workflows/release.yaml@refs/tags/v0.2.7' --certificate-oidc-issuer 'https://token.actions.githubusercontent.com'

License

This project is licensed under the Mozilla Public License 2.0. See the LICENSE file for details.

Directories

Path Synopsis
cmd
pkg
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL