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

[New Device Support]: Please add support for the Firestick 4K Max 2nd Gen #201

Closed
GlenWi opened this issue Oct 2, 2023 · 20 comments
Closed
Assignees
Labels
enhancement New feature or request Needs More Information Cannot continue resolution of this issue without more information New Device Support Request to add support of a currently unsupported Amazon Fire device

Comments

@GlenWi
Copy link

GlenWi commented Oct 2, 2023

Device Name

Firestick 4K Max 2nd Gen

Which compatability mode event number works BEST with your device?

None

Additional Comments (optional)

No response

Interrogation ADB Response (optional but EXTREMELY helpful)

No response

@GlenWi GlenWi added enhancement New feature or request New Device Support Request to add support of a currently unsupported Amazon Fire device labels Oct 2, 2023
@PRProd
Copy link
Owner

PRProd commented Oct 2, 2023

@GlenWi - Thanks for your request!

I've added the entry for this new Firestick model into the supported Amazon Devices wiki page and created the corresponding product data page. Unfortunately, this is all that I can do at this time.

I need one or more of the following items to continue with your request:

@PRProd PRProd added the Needs More Information Cannot continue resolution of this issue without more information label Oct 2, 2023
@Jeppedy
Copy link

Jeppedy commented Oct 13, 2023

