Thanks for this. I actually can’t even send commands to the HDMI matrix via packet sender…it won’t connect. I’ll fix this first then try your suggestions. Thanks again!
Does anybody see what I’m doing wrong? I get the following error sending commands to my HDMI matrix.
2019-02-23 14:02:51 INFO (SyncWorker_13) [homeassistant.components.switch.command_line] Running command: echo -e “\x40\x54\x20\x30\x30\x20\x30\x30\x20\x21” | nc 192.168.0.210 5000
2019-02-23 14:02:51 ERROR (SyncWorker_13) [homeassistant.components.switch.command_line] Command failed: echo -e “\x40\x54\x20\x30\x30\x20\x30\x30\x20\x21” | nc 192.168.0.210 5000
This is my config code…
switch:
- platform: command_line
switches:
hdmi_matrix:
command_on: echo -e “\x40\x54\x20\x30\x30\x20\x30\x30\x20\x21” | nc 192.168.0.210 5000
command_off: echo -e “\x40\x54\x20\x30\x30\x20\x30\x30\x20\x21” | nc 192.168.0.210 5000
friendly_name: HDMI Matrix
(I’ve also treid with \x0D on the end of the command)
The code works when I send via packet sender
For a start the command_off does not have a port (5000 in the command_on.
nice catch…but it didn’t help.
doest it work friom ssh/putty , thats the real test
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).
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
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.
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
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:
#!/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…
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.
lmartin@ubuntu:~$ (echo "admin"; echo "admin"; echo "MUTE 1") | nc 172.16.0.53 10008
Login:
Password:
It was a good attempt but no dice
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 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…
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 root@localhost ‘echo 38ff0000aa83 | xxd -r -p | nc 192.168.10.50 8189’
Thats my command.