Skip to end of metadata
Go to start of metadata

Kommunikation von IFTTT zum Miniserver:

Um IFTTT an den Miniserver anzubinden müsst ihr euch zunächst einen Server für Https Requests erstellen. Dies macht ihr wie in Https Request mit SSL empfangen beschrieben.

Dann könnt ihr in IFTTT ein Applet erstellen, als "This" sucht ihr euch etwas beliebiges aus. Als "That" nehmt ihr dann den Maker Service und wählte "Make a web Request" aus. Dort tragt ihr dann bei URL eure entsprechende URL vom HTTPS Server ein, samt Http_Route und dem Befehl den ihr senden wollt. Das sollte dann so aussehen:  my.dynDNS:HttpPort/Http_Route/Befehl, Zudem  müsst ihr bei Methode noch "Post" auswählen!

Dann solltet ihr das was ihr als Befehl angegeben habt per UDP an den MS bekommen sobald das Applet ausgelöst wird.

 

Vom Miniserver zu IFTTT:

Hierfür müsst ihr ein zweites Python Script installieren. Ihr erstellt das Script zunächst mit:

nano UDP2IFTTT.py

dann tragt ihr folgenden Code dort ein:

#!/usr/bin/python
# -*- config: utf-8 -*-

import sys
import socket
import requests
import ssl

# !!!! BEGIN CHANGE ME !!!!

Miniserver_IP = ""
UDP_Port = 8887

IFTTT_Key = "kjshdfkz7892345kjhsvfzr2"

# !!!! END CHANGE ME !!!!

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(("", UDP_Port))

#Main
if __name__ == '__main__':

    try:
       while True:
          data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes
          if Miniserver_IP in str(addr):
             r = requests.post('https://maker.ifttt.com/trigger/' + data.decode("utf-8")  + '/with/key/' + IFTTT_Key)
             print ('received message ' + data.decode("utf-8"))
#          else:
#             print ('received message from wrong IP ' + str(addr))
    except KeyboardInterrupt:
      print ('Schliesse Programm..')
      sys.exit()

Folgende 3 Punkte am Code müsst ihr noch ändern:

Miniserver_IP: tragt ihr hier eure Miniserver IP ein werden nur UDP Nachrichten von dieser IP weiter geleitet. Wenn ihr das nicht wollt lasst ihr es einfach leer.
UDP_Port: UDP Empfangsport des RPi
IFTTT_Key: Euer Key des Maker Service

 

Euren Key erfahrt ihr indem ihr zunächst ein Applet in IFTTT erstellt und dort als "This" den Maker Service auswählt. Hier tragt ihr dann euren Befehl ein (Das was ihr per UDP raus schicken wollt).

Habt ihr das Applet fertig gestellt geht ihr dann unter "Services" → "Maker" → "Setting" dort seht ihr dann die URL unter welcher ihr euren Maker Service erreichen könnt. Der Teil hiner dem letztn "/" ist der Key, den trag ihr in den Code ein.

Sobalb ihr nun ein UDP Telegramm an den RPi auf den passenden Port schickt wird euer Maker Service mit diesem Befehl aufgerufen.

 

Nun könnt ihr das ganze testen:

 

python UDP2IFTTT.py

 

Um das Programm beim Starten zu starten geht ihr wie folgt vor:

 

sudo crontab -e

 

hier trag ihr dann folgendes ein:

 

@reboot python /home/pi/UDP2IFTTT.py > /dev/null 2>&1

 

So und schon sollte es laufen.

 

Falls fragen sind bitte einfach melden.

 

Gruß Christian

  • No labels

3 Comments

  1. Verstehe ich das richtig dass ich z.B. noch einen Raspberry einrichten muss quasy als Web Gateway ?
    Möchte die Wireless Sensor Tags auslesen/steuern: https://store.wirelesstag.net/collections/all

    1. Sehr interessante Geschichte...

      Das Verstehe ich auch so das ein Raspi benötigt wird. Vielleicht sollten wir das als LoxBerry PlugIn Wunsch eintragen...

      1. Wird zusätzlich auch noch ein "Ethernet Tag Manager" benötigt oder nur die Sensoren?

        https://wirelesstags.myshopify.com/products/ethernet-tag-manager

         

        Ethernet Tag Manager