Home Assistant Community

Sending TCP packets to a device


doest it work friom ssh/putty , thats the real test


I tried these settings but i get “network error:connection refused”



putty is in port 22 , also enable SSH service first


Have you tried a return at the end? x0d


Did you get this working @Alex_Yeoman? I was looking at a NoHassleAV 8x8 matrix (https://www.amazon.co.uk/HDCP2-2-Selector-Crestron-Control4-Automation/dp/B01GKFQNG8) but ended up importing a J-Tech digital unit (all appear to be the same rebadged units - https://www.jtechdigital.com/j-tech-digital-8x8-hdmi-matrix-switcher-4k-60hz-ultra-hd-8-displays-hdmi-2-0-supports-hdcp-2-2-1-4-edid-dts-dolby-hd.html) from the US, so I’m about to start configuring this.


@Alex_Yeoman if you see connection refused, it’s possible you already have something using that port ?

If you set something up to make a call, unless you set a time out it might stay locked open to that connection. Make sure you have nothing else running and restart your matrix and see what happens

If you can, share a link to the device’s documentation and the ASCII or HEX commands you need to use .


I tried the commands from the config code directly on the command line and didn’t work, but then I realised you have curly quotes. Changed to straight quotes and it switches (and I see a response).


echo -e “\x40\x54\x30\x32\x30\x33\x23” | nc 5000

Yep (in this example switches output 3 to input 4):

echo -e "\x40\x54\x30\x32\x30\x33\x23" | nc 5000
@ 09 01 #30x32x30x33x23 ”

Edit - this works for me:

  - platform: command_line
        command_on: 'echo -e "\x40\x54\x30\x32\x30\x33\x23" | nc 5000'
        command_off: 'echo -e "\x40\x54\x30\x32\x30\x33\x23" | nc 5000'
        friendly_name: HDMI Matrix

Is there any setup for getting this to work in a hass.io install? Anything that needs to be enabled?

- platform: command_line
      command_on: 'echo -e "PWR ON\r" | nc 4999'
      command_off: 'echo -e "PWR OFF\r" | nc 4999'
      friendly_name: Projector

This does not work for me, but writing echo -e “PWR ON\r” | nc 4999 directly in the terminal at the ubuntu machine where HA/hass is installed works fine.


no problem for me, but my quoting is different in my setup, also running hassio on hassos

  friendly_name: Living
  command_on: echo -e "\xED\x43\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xAF\xAF\x43\x07\x01" | nc 1001
  command_off: echo -e "\xED\x43\x31\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xAF\xAF\x43\x07\x00" | nc 1001

Weird, I tried bot with and without the outer quotes, didn’t make a difference.


Jumping in for some help here,

my Sharp information display seems to REQUIRE a username and password, ive tried setting them to blank but it still asks for longin.

Ive tried writing a script to login like so:

echo "admin" | nc 10008
echo "admin" | nc 10008
echo "MUTE   1" | nc 10008

but it doesnt work for me.

Similarly, using the TCP sensor I get:

If I manually open a connection using Putty and login I can then send commands fine…


That’s 3 different TCP connections that you’re opening to, each of which sends a single line and closes the connection.

Maybe something like

(echo "admin"; echo "admin"; echo "MUTE 1") | nc 10008

which sends 3 lines into a single connection…

There are other tools like expect that allow you to script interactive sessions programmatically if you need to wait for prompts to appear, etc.

[email protected]:~$ (echo "admin"; echo "admin"; echo "MUTE 1") | nc 10008

It was a good attempt but no dice :frowning:

is there a way I can put delays into the command? giving it time to prompt for login / pass before sending it ?

sorry this is all new to me


I dunno, maybe try:

(echo "admin"; sleep 1; echo "admin"; sleep 1; echo "MUTE 1") | nc 10008

At some point, you probably need some other tool or small program to emulate an interactive session, rather than blindly shouting down a connection…


or just launch a .py file , easier to send messages then


I had problems to send the netcat commands from haasio as well…

I ended up to make a ssh loop and it worked. Perhaps this helps someone…

ssh -o StrictHostKeyChecking=no -i /config/ssh/id_rsa [email protected] ‘echo 38ff0000aa83 | xxd -r -p | nc 8189’

Thats my command.