[più divertente di The Incredible Machines] Shortcuts, le macro in linguaggio naturale di iOS
Nov 8, 2018 11:24:39 GMT 1
Post by eglio on Nov 8, 2018 11:24:39 GMT 1
Ragazzi funziona
ecco la famosa Shortcut che con un solo tocco resetta il volume del decoder a 90 e (grazie allo script python) della tv a 33
www.icloud.com/shortcuts/de1334400d574f79bf797faa427eaad6
posso confermare che funzionano perfettamente i salti fra ambiente Shortcut e ambiente Pythonista, senza soluzione di continuità e con l’algoritmo Shortcut che va in pausa mentre gira lo script Python e poi dopo riprende tranquillamente
non so se vi rendete conto di cosa questo significhi per il già potente ambiente Shortcut di iOS
poter inframmezzare script python a piacimento (i più semplici alla portata di uno che incolla roba trovata in giro come me)
e Android sarebbe il sistema per smanettoni?
iOS grazie alle Shortcut è il campione dell’automazione
pazzesco
beata ingenuitá di Linus, androidari, IT guyz, ecc.
# Script python per comunicare con smart tv Sony tramite protocollo low level in TCP verso porta 20060; integrabile all'interno di algoritmi Shortcut su iOS, previa installazione della app Pythonista 3
# Affinchè funzioni, la porta deve essere aperta nel menù della tv attivando "Semplice controllo IP" (Simple IP Control) nelle impostazioni di rete
# Documentazione con la lista dei comandi:
# https://bit.ly/2ATaTgQ
# Nell'esempio sottostante: comando per portare il volume al valore di 33/100 (funzione non disponibile tramite protocollo high level in HTTP)
# INIZIO SCRIPT
# importazione dei moduli necessari
import socket
import sys
import webbrowser
import console
# definizione di IP della tv e porta in ascolto (cambiate l'IP con quello della vostra tv)
HOST, PORT = "192.168.1.67", 20060
# comando in hex, per comodità scomposto nelle sue parti fisse, semifisse e variabili
headerhex = "2A 53"
typehex = "43"
functionhex = "56 4f 4c 55"
parameterhex = "30 30 30 30 30 30 30 30 30 30 30 30 30 30 33 33"
footerhex = "0A"
#(nelle tabelle dei comandi è tutto in ASCII, voi dovete convertire tutto in hex, compresi gli interi, quindi "0" non è 00 ma 30, "1" è 31, "#" è 23 e così via)
# conversione da hex in bytes
header = bytes.fromhex(headerhex)
type = bytes.fromhex(typehex)
function = bytes.fromhex(functionhex)
parameter = bytes.fromhex(parameterhex)
footer = bytes.fromhex(footerhex)
# composizione byte stream da 24 bytes definitivo
command = header + type + function + parameter + footer
# verifica che il comando sia da 24 bytes
lenght = len(command)
if lenght != 24:
sys.exit("Error, wrong number of bytes, please input 24 bytes (2 + 1 + 4 + 16 + 1).")
else:
pass
# definizione del socket (SOCK_STREAM indica TCP)
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
# connessione al server e invio dati
sock.connect((HOST, PORT))
sock.sendall(command)
# ascolto della risposta della tv per 24 bytes
answer=sock.recv(24)
# stampa dei risultati
console.clear()
print("Io ho inviato:")
print(command)
print()
print("La tv Sony ha risposto:")
print(answer)
# comando che riporta dentro l'algoritmo Shortcut, il quale proseguirà regolarmente
webbrowser.open('shortcuts://')
# FINE SCRIPT
ecco la famosa Shortcut che con un solo tocco resetta il volume del decoder a 90 e (grazie allo script python) della tv a 33
www.icloud.com/shortcuts/de1334400d574f79bf797faa427eaad6
posso confermare che funzionano perfettamente i salti fra ambiente Shortcut e ambiente Pythonista, senza soluzione di continuità e con l’algoritmo Shortcut che va in pausa mentre gira lo script Python e poi dopo riprende tranquillamente
non so se vi rendete conto di cosa questo significhi per il già potente ambiente Shortcut di iOS
poter inframmezzare script python a piacimento (i più semplici alla portata di uno che incolla roba trovata in giro come me)
e Android sarebbe il sistema per smanettoni?
iOS grazie alle Shortcut è il campione dell’automazione
pazzesco
beata ingenuitá di Linus, androidari, IT guyz, ecc.