Homatics Box R 4K Plus

Watching *mkv movies brings temp up to 70-75C in case of HDR, but when the box is idle, I can see regularly 47C or so.
As I prefer box to be running, I am at least stopping Kodi with simple script mapped to OFF button instead of putting it into standby mode that doesn’t work in CE.

edit: I have just read that somebody is using a fancy skin and complains about temperature. Well, I am not surprised. When I tried Aeon skin, temperature went really high. It probably depends how many active widget and eye catching stuff is integrated into that skin. As I am running Nightly build, I wouldn’t recommend anything else than the default skin.

I can post my remote controller configuration if somebody would like to remap his own. I mapped pause/play on the Home button and longpress of the same button to stop video.
I also set up some debug options on the small color keys of B25 remote. They are not recognized by the system, so I used hwdb for these specific keys.

gen.xml (BT codes):

<keymap>
        <global>
                <keyboard>
                        <key id="61526">contextmenu</key>
                        <key id="c0030">System.Exec(/storage/.config/standby.sh)</key>
                        <f5>activatewindow(10000)</f5>
                        <f6>System.Exec(/storage/.config/mutehdmi.sh)</f6>
                        <one mod="longpress">Skin.ToggleDebug</one>
                </keyboard>
        </global>
        <fullscreenvideo>
                <keyboard>
                        <f1>AudioNextLanguage</f1>
                        <f1 mod="longpress">activatewindow(osdaudiosettings)</f1>
                        <f2>NextSubtitle</f2>
                        <f2 mod="longpress">activatewindow(osdsubtitlesettings)</f2>
                        <f3>playerprocessinfo</f3>
                        <f4>playerdebug</f4>
                        <f5>PlayPause</f5>
                        <f5 mod="longpress">Stop</f5>
                </keyboard>
        </fullscreenvideo>
        <playerprocessinfo>
                <keyboard>
                        <f3>back</f3>
                </keyboard>
        </playerprocessinfo>
</keymap>

homatics.hwdb:

# B25 Consumer Control
evdev:input:b0005v0957p000A*
 KEYBOARD_KEY_c0069=f1			#red
 KEYBOARD_KEY_c006a=f2			#green
 KEYBOARD_KEY_c006c=f3                  #yellow
 KEYBOARD_KEY_c006b=f4                  #blue
 KEYBOARD_KEY_c0223=f5                  #homepage
 KEYBOARD_KEY_c00e2=f6                  #hdmimute toggle
 KEYBOARD_KEY_c0030=f7                  #standby

As you can see, I am using ON/OFF button to start/stop kodi with script, instead of standby functionality, that doesn’t work well in CE. I am also using Mute button to mute hdmi audio so that I can use toslink into DAC and do not need to mute TV speakers all the time I’d like to use an amplifier.
There is also next subtitle and audio track mapped on color keys and long press opens the subtitle or audio track window.

You can get an overview here and do your own setup. If anybody would be interested, I can share my scripts too (I can say they are not ideal).

If using different remote controller or want to map your action to different keys, you need to catch correct signals. I have B25 remote that is now shipped with the Dune box.
Once you have your hwdb file set up, you need to do the changes to the db:

#udevadm hwdb --update
#udevadm trigger -s input
#reboot
1 Like

Thanks for the response. I’m not sure I understand enough to know what to do with this. I see functionally what you’re doing here, but I’m not sure where these files reside and how else they would need to be structured.

Ultimately, what I would like to do is get away from the B25 remote entirely and use my Harmony. Anything relying on BT is out for me.

That said, you’re doing exactly the kind of thing I’m wanting. Play/Pause, the info and debug stuff. I hadn’t yet thought about subtitle manipulation, but that’s pretty cool, too.

skin aside, 75c in movie playback is insane and seems to be the hard limit on this box. I haven’t experienced shut downs, but before my thermal pad mod I was experiencing stuttering which I can assume is it pulling back CPU clock speeds.

How can I set the Google button (voice search button) to work with play/pause and long press stop just like your settings on home key… ? I have Dune HD with the smal RC… B21? Don’t know for sure… Can you explain step by step?

