{"id":246,"date":"2026-04-01T16:48:39","date_gmt":"2026-04-01T16:48:39","guid":{"rendered":"https:\/\/www.myuremote.com\/website\/?page_id=246"},"modified":"2026-04-01T16:49:14","modified_gmt":"2026-04-01T16:49:14","slug":"wiim-streamer-control","status":"publish","type":"page","link":"https:\/\/www.myuremote.com\/website\/docs\/integrations\/wiim-streamer-control\/","title":{"rendered":"WiiM streamer control"},"content":{"rendered":"\n<section style=\"max-width:900px;margin:0 auto;padding:26px 18px;line-height:1.6;\">\n\n  <header style=\"margin-bottom:16px;\">\n    <h1 style=\"font-size:clamp(26px,4vw,36px);line-height:1.15;margin:0;\">\n      WiiM streamer control (IP \/ HTTPS)\n    <\/h1>\n    <p style=\"margin:10px 0 0 0;max-width:820px;\">\n      MyURemote controls WiiM streamers using the WiiM HTTP API over a\n      <strong>secure HTTPS connection<\/strong>.\n      No IR blasters, no serial cables, and no external controllers are required.\n    <\/p>\n  <\/header>\n\n  <hr style=\"opacity:.25;margin:18px 0;\" \/>\n\n  <!-- OVERVIEW -->\n  <section>\n    <h2>Overview<\/h2>\n    <p>\n      WiiM control in MyURemote works by sending HTTP API commands over the local network.\n      Commands are routed through the local MyURemote proxy and then forwarded to the WiiM\n      device over <strong>HTTPS\/TLS<\/strong>.\n    <\/p>\n    <p>\n      This integration supports playback control, volume control, source switching,\n      presets and status feedback such as current title, artist, source and playback state.\n    <\/p>\n  <\/section>\n\n  <!-- CONNECTION TYPE -->\n  <section style=\"margin-top:18px;\">\n    <h2>Connection type (important)<\/h2>\n\n    <div style=\"border:1px solid rgba(0,0,0,.15);border-radius:14px;padding:14px;\">\n      <ul style=\"margin:0;padding-left:18px;\">\n        <li>Protocol: <strong>WiiM HTTP API<\/strong><\/li>\n        <li>Transport: <strong>HTTPS \/ TLS<\/strong><\/li>\n        <li>Technology in MyURemote: <strong>IP<\/strong><\/li>\n      <\/ul>\n      <p style=\"margin:10px 0 0 0;\">\n        MyURemote sends commands through its local proxy. The proxy handles the secure connection\n        to the WiiM device, including self-signed certificates used by WiiM.\n      <\/p>\n    <\/div>\n  <\/section>\n\n  <!-- FIRST USE -->\n  <section style=\"margin-top:18px;\">\n    <h2>First-time use<\/h2>\n\n    <div style=\"border:1px solid rgba(0,0,0,.15);border-radius:14px;padding:14px;\">\n      <h3 style=\"margin:0 0 6px 0;font-size:18px;\">Configure the correct IP address<\/h3>\n      <p style=\"margin:0;\">\n        WiiM control requires the correct local IP address of the device.\n        Make sure the WiiM and the MyURemote app are connected to the <strong>same network<\/strong>.\n      <\/p>\n      <p style=\"margin:10px 0 0 0;\">\n        The default connection uses <strong>port 443<\/strong> and requires a secure connection.\n      <\/p>\n    <\/div>\n\n    <p style=\"margin-top:12px;\">\n      Unlike Samsung SmartView control, WiiM does not require an on-screen pairing confirmation.\n    <\/p>\n  <\/section>\n\n  <!-- HOW IT WORKS -->\n  <section style=\"margin-top:18px;\">\n    <h2>How it works<\/h2>\n\n    <p>\n      MyURemote builds a standard HTTP request such as:\n    <\/p>\n\n    <div style=\"border:1px solid rgba(0,0,0,.15);border-radius:14px;padding:14px;font-family:monospace;white-space:pre-wrap;\">\nGET \/httpapi.asp?command=getPlayerStatus HTTP\/1.1\nHost: 192.168.0.104\nConnection: close\nUser-Agent: MyURemote\nAccept: *\/*\n    <\/div>\n\n    <p style=\"margin-top:12px;\">\n      This request is sent to the local MyURemote proxy, which upgrades the transport to\n      <strong>HTTPS<\/strong> and forwards it securely to the WiiM device.\n    <\/p>\n  <\/section>\n\n  <!-- FEEDBACK -->\n  <section style=\"margin-top:18px;\">\n    <h2>Status feedback<\/h2>\n\n    <p>\n      WiiM can return status information such as:\n    <\/p>\n\n    <ul>\n      <li>Playback state (<strong>play<\/strong>, <strong>pause<\/strong>, <strong>stop<\/strong>)<\/li>\n      <li>Current volume<\/li>\n      <li>Current source \/ vendor<\/li>\n      <li>Track title, artist and album<\/li>\n    <\/ul>\n\n    <p>\n      Some metadata fields are returned in <strong>hexadecimal format<\/strong>.\n      MyURemote can decode these values and show them on the display.\n    <\/p>\n\n    <div style=\"border:1px solid rgba(0,0,0,.15);border-radius:14px;padding:14px;font-family:monospace;white-space:pre-wrap;\">\n{\n  &#8220;status&#8221;:&#8221;play&#8221;,\n  &#8220;vol&#8221;:&#8221;100&#8243;,\n  &#8220;vendor&#8221;:&#8221;newTuneIn&#8221;,\n  &#8220;Title&#8221;:&#8221;416C74696A642062656E6965757764&#8243;\n}\n    <\/div>\n\n    <p style=\"margin-top:12px;\">\n      In this example, the title is returned as hexadecimal text and can be decoded to the readable title.\n    <\/p>\n  <\/section>\n\n  <!-- COMMAND BEHAVIOUR -->\n  <section style=\"margin-top:18px;\">\n    <h2>Command behaviour<\/h2>\n\n    <p>\n      WiiM commands in MyURemote are usually grouped into two categories:\n    <\/p>\n\n    <h3 style=\"margin-bottom:6px;\">Action commands<\/h3>\n    <ul>\n      <li>Play<\/li>\n      <li>Pause<\/li>\n      <li>Next \/ Previous<\/li>\n      <li>Preset selection<\/li>\n      <li>Input switching<\/li>\n      <li>Mute on \/ off<\/li>\n    <\/ul>\n\n    <h3 style=\"margin-bottom:6px;\">Query commands<\/h3>\n    <ul>\n      <li>STATUS QUERY<\/li>\n      <li>TITLE QUERY<\/li>\n      <li>ARTIST QUERY<\/li>\n      <li>VOL QUERY<\/li>\n      <li>SRC QUERY<\/li>\n    <\/ul>\n\n    <p>\n      Query commands ask the device for information and return data to the MyURemote interface.\n    <\/p>\n  <\/section>\n\n  <!-- VOLUME -->\n  <section style=\"margin-top:18px;\">\n    <h2>Volume handling<\/h2>\n\n    <p>\n      WiiM supports absolute volume values (0\u2013100).\n      In MyURemote, <strong>VOL+<\/strong> and <strong>VOL-<\/strong> are handled virtually:\n      MyURemote keeps track of the last known volume and converts those buttons into\n      an absolute volume command.\n    <\/p>\n\n    <p>\n      This allows responsive volume control while staying compatible with the WiiM API.\n    <\/p>\n  <\/section>\n\n  <!-- INPUT SWITCHING -->\n  <section style=\"margin-top:18px;\">\n    <h2>Input switching<\/h2>\n\n    <p>\n      WiiM source switching is supported through API commands such as:\n    <\/p>\n\n    <ul>\n      <li><strong>wifi<\/strong><\/li>\n      <li><strong>line-in<\/strong><\/li>\n      <li><strong>bluetooth<\/strong><\/li>\n      <li><strong>optical<\/strong><\/li>\n      <li><strong>udisk<\/strong><\/li>\n    <\/ul>\n\n    <p>\n      In MyURemote these can be mapped to user-friendly labels such as\n      <strong>Input WIFI<\/strong>, <strong>Input AUX<\/strong>, <strong>Input Bluetooth<\/strong>, etc.\n    <\/p>\n  <\/section>\n\n  <!-- POWER \/ STATE -->\n  <section style=\"margin-top:18px;\">\n    <h2>Playback state vs power state<\/h2>\n\n    <p>\n      WiiM does not behave like a classic amplifier or TV with a simple on\/off power model.\n      Instead, it returns a <strong>playback state<\/strong> such as:\n    <\/p>\n\n    <ul>\n      <li><strong>play<\/strong><\/li>\n      <li><strong>pause<\/strong><\/li>\n      <li><strong>stop<\/strong><\/li>\n    <\/ul>\n\n    <p>\n      In MyURemote this can be used to approximate a power state if desired.\n      For example, <strong>stop<\/strong> or <strong>pause<\/strong> may be treated as \u201coff\u201d\n      in custom feedback logic.\n    <\/p>\n  <\/section>\n\n  <!-- TROUBLESHOOTING -->\n  <section style=\"margin-top:18px;\">\n    <h2>Troubleshooting<\/h2>\n\n    <h3 style=\"margin-bottom:6px;\">No response from the WiiM<\/h3>\n    <ul>\n      <li>Verify the configured <strong>IP address<\/strong><\/li>\n      <li>Verify the configured <strong>port<\/strong> (normally 443)<\/li>\n      <li>Make sure the WiiM and MyURemote are on the same network<\/li>\n      <li>Check that secure mode \/ HTTPS is enabled in the proxy path<\/li>\n    <\/ul>\n\n    <h3 style=\"margin-bottom:6px;\">Commands work in browser but not in MyURemote<\/h3>\n    <ul>\n      <li>Make sure the MyURemote proxy is using <strong>HTTPS\/TLS<\/strong> and not raw TCP<\/li>\n      <li>WiiM rejects plain HTTP requests sent to port 443<\/li>\n      <li>The proxy must handle the secure connection on behalf of the frontend<\/li>\n    <\/ul>\n\n    <h3 style=\"margin-bottom:6px;\">Display text is unreadable<\/h3>\n    <ul>\n      <li>The returned field may be hexadecimal<\/li>\n      <li>Make sure the command feedback is configured with the correct <strong>HEX<\/strong> setting<\/li>\n      <li>Check the configured prefix and stop sign carefully<\/li>\n    <\/ul>\n\n    <h3 style=\"margin-bottom:6px;\">Wrong source or state shown<\/h3>\n    <ul>\n      <li>WiiM may return platform\/vendor names rather than friendly labels<\/li>\n      <li>Map returned values in your command feedback configuration if needed<\/li>\n    <\/ul>\n  <\/section>\n\n  <!-- SUPPORTED -->\n  <section style=\"margin-top:18px;\">\n    <h2>Supported WiiM devices<\/h2>\n    <ul>\n      <li>WiiM streamers supporting the local HTTP API<\/li>\n      <li>Devices reachable on the local network over HTTPS<\/li>\n    <\/ul>\n  <\/section>\n\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>WiiM streamer control (IP \/ HTTPS) MyURemote controls WiiM streamers using the WiiM HTTP API over a secure HTTPS connection. No IR blasters, no serial cables, and no external controllers are required. Overview WiiM control in MyURemote works by sending HTTP API commands over the local network. Commands are routed through the local MyURemote proxy [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":28,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-246","page","type-page","status-publish","hentry"],"blocksy_meta":{"has_hero_section":"disabled","styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6}},"_links":{"self":[{"href":"https:\/\/www.myuremote.com\/website\/wp-json\/wp\/v2\/pages\/246","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.myuremote.com\/website\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.myuremote.com\/website\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.myuremote.com\/website\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.myuremote.com\/website\/wp-json\/wp\/v2\/comments?post=246"}],"version-history":[{"count":1,"href":"https:\/\/www.myuremote.com\/website\/wp-json\/wp\/v2\/pages\/246\/revisions"}],"predecessor-version":[{"id":247,"href":"https:\/\/www.myuremote.com\/website\/wp-json\/wp\/v2\/pages\/246\/revisions\/247"}],"up":[{"embeddable":true,"href":"https:\/\/www.myuremote.com\/website\/wp-json\/wp\/v2\/pages\/28"}],"wp:attachment":[{"href":"https:\/\/www.myuremote.com\/website\/wp-json\/wp\/v2\/media?parent=246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}