Here's the result of a Device Interrogation for a 4k Max new version:

  INPUT MANAGER (dumpsys input)

  Input Manager State:
    Interactive: true
    System UI Visibility: 0x0
    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
      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
      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
      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
      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
      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
      60: amzkeyboard
        Classes: 0x80000023
        Path: /dev/input/event5
        Enabled: true
        Descriptor: ea16b8e37822378b09336d67566ac23418d207f4:00000000
        Location: 
        ControllerNumber: 0
        UniqueId: 
        Identifier: bus=0x0005, vendor=0x0000, product=0x0000, version=0x0008
        KeyLayoutFile: /system/usr/keylayout/amzkeyboard.kl
        KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
        ConfigurationFile: 
        HaveKeyboardLayoutOverlay: false
      125: Amazon Fire TV Remote
        Classes: 0x80000021
        Path: /dev/input/event6
        Enabled: true
        Descriptor: 59f5ac3cf60e33645c95eb3ef1f81e0e55d59053:0171041e
        Location: 
        ControllerNumber: 0
        UniqueId: A8:E6:21:99:72:58
        Identifier: bus=0x0005, vendor=0x0171, product=0x041e, version=0x0037
        KeyLayoutFile: /system/usr/keylayout/Vendor_0171_Product_041e.kl
        KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
        ConfigurationFile: 
        HaveKeyboardLayoutOverlay: false

  Input Reader State:
    Device -1: Virtual
      Generation: 2
      IsExternal: false
      HasMic:     false
      Sources: 0x00000301
      KeyboardType: 2
      Keyboard Input Mapper:
        Parameters:
          HasAssociatedDisplay: false
          OrientationAware: false
          HandlesKeyRepeat: false
        KeyboardType: 2
        Orientation: 0
        KeyDowns: 0 keys currently down
        MetaState: 0x0
        DownTime: 0
    Device 1: WOBLE_INPUT_DEVICE
      Generation: 6
      IsExternal: false
      HasMic:     false
      Sources: 0x00000101
      KeyboardType: 1
      Keyboard Input Mapper:
        Parameters:
          HasAssociatedDisplay: false
          OrientationAware: false
          HandlesKeyRepeat: false
        KeyboardType: 1
        Orientation: 0
        KeyDowns: 0 keys currently down
        MetaState: 0x0
        DownTime: 0
    Device 2: hdmipower
      Generation: 4
      IsExternal: false
      HasMic:     false
      Sources: 0x00000101
      KeyboardType: 1
      Keyboard Input Mapper:
        Parameters:
          HasAssociatedDisplay: false
          OrientationAware: false
          HandlesKeyRepeat: false
        KeyboardType: 1
        Orientation: 0
        KeyDowns: 0 keys currently down
        MetaState: 0x0
        DownTime: 0
    Device 3: amazon_touch
      Generation: 505
      IsExternal: false
      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: displayId=0, orientation=0, logicalFrame=[0, 0, 1920, 1080], physicalFrame=[0, 0, 3840, 2160], deviceSize=[3840, 2160]
        SurfaceWidth: 1920px
        SurfaceHeight: 1080px
        SurfaceLeft: 0
        SurfaceTop: 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 4: WOW_INPUT_DEVICE
      Generation: 12
      IsExternal: false
      HasMic:     false
      Sources: 0x00000101
      KeyboardType: 1
      Keyboard Input Mapper:
        Parameters:
          HasAssociatedDisplay: false
          OrientationAware: false
          HandlesKeyRepeat: false
        KeyboardType: 1
        Orientation: 0
        KeyDowns: 0 keys currently down
        MetaState: 0x0
        DownTime: 0
    Device 5: kcmouse
      Generation: 670
      IsExternal: true
      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 60: amzkeyboard
      Generation: 285
      IsExternal: true
      HasMic:     false
      Sources: 0x00000301
      KeyboardType: 2
      Keyboard Input Mapper:
        Parameters:
          HasAssociatedDisplay: false
          OrientationAware: false
          HandlesKeyRepeat: false
        KeyboardType: 2
        Orientation: 0
        KeyDowns: 0 keys currently down
        MetaState: 0x0
        DownTime: 1245805361497000
    Device 125: Amazon Fire TV Remote
      Generation: 678
      IsExternal: true
      HasMic:     false
      Sources: 0x00000301
      KeyboardType: 1
      Keyboard Input Mapper:
        Parameters:
          HasAssociatedDisplay: false
          OrientationAware: false
          HandlesKeyRepeat: false
        KeyboardType: 1
        Orientation: 0
        KeyDowns: 0 keys currently down
        MetaState: 0x0
        DownTime: 1246313929213000
    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:
          ViewportInternal:
            Viewport: displayId=0, orientation=0, uniqueId='', logicalFrame=[0, 0, 1920, 1080], physicalFrame=[0, 0, 3840, 2160], deviceSize=[3840, 2160]
          ViewportExternal:
            Viewport: displayId=0, orientation=0, uniqueId='', logicalFrame=[0, 0, 1920, 1080], physicalFrame=[0, 0, 3840, 2160], deviceSize=[3840, 2160]
          ViewportVirtual:

  Input Dispatcher State:
    DispatchEnabled: 1
    DispatchFrozen: 0
    FocusedApplication: name='AppWindowToken{abda113 token=Token{cdfa402 ActivityRecord{db3314d u0 com.amazon.firetv.youtube.tv/dev.cobalt.app.MainActivity t974}}}', dispatchingTimeout=5000.000ms
    FocusedWindow: name='Window{2fb761b u0 com.amazon.firetv.youtube.tv/dev.cobalt.app.MainActivity}'
    TouchStates: <no displays touched>
    Windows:
      0: name='Window{1aea13b u0 InputMethod}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x81800108, type=0x000007db, layer=0, frame=[0,0][1920,1080], scale=1.000000, touchableRegion=[0,54][1920,1080], inputFeatures=0x00000000, ownerPid=2116, ownerUid=10059, dispatchingTimeout=5000.000ms
      1: name='Window{f684797 u0 com.amazon.vizzini}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01400108, type=0x000007da, layer=0, frame=[0,0][1920,1080], scale=1.000000, touchableRegion=[0,0][1920,1080], inputFeatures=0x00000000, ownerPid=1693, ownerUid=10142, dispatchingTimeout=5000.000ms
      2: name='Window{dd3051 u0 com.amazon.vizzini}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01400100, type=0x000007da, layer=0, frame=[0,0][1920,1080], scale=1.000000, touchableRegion=[0,0][1920,1080], inputFeatures=0x00000000, ownerPid=1693, ownerUid=10142, dispatchingTimeout=5000.000ms
      3: name='Window{2fb761b u0 com.amazon.firetv.youtube.tv/dev.cobalt.app.MainActivity}', displayId=0, paused=false, hasFocus=true, hasWallpaper=false, visible=true, canReceiveKeys=true, flags=0x818101a0, type=0x00000001, layer=0, frame=[0,0][1920,1080], scale=1.000000, touchableRegion=[0,0][1920,1080], inputFeatures=0x00000000, ownerPid=23037, ownerUid=10203, dispatchingTimeout=5000.000ms
      4: name='Window{70f777 u0 com.amazon.tv.launcher/com.amazon.tv.launcher.ui.HomeActivity_vNext}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x83810120, type=0x00000001, layer=0, frame=[0,0][1920,1080], scale=1.000000, touchableRegion=[0,0][1920,1080], inputFeatures=0x00000000, ownerPid=1843, ownerUid=10047, dispatchingTimeout=5000.000ms
      5: name='Window{4d197d6 u0 com.amazon.ftv.profilepicker/com.amazon.ftv.profilepicker.ui.PickerActivity}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x81810120, type=0x00000001, layer=0, frame=[0,0][1920,1080], scale=1.000000, touchableRegion=[0,0][1920,1080], inputFeatures=0x00000000, ownerPid=31893, ownerUid=10096, dispatchingTimeout=5000.000ms
      6: name='Window{5c861a1 u0 com.amazon.firetv.youtube/dev.cobalt.app.MainActivity}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x81810120, type=0x00000001, layer=0, frame=[0,0][1920,1080], scale=1.000000, touchableRegion=[0,0][1920,1080], inputFeatures=0x00000000, ownerPid=18144, ownerUid=10202, dispatchingTimeout=5000.000ms
    MonitoringChannels:
      0: 'WindowManager (server)'
    RecentQueue: length=10
      KeyEvent, age=108154.8ms
      KeyEvent, age=107976.4ms
      KeyEvent, age=107714.0ms
      KeyEvent, age=107516.9ms
      KeyEvent, age=103256.6ms
      KeyEvent, age=103136.7ms
      KeyEvent, age=102596.4ms
      KeyEvent, age=102396.4ms
      KeyEvent, age=101656.8ms
      KeyEvent, age=101513.5ms
    PendingEvent: <none>
    InboundQueue: <empty>
    ReplacedKeys: <empty>
    Connections:
      0: channelName='WindowManager (server)', windowName='monitor', status=NORMAL, monitor=true, inputPublisherBlocked=false
        OutboundQueue: <empty>
        WaitQueue: <empty>
      1: channelName='1aea13b InputMethod (server)', windowName='Window{1aea13b u0 InputMethod}', status=NORMAL, monitor=false, inputPublisherBlocked=false
        OutboundQueue: <empty>
        WaitQueue: <empty>
      2: channelName='dd3051 com.amazon.vizzini (server)', windowName='Window{dd3051 u0 com.amazon.vizzini}', status=NORMAL, monitor=false, inputPublisherBlocked=false
        OutboundQueue: <empty>
        WaitQueue: <empty>
      3: channelName='f684797 com.amazon.vizzini (server)', windowName='Window{f684797 u0 com.amazon.vizzini}', status=NORMAL, monitor=false, inputPublisherBlocked=false
        OutboundQueue: <empty>
        WaitQueue: <empty>
      4: channelName='70f777 com.amazon.tv.launcher/com.amazon.tv.launcher.ui.HomeActivity_vNext (server)', windowName='Window{70f777 u0 com.amazon.tv.launcher/com.amazon.tv.launcher.ui.HomeActivity_vNext}', status=NORMAL, monitor=false, inputPublisherBlocked=false
        OutboundQueue: <empty>
        WaitQueue: <empty>
      5: channelName='4d197d6 com.amazon.ftv.profilepicker/com.amazon.ftv.profilepicker.ui.PickerActivity (server)', windowName='Window{4d197d6 u0 com.amazon.ftv.profilepicker/com.amazon.ftv.profilepicker.ui.PickerActivity}', status=NORMAL, monitor=false, inputPublisherBlocked=false
        OutboundQueue: <empty>
        WaitQueue: <empty>
      6: channelName='2fb761b com.amazon.firetv.youtube.tv/dev.cobalt.app.MainActivity (server)', windowName='Window{2fb761b u0 com.amazon.firetv.youtube.tv/dev.cobalt.app.MainActivity}', status=NORMAL, monitor=false, inputPublisherBlocked=false
        OutboundQueue: <empty>
        WaitQueue: <empty>
      7: channelName='5c861a1 com.amazon.firetv.youtube/dev.cobalt.app.MainActivity (server)', windowName='Window{5c861a1 u0 com.amazon.firetv.youtube/dev.cobalt.app.MainActivity}', status=NORMAL, monitor=false, inputPublisherBlocked=false
        OutboundQueue: <empty>
        WaitQueue: <empty>
    AppSwitch: not pending
    Configuration:
      KeyRepeatDelay: 50.0ms
      KeyRepeatTimeout: 500.0ms