You can try to use this in the hwdb file (e.g. b21.hwdb).

evdev:input:b0005v0957p0006*
KEYBOARD_KEY_c0221=F5 #Google

And then use the same gen.xml from ctyrka’s post.

sure. you can basically use this for any remote controller, not just Homatics one. this is what I have, so I remapped those keys which I was missing or would like to reassign (like play/pause/stop, change subtitle, audio track, some debugging info etc.)

In general there’s a plugin in CE repo that can do this for you, but some of the keys are either not known to Kodi (like those color buttons on big Homatics remote) or they are already reserved for some action, so you need to overwrite this on hwdb level.

First, stop kodi and look for controller you have:

#systemctl stop kodi
#cat /proc/bus/input/devices

You will get list of peripherals here, but look for brand that you are using. Mine looks like this:

I: Bus=0005 Vendor=0957 Product=000a Version=0001
N: Name="B25 Consumer Control"
P: Phys=50:41:1c:2a:65:c7
S: Sysfs=/devices/virtual/misc/uhid/0005:0957:000A.0001/input/input6
U: Uniq=d0:1b:1f:6b:28:79
H: Handlers=kbd event6
B: PROP=0
B: EV=1f
B: KEY=306ff 0 0 483ffff17aff32d bfd4444600000000 1 130ff38b17c000 677bfad9415fed 9ed68000004400 29040d1050002
B: REL=1040
B: ABS=100000000
B: MSC=10

You need to compose hexadecimal device code based on the Bus, Vendor, Product and Version from the very first line of input device. values are hexadecimal and require to be entered in uppercase. wildcard allows compatibility between different version of the same device, so in my case, it would be:

b0005v0957p000A*
We will need this later when creating hwdb file for custom keys.

Now you need to catch BT signal of button you would like to remap (assign for specific action). assuming you have stopped kodi, you will need to run evtest. Ensure the correct handler is used based on the device output (H: handler line)

evtest /dev/input/eventX

#evtest /dev/input/event6
Input driver version is 1.0.1
Input device ID: bus 0x5 vendor 0x957 product 0xa version 0x1
Input device name: "B25 Consumer Control"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 1 (KEY_ESC)
    Event code 16 (KEY_Q)
    Event code 18 (KEY_E)
    Event code 24 (KEY_O)
    Event code 28 (KEY_ENTER)
    Event code 30 (KEY_A)
    Event code 31 (KEY_S)
    Event code 38 (KEY_L)
    Event code 44 (KEY_Z)
    Event code 47 (KEY_V)
    Event code 49 (KEY_N)
    Event code 74 (KEY_KPMINUS)
    Event code 78 (KEY_KPPLUS)
    Event code 103 (KEY_UP)
    Event code 105 (KEY_LEFT)
    Event code 106 (KEY_RIGHT)
    Event code 108 (KEY_DOWN)
    Event code 110 (KEY_INSERT)
    Event code 111 (KEY_DELETE)
    Event code 113 (KEY_MUTE)
    Event code 114 (KEY_VOLUMEDOWN)
    Event code 115 (KEY_VOLUMEUP)
    Event code 116 (KEY_POWER)
    Event code 119 (KEY_PAUSE)
    Event code 128 (KEY_STOP)
    Event code 130 (KEY_PROPS)
    Event code 131 (KEY_UNDO)
    Event code 133 (KEY_COPY)
    Event code 134 (KEY_OPEN)
    Event code 135 (KEY_PASTE)
    Event code 136 (KEY_FIND)
    Event code 137 (KEY_CUT)
    Event code 138 (KEY_HELP)
    Event code 139 (KEY_MENU)
    Event code 140 (KEY_CALC)
    Event code 142 (KEY_SLEEP)
    Event code 144 (KEY_FILE)
    Event code 150 (KEY_WWW)
    Event code 152 (KEY_SCREENLOCK)
    Event code 155 (KEY_MAIL)
    Event code 156 (KEY_BOOKMARKS)
    Event code 158 (KEY_BACK)
    Event code 159 (KEY_FORWARD)
    Event code 161 (KEY_EJECTCD)
    Event code 163 (KEY_NEXTSONG)
    Event code 164 (KEY_PLAYPAUSE)
    Event code 165 (KEY_PREVIOUSSONG)
    Event code 166 (KEY_STOPCD)
    Event code 167 (KEY_RECORD)
    Event code 168 (KEY_REWIND)
    Event code 169 (KEY_PHONE)
    Event code 171 (KEY_CONFIG)
    Event code 172 (KEY_HOMEPAGE)
    Event code 173 (KEY_REFRESH)
    Event code 174 (KEY_EXIT)
    Event code 176 (KEY_EDIT)
    Event code 177 (KEY_SCROLLUP)
    Event code 178 (KEY_SCROLLDOWN)
    Event code 181 (KEY_NEW)
    Event code 182 (KEY_REDO)
    Event code 206 (KEY_CLOSE)
    Event code 207 (KEY_PLAY)
    Event code 208 (KEY_FASTFORWARD)
    Event code 209 (KEY_BASSBOOST)
    Event code 210 (KEY_PRINT)
    Event code 212 (KEY_CAMERA)
    Event code 216 (KEY_CHAT)
    Event code 217 (KEY_SEARCH)
    Event code 219 (KEY_FINANCE)
    Event code 223 (KEY_CANCEL)
    Event code 224 (KEY_BRIGHTNESSDOWN)
    Event code 225 (KEY_BRIGHTNESSUP)
    Event code 228 (KEY_KBDILLUMTOGGLE)
    Event code 229 (KEY_KBDILLUMDOWN)
    Event code 230 (KEY_KBDILLUMUP)
    Event code 231 (KEY_SEND)
    Event code 232 (KEY_REPLY)
    Event code 233 (KEY_FORWARDMAIL)
    Event code 234 (KEY_SAVE)
    Event code 235 (KEY_DOCUMENTS)
    Event code 240 (KEY_UNKNOWN)
    Event code 241 (KEY_VIDEO_NEXT)
    Event code 244 (KEY_BRIGHTNESS_ZERO)
    Event code 256 (BTN_0)
    Event code 353 (KEY_SELECT)
    Event code 354 (KEY_GOTO)
    Event code 358 (KEY_INFO)
    Event code 362 (KEY_PROGRAM)
    Event code 366 (KEY_PVR)
    Event code 370 (KEY_SUBTITLE)
    Event code 372 (KEY_ZOOM)
    Event code 374 (KEY_KEYBOARD)
    Event code 375 (KEY_SCREEN)
    Event code 376 (KEY_PC)
    Event code 377 (KEY_TV)
    Event code 378 (KEY_TV2)
    Event code 379 (KEY_VCR)
    Event code 380 (KEY_VCR2)
    Event code 381 (KEY_SAT)
    Event code 383 (KEY_CD)
    Event code 384 (KEY_TAPE)
    Event code 386 (KEY_TUNER)
    Event code 387 (KEY_PLAYER)
    Event code 389 (KEY_DVD)
    Event code 392 (KEY_AUDIO)
    Event code 393 (KEY_VIDEO)
    Event code 396 (KEY_MEMO)
    Event code 397 (KEY_CALENDAR)
    Event code 398 (KEY_RED)
    Event code 399 (KEY_GREEN)
    Event code 400 (KEY_YELLOW)
    Event code 401 (KEY_BLUE)
    Event code 402 (KEY_CHANNELUP)
    Event code 403 (KEY_CHANNELDOWN)
    Event code 405 (KEY_LAST)
    Event code 407 (KEY_NEXT)
    Event code 408 (KEY_RESTART)
    Event code 409 (KEY_SLOW)
    Event code 410 (KEY_SHUFFLE)
    Event code 412 (KEY_PREVIOUS)
    Event code 416 (KEY_VIDEOPHONE)
    Event code 417 (KEY_GAMES)
    Event code 418 (KEY_ZOOMIN)
    Event code 419 (KEY_ZOOMOUT)
    Event code 420 (KEY_ZOOMRESET)
    Event code 421 (KEY_WORDPROCESSOR)
    Event code 422 (KEY_EDITOR)
    Event code 423 (KEY_SPREADSHEET)
    Event code 424 (KEY_GRAPHICSEDITOR)
    Event code 425 (KEY_PRESENTATION)
    Event code 426 (KEY_DATABASE)
    Event code 427 (KEY_NEWS)
    Event code 428 (KEY_VOICEMAIL)
    Event code 429 (KEY_ADDRESSBOOK)
    Event code 430 (KEY_MESSENGER)
    Event code 431 (KEY_DISPLAYTOGGLE)
    Event code 432 (KEY_SPELLCHECK)
    Event code 433 (KEY_LOGOFF)
    Event code 439 (KEY_MEDIA_REPEAT)
    Event code 442 (KEY_IMAGES)
    Event code 576 (KEY_BUTTONCONFIG)
    Event code 577 (KEY_TASKMANAGER)
    Event code 578 (KEY_JOURNAL)
    Event code 579 (KEY_CONTROLPANEL)
    Event code 580 (KEY_APPSELECT)
    Event code 581 (KEY_SCREENSAVER)
    Event code 582 (KEY_VOICECOMMAND)
    Event code 583 (KEY_ASSISTANT)
    Event code 585 (?)
    Event code 586 (?)
    Event code 592 (KEY_BRIGHTNESS_MIN)
    Event code 593 (KEY_BRIGHTNESS_MAX)
  Event type 2 (EV_REL)
    Event code 6 (REL_HWHEEL)
    Event code 12 (REL_HWHEEL_HI_RES)
  Event type 3 (EV_ABS)
    Event code 32 (ABS_VOLUME)
      Value      0
      Min        1
      Max      652
  Event type 4 (EV_MSC)
    Event code 4 (MSC_SCAN)
