Pages: [1]   Go Down
Author Topic: Arduino Facebook notificator  (Read 1384 times)
0 Members and 1 Guest are viewing this topic.
Germany
Offline Offline
Newbie
*
Karma: 1
Posts: 26
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tach leute,

ich hab eine Idee, die sich aber vermutlich garnicht oder furchtbar schwer umsetzten lässt...

Frei nach dieser idee: http://www.instructables.com/id/Arduino-XMAS-hitcounter/

möchte ich folgendes bauen:

Sobald ich eine Facebook notification bekomme (Freundschaftsanfrage, nachrichten oder infos wie Pinwandeinträge etc) soll der Arduino eben wie in dem Tutorial mit einem Glöckchen klingeln.
Die Frage ist nur: Wie mach ich das? Ich habe nur einen Arduino Uno (servo etc). Vermutlich muss dann ein Script auf dem PC im hintergrund laufen und der Arduino verbunden sein, oder?

Ich habe mir mal das Script aus dem Tutorial angeschaut, aber ich werde daraus nicht wirklich schau, leider.

Evtl hat ja jemand von euch ne Idee.

MfG

Logged

If Chuck Norris sees a Antilope driving a car, it's NOT Chuck Testa.

Offline Offline
Sr. Member
****
Karma: 2
Posts: 260
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

google mal nach "Facebook API" oder "Facebook API neue nachrichten", die API ist die Datenschnittstelle von Facebook.
Damit sollte sich eventuell abfragen lassen, ob du neue Nachrichten in deinem Account hast.

Das kannst du dann mit dem Ethernet Shield auch ohne dauernd laufenen PC realisieren.
Logged

Germany
Offline Offline
Newbie
*
Karma: 1
Posts: 26
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Danke, ich schaue mal danach - Allerdings habe ich das Ethernet shield nicht und willd as auch nicht aufgrund eines seeeeeehr... hoooheen... preises. smiley-wink

Für 1 mal kurz was basteln brauch ich das nicht. Das mach ich über PC.

MfG und nochmals Danke smiley
Logged

If Chuck Norris sees a Antilope driving a car, it's NOT Chuck Testa.

Germany
Offline Offline
Full Member
***
Karma: 1
Posts: 130
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

das habe ich mir auch schonmal überlegt und auch massive Nachforschungen angestellt um den Weg des wirtschaftlichen Prinzips zu gehen. Also den des geringsten Wiederstandes ;-)
Dazu habe ich mich dann entschlossen mein altes Windows Mobile Telefon dazu zu missbrauchen. Es sind doch einige Zeilen Code und viele Vorraussetzungen zu erfüllen um das zu realisieren. Da stößt man imho schnell an die Grenzen des Arduino.
Abgesehen davon ist eine langwierige Registrierung notwendig um ein "App" bei FB bekannt zu machen und Zugriff zur API zu gelangen.
Werde in den nächsten Wochen daran mal weiter bauen und hoffentlich ein paar Ergebnisse posten!

Gruß,
trib
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich hätte auch daran interesse. Aktuelle versuch ich es eine Benachrichtigung für gMail, aber irgendwie klappt bei mir die Verbindung zwischen Arduino und Python Skript gar nicht..
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So hab schon mal die erste Schritten gemacht und mein Skript zeigt mir schon die ersten Notifications von Facebook an.Leider stürzt das Skript danach ab..weiß aber noch nicht so genau warum..
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dann poste doch mal den Code, vielleicht kann Dir hier geholfen werden.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hab den Fehler aushebeln können, indem ich die Anzahl in der For schleife runtergesetzt habe. Ab einer gewissen Anzahl bekommt man eine Fehlermeldung.

Es läuft recht gut. Aber vor einem anderen Problem stehe ich jetzt.
In meiner Lösung, ruft er nur die Notifications auf. Da Facebook ja die Notifications speichert, meint das Skript jetzt immer, dass es immer etwas neues gibt, auch wenn man die Notification schon gesehen hat.

Überlege grad eine Lösung, wie ich überprüfen kann, ob diese Notification schon gelesen wurde oder noch nicht.

Code:
try:
ser = serial.Serial(SERIALPORT, 9600)
print "Serial connected"
time.sleep(3.0)
except serial.SerialException:
print "no device connected - exiting"
sys.exit()

for i in range(1, LOOPS):
        newnotification= feedparser.parse(FACEBOOK)

//hier sollte eine Überprüfung rein
        for i in range(1, 3):
                print newnotification['items'][i-1].title


Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Leider beschreibst Du nicht die Lösung, WIE Du an die Notifications kommst. Das macht es natürlich schwer Dir zu helfen. Ich vermute mal, Du fragst eine Art RSS-Feed ab? Da die eigentliche Arbeit Dein Python-Script macht und das läuft auf einem Rechner der über genügend Speicher und Festplattenplatz verfügt, würde ich die Liste der letzten Notifications speichern und nach jedem neuen Abrufen überprüfen ob es Änderungen gibt. Erst dann werden diese signalisiert.
Logged

Germany
Offline Offline
Full Member
***
Karma: 1
Posts: 130
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Man kann in der API die Notifications quittieren. Dann erscheint sie nicht nocheinmal.
Allerdings würde ich auch lieber den Weg gehen, sich die Notification ID zu merken und diese dann nicht erneut anzuzeigen.
Denn der Arduino soll ja schließlich nur als Info dienen und die Nachricht/Was auch immer soll dann im Browser oder der App angezeigt werden.

Dem serial.Serial nach zu urteilen, läuft der Ardu dauerhaft über einen PC? Bin ja immer noch auf der Suche nach einem vernünftigen WindowsMobile Programm...
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
import serial, sys, feedparser, time

FACEBOOK="https://www.facebook.com/feeds/notifications.php"
SERIALPORT = "COM7" # Change this to your serial port!
LOOPS=2
# Set up serial port
try:
ser = serial.Serial(SERIALPORT, 9600)
print "Serial connected"
time.sleep(3.0)
except serial.SerialException:
print "no device connected - exiting"
sys.exit()

for i in range(1, LOOPS):
        newmails = feedparser.parse(FACEBOOK)


        for i in range(1, 3):
                print newmails['items'][i-1].title


# Output data to serial port
if newmails > 0:
ser.write(1)
print "new notification"
else:
ser.write(0)
print "no notification"
#print data to terminal


# Close serial port
ser.close()

Das ist mein Code. Man mus aber den Facebook link anpassen. Kann leider nicht MEINEN Link zur verfügung stellen, aber ich greife auf die RSS Notification Schnittstelle zu.

Gute Idee mit dem Schreiben in einer Datei..werd es mal versuchen..Hat jemand eine Ahnung wie man es machen kann, dass er immer zuvor ließt und bei änderungen, dann in die Datei schreibt?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Keiner eine Idee?

Bin schon etwas weiter und ich kann jetzt die Facebook Notifications in eine Datei schreiben, aber jetzt weiß ich noch nicht wie ich die Datei lese und zeile für zeile durchgehen kann...
Logged

Pages: [1]   Go Up
Jump to: