my apologies upfront, as I think this is quite a bit off-topic for node-red in genaral or its dashboard cateory.
But my google-fu lost me and I am hoping some of you might have an idea on how this can be done.
The task is simple enough...I would like to display a node-red dashboard as a wallpanel on my TV.
The "normal" way of doing this, of course is to use a device that does access the dashboard via browser and renders the display output via HDMI or similar interface/socket/casting solution on the TV.
To be honest, I consider these methods as too oldschool, too cumbersome and I am already running out of interfaces, probably spending more electricity on HDMI switches as I do on the TV itself.
I do own a 4K TV with support for TV-channels based on DVB, analog, and IPTV.
Hence using IPTV for accessing the dashboard is what I would like to do.
The advantage from a TV-User point of view is the ease of use, as an IPTV channel can be stored in the channel list (HDMI inputs are no TV-channel and are not part of the channel-list, so accessing these needs a lot more navigation/button-presses on the remote).
So what I would like to do is create my own IPTV channel from the browser-output, pointed to the node-red dashboard.
Any clues/hints from you are very much appreciated!
Many thanks in advance and best regards,
hominidae
However, I'm not sure that you've quite understood how IPTV actually works? It is very easy to create a custome IPTV channel list but the channels are all video streaming channels.
That means that you would need to convert your Dashboard output into a video stream. That doesn't seem terribly sensible and would likely use far more electricity than simply running a browser with rotating pages.
Now, your "smart" TV almost certainly has a built in browser as well so you just need to make sure that your smart TV is on a network that is connected to the network your Node-RED server is also on. Then in Node-RED, either create your Dashboard and use the ui control node to switch tabs periodically or use something like uibuilder to create custom pages that reload to the next page in sequence periodically.
Yes, this is what I want...convert the dashboard output into a video stream / IPTV channel.
The embedded browser in my TV is....let*s call it limping at best, as the CPU in this thing is not built for this kind of workload. Also, getting acces to the Browser and URL (even when using bookmarks) through the clicks on a Remote is also a nightmare.
Employing a RPi (Zero) and ist HDMI output maybe would do, saving about 90% of the clicks, but still cost quite some time until the dashboard shows.
On an IPTV channel, I could simply use up/down channel switch or a favourite channel settinmg/store to access / flip to the dashboard view in an instant.
That is my whole point
So it comes down to turning rendered HTML into a video stream.
I expect that there are tools to turn HTML into an image - then you can turn a series of images into video then turn the video into a stream. Maybe you will be lucky and find a tool that can go from images to a stream directly.
Instead of rendering the HTML into a stream - render the HDMI output into a stream - much easier to do - but also will cost more upfront - there are a lot of devices that capture HDMI streams in realtime, the secret sauce is finding one that will output it in realtime over an IP stream.
You will need to read up on your TV's capabilities first as to what IPTV style and version of streams it supports and where it gets its list of available streams from.
Yes, using another HDMI-output is another option, I am going to look into.
I*ve been tinkering to add PiP capability to my TV (having only single SAT.Disk outlets, PiP would only work for channels on the same transponder, based on the channel the TV is tuned to), so I added a DVB-S2 card and tvheadend to my NAS, providing the channels via IPTV/RSTP.
The TV (brand is LOEWE, they are out-of business, so no updates to firmware) can handle these fine.
It does not offer native plex or kodi support.....
It is great and I've used it. Indeed I was using it for doing green-screen backgrounds on video conferencing. However, it is a Windows desktop tool and takes a lot of resources. It doesn't meet your "reducing electricity" requirement for sure
I made a quick test with OBS.
Great Tool and fetching data via Browser is a standard source / capability.
When the browser view updates itself, like from node-red dashboard, you get a nice live-stream.
Unfortunately OBS does not offer the "Programme" as a servcice, but rather wants to store the video in a file or stream it to a server.
As a TV will be a client, this will not be easy.
The trick I discovered, is using a multicast address in the manual stream-server config mode.
I used udp://224.0.0.1:9999?pkt_size=1316 and tested with VLC as client.
This worked flawlessly
In terms of resources, I used Quicksync_h265 (hardware Intel IGP on my PC) as codec and the total CPU load, including running the VLC player on the same laptop (i3-7020U@2.3MHz with IGP), increased by 4%, memory consumption of OBS on Win10 is about 250MB while streaming.
I will will now try to move this to my 24x7 NAS (i3-8100) in docker or VM and then trying to get my TV accessing the stream (either direct or via re-broadcasting from VLC).
I'll report back, if I fully succeed (or if not, anyway).