Properties:
Testing ... (interrupt to exit)

- press whatever key, below trace will be captured

Event: time 1694272397.412911, type 4 (EV_MSC), code 4 (MSC_SCAN), value c0069
Event: time 1694272397.412911, type 1 (EV_KEY), code 398 (KEY_RED), value 1
Event: time 1694272397.412911, -------------- SYN_REPORT ------------
Event: time 1694272397.592881, type 4 (EV_MSC), code 4 (MSC_SCAN), value c0069
Event: time 1694272397.592881, type 1 (EV_KEY), code 398 (KEY_RED), value 0
Event: time 1694272397.592881, -------------- SYN_REPORT ------------

Event: time 1694272486.223211, type 4 (EV_MSC), code 4 (MSC_SCAN), value c006a
Event: time 1694272486.223211, type 1 (EV_KEY), code 399 (KEY_GREEN), value 1
Event: time 1694272486.223211, -------------- SYN_REPORT ------------
Event: time 1694272486.382859, type 4 (EV_MSC), code 4 (MSC_SCAN), value c006a
Event: time 1694272486.382859, type 1 (EV_KEY), code 399 (KEY_GREEN), value 0
Event: time 1694272486.382859, -------------- SYN_REPORT ------------

Once you pressed desired key, new lines append with the key code. In this case I pressed red button, which gives c0069 BT code. Next I also pressed green button, which gave me c006a code.

Now let’s create config file where you assign that key code to a function. You can use whatever text editor, I am used to “vi”.
#vi /storage/.config/hwdb.d/homatics.hwdb

On the second line, you need to add the hexadecimal code representing your remote controller we translated earlier based on /proc/bus/input/devices

Again, I have already added some of the keys I wanted to reassign, so my hwdb file looks like this. You can see various BT codes assigned to f1-f7:

/# B25 Consumer Control
evdev:input:b0005v0957p000A*
  KEYBOARD_KEY_c0069=f1			#red
 KEYBOARD_KEY_c006a=f2			#green
 KEYBOARD_KEY_c006c=f3                  #yellow
 KEYBOARD_KEY_c006b=f4                  #blue
 KEYBOARD_KEY_c0223=f5                  #homepage
 KEYBOARD_KEY_c00e2=f6                  #hdmimute toggle
 KEYBOARD_KEY_c0030=f7                  #standby

Then save changes to the database & reboot

#udevadm hwdb --update
#udevadm trigger -s input
#reboot

