Witam,
czy ktoś może mnie nakierować… Potrzebuje zebrać staty przez telnet
- platform: tcp
name: A1_temp
host: 192.168.0.140
port: 4028
timeout: 5
payload: '{"command":"temps"}'
# value_template: "{{ value.split(';')[0] }}"
unit_of_measurement: test
po telnecie działa {“command”:“temps”}, mam jakiś problem z ciapkami żeby to uruchomić.
Od razu spytam również o to w jaki (prosty) sposób sparsować wynik JSON,a
system telnet 192.168.0.140 4028
Connecting to 192.168.0.140
Connected to 192.168.0.140
{"command":"temps"}{"STATUS":[{"STATUS":"S","When":1649153389,"Code":201,"Msg":"3 Temp(s)","Description":"0.1.0-6c87"}],"TEMPS":[
{"TEMP":0,"ID":6,"Board":55.5625,"Chip":73.25},
{"TEMP":1,"ID":7,"Board":55.8125,"Chip":75.0625},
{"TEMP":2,"ID":8,"Board":55.3125,"Chip":73.9375}],
"id":1}
Remote closed connection: 192.168.0.140
Welcome back!
Z góry dzięki za pomoc
EDIT:
Witam ponownie,
zmieniłem platform na:
* platform: command_line
i chce wysłać komendę: {“command”:“temps”}
robię to tak (wiem że źle):
command: “echo ‘{“command”:“temps”}’ | nc 192.168.0.140 4028”
wydaje mi się że nieprawidłowo wysyłam w komendzie znak "
uruchamiając w konsoli polecenie:
root@homeassistant:/home# echo “{“command”:“temps”}” | nc 192.168.0.140 4028
przychodzi ładny json
Z góry dzięki za pomoc
Edit 2:
Witam ponownie.
Odpowiem sobie sam może komuś się przyda (uruchamiam skryp z parametrami ip urządzeń i do parsowania json’a):
w configuration.yaml:
platform: command_line
name: A1_B0
command: “skrypty/a1_temp2 192.168.0.140 0 Board”
scan_interval: 30
unit_of_measurement: “°C”
skrypt:
#!/bin/sh
echo ‘{“command”:“temps”}’ | nc $1 4028 | jq -r ‘.TEMPS[’$2’].’$3’’
PS: jak zrobić w prosty sposób round do 2ch miejsc po przecinku i tak żeby wyświetlało dwa zera .00?
Pozdrawiam