kheos
A Kotlin implementation of HEOS API Spec.
Why
For unknown reason, HEOS decided to go with plain socket which is anything than being modern (despite that many commands do return JSON!)
The goal of this project is to add an gRPC interface to make it easier interacting with HEOS from other services. And of course we need common models, core lib, service and client to make it complete.
Usage
Prerequisite
JDK8 and Maven.
To build
$ git clone [email protected]:honnix/kheos.git
$ mvn package
This gives you a Docker image as bonus that you can ship directly, or you can use a pre-built image here.
To start the service:
$ java -jar kheos-service/target/kheos-service.jar
Or
docker run -d honnix/kheos-service:<tag>
By default the service listens on 8888 and can be configured by env GRPC_PORT
.
Use KHEOS_HEOS_HOST
to configure where to find your HEOS.
For details and other configurations, refer to application.conf.
To start hacking
Import the maven project to IntelliJ (it works nicer with Kotlin, of course) and start sending PRs!
kheos-proto
The place where all protobuf files are stored.
kheos-common
This module contains mostly data classes and utilities.
kheos-lib
This module contains core libraries that connect to HEOS, send heartbeat and commands, and discover HEOS speakers.
Test cases are the best place to get a quick idea how to use the lib.
kheos-service
This module exposes gRPC interface to interact with HEOS.