Of course, you need to have corresponding gen.xml, where you set up what action will be called by what key/function. This can be devided into sections, like “global”, “fullscreenvideo” etc…
I assign the above f1-f7 functions to specific actions I was talking about. You can refer to Kodi documentation so to compose your desired actions in different Kodi screens. You can have an overview based on the gen.xml I posted above.

I also recommend going through Kodi wiki page where is also everyhthing explaind:

https://wiki.coreelec.org/remote:rr_bluetooth
https://kodi.wiki/view/Keymap
https://kodi.wiki/view/Window_IDs
https://kodi.wiki/view/Action_IDs

1 Like

To be honest, so far, so good. I didn’t have any issues with the box. Bought it cca 2 months ago only, so will see. And yeah, I’ve noticed temperature goes up when playing HDR .mkv files. I tried some heavier skins, but settled back to the default skin. At least when being on nightly versions. Once DV will be in stable, then I might try some eye catching skins again.

So your gen.xml would be like this. Feel free to use your own indexing, I kept f5.

<keymap>
        
        <fullscreenvideo>
                <keyboard>
                        <f5>PlayPause</f5>
                        <f5 mod="longpress">Stop</f5>
                </keyboard>
        </fullscreenvideo>
</keymap>

Then just recreate your hwdb file based on correct Bus, Vendor, Product and Version values + capture the BT code and set this in your hwdb file as f5 (or whatever you like).

1 Like

I use my RC in IR mode , not paired with BT…
Don’t know if it’s still the right instruction.

I see, you both are using IR remotes. This is different, as IR signals are not captured by Kodi, but by lircd. There’s different config file for IR remote and to be honest I haven’t tried using it since BT was working fine for me. You can even use hdmi-cec codes from your TV RC into gen.xml if you like, so I didn’t have reason to try IR functionality.

I quickly searched and find this article: https://blog.gordonturner.com/2017/10/29/linux-infrared-control-part-1-receive-ir/

you can list all standard IR buttons by irrecord --list-namespace
IR codes are self-explanatory in some way.

I also quickly tested irrecord and it seems you can generate your own IR config file, however as I don’t have my pc in the same room as Homatics, I didn’t go too deep. But try using similar syntax and then just follow text on the screen, it will guide you and you should finish with some sort of config file with buttons you like. Maybe you can then merge the new one with existing config or at least you can adjust it based on what you get now?

irrecord --help
irrecord -d /dev/lirc0 -u /storage/irtest

@Adam86 or anyone else would you be willing to share the dovi.ko file? :grinning: I just got a nokia 8010 but it seems to be also on the older version. I can supply a google drive.
thank you!

Hi
my Dune Homatics Box R 4K Plus is consistently showing 95° temp for both CPU and GPU in Kodi System information !

Is my box defective ?

Nevermind, I checked again and realized it was °F. I feel like an idiot :zipper_mouth_face:

1 Like

If your box is idling at 95F (35C) then that’s fantastic. I just bought a Dune Homatics Box R 4K Plus and mine idles at 60C.

I opened it up and the thermal solution is an absolute joke. Seriously a magnet and a piece of metal that barely makes contact with the shield over the SOC.

Sure, let me know the link and I’ll put it there for you.

My Dune Homatics idles cooler than that, but once (and so far, only once) it got untouchably hot. I don’t know what happened, but it scared me a bit.

Thank you!

It’s there now.

1 Like

The only good thing is that even during video playback it still runs at 60 to 62C. The only time I saw it go higher was during my initial library scan, the scan took a couple of hours and the CPU was almost maxed out most of the time resulting in the temperature reaching a max of 74 to 76C.

The biggest problem I see with it is that the magnet sits higher than the metal heatsink plate meaning that the magnet makes contact with the SOC shield and the plate doesn’t. Plus the metal plate has 3 screw heads sticking out which would hit the SOC shield before the plate does meaning there’s no way the plate could ever make proper contact.

All in all for the price of the box I would of expected a better thermal solution :frowning:

I may even return it and pick up a different S905X4 box, does anyone know which S905X4 box that supports DV has the best thermals?