hdmi_input: null
device_class: tv
entity_picture: >-
  /api/media_player_proxy/media_player.fire_tv_192_168_3_45?token=dd74d3aea7830e533a347e573a045b6b08d708a27c3a0db75a27df167cc15b74&cache=2b8226821646c1dc
friendly_name: Fire TV 192.168.3.45
supported_features: 22961

@PRProd
Copy link
Owner

PRProd commented Oct 13, 2023

Thank you for that info @Jeppedy! I have updated the wiki page with the data you provided.

@Jeppedy & @GlenWi - Do you have any control over your Firestick 4k Max 2nd Gen if you set the compatibility mode to event6?

image

@GlenWi
Copy link
Author

GlenWi commented Oct 15, 2023

Thanks for working on this. I tried event6 but no joy.

@Jeppedy
Copy link

Jeppedy commented Oct 15, 2023

I don't even need a Compatibility Mode. It generally seems to work as-is.
@GlenWi , did you already enable the Android Debug Mode, use a fixed IP address, etc?

type: custom:firemote-card
entity: media_player.fire_tv_192_168_3_45
device_family: amazon-fire
device_type: fire_tv_stick_4k_max
compatibility_mode: default
defaultRemoteStyle_override: ''

@GlenWi
Copy link
Author

GlenWi commented Oct 15, 2023

