Home Assistant Community

Sending TCP packets to a device

#41

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

#42

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

image

HDMI CEC Matrix
#43

putty is in port 22 , also enable SSH service first

#44

Have you tried a return at the end? x0d

#45

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.

#46

@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 .

#47

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).

Nope:

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

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

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

Edit - this works for me:

switch:
  - platform: command_line
    switches:
      hdmi_matrix:
        command_on: 'echo -e "\x40\x54\x30\x32\x30\x33\x23" | nc 192.168.1.168 5000'
        command_off: 'echo -e "\x40\x54\x30\x32\x30\x33\x23" | nc 192.168.1.168 5000'
        friendly_name: HDMI Matrix
#48

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

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

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

#49

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

sc_living:
  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 192.168.0.10 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 192.168.0.10 1001
#50

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

#51

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:

#!/bin/bash
echo "admin" | nc 172.16.0.53 10008
echo "admin" | nc 172.16.0.53 10008
echo "MUTE   1" | nc 172.16.0.53 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…

#52

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

Maybe something like

(echo "admin"; echo "admin"; echo "MUTE 1") | nc 172.16.0.53 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.

#53
[email protected]:~$ (echo "admin"; echo "admin"; echo "MUTE 1") | nc 172.16.0.53 10008
Login:
Password:

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

#54

I dunno, maybe try:

(echo "admin"; sleep 1; echo "admin"; sleep 1; echo "MUTE 1") | nc 172.16.0.53 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…

#55

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

#56

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 192.168.10.50 8189’

Thats my command.