Skip to content

Commit 1572001

Browse files
author
darkpoet78
committed
2025.08.20
1 parent b9f6960 commit 1572001

27 files changed

Lines changed: 259 additions & 158 deletions

HA/custom_components/yoradio/manifest.json renamed to HA/custom_components/ehradio/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@
55
"dependencies": ["http", "mqtt"],
66
"codeowners": ["@trip5"],
77
"requirements": [],
8-
"version": "2025.08.10"
8+
"version": "2025.08.20"
99
}

HA/custom_components/yoradio/media_player.py renamed to HA/custom_components/ehradio/media_player.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@
2020
RepeatMode,
2121
)
2222

23-
VERSION = '0.9.553'
23+
VERSION = '2025.08.20'
2424

2525
_LOGGER = logging.getLogger(__name__)
2626

27-
SUPPORT_YORADIO = (
27+
SUPPORT_EHRADIO = (
2828
MediaPlayerEntityFeature.PAUSE
2929
| MediaPlayerEntityFeature.PLAY
3030
| MediaPlayerEntityFeature.STOP
@@ -40,12 +40,12 @@
4040
| MediaPlayerEntityFeature.PLAY_MEDIA
4141
)
4242

43-
DEFAULT_NAME = 'yoRadio'
43+
DEFAULT_NAME = 'myradio'
4444
CONF_MAX_VOLUME = 'max_volume'
4545
CONF_ROOT_TOPIC = 'root_topic'
4646

4747
MEDIA_PLAYER_PLATFORM_SCHEMA = MEDIA_PLAYER_PLATFORM_SCHEMA.extend({
48-
vol.Required(CONF_ROOT_TOPIC, default="yoradio"): cv.string,
48+
vol.Required(CONF_ROOT_TOPIC, default="ehradio"): cv.string,
4949
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
5050
vol.Optional(CONF_MAX_VOLUME, default='254'): cv.string
5151
})
@@ -55,10 +55,10 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
5555
name = config.get(CONF_NAME)
5656
max_volume = int(config.get(CONF_MAX_VOLUME, 254))
5757
playlist = []
58-
api = yoradioApi(root_topic, hass, playlist)
59-
add_devices([yoradioDevice(name, max_volume, api)], True)
58+
api = ehradioApi(root_topic, hass, playlist)
59+
add_devices([ehradioDevice(name, max_volume, api)], True)
6060

61-
class yoradioApi():
61+
class ehradioApi():
6262
def __init__(self, root_topic, hass, playlist):
6363
self.hass = hass
6464
self.mqtt = mqtt
@@ -118,7 +118,7 @@ async def load_playlist(self, msg):
118118
self.playlist.append(station)
119119
counter=counter+1
120120

121-
class yoradioDevice(MediaPlayerEntity):
121+
class ehradioDevice(MediaPlayerEntity):
122122
def __init__(self, name, max_volume, api):
123123
self._name = name
124124
self.api = api
@@ -169,7 +169,7 @@ async def volume_listener(self, msg):
169169

170170
@property
171171
def supported_features(self):
172-
return SUPPORT_YORADIO
172+
return SUPPORT_EHRADIO
173173

174174
@property
175175
def name(self):

HA/example_configuration.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,5 @@ scene: !include scenes.yaml
1414
# ehRadio entity
1515
media_player:
1616
- platform: ehradio
17-
name: ehRadio (kitchen)
18-
root_topic: ehradio/100
17+
name: My ehRadio
18+
root_topic: ehradio/myradio

README.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,18 @@ Documentation will be slowly improved.
1616
## ehRadio Version history
1717

1818

19-
19+
### 2025.08.20
20+
- WebUI fixed for mobile displays
21+
- MQTT added to WebUI options / defaults set by adding defines to `myoptions.h`
22+
- `#define MQTT_ENABLE` to enable (will not be available otherwise)
23+
- defaults can be set with (Still editable in WebUI):
24+
- `#define MQTT_HOST "192.168.1.2"`
25+
- `#define MQTT_PORT 1883`
26+
- `#define MQTT_USER "mqttuser"`
27+
- `#define MQTT_PASS ""`
28+
- `#define MQTT_TOPIC "ehradio/myradio/"`
29+
- Home Assistant integration fixed
30+
- Display On toggle removed from WebUI
2031

2132
### 2025.08.12
2233

builds/trip5/myoptions.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,10 +243,15 @@
243243
#define SNTP_2 "pool.ntp.org"
244244
#define WEATHER_LAT "37.5503" /* latitude */
245245
#define WEATHER_LON "126.9971" /* longitude */
246+
#define HIDE_WEATHER
247+
#define MQTT_ENABLE
246248
#endif
247249

248250
/* --- MORE, UNUSED, UNKNOWN, NOTES --- */
249251

252+
//#define IR_PIN 1
253+
//#define IR_TIMEOUT 80 /* see kTimeout description in IRremoteESP8266 example https://github.com/crankyoldgit/IRremoteESP8266/blob/master/examples/IRrecvDumpV2/IRrecvDumpV2.ino */
254+
250255
//#define ROTATE_90 /* rotates 90 degrees? */
251256

252257
//#define ESPFILEUPDATER_DEBUG

builds/trip5/platformio.ini

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ build_src_filter =
2121
+<../locale/*>
2222
+<../myoptions.h>
2323
+<../mytheme.h>
24-
;+<../mqttoptions.h>
25-
;+<async-mqtt-client/*>
24+
+<async-mqtt-client/*>
2625
+<AsyncWebServer/*>
2726
+<core/*>
2827
+<displays/fonts/*>
@@ -35,6 +34,8 @@ build_src_filter =
3534
+<yoEncoder/*>
3635
+<displays/dispcore.h>
3736
+<main.cpp>
37+
;+<IRremoteESP8266/*>
38+
3839
extra_scripts = pre:replace_font.py
3940

4041
; --- Bare board firmwares ---

data/www/options.html

Lines changed: 53 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@ <h2 class="pagetitle" style="padding: 0;">Settings</h2>
88
<div class="navitem group group_timezone hidden" data-target="group_timezone">timezone</div>
99
<div class="navitem group group_wifi hidden" data-target="group_wifi">wifi</div>
1010
<div class="navitem group group_weather hidden" data-target="group_weather">weather</div>
11+
<div class="navitem group group_mqtt hidden" data-target="group_mqtt">mqtt</div>
1112
<div class="navitem group group_system hidden" data-target="group_tools">tools</div>
1213
</div>
1314
<div id="settingswrap">
14-
<div id="settingscontent"><a name="system"></a>
15+
<div id="settingscontent">
16+
<a name="system"></a>
1517
<section class="group group_system hidden" id="group_system">
1618
<div class="title"><span>system</span></div>
1719
<div class="reset" data-name="system" title="reset"></div>
@@ -39,14 +41,15 @@ <h2 class="pagetitle" style="padding: 0;">Settings</h2>
3941
<div class="fb local" data-command="fwupdate">Firmware</div>
4042
<div class="fb local" data-command="webboard" id="webboard">Board</div>
4143
</div>
42-
</section><a name="screen"></a>
44+
</section>
45+
<a name="screen"></a>
4346
<section class="group group_display group_oled group_nextion hidden" id="group_display">
4447
<div class="title"><span>screen</span></div>
4548
<div class="reset" data-name="screen" title="reset"></div>
4649
<div class="flex-row">
4750
<div class="checkbox group_tft hidden" id="flip" data-command="flipscreen"><div class="knob"></div>Flip screen</div>
4851
<div class="checkbox group_tft hidden" id="inv" data-command="invertdisplay"><div class="knob"></div>Invert screen</div>
49-
<div class="checkbox group_brightness group_oled hidden" id="dspon" data-command="screenon"><div class="knob"></div>Turn on</div>
52+
<!-- <div class="checkbox group_brightness group_oled hidden" id="dspon" data-command="screenon"><div class="knob"></div>Turn on</div> -->
5053
</div>
5154
<div class="flex-row group group_tft group_oled group_nextion hidden">
5255
<div class="checkbox" id="nump" data-command="numplaylist"><div class="knob"></div>Numbered Playlist</div>
@@ -98,7 +101,8 @@ <h2 class="pagetitle" style="padding: 0;">Settings</h2>
98101
<input type="number" id="scrpt" data-command="screensaverplayingtimeout" value="" maxlength="3" min="1" max="1080" />
99102
</div>
100103
</div>
101-
</section><a name="controls"></a>
104+
</section>
105+
<a name="controls"></a>
102106
<section class="group group_controls hidden" id="group_controls">
103107
<div class="title"><span>Controls</span></div>
104108
<div class="reset" data-name="controls" title="reset"></div>
@@ -135,7 +139,8 @@ <h2 class="pagetitle" style="padding: 0;">Settings</h2>
135139
<div class="flex-row group group_ir last hidden">
136140
<div class="fb local" data-command="setupir">IR Recorder</div>
137141
</div>
138-
</section><a name="timezone"></a>
142+
</section>
143+
<a name="timezone"></a>
139144
<section class="group group_timezone hidden" id="group_timezone">
140145
<div class="title"><span>timezone</span></div>
141146
<div class="reset" data-name="timezone" title="reset"></div>
@@ -164,7 +169,8 @@ <h2 class="pagetitle" style="padding: 0;">Settings</h2>
164169
<div class="flex-row last">
165170
<div class="fb hl local" data-command="applytz">Apply</div>
166171
</div>
167-
</section><a name="wifi"></a>
172+
</section>
173+
<a name="wifi"></a>
168174
<section class="group group_wifi hidden" id="group_wifi">
169175
<div class="title"><span>Wi-Fi</span></div>
170176
<div class="flex-row credential">
@@ -222,7 +228,8 @@ <h2 class="pagetitle" style="padding: 0;">Settings</h2>
222228
<div class="fb local group group_system hidden" data-command="wifiexport">Export</div>
223229
<div class="fb hl local" data-command="wifiupload">Save &amp; Reboot</div>
224230
</div>
225-
</section><a name="weather"></a>
231+
</section>
232+
<a name="weather"></a>
226233
<section class="group group_weather hidden" id="group_weather">
227234
<div class="title"><span>Weather</span></div>
228235
<div class="reset" data-name="weather" title="reset"></div>
@@ -249,6 +256,45 @@ <h2 class="pagetitle" style="padding: 0;">Settings</h2>
249256
<div class="fb hl local" data-command="applyweather">Apply</div>
250257
</div>
251258
</section>
259+
260+
<a name="mqtt"></a>
261+
<section class="group group_mqtt hidden" id="group_mqtt">
262+
<div class="title"><span>MQTT</span></div>
263+
<div class="reset" data-name="mqtt" title="reset"></div>
264+
<div class="flex-row center">
265+
<div class="checkbox" id="mqttenable" data-command="mqttenable"><div class="knob"></div>enable mqtt</div>
266+
</div>
267+
<div class="flex-row">
268+
<div class="inputwrap">
269+
<span class="inputtitle">host</span>
270+
<input type="text" id="mqtthost" class="textinput" placeholder="192.168.1.2" maxlength="59" autocomplete="off" />
271+
</div>
272+
<div class="inputwrap">
273+
<span class="inputtitle">port</span>
274+
<input type="number" id="mqttport" value="" min="1" max="65535" step="1" />
275+
</div>
276+
</div>
277+
<div class="flex-row">
278+
<div class="inputwrap">
279+
<span class="inputtitle">user</span>
280+
<input type="text" id="mqttuser" class="textinput" placeholder="mqttuser" maxlength="29" autocomplete="off" />
281+
</div>
282+
<div class="inputwrap">
283+
<span class="inputtitle">password</span>
284+
<input type="text" id="mqttpass" class="textinput" name="pass" value="" placeholder="**********" maxlength="39" autocomplete="off" readonly="readonly" data-pass="" onfocus="this.removeAttribute('readonly');" />
285+
</div>
286+
</div>
287+
<div class="flex-row">
288+
<div class="inputwrap">
289+
<span class="inputtitle">root topic</span>
290+
<input type="text" id="mqtttopic" class="textinput" placeholder="ehradio/myradio/" maxlength="59" autocomplete="off" />
291+
</div>
292+
</div>
293+
<div class="flex-row last">
294+
<div class="fb hl local" data-command="applymqtt">Apply</div>
295+
</div>
296+
</section>
297+
252298
<a name="tools"></a>
253299
<section class="group group_system hidden" id="group_tools">
254300
<div class="title"><span>Tools</span></div>

data/www/player.html

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -133,17 +133,19 @@
133133
<div id="pleditorwrap" class="hidden" data-target="toggleplaylist">
134134
<div id="pleditor">
135135
<h2>
136-
<div id="search" class="gb gbsearch local" data-command="search">
136+
<div id="search" class="gb gbsearch local" data-command="search">
137137
<svg viewBox="0 0 24 24" class="stroke">
138138
<path d="M15.5071469,14.0062893 L14.7166953,14.0062893 L14.4365352,13.7361349 C15.4170955,12.5954831 16.0074328,11.1146369 16.0074328,9.50371641 C16.0074328,5.91166381 13.095769,3 9.50371641,3 C5.91166381,3 3,5.91166381 3,9.50371641 C3,13.095769 5.91166381,16.0074328 9.50371641,16.0074328 C11.1146369,16.0074328 12.5954831,15.4170955 13.7361349,14.4365352 L14.0062893,14.7166953 L14.0062893,15.5071469 L19.0091481,20.5 L20.5,19.0091481 L15.5071469,14.0062893 L15.5071469,14.0062893 L15.5071469,14.0062893 Z M9.50371641,14.0062893 C7.01229274,14.0062893 5.00114351,11.9951401 5.00114351,9.50371641 C5.00114351,7.01229274 7.01229274,5.00114351 9.50371641,5.00114351 C11.9951401,5.00114351 14.0062893,7.01229274 14.0062893,9.50371641 C14.0062893,11.9951401 11.9951401,14.0062893 9.50371641,14.0062893 L9.50371641,14.0062893 L9.50371641,14.0062893 Z"></path>
139139
</svg>
140-
</div>
141-
Playlist Editor<div class="gb local" data-command="toggle" data-target="pleditorwrap">
142-
<svg viewBox="0 0 24 24" class="stroke">
143-
<path d="M18 6l-12 12"></path>
144-
<path d="M6 6l12 12"></path>
145-
</svg>
146-
</div></h2>
140+
</div>
141+
Playlist Editor
142+
<div class="gb local" data-command="toggle" data-target="pleditorwrap">
143+
<svg viewBox="0 0 24 24" class="stroke">
144+
<path d="M18 6l-12 12"></path>
145+
<path d="M6 6l12 12"></path>
146+
</svg>
147+
</div>
148+
</h2>
147149
<audio controls src="" id="audiopreview"></audio>
148150
<div id="previewinfo"></div>
149151
<div id="pleheader"><span class="grabbable">&#8693;</span><span class="space"><input type="checkbox" onclick="selectAll(this)" /></span><span class="plename">Name</span><span class="pleurl">URL</span><span class="pleovol">Ovol</span></div>

data/www/script.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,14 @@ function applyTZ(){
445445
websocket.send("sntp2="+getId("sntp2").value);
446446
websocket.send("sntp1="+getId("sntp1").value);
447447
}
448+
function applyMQTT(){
449+
websocket.send("mqttenable="+getId("mqttenable").value);
450+
websocket.send("mqtthost="+getId("mqtthost").value);
451+
websocket.send("mqttport="+getId("mqttport").value);
452+
websocket.send("mqttuser="+getId("mqttuser").value);
453+
websocket.send("mqttpass="+getId("mqttpass").value);
454+
websocket.send("mqtttopic="+getId("mqtttopic").value);
455+
}
448456
function rebootSystem(info){
449457
getId("settingscontent").innerHTML=`<h2>${info}</h2>`;
450458
getId("settingsdone").classList.add("hidden");
@@ -560,6 +568,7 @@ function continueLoading(mode){
560568
websocket.send('getscreen=1');
561569
websocket.send('gettimezone=1');
562570
websocket.send('getweather=1');
571+
websocket.send('getmqtt=1');
563572
websocket.send('getcontrols=1');
564573
getWiFi(`http://${hostname}/data/wifi.csv`+"?"+new Date().getTime());
565574
websocket.send('getactive=1');
@@ -638,6 +647,7 @@ function continueLoading(mode){
638647
}
639648
break;
640649
case "applytz": applyTZ(); break;
650+
case "applymqtt": applyMQTT(); break;
641651
case "wifiexport": window.open(`http://${hostname}/data/wifi.csv`+"?"+new Date().getTime()); break;
642652
case "wifiupload": submitWiFi(); break;
643653
case "reboot": websocket.send("reboot=1"); rebootSystem('Rebooting...'); break;

0 commit comments

Comments
 (0)