[driver] SMT C7400 / SMT C7401 / Ziggo Mediabox XL
Implemented 2 features of the new SDK version (0.53.8) and 4 new buttons of the remote (which can be found on the back)
This allows a device that supports favorites (only TV, DVB or TUNER) to implement a custom handler, for example for channel "42", rather than 2 buttonHandler calls for "4" and "2", a single call with "42" will be made to the favoriteHandler.
After the favorite is chosen, the favorite is sent to the Mediabox, including an ENTER key. This speeds up channel hopping considerably.
Setting the version allows you to tell the Brain about changes to your devices components. If you for example add new buttons to a device, you can increase the version and this will let the Brain know to fetch the new components (NOTE: the Brain will only add new components, updating or removing old components is not supported).
This was needed for registering the favorites handler and the new color buttons support.
- .addButtonGroup('Color Buttons')
Implemenents the 4 colored buttons on the back of the remote. Since no other implementation on the web for the Ziggo Horizon box has this, i am not sure if anybody IS going to use these. This means; if they screw up the interface to much i might even remove them in a future update.
I've restructured my code to move to the neeo-cli way of running this driver; more information and the new code can be found on GitHub. It looks like it 'works on my machine'.
Next step is trying to see if i can emulate the keyboard on the back, but i can't promise anything there. Basically i have already implemented all keys which can be found on various forums and implementing other keys is guesswork. I did find the codes for the color buttons green/red/blue/yellow on the back of the remote, so it does seem that more keys CAN be sent which no other implementation (Homey/OpenHAB/Domoticz) currently supports.
The Dutch television provider Ziggo issues a so called 'Mediabox XL'. At the time of writing, this is either an SMT C7400 or an SMT C7401. Both devices don't have a discrete power on and power off command making them 'dumb devices' for Neeo.
Note: I have been mixed feelings with how Neeo handles dumb devices. Personally i think the current way how this is implemented means the remote is unusable for our partners and (small) kids, especially if they are non-native English like mine. I really hope Neeo will take the feedback of all beta testers and current active users into consideration and change/prioritize this.
With that said, i'll now focus in this topic on trying to make the Ziggo Mediabox XL 'smart', since that is something Neeo wants us to do, and which they have provided the Neeo SDK for. More information on the SDK and other drivers being developed, can be found here.
I've investigated online and came across some reading material which should make it possible to create my own 'driver', including discrete power handling so the device is no longer seen as a dumb device and basically solve 'my' problems for now.
Reading material used:
- Horizon Control (Java API wrapper)
- Einder (Python API wrapper)
- tv.horizon.ziggo (Homey API wrapper)
- HorizonRemote (Android API wrapper)
- horizon (OpenHAB binding)
- Ziggo HorizonBox support (Domoticz Forum)
Basically i will be combining the best of the above in creating the Neeo driver.
Gilles van den Hoven@: I'm always struggling with the configuration (config/default.json). (Please note that I'm not too experienced in js and node.js).
Somehow it trows me an "Error: Cannot find module 'config'". I edited default.json only to add a fixed-ipadres, nothing else. Set permissions to ugo+RWX on dir and file.
Most of the time I managed to get it working, but "out of the box", it's always causing problems.
Running on OSX (local testing) and Docker. Source is latest version from github, node = v 11.9.0.
Any guidance would be appreciated!