Homatics Box R 4K Plus

Same. I run mine in a closed server/media cabinet. Just 1 slow/quiet fan at the top. Dune box idles at 57 deg C.

Weird that some have excessive heat issues, while others not. Production issue?

@white_dragonn @sammutd88 Have you disabled the “allow hardware acceleration-amcodec” in video settings, or changed CPU Performance governor policy?

I’ve got the cpu governor on “on demand”. Pretty sure the reboots are due to excessive heat. I’ll switch off hardware acceleration and see if there’s any improvement.

Edit - no point not running hardware acceleration. Tried playing a 4k rip with DV and it was unwatchable.

Edit - rolled back to CE20 nightly and performance is much better with less heat. Must be something in 21.

Yeah, it is very strange to me. I’m running ce20 btw not ce21. I’ll check the settings later and keep you updated. But I’m on a stock install, even have a second backup coreelec usb with same issues. Android tv runs noticeably colder

I made a typo in my previous replies I just noticed. My Odroid C4 which I upgraded from, runs the GUI so much smoother than my homatics box, it’s really frustrating. Even on a cold boot, with temps low, the homatics is noticeably laggier.

I have 3 from these boxes. Dont see any lag, or GUI issue. Maybe your box faulty, or the usb pen defected.

I said prior that I was using Arctic Zephyr 2 which is a heavy skin, and it makes even the C4 lag, but comparing the c4 it feels like 40fps vs 20fps on the homatics (at 4k resolution). Doesn’t make sense why a better chipset would be slower.

Remote questions on the Dune: I used the remote.conf found on this forum and that all works great. However, I’m wanting some of the more discrete key functionality like play/pause, etc.

Also, ultimately, I don’t even want to use the supplied remote as I plan on getting my Harmony One reprogrammed for my new setup.

Do I need to use the supplied remote IR codes for my Harmony? Or can I use something like the codes from a MCE remote?

If I can just use a MCE remote, can someone point me at a guide for doing all this from scratch?

If I can’t and need to learn the Dune remote codes, can someone point me at how to modify the behavior so I can get some other Kodi functionality mapped to keys I’ll never use? I’m looking at you services and color buttons.

Any help appreciated. Thank you!

for harmony, best experience is via bluetooth.

My Harmony doesn’t have BT capability. So I need to rely on IR for the whole thing.

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.