Cortana Cortana ist eine in Windows 10 integrierte Spracherkennung. Erstellen Sie eine Verknüpfung im Startmenü, damit der Befehl in Windows 10 Cortana erkannt wird. Erstellen Sie einen Halter namens ifttt und platzieren Sie die Verknüpfung. Zum Beispiel "Schalten Sie das Licht ein Wenn Sie "" öffnen, wird die Verknüpfung ausgeführt. ** Achtung ** Unmittelbar nach dem Platzieren wird es nicht erkannt. Klicken Sie zum Ausführen darauf.
C:\Users\{Nutzername}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\ifttt
Erstellen Sie eine Verknüpfung für den folgenden Ausführungsbefehl.
Das Verbindungsziel ist das folgende Programm.
C:\Users\hirat\Anaconda3\python.exe C:/Users/hirat/source/repos/shortCut0/ifttt.py TV
ifttt.py. Ich habe einen einfachen Webanforderungsbefehl erstellt. Wenn Sie eine Anfrage an ifttt mit Python codieren
ifttt.py
import os,sys,requests
if __name__ == '__main__': r=requests.post('https://maker.ifttt.com/trigger/HomeControl/with/key/{Schlüsselzeichenfolge}',
{'value1':sys.argv[1]})
print(r.text)
Installieren der Windows Script Host-Bibliothek
pip install pypiwin32
Verwenden Sie Windows Script Host, um programmgesteuert Windows-Verknüpfungen zu erstellen.
shortcut0.py
import win32api as WScript
import win32com.client
if __name__ == '__main__':
cortana={"1 Kanal":"1","2 Kanäle":"2","3 Kanäle":"3","4 Kanäle":"4","5 Kanäle":"5","6 Kanäle":"6","7 Kanäle":"7","8 Kanäle":"8","9 Kanäle":"9","10 Kanäle":"10","11 Kanal":"11","12 Kanäle":"12","TV-Netzteil":"TV","TV-Kanal Plus":"cup","Fernsehkanal minus":"cdwn","Erhöhen Sie die TV-Lautstärke":"vup","Verringern Sie die TV-Lautstärke":"vdwn","Stumm":"vcut","bs":"bs","cs":"cs","bs1":"bs1","bs2":"bs2","bs3":"bs3","bs4":"bs4","bs5":"bs5","bs6":"bs6","bs7":"bs7","bs8":"bs8","bs9":"bs9","bs10":"bs10","bs11":"bs11","bs12":"bs12","inUp":"inUp","inDwn":"inDwn","ent":"ent","Mach das Licht an":"on","Schalte das Licht aus":"off","Favorit":"fav","Sicherheitslicht":"small","Hell":"lup","Dunkel":"ldwn","Schalten Sie die Klimaanlage ein":"ac","Stoppen Sie die Klimaanlage":"acoff","Schalten Sie die Heizung ein":"heeting","Entfeuchten":"Joshitsu","Funkstrom":"ron","Radio 1":"r1","Radio 2":"r2","Radio 3":"r3","Radio 4":"r4","Radio 5":"r5","Radio 6":"r6","Radio 7":"r7","Radio 8":"r8","Radio 9":"r9","Radio 0":"r0","Erhöhen Sie die Lautstärke des Radios":"R+","Verringern Sie die Lautstärke des Radios":"R-","Radio nächster Kanal":"r>"}
for key,item in cortana.items():
WshShell = win32com.client.Dispatch("WScript.Shell")
shortCut=WshShell.CreateShortcut("C:/Users/hirat/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/ifttt_p/%s.lnk"%key)
shortCut.TargetPath="python.exe"
shortCut.Arguments = "C:/Users/hirat/source/repos/shortCut0/ifttt.py %s"%item
shortCut.IconLocation ="C:/Users/hirat/source/repos/shortCut0/favicon.ico"
shortCut.Save()
Webhooks definieren.
Sie können die ifttt-Anfrage von der folgenden URL erhalten. https://ifttt.com/maker_webhooksから
MQ (Message Queuing) ist eine der Methoden zum Senden und Empfangen von Daten zwischen verschiedenen Softwareprogrammen. Anstatt die Daten direkt weiterzuleiten, werden sie vorübergehend in der Software eines Drittanbieters abgelegt, sodass sowohl der Sender als auch der Empfänger das gewünschte Timing verwenden können. Eine Methode, die die Sende- / Empfangsverarbeitung mit ermöglicht. Dieses Mal verwende ich es, um die Schnittstelle zwischen dem PC und Raspberry PI zu verbinden. Ursprünglich wird es verwendet, um den Hauptrahmen und verschiedene Systeme wie Geldautomaten zu verbinden.
Unmittelbar nach dem Anmelden werden ein Test und ein Kanal erstellt.
Notieren Sie sich den Kanal-Token. Öffnen Sie die Konsole und stellen Sie sicher, dass Sie senden und empfangen können.
{ "channel": "test", "resource": "res", "eid": "test.res", "data": "Hello World", "ts": 1573277790737 }
Wenn Sie und Hallo Welt von Publish abonnieren können, ist es OK! Testen Sie als Nächstes, ob das im LAN verbundene Raspberry PI-Python-Programm abonniert werden kann. Laden Sie das Zertifikat herunter, um von https://beebotte.com/certs/mqtt.beebotte.com.pem darauf zuzugreifen.
test.py
import paho.mqtt.client as mqtt
import json
HOST = 'mqtt.beebotte.com'
PORT = 8883
CA_CERTS = 'mqtt.beebotte.com.pem'
TOKEN = '{Token-Zeichenfolge}'
TOPIC = 'test/res' #Kanal/Ressource
#Wenn verbunden
def on_connect(client, userdata, flags, respons_code):
print('on_connect status {0}'.format(respons_code))
#Wenn Sie eine Nachricht erhalten
def on_message(client, userdata, msg):
msg=json.loads(msg.payload.decode("utf-8"))
mqmsg=msg['data']
print(mqmsg)
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.username_pw_set('token:%s' % TOKEN)
client.tls_set(CA_CERTS)
client.connect(HOST, PORT)
client.subscribe(TOPIC)
print('start')
#Ereignisschleife
while True:
try:
client.loop_start()
except:
break
print('exit')
Wenn Sie dies in einem Python-Programm codieren
publish.py
import os,sys,requests,json
if __name__ == '__main__':
payload = {'data': sys.argv[1]}
r=requests.post('https://api.beebotte.com/v1/data/write/test/res?token=token_X5Gyvy1ymKHzpBQd',payload)
print(r.text)
Ausführungsergebnis
C:\Users\hirat\source\repos\mqtt>python publish.py "Hallo Welt Tokio"
true
C:\Users\hirat\source\repos\mqtt>test.py
start
on_connect status 0
Hallo Welt Tokio
exit
Curl zum Testen
curl -i -H "Content-Type: application/json" -X POST -d '{"data":"Hello World form curl"}' https://api.beebotte.com/v1/data/write/test/res?token=token_X5Gyvy1ymKHzpBQd