Yes - seems setup correctly to me:

type: custom:firemote-card
entity: media_player.fire_tv_10_1_1_42
device_family: amazon-fire
device_type: fire_tv_stick_4k_max
compatibility_mode: default
defaultRemoteStyle_override: ''

@Jeppedy
Copy link

Jeppedy commented Oct 15, 2023 via email

@GlenWi
Copy link
Author

GlenWi commented Oct 15, 2023

Correct, some keys work, like Home, but not mute or volume up/down.

@Jeppedy
Copy link

Jeppedy commented Oct 15, 2023 via email

@GlenWi
Copy link
Author

GlenWi commented Oct 15, 2023

The physical remote works fine, and I don't believe it's using IR (must be bluetooth/RF). I can cover the front of the remote completely and it works fine, even from another room with the doors shut.

@PRProd
Copy link
Owner

PRProd commented Oct 17, 2023

All ~

Please accept my apologies for my absence. Thank you for discussing this between yourselves! We will get this sorted out together. 😄

The main thing we need to accomplish together (assuming I don't buy one for myself) is exactly what "event number" needs to be used as a default. Let me explain a little more about what I mean.

@Jeppedy - Thank you for the device interrogation that you posted to this thread! What's interesting about your interrogation is that it seems to conflict with your comment where you posted some of your working YAML. Your interrogation showed that the correct "event number" to use as default should be event6, but when you use device_type: fire_tv_stick_4k_max the default event number that is used is actually event5. It's not impossible that both event5 and event6 would work, but unusual in my experience. (keep in mind, I don't own this specific stick, so things might be different)

In case either of you are wondering, the way I attempt to determine the default Compatibility Mode is to first look at what the device spits out when I ask for an Interrogation. (Interrogation is my word, the more accurate term is to request a dump of the device input data) Specifically, I look for an entry that correlates with a remote control (bluetooth) or an IR (infrared) input. In the large dump of data above, you can find this section:

      125: Amazon Fire TV Remote
        Classes: 0x80000021
        Path: /dev/input/event6
        Enabled: true

This is why my suggestion above was to use event6 as your Compatibility Mode. If the Interrogation that @Jeppedy preformed for us was a typical response from this stick, it should have also worked for @GlenWi.

After getting these dumps/Interrogation results, I update the documentation wiki. In this case, after receiving the results from @Jeppedy I added an entry to the Existing Amazon Devices Support Chart for the Fire TV Stick 4K Max 2nd Gen (2023). On that page, you will find a much easier to read chart that diagrams the "event number" and what kind of input the devices are using them for. When you compare that page with the page for the Fire TV Stick 4K Max 1st Gen (2021), you will note that the remote control input is expected to be event5 for that one.

What should we do next? I have some testing that I'd like both of you to try:

  • @GlenWi
    • Please take note of the first bullet point in the Why don't any of the buttons on the Firemote work at all? section of the README.md file. There is a known annoyance with all Amazon Fire devices that requires a physical button press on the physical remote control to establish the "event" connection. It's possible that event5 or event6 (whichever one it might be) doesn't even exist on your device UNTIL you press a button on your remote first.
  • @Jeppedy and @GlenWi
    • I would be interested to know if another device interrogation would yield a different result than what was posted by @Jeppedy. @GlenWi, this could be a good way to see if you actually have a physical remote control attached to your device. If you don't see one in the list, that would be the answer to your issues.
    • If both of you DO see an Amazon Fire TV Remote in the output of your interrogation, (or even if you choose not to do that step), I'd also be interested to know what happens when you do the last bullet point in the Why don't any of the buttons on the Firemote work at all? section of the README.md file. At least one of those will work (assuming your physical remote is actually connected) but now I'm wondering if maybe more than one might work?

@Jeppedy
Copy link

Jeppedy commented Oct 17, 2023 via email

@GlenWi
Copy link
Author

GlenWi commented Oct 17, 2023 via email

@Jeppedy
Copy link

Jeppedy commented Oct 18, 2023

Okay, here's the latest.

It's definitely positively a Fire TV Stick 4k Max
I'm on Fire OS 7.6.6.4 (PS7664/3772)
Fire TV Home Version: 6470113.1

source: YouTube (FireTV)
adb_response: INPUT MANAGER (dumpsys input)

Input Manager State:
  Interactive: true
  System UI Visibility: 0x0
  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
    2: 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
    3: 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
    4: 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
    5: 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
    6: 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
    22: Amazon Fire TV Remote
      Classes: 0x80000021
      Path: /dev/input/event5
      Enabled: true
      Descriptor: 59f5ac3cf60e33645c95eb3ef1f81e0e55d59053:0171041e
      Location: 
      ControllerNumber: 0
      UniqueId: A8:E6:21:99:72:58
      Identifier: bus=0x0005, vendor=0x0171, product=0x041e, version=0x0037
      KeyLayoutFile: /system/usr/keylayout/Vendor_0171_Product_041e.kl
      KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
      ConfigurationFile: 
      HaveKeyboardLayoutOverlay: false

Input Reader State:
  Device -1: Virtual
    Generation: 2
    IsExternal: false
    HasMic:     false
    Sources: 0x00000301
    KeyboardType: 2
    Keyboard Input Mapper:
      Parameters:
        HasAssociatedDisplay: false
        OrientationAware: false
        HandlesKeyRepeat: false
      KeyboardType: 2
      Orientation: 0
      KeyDowns: 0 keys currently down
      MetaState: 0x0
      DownTime: 0
  Device 2: WOBLE_INPUT_DEVICE
    Generation: 6
    IsExternal: false
    HasMic:     false
    Sources: 0x00000101
    KeyboardType: 1
    Keyboard Input Mapper:
      Parameters:
        HasAssociatedDisplay: false
        OrientationAware: false
        HandlesKeyRepeat: false
      KeyboardType: 1
      Orientation: 0
      KeyDowns: 0 keys currently down
      MetaState: 0x0
      DownTime: 0
  Device 3: hdmipower
    Generation: 4
    IsExternal: false
    HasMic:     false
    Sources: 0x00000101
    KeyboardType: 1
    Keyboard Input Mapper:
      Parameters:
        HasAssociatedDisplay: false
        OrientationAware: false
        HandlesKeyRepeat: false
      KeyboardType: 1
      Orientation: 0
      KeyDowns: 0 keys currently down
      MetaState: 0x0
      DownTime: 0
  Device 4: amazon_touch
    Generation: 93
    IsExternal: false
    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: displayId=0, orientation=0, logicalFrame=[0, 0, 1920, 1080], physicalFrame=[0, 0, 3840, 2160], deviceSize=[3840, 2160]
      SurfaceWidth: 1920px
      SurfaceHeight: 1080px
      SurfaceLeft: 0
      SurfaceTop: 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 5: WOW_INPUT_DEVICE
    Generation: 15
    IsExternal: false
    HasMic:     false
    Sources: 0x00000101
    KeyboardType: 1
    Keyboard Input Mapper:
      Parameters:
        HasAssociatedDisplay: false
        OrientationAware: false
        HandlesKeyRepeat: false
      KeyboardType: 1
      Orientation: 0
      KeyDowns: 0 keys currently down
      MetaState: 0x0
      DownTime: 0
  Device 6: kcmouse
    Generation: 115
    IsExternal: true
    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 22: Amazon Fire TV Remote
    Generation: 112
    IsExternal: true
    HasMic:     false
    Sources: 0x00000301
    KeyboardType: 1
    Keyboard Input Mapper:
      Parameters:
        HasAssociatedDisplay: false
        OrientationAware: false
        HandlesKeyRepeat: false
      KeyboardType: 1
      Orientation: 0
      KeyDowns: 0 keys currently down
      MetaState: 0x0
      DownTime: 366928593622000
  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:
        ViewportInternal:
          Viewport: displayId=0, orientation=0, uniqueId='', logicalFrame=[0, 0, 1920, 1080], physicalFrame=[0, 0, 3840, 2160], deviceSize=[3840, 2160]
        ViewportExternal:
          Viewport: displayId=0, orientation=0, uniqueId='', logicalFrame=[0, 0, 1920, 1080], physicalFrame=[0, 0, 3840, 2160], deviceSize=[3840, 2160]
        ViewportVirtual:

Input Dispatcher State:
  DispatchEnabled: 1
  DispatchFrozen: 0
  FocusedApplication: name='AppWindowToken{7c46015 token=Token{651d5cc ActivityRecord{26f43ff u0 com.amazon.firetv.youtube/dev.cobalt.app.MainActivity t1155}}}', dispatchingTimeout=5000.000ms
  FocusedWindow: name='Window{87d81a7 u0 Sys2023:dream}'
  TouchStates: <no displays touched>
  Windows:
    0: name='Window{c804a52 u0 com.amazon.vizzini}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01400108, type=0x000007da, layer=0, frame=[0,0][1920,1080], scale=1.000000, touchableRegion=[0,0][1920,1080], inputFeatures=0x00000000, ownerPid=11011, ownerUid=10142, dispatchingTimeout=5000.000ms
    1: name='Window{5a049bb u0 com.amazon.vizzini}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01400100, type=0x000007da, layer=0, frame=[0,0][1920,1080], scale=1.000000, touchableRegion=[0,0][1920,1080], inputFeatures=0x00000000, ownerPid=11011, ownerUid=10142, dispatchingTimeout=5000.000ms
    2: name='Window{87d81a7 u0 Sys2023:dream}', displayId=0, paused=false, hasFocus=true, hasWallpaper=false, visible=true, canReceiveKeys=true, flags=0x01c90581, type=0x000007e7, layer=0, frame=[0,0][1920,1080], scale=1.000000, touchableRegion=[0,0][1920,1080], inputFeatures=0x00000000, ownerPid=21292, ownerUid=10127, dispatchingTimeout=5000.000ms
    3: name='Window{531e4fd u0 com.amazon.firetv.youtube/dev.cobalt.app.MainActivity}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=true, flags=0x81810120, type=0x00000001, layer=0, frame=[0,0][1920,1080], scale=1.000000, touchableRegion=[0,0][1920,1080], inputFeatures=0x00000000, ownerPid=19371, ownerUid=10202, dispatchingTimeout=5000.000ms
    4: name='Window{2d685ba u0 com.amazon.tv.launcher/com.amazon.tv.launcher.ui.HomeActivity_vNext}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x83810120, type=0x00000001, layer=0, frame=[0,0][1920,1080], scale=1.000000, touchableRegion=[0,0][1920,1080], inputFeatures=0x00000000, ownerPid=11097, ownerUid=10047, dispatchingTimeout=5000.000ms
    5: name='Window{b551773 u0 com.amazon.firetv.youtube.tv/dev.cobalt.app.MainActivity}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x818101a0, type=0x00000001, layer=0, frame=[0,0][1920,1080], scale=1.000000, touchableRegion=[0,0][1920,1080], inputFeatures=0x00000000, ownerPid=18254, ownerUid=10203, dispatchingTimeout=5000.000ms
    6: name='Window{eac8597 u0 com.amazon.tv.settings.v2/com.amazon.tv.settings.v2.tv.device.DeviceActivity}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x83810120, type=0x00000001, layer=0, frame=[0,0][1920,1080], scale=1.000000, touchableRegion=[0,0][1920,1080], inputFeatures=0x00000000, ownerPid=3095, ownerUid=10084, dispatchingTimeout=5000.000ms
  MonitoringChannels:
    0: 'WindowManager (server)'
  RecentQueue: length=10
    KeyEvent, age=443231.4ms
    KeyEvent, age=442873.4ms
    KeyEvent, age=442751.1ms
    KeyEvent, age=442619.2ms
    KeyEvent, age=442550.4ms
    KeyEvent, age=442453.2ms
    KeyEvent, age=442312.9ms
    KeyEvent, age=442228.3ms
    KeyEvent, age=441352.9ms
    KeyEvent, age=441132.8ms
  PendingEvent: <none>
  InboundQueue: <empty>
  ReplacedKeys: <empty>
  Connections:
    0: channelName='WindowManager (server)', windowName='monitor', status=NORMAL, monitor=true, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    1: channelName='2d685ba com.amazon.tv.launcher/com.amazon.tv.launcher.ui.HomeActivity_vNext (server)', windowName='Window{2d685ba u0 com.amazon.tv.launcher/com.amazon.tv.launcher.ui.HomeActivity_vNext}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    2: channelName='87d81a7 Sys2023:dream (server)', windowName='Window{87d81a7 u0 Sys2023:dream}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    3: channelName='5a049bb com.amazon.vizzini (server)', windowName='Window{5a049bb u0 com.amazon.vizzini}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    4: channelName='c804a52 com.amazon.vizzini (server)', windowName='Window{c804a52 u0 com.amazon.vizzini}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    5: channelName='eac8597 com.amazon.tv.settings.v2/com.amazon.tv.settings.v2.tv.device.DeviceActivity (server)', windowName='Window{eac8597 u0 com.amazon.tv.settings.v2/com.amazon.tv.settings.v2.tv.device.DeviceActivity}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    6: channelName='b551773 com.amazon.firetv.youtube.tv/dev.cobalt.app.MainActivity (server)', windowName='Window{b551773 u0 com.amazon.firetv.youtube.tv/dev.cobalt.app.MainActivity}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    7: channelName='531e4fd com.amazon.firetv.youtube/dev.cobalt.app.MainActivity (server)', windowName='Window{531e4fd u0 com.amazon.firetv.youtube/dev.cobalt.app.MainActivity}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
  AppSwitch: not pending
  Configuration:
    KeyRepeatDelay: 50.0ms
    KeyRepeatTimeout: 500.0ms
hdmi_input: null
device_class: tv
entity_picture: /api/media_player_proxy/media_player.fire_tv_192_168_3_45?token=d0aaf8f9a43cadc11a2dcbbf0ec85f2393fd7859d57ff7f98027b40c0d0a59ba&cache=93df10a94f89c8ee
friendly_name: Fire TV 192.168.3.45
supported_features: 22961

My YAML Card is:

type: custom:firemote-card
entity: media_player.fire_tv_192_168_3_45
device_family: amazon-fire
device_type: fire_tv_stick_4k_max
compatibility_mode: default
defaultRemoteStyle_override: ''
app_launch_1: youtubeTV
app_launch_2: youtube
app_launch_3: netflix
app_launch_4: prime-video
visible_name_text: LivingRoom
name_position: top
visible_name_text_color: '#ffffff'
scale: '68'
button_overrides:
  volume-up-button:
    service: webostv.button
    target:
      entity_id: media_player.lg_webos_tv_un8500auj
    data:
      button: VOLUMEUP
  mute-button:
    service: webostv.button
    target:
      entity_id: media_player.lg_webos_tv_un8500auj
    data:
      button: MUTE
  volume-down-button:
    service: webostv.button
    target:
      entity_id: media_player.lg_webos_tv_un8500auj
    data:
      button: VOLUMEDOWN

Every control about this FireTV works just fine (accepting for the Volume complexity, as my TV looks for IR from the remote, not RF, so I have to control the audio separately.

Is it possible the "default" compatibility mode is set right for this Fire Stick model?

IMG20231017192353

@GlenWi
Copy link
Author

GlenWi commented Oct 18, 2023

Hi mine is also event5. I did try them all but none worked. I did not restart the integration - just changed the event id 13 times and saved each time.

3: Amazon Fire TV Remote
Classes: 0x80000021
Path: /dev/input/event5
Enabled: true
Descriptor: 275bd6b5bf4b6d28f5e30d3b03fea85d7b821634:01710427
Location:
ControllerNumber: 0

The physical remote works fine using RF

@GlenWi
Copy link
Author

GlenWi commented Oct 18, 2023

OK - got it working by chosing Fire TV Cube 3rd Gen 2022 and strong slower compatibility mode!

@PRProd
Copy link
Owner

PRProd commented Oct 18, 2023

@Jeppedy & @GlenWi ~
Thanks for your work! It looks like the default event mode for the new Fire TV Stick 4K Max (2nd Gen - 2023) should be event5. This new device will be an official unlocked choice in the next release.

@GlenWi ~ I suspect that the reason some of your Firemote buttons do not work as expected is that you need to enable CEC mode. I suggest looking at this article I wrote to learn more about it, and how to set it up: Using CEC Controls Ideally, it's better to avoid using the strong (slower) compatibility mode unless you absolutely have to.

@GlenWi
Copy link
Author

GlenWi commented Oct 19, 2023

I have CEC on which is working OK. Looka like I absolutely need the stron (slower) mode.

@GlenWi
Copy link
Author

GlenWi commented Oct 19, 2023

Thanks for your support by the way!

@PRProd PRProd closed this as completed in aa8c09f Oct 20, 2023
@PRProd
Copy link
Owner

PRProd commented Oct 20, 2023

Official release version v3.0.1 has just been published.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Needs More Information Cannot continue resolution of this issue without more information New Device Support Request to add support of a currently unsupported Amazon Fire device
Projects
None yet
Development

No branches or pull requests

3 participants