Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[huesync][WIP] Hue Play HDMI Sync Box Binding - Initial contribution #16516

Open
wants to merge 42 commits into
base: main
Choose a base branch
from

Conversation

pgfeller
Copy link
Contributor

@pgfeller pgfeller commented Mar 12, 2024

This binding integrates the Play HDMI Sync Box into openHAB. The integration happens directly through the Hue HDMI Sync Box API.

The beinding is using mDNS to discover HDMI Sync devies in the local network. The LED on the Sync Box must be white or red. This indicates that the device is connected to the Network. If the LED is blinking blue, you need to setup the device using the official Hue Sync App.

Community discussion thread: Philips HDMI Sync API

Closes #10218

Credits
The code is based on the work done by Marco Kawon - but the code is refactored. Feedback is very welcome. The refactoring is done to implement functionality step-by-step, so that I understand the code and in the hope to simplify it a bit (e.g. the json serialization).


Tasks

  • ☠️ Binding skeleton created for org.openhab.binding.huesync
  • 🔎 skeleton mDNS discovery implemented
  • communication infrastructure
    • 🔎 mDNS device discovery - use API to get device information
    • 🔐 SSL Handshake & 🔎 Discovery
    • 🤝 Device registration
      image
    • 👋 Device unregistration (remove thing)
    • ⛔ solve timing problems during shutdown
    • 📜 improve handling of configuration update(s)
  • CI/CD & Code maintainability - 🔧 work in progress
    • ⛔ Fix CI validation errors
    • ⚠️ Fix PR CI validation warnings
    • 🗨️ check feasibility of re-using resources for log & exception messages ✅
    • 🗨️ check feasibility of using AuthenticationStore
  • Thing Implementation - 🔧 work in progress
    • 🔌 device status polling
      • 📦 Create device state DTO
        • 📦 Device status
        • 📦 HDMI input/output status
    • Channels - 🔧 work in progress
      • Create .channel xml declaration/poc for device information (read only)
      • Create .channel xml declaration for HDMI input/output status (read only) - 🔧 work in progress

@pgfeller pgfeller added new binding If someone has started to work on a binding. For a new binding PR. work in progress A PR that is not yet ready to be merged labels Mar 12, 2024
@pgfeller pgfeller requested a review from andrewfg March 12, 2024 23:12
@pgfeller pgfeller self-assigned this Mar 12, 2024
@pgfeller pgfeller requested a review from a team as a code owner March 12, 2024 23:12
@openhab-bot
Copy link
Collaborator

This pull request has been mentioned on openHAB Community. There might be relevant details there:

https://community.openhab.org/t/philips-hdmi-sync-api/111679/39

@pgfeller pgfeller force-pushed the 10218-hue-add-hue-sync-box branch 2 times, most recently from edf4eb7 to 565fc72 Compare March 12, 2024 23:41
Signed-off-by: Patrik Gfeller <patrik.gfeller@gmail.com>
Signed-off-by: Patrik Gfeller <patrik.gfeller@gmail.com>
Signed-off-by: Patrik Gfeller <patrik.gfeller@gmail.com>
Signed-off-by: Patrik Gfeller <patrik.gfeller@gmail.com>
Signed-off-by: Patrik Gfeller <patrik.gfeller@gmail.com>
Signed-off-by: Patrik Gfeller <patrik.gfeller@gmail.com>
… device

Signed-off-by: Patrik Gfeller <patrik.gfeller@gmail.com>
Signed-off-by: Patrik Gfeller <patrik.gfeller@gmail.com>
Signed-off-by: Patrik Gfeller <patrik.gfeller@gmail.com>
…formation

Signed-off-by: Patrik Gfeller <patrik.gfeller@gmail.com>
Signed-off-by: Patrik Gfeller <patrik.gfeller@gmail.com>
Signed-off-by: Patrik Gfeller <patrik.gfeller@gmail.com>
Signed-off-by: Patrik Gfeller <patrik.gfeller@gmail.com>
Signed-off-by: Patrik Gfeller <patrik.gfeller@gmail.com>
Signed-off-by: Patrik Gfeller <patrik.gfeller@gmail.com>
Signed-off-by: Patrik Gfeller <patrik.gfeller@gmail.com>
Signed-off-by: Patrik Gfeller <patrik.gfeller@gmail.com>
@andrewfg
Copy link
Contributor

@pgfeller I will start to look at this tomorrow.

@pgfeller pgfeller removed the request for review from maniac103 March 12, 2024 23:58
@pgfeller
Copy link
Contributor Author

@andrewfg Thanks! Take your time - progress will be slow unfortunately; as free time is a rare commodity ...

@jlaur jlaur removed the rebuild Triggers Jenkins PR build label Mar 17, 2024
CODEOWNERS Outdated Show resolved Hide resolved
Signed-off-by: Patrik Gfeller <patrik.gfeller@proton.me>
Signed-off-by: Patrik Gfeller <patrik.gfeller@proton.me>
Signed-off-by: Patrik Gfeller <patrik.gfeller@proton.me>
…he needless cost of parameter construction.

Signed-off-by: Patrik Gfeller <patrik.gfeller@proton.me>
…he needless cost of parameter construction.

Signed-off-by: Patrik Gfeller <patrik.gfeller@proton.me>
Signed-off-by: Patrik Gfeller <patrik.gfeller@proton.me>
…tation tasks

Signed-off-by: Patrik Gfeller <patrik.gfeller@proton.me>
Signed-off-by: Patrik Gfeller <patrik.gfeller@proton.me>
Signed-off-by: Patrik Gfeller <patrik.gfeller@proton.me>
Signed-off-by: Patrik Gfeller <patrik.gfeller@proton.me>
Signed-off-by: Patrik Gfeller <patrik.gfeller@proton.me>
Signed-off-by: Patrik Gfeller <patrik.gfeller@proton.me>
Signed-off-by: Patrik Gfeller <patrik.gfeller@proton.me>
…psulation to simplify null handling and annotation

Signed-off-by: Patrik Gfeller <patrik.gfeller@proton.me>
…... 🤔 - wip?

Signed-off-by: Patrik Gfeller <patrik.gfeller@proton.me>
Signed-off-by: Patrik Gfeller <patrik.gfeller@proton.me>
Signed-off-by: Patrik Gfeller <patrik.gfeller@proton.me>
…ration (wip)

- 💣 preparation for connection exceptions
- 📜 preparation for channel .xml's

BREAKING CHANGE:

Signed-off-by: Patrik Gfeller <patrik.gfeller@proton.me>
- current firmware (read only)
- available/latest firmware (read only)

📜 minor improvements and refactoring ... (wip)

Signed-off-by: Patrik Gfeller <patrik.gfeller@proton.me>
@pgfeller pgfeller force-pushed the 10218-hue-add-hue-sync-box branch from 5c6c239 to a4e7e94 Compare May 3, 2024 22:38
- keep firmware property and channel in sync
- README.md updated

Signed-off-by: Patrik Gfeller <patrik.gfeller@proton.me>
@pgfeller pgfeller force-pushed the 10218-hue-add-hue-sync-box branch from 186bd73 to 0549ac6 Compare May 7, 2024 19:55
📜 includes some refactoring (rename of classes and device status callback type)

Signed-off-by: Patrik Gfeller <patrik.gfeller@proton.me>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new binding If someone has started to work on a binding. For a new binding PR. work in progress A PR that is not yet ready to be merged
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[hue] Add Hue Sync Box
4 participants