Closed jezzamine closed 1 year ago
Greetings @jezzamine!
Great minds think alike! Another user already beat you to this request (#201). The great news for you is that it's already been completed!
Any version of Firemote v3.0.1 or newer does include the newest FireTV Stick 4K Max 2nd gen as an option to select:
I did notice in your device interrogation (THANK YOU SO MUCH FOR PROVIDING IT!) that at the time you ran the command, there wasn't a physical remote connected to your stick. This is an unfortunate, but common scenario that can lead to frustration for some Firemote users. In fact, I have included a section about it in the FAQ since it comes up frequently. So, if after downloading the latest version of Firemote and selecting Fire TV Stick 4K Max (2nd Gen - 2023) you find that you cannot control your new fire stick yet, I'd take a look at that article.
I'll close this for now, but feel free to reply here or open a new issue if you would like any additional help with anything.
Enjoy!
Hi, hoping you can take another look at this request please.
Mine is not the MAX version. It doesn't have the same specs and has a slightly different remote. Please see here for the differences: https://www.androidpolice.com/amazon-fire-tv-stick-4k-vs-fire-tv-stick-4k-max-2023/
The physical remote is definitely connected and working but I may have had the TV and Fire TV Stick turned off when I did the first device interrogation so here's another one with them both definitely turned on.
Input Manager State:
Interactive: true
System UI Visibility: 0x9808
Pointer Speed: 0
Pointer Gestures Enabled: true
Show Touches: false
Pointer Capture Enabled: false
Event Hub State:
BuiltInKeyboardId: -2
Devices:
-1: Virtual
Classes: 0x40000023
Path: <virtual>
Enabled: true
Descriptor: a718a782d34bc767f4689c232d64d527998ea7fd:00000000
Location:
ControllerNumber: 0
UniqueId: <virtual>
Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000
KeyLayoutFile: /system/usr/keylayout/Generic.kl
KeyCharacterMapFile: /system/usr/keychars/Virtual.kcm
ConfigurationFile:
HaveKeyboardLayoutOverlay: false
VideoDevice: <none>
1: WOBLE_INPUT_DEVICE
Classes: 0x00000001
Path: /dev/input/event1
Enabled: true
Descriptor: 76d09a7d1f3b8d113bb56ed2568268f86d137837:00020002
Location:
ControllerNumber: 0
UniqueId:
Identifier: bus=0x0019, vendor=0x0002, product=0x0002, version=0x0002
KeyLayoutFile: /system/usr/keylayout/Generic.kl
KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
ConfigurationFile:
HaveKeyboardLayoutOverlay: false
VideoDevice: <none>
2: hdmipower
Classes: 0x00000001
Path: /dev/input/event0
Enabled: true
Descriptor: a917cc44911b6f32b9481384b0da35fb5f3d84d3:00000000
Location:
ControllerNumber: 0
UniqueId:
Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000
KeyLayoutFile: /system/usr/keylayout/Generic.kl
KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
ConfigurationFile:
HaveKeyboardLayoutOverlay: false
VideoDevice: <none>
3: amazon_touch
Classes: 0x00000014
Path: /dev/input/event2
Enabled: true
Descriptor: 185733e0df071e21edd860dd6224a1f9f378c689:00000000
Location:
ControllerNumber: 0
UniqueId:
Identifier: bus=0x0005, vendor=0x0000, product=0x0000, version=0x0008
KeyLayoutFile:
KeyCharacterMapFile:
ConfigurationFile: /system/usr/idc/amazon_touch.idc
HaveKeyboardLayoutOverlay: false
VideoDevice: <none>
4: WOW_INPUT_DEVICE
Classes: 0x00000001
Path: /dev/input/event3
Enabled: true
Descriptor: 485d69228e24f5e46da1598745890b214130dbc4:00010001
Location:
ControllerNumber: 0
UniqueId:
Identifier: bus=0x0019, vendor=0x0001, product=0x0001, version=0x0001
KeyLayoutFile: /system/usr/keylayout/Generic.kl
KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
ConfigurationFile:
HaveKeyboardLayoutOverlay: false
VideoDevice: <none>
5: kcmouse
Classes: 0x80000008
Path: /dev/input/event4
Enabled: true
Descriptor: 3b975ed12e4cb4357a995906d1f9c74d8457fd71:00000000
Location:
ControllerNumber: 0
UniqueId:
Identifier: bus=0x0005, vendor=0x0000, product=0x0000, version=0x0008
KeyLayoutFile:
KeyCharacterMapFile:
ConfigurationFile:
HaveKeyboardLayoutOverlay: false
VideoDevice: <none>
7: Amazon Fire TV Remote
Classes: 0x80000021
Path: /dev/input/event5
Enabled: true
Descriptor: 85ee2bef01e7fb258d04646e30896db3f238309a:01710421
Location:
ControllerNumber: 0
UniqueId: E8:4C:4A:E7:CA:D6
Identifier: bus=0x0005, vendor=0x0171, product=0x0421, version=0x003a
KeyLayoutFile: /system/usr/keylayout/Vendor_0171_Product_0421.kl
KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
ConfigurationFile:
HaveKeyboardLayoutOverlay: false
VideoDevice: <none>
Unattached video devices:
<none>
Input Reader State:
Device 8: Amazon Fire TV Remote
Generation: 25
IsExternal: true
AssociatedDisplayPort: <none>
HasMic: false
Sources: 0x00000301
KeyboardType: 1
Keyboard Input Mapper:
Parameters:
OrientationAware: false
HandlesKeyRepeat: false
KeyboardType: 1
Orientation: 0
KeyDowns: 0 keys currently down
MetaState: 0x0
DownTime: 283726080777000
Device 6: kcmouse
Generation: 27
IsExternal: true
AssociatedDisplayPort: <none>
HasMic: false
Sources: 0x00002002
KeyboardType: 0
Motion Ranges:
X: source=0x00002002, min=0.000, max=1919.000, flat=0.000, fuzz=0.000, resolution=0.000
Y: source=0x00002002, min=0.000, max=1079.000, flat=0.000, fuzz=0.000, resolution=0.000
PRESSURE: source=0x00002002, min=0.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
VSCROLL: source=0x00002002, min=-1.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
Cursor Input Mapper:
Parameters:
HasAssociatedDisplay: true
Mode: pointer
OrientationAware: false
XScale: 1.000
YScale: 1.000
XPrecision: 1.000
YPrecision: 1.000
HaveVWheel: true
HaveHWheel: false
VWheelScale: 1.000
HWheelScale: 1.000
Orientation: 0
ButtonState: 0x00000000
Down: false
DownTime: 0
Device 5: WOW_INPUT_DEVICE
Generation: 11
IsExternal: false
AssociatedDisplayPort: <none>
HasMic: false
Sources: 0x00000101
KeyboardType: 1
Keyboard Input Mapper:
Parameters:
OrientationAware: false
HandlesKeyRepeat: false
KeyboardType: 1
Orientation: 0
KeyDowns: 0 keys currently down
MetaState: 0x0
DownTime: 0
Device -1: Virtual
Generation: 2
IsExternal: false
AssociatedDisplayPort: <none>
HasMic: false
Sources: 0x00000301
KeyboardType: 2
Keyboard Input Mapper:
Parameters:
OrientationAware: false
HandlesKeyRepeat: false
KeyboardType: 2
Orientation: 0
KeyDowns: 0 keys currently down
MetaState: 0x0
DownTime: 0
Device 4: amazon_touch
Generation: 28
IsExternal: false
AssociatedDisplayPort: <none>
HasMic: false
Sources: 0x00001002
KeyboardType: 0
Motion Ranges:
X: source=0x00001002, min=0.000, max=1919.000, flat=0.000, fuzz=0.000, resolution=0.000
Y: source=0x00001002, min=0.000, max=1079.000, flat=0.000, fuzz=0.000, resolution=0.000
PRESSURE: source=0x00001002, min=0.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
Touch Input Mapper (mode - direct):
Parameters:
GestureMode: multi-touch
DeviceType: touchScreen
AssociatedDisplay: hasAssociatedDisplay=true, isExternal=false, displayId=''
OrientationAware: true
Raw Touch Axes:
X: min=0, max=1919, flat=0, fuzz=0, resolution=0
Y: min=0, max=1079, flat=0, fuzz=0, resolution=0
Pressure: unknown range
TouchMajor: unknown range
TouchMinor: unknown range
ToolMajor: unknown range
ToolMinor: unknown range
Orientation: unknown range
Distance: unknown range
TiltX: unknown range
TiltY: unknown range
TrackingId: unknown range
Slot: unknown range
Calibration:
touch.size.calibration: none
touch.size.scale: 40.000
touch.size.bias: 0.000
touch.size.isSummed: false
touch.pressure.calibration: none
touch.pressure.scale: 0.013
touch.orientation.calibration: none
touch.distance.calibration: none
touch.coverage.calibration: none
Affine Transformation:
X scale: 1.000
X ymix: 0.000
X offset: 0.000
Y xmix: 0.000
Y scale: 1.000
Y offset: 0.000
Viewport INTERNAL: displayId=0, uniqueId=local:0, port=0, orientation=0, logicalFrame=[0, 0, 1920, 1080], physicalFrame=[0, 0, 1920, 1080], deviceSize=[1920, 1080], isActive=[1]
RawSurfaceWidth: 1920px
RawSurfaceHeight: 1080px
SurfaceLeft: 0
SurfaceTop: 0
SurfaceRight: 1920
SurfaceBottom: 1080
PhysicalWidth: 1920px
PhysicalHeight: 1080px
PhysicalLeft: 0
PhysicalTop: 0
SurfaceOrientation: 0
Translation and Scaling Factors:
XTranslate: 0.000
YTranslate: 0.000
XScale: 1.000
YScale: 1.000
XPrecision: 1.000
YPrecision: 1.000
GeometricScale: 1.000
PressureScale: 0.000
SizeScale: 0.000
OrientationScale: 0.000
DistanceScale: 0.000
HaveTilt: false
TiltXCenter: 0.000
TiltXScale: 0.000
TiltYCenter: 0.000
TiltYScale: 0.000
Last Raw Button State: 0x00000000
Last Raw Touch: pointerCount=0
Last Cooked Button State: 0x00000000
Last Cooked Touch: pointerCount=0
Stylus Fusion:
ExternalStylusConnected: false
External Stylus ID: -1
External Stylus Data Timeout: 9223372036854775807
External Stylus State:
When: 9223372036854775807
Pressure: 0.000000
Button State: 0x00000000
Tool Type: 0
Device 3: WOBLE_INPUT_DEVICE
Generation: 6
IsExternal: false
AssociatedDisplayPort: <none>
HasMic: false
Sources: 0x00000101
KeyboardType: 1
Keyboard Input Mapper:
Parameters:
OrientationAware: false
HandlesKeyRepeat: false
KeyboardType: 1
Orientation: 0
KeyDowns: 0 keys currently down
MetaState: 0x0
DownTime: 0
Device 2: hdmipower
Generation: 4
IsExternal: false
AssociatedDisplayPort: <none>
HasMic: false
Sources: 0x00000101
KeyboardType: 1
Keyboard Input Mapper:
Parameters:
OrientationAware: false
HandlesKeyRepeat: false
KeyboardType: 1
Orientation: 0
KeyDowns: 0 keys currently down
MetaState: 0x0
DownTime: 0
Configuration:
ExcludedDeviceNames: []
VirtualKeyQuietTime: 0.0ms
PointerVelocityControlParameters: scale=1.000, lowThreshold=500.000, highThreshold=3000.000, acceleration=3.000
WheelVelocityControlParameters: scale=1.000, lowThreshold=15.000, highThreshold=50.000, acceleration=4.000
PointerGesture:
Enabled: true
QuietInterval: 100.0ms
DragMinSwitchSpeed: 50.0px/s
TapInterval: 150.0ms
TapDragInterval: 300.0ms
TapSlop: 20.0px
MultitouchSettleInterval: 100.0ms
MultitouchMinDistance: 15.0px
SwipeTransitionAngleCosine: 0.3
SwipeMaxWidthRatio: 0.2
MovementSpeedRatio: 0.8
ZoomSpeedRatio: 0.3
Viewports:
Viewport INTERNAL: displayId=0, uniqueId=local:0, port=0, orientation=0, logicalFrame=[0, 0, 1920, 1080], physicalFrame=[0, 0, 1920, 1080], deviceSize=[1920, 1080], isActive=[1]
Input Classifier State:
Motion Classifier:
<nullptr>
Input Dispatcher State:
DispatchEnabled: true
DispatchFrozen: false
InputFilterEnabled: false
FocusedDisplayId: 0
FocusedApplications:
displayId=0, name='ActivityRecord{272eea1 u0 com.amazon.tv.launcher/.ui.HomeActivity_vNext t101}', dispatchingTimeout=5000ms
FocusedWindows:
displayId=0, name='Window{9463226 u0 com.amazon.tv.launcher/com.amazon.tv.launcher.ui.HomeActivity_vNext}'
TouchStates: <no displays touched>
Display: 0
Windows:
0: name='bc0ce64 ActivityRecordInputSink com.silicondust.view/.App', displayId=0, portalToDisplayId=-1, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x00000018, type=0x000007e6, frame=[-1,-1][0,0], globalScale=0.000000, windowScale=(1.000000,1.000000), touchableRegion=[0,0][1920,1080], inputFeatures=0x00000002, ownerPid=696, ownerUid=1000, dispatchingTimeout=0ms
1: name='Window{9463226 u0 com.amazon.tv.launcher/com.amazon.tv.launcher.ui.HomeActivity_vNext}', displayId=0, portalToDisplayId=-1, paused=false, hasFocus=true, hasWallpaper=false, visible=true, canReceiveKeys=true, flags=0x81810120, type=0x00000001, frame=[0,0][1920,1080], globalScale=1.000000, windowScale=(1.000000,1.000000), touchableRegion=[0,0][1920,1080], inputFeatures=0x00000000, ownerPid=3930, ownerUid=10185, dispatchingTimeout=5000ms
2: name='4bf46fa ActivityRecordInputSink com.amazon.tv.launcher/.ui.HomeActivity_vNext', displayId=0, portalToDisplayId=-1, paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=false, flags=0x00000008, type=0x000007e6, frame=[-1,-1][0,0], globalScale=0.000000, windowScale=(1.000000,1.000000), touchableRegion=[0,0][1920,1080], inputFeatures=0x00000002, ownerPid=696, ownerUid=1000, dispatchingTimeout=0ms
Global monitors in display 0:
0: 'PointerEventDispatcher0 (server)',
RecentQueue: length=10
KeyEvent, age=193469ms
KeyEvent, age=193289ms
FocusEvent(hasFocus=false), age=193120ms
FocusEvent(hasFocus=true), age=192905ms
FocusEvent(hasFocus=false), age=192736ms
FocusEvent(hasFocus=true), age=192087ms
KeyEvent, age=187970ms
KeyEvent, age=187789ms
FocusEvent(hasFocus=false), age=187646ms
FocusEvent(hasFocus=true), age=187467ms
PendingEvent: <none>
InboundQueue: <empty>
ReplacedKeys: <empty>
Connections:
524: channelName='af5a378 com.silicondust.view/com.silicondust.view.App (server)', windowName='af5a378 com.silicondust.view/com.silicondust.view.App (server)', status=NORMAL, monitor=false, responsive=true
OutboundQueue: <empty>
WaitQueue: <empty>
428: channelName='d70b346 InputMethod (server)', windowName='d70b346 InputMethod (server)', status=NORMAL, monitor=false, responsive=true
OutboundQueue: <empty>
WaitQueue: <empty>
343: channelName='9463226 com.amazon.tv.launcher/com.amazon.tv.launcher.ui.HomeActivity_vNext (server)', windowName='9463226 com.amazon.tv.launcher/com.amazon.tv.launcher.ui.HomeActivity_vNext (server)', status=NORMAL, monitor=false, responsive=true
OutboundQueue: <empty>
WaitQueue: <empty>
268: channelName='4b83e6d com.amazon.vizzini (server)', windowName='4b83e6d com.amazon.vizzini (server)', status=NORMAL, monitor=false, responsive=true
OutboundQueue: <empty>
WaitQueue: <empty>
510: channelName='af2c4d8 com.amazon.vizzini (server)', windowName='af2c4d8 com.amazon.vizzini (server)', status=NORMAL, monitor=false, responsive=true
OutboundQueue: <empty>
WaitQueue: <empty>
137: channelName='PointerEventDispatcher0 (server)', windowName='PointerEventDispatcher0 (server)', status=NORMAL, monitor=true, responsive=true
OutboundQueue: <empty>
WaitQueue: <empty>
AppSwitch: not pending
Configuration:
KeyRepeatDelay: 50ms
KeyRepeatTimeout: 400ms
hdmi_input: null
device_class: tv
entity_picture: /api/media_player_proxy/media_player.guest_room_fire_tv?token=57e9e6b5bc52c9f4d96b20f95afbcd9b19467a9636dea16a2495083b18928ef5&cache=ce9969089a4a5960
friendly_name: Guest Room Fire TV
supported_features: 22961
Happy to provide more info if required!
Oops! Sorry about that!
Firemote version v3.0.4 was just published, and it includes untested beta support for the Fire TV Stick 4K 2nd Gen 2023.
Please download and install the new version, try it out, and let me know if everything works as expected.
Thanks!
@jezzamine - It's been a few days, and I haven't heard any complaints... and it looks like at least one person gave my previous comment a thumbs-up, so I'm going to assume that this is working and close the issue for now.
If you disagree, please reply to this thread and let me know.
Thanks for working on this!
Using v3.0.6 I haven't been able to get any of the buttons to work. The physical remote is operating fine and I've tried changing compatibility_mode from default to event0 through to event9 with no success.
There is nothing in my logs but in Developer tools it either says: _adbresponse: sendevent: /dev/input/event5: No such file or directory or _adbresponse: sendevent: /dev/input/event5: Permission denied
I have tried on another Fire TV Stick 4K (2nd Gen) connected to a different TV but the results are the same.
I use YAML mode and this is what I have:
- type: custom:firemote-card
entity: media_player.guest_room_fire_tv
device_family: amazon-fire
device_type: fire_tv_stick_4k_second_gen
compatibility_mode: default
app_launch_1: plex
app_launch_2: hdhomerun
app_launch_3: prime-video
app_launch_4: youtube
visible_name_text: Guest Room
name_position: bottom
visible_name_text_color: '#d9d9d9'
# hdmi_1: Cable
scale: 85
@jezzamine - well... bummer. :cry:
I might have to buy one to do the testing myself. I did notice that @nathan-curtis gave a :+1: in this thread to the v3.0.4 release announcement. I wonder if it's working for him and maybe there is something unique about your environment. :thinking:
Some buttons are working but power, volume, left right up down, home and select don't.
Mine is the brand new max stick.
Ill pull the details and send them in but I'm dealing with some things at home and it will be at least a day before I can pull the logs from ADB.
Thanks @nathan-curtis! I'm going to order one for myself now.
Done. I ordered the Fire TV Stick 4K Max and the Fire TV Stick 4K and it looks like they will arrive tomorrow.
Sorry. I should have done this from the beginning. I was hoping that I could save myself the $97.29 expense, but... oh well!
Well... this isn't good. It looks like Amazon has tightened down the permissions for these new Fire Stick models. This could mean that when I get the Firemote controls working for both of these sticks, there will be a long lag time between button presses. :cry:
I'll keep working on it.
In the meantime, I'm hoping that someone brilliant will stumble across my reddit post and have a solution
I've updated the Firemote Wiki entries for the Fire TV Stick 4K 2nd Gen (2023) and the Fire TV Stick 4K Max 2nd Gen (2023) to include the unfortunate information we have learned here, we well as providing an extensive chart of the ADB commands that these two devices will be using in the next release.
There's more bad news here too: It doesn't appear that Home Assistant can see what application is currently active in either of these device models. This will mean that an App Shortcut button's "lit" or "dim" state will not be possible here either. (The same situation is true for Apple TV devices)
I thought that new devices were supposed to be better :man_shrugging:
I'm currently working on #152 and will release these changes along with that one.
I have just published Firemote beta release version v3.1.0.b1 which contains working code for these two devices. I'd love for you to download it and take it for a spin.
Other than the slow reaction time for most navigation buttons, I'd like to hear from you about any issues you find, or if you agree that I've solved all of the outstanding issues. My plan is to push these changes into the official release soon, so your quick feedback is appreciated.
Thanks.
Device Name
Fire TV Stick 4K (2nd Gen)
Which compatibility mode event number works BEST with your device?
None
Additional Comments (optional)
No response
Interrogation ADB Response (optional but EXTREMELY helpful)