Preisvergleich via Telegramnachricht (Preiswecker)

Begonnen von t1me2die, 13 September 2018, 15:41:30

Vorheriges Thema - Nächstes Thema

t1me2die

Moin liebe Leute,

wenn ihr gerne per Telegram benachrichtigt werden wollt, wenn einer euer Wunschpreise gefallen ist / erreicht wurde, dann könnt ihr jetzt weiterlesen.
Falls nicht, ist es wohl uninteressant für Euch.

Zur Vorgeschichte:
Seit geraumer Zeit beobachte ich diverse Produkte über Idealo.de und aktualisiere fleißig jeden Morgen im Bett meine diversen Tab's auf dem iPhone um ja nicht den besten Preis zu verpassen.
Nun gut, einige werden sich jetzt fragen, warum trägt er sich nicht in den Idealo-Preiswecker-Newsletter ein.
Zum einen habe ich festgestellt, dass die Benachrichtigungsmail von Idealo erst Stunden nach der Preisaktualisierung kommt und man manchmal schon zu spät ist.
Des Weiteren habe ich keine Lust meine Mail-Adresse an Idealo weiterzugeben und die mit dem Preiswecker verbundenen Newsletter zu akzeptieren.

So ist dieses kleine, aber für mich wirklich hilfreiche Projekt entstanden.

Am Anhang habe ich einige aktuelle Screenshots angehängt.
Außerdem ist im Anhang das Modul, welches ihr benötigt.

Voraussetzungen:

  • Telegram muss eingerichtet sein (es muss ein Device mit dem TYPE=TelegramBot vorhanden sein)


1. packt die 40_checkPVG.pm in euren FHEM Ordner "/opt/fhem/FHEM"
2. reload 40_checkPVG.pm
3. define PVG checkPVG <euer-TelegramBot-Devicename>


Beim define müsst ihr euer TelegramBot Device nicht angeben, dieser Parameter ist optional und nur für die Leute notwendig, die mehr als ein Device mit dem TYPE=TelegramBot haben!

Das war es schon!

Wie legt ihr nun einen Preisvergleich / Preiswecker an?

  • Sucht Euch zuerst über idealo.de euer Wunschprodukt heraus
  • Notiert Euch die URL
  • Geht in euren Telegram Chat


Preisvergleich [URL-vom-Wunschprodukt] [Preis]


Beispiel an einem iPhone X 64GB space grau für unter 900€

Preisvergleich https://www.idealo.de/preisvergleich/OffersOfProduct/5738787_-iphone-x-64gb-space-grau-apple.html 900€
oder
Preisvergleich https://www.idealo.de/preisvergleich/OffersOfProduct/5738787_-iphone-x-64gb-space-grau-apple.html 900EURO
oder
Preisvergleich https://www.idealo.de/preisvergleich/OffersOfProduct/5738787_-iphone-x-64gb-space-grau-apple.html 900


Einen Preis müsst ihr nicht angeben, dies ist ein optionaler Parameter!

Ohne Preis erhaltet ihr bei jeder Preisänderung eine Nachricht!
Mit Preis erhaltet ihr nur eine Benachrichtung, wenn euer Preis unterschritten wurde (Preiswecker).

Wenn nun alles erfolgreich war, erhaltet ihr kurze Zeit daraufhin eine Nachricht.

Weitere Eingabemöglichkeiten:

Start Preisvergleich [Name]
Stop Preisvergleich [Name]
Lösche Preisvergleich [Name]
Ändern Preisvergleich [Name]
Meine Preisvergleiche


Der "Name" von eurem Gerät ist nur optional.
Ohne "Name" erhaltet ihr eine Liste aller Preisvergleiche die ihr erstellt habt!

Erläuterung:

Start Preisvergleich = Zeigt alle inaktiven Preisvergleiche an, die gestartet werden können
Stop Preisvergleich = Zeigt alle aktiven Preisvergleiche an, die gestoppt werden können
Lösche Preisvergleich = Zeigt alle Preisvergleiche an, die gelöscht werden können
Ändern Preisvergleich = Zeigt Euch alle Preisvergleiche an, wo ihr den Preis ändern könnt
Meine Preisvergleiche = Zeigt Euch alle Preisvergleiche an, die ihr angelegt habt



Gebt ihr nun den optionalen Parameter "Name" mit, so ergibt sich folgende Erläuterung:


Start Preisvergleich [NAME] = Startet den Preisvergleich mit dem eingegebenen Namen
Stop Preisvergleich [NAME]  = Stoppt den Preisvergleich mit dem eingegebenen Namen
Lösche Preisvergleich [NAME]  = Löscht den Preisvergleich / alle mit dem Preisvergleich verbundenen Geräte wieder
Ändern Preisvergleich [NAME] [BETRAG] = Ändert den Preisvergleich mit dem angegebenen Namen (Bsp.: Ändern Preisvergleich iPhone X 500€)


Wie immer gilt:
Ich habe die Funktionen soweit es mir möglich nach besten Gewissen getestet, jedoch kann ich Fehler nicht ausschließen!
Verwendung auf eigene Gefahr!

Für Verbesserungsvorschläge / Ideen bin ich gerne offen.
Und nun wünsche ich Euch viel Spaß beim testen / Shoppen  :D

Gruß
Mathze

Christoph Morrison

Ich fände es super, wenn du daraus ein richtiges Modul machen würdest. Die Idee ist wirklich super und richtig nützlich und wieder ein Schritt weiter in Zentrale für Allesmögliche / Smart Digital Assistant oder wie auch immer man das nennen mag.

Esjay

Ich kann mich durch die App per Push benachrichtigen lassen, von daher sehe ich den Vorteil nur darin, dass ich eine Nachricht bekomme, sobald sich der Preis geringfügig ändert, und nicht nur durch den Preiswecker.

Oder sehe ich das zu Schwarz/Weiß? Unabhängig davon eine tolle Leistung.

Gruß

t1me2die

#3
Zitat von: Christoph Morrison am 13 September 2018, 18:47:35
Ich fände es super, wenn du daraus ein richtiges Modul machen würdest. Die Idee ist wirklich super und richtig nützlich und wieder ein Schritt weiter in Zentrale für Allesmögliche / Smart Digital Assistant oder wie auch immer man das nennen mag.

Es hat etwas gedauert, aber das erste eigene Modul "steht" so einigermaßen.

Modulname: 40_checkPVG.pm

Habe ich im ersten Post angehangen.

Des Weiteren kann man jetzt via "Ändern Preisvergleich iPhone X 450€" auch den Preis direkt über Telegram ändern!

Zitat von: Esjay am 13 September 2018, 21:03:15
Ich kann mich durch die App per Push benachrichtigen lassen, von daher sehe ich den Vorteil nur darin, dass ich eine Nachricht bekomme, sobald sich der Preis geringfügig ändert, und nicht nur durch den Preiswecker.

Oder sehe ich das zu Schwarz/Weiß? Unabhängig davon eine tolle Leistung.

Gruß

Die App war mir bis dato noch gar nicht bekannt.
Aber nicht jeder möchte sich irgendwo registrieren oder seine E-Mail Adresse angeben.
Wie gut die Push-Benachrichtigung funktioniert, kann ich nichts zu sagen!


Gruß
Mathze

markus2456

Hallo Mathze, das sieht schon mal Super aus und funktioniert auch.

Ich persönlich finde, dass die eingabe ist etwas umständlich.
Vielleicht kürzere Befehle und eine Hilfe die man sich anzeigen lassen kann?

Gruß
Markus

t1me2die

Moin Markus,

gib mir mal paar Beispiele, wie stellst du es dir vor?

Gruß
Mathze

markus2456

Hallo, wenn man anstatt "Preisvergleich" nur "pv" schreiben muss?

Und eine Übersicht der möglichen Befehle mit "pv hilfe" bekommen würde?

Gruß
Markus

t1me2die

Moin Markus,

eine gute Idee.
Jedoch habe ich mich für die Abkürzung "PVG" (PreisVerGleich) entschieden.
Dies ist auch eine gängige Abkürzung in diversen Schnäppchen-Portalen.

Eine erste "kleine" Hilfe habe ich auch eingebaut.

Gib dazu einfach "Hilfe" oder "Hilfe PVG" (ungetestet).

Du kannst ja mal mit Vorsicht die neuste Version probieren  :)

Gruß
Mathze

markus2456

#8
Hallo Mathze, ich habe etwas getestet.

So finde ich es schon schöner :-) Danke

Ich habe soviel getestet, dass ich die Medlung von Idealo zurück bekommen habe "HTTP/1.1 429 Too Many Requests" :-D

Kann es sein, dass deine Abfrage mit Sonderzeichen Probleme hat? Zum Beispiel wenn ein "+" oder eine Klammer "(" vorkommt?

Wenn ein + oder ein / vorkommt, dann wird kein Notify angelegt, nur ein HTTPMod der auch den Namen des Produktes nicht hat. (siehe Anhänge)

Was ich noch fragen wollte ist: Um einen PVG zu löschen ist es auch sehr umständlich, wenn der Name des PVG sehr lang ist.
Kann man das über eine kurze variante verbessern? Zum Beispiel, dass die PVGs durchummeriert werden und man dann nur noch schreiben muss "Lösche PVG Nr. 1"

Gruß
Markus



ThomasMagnum

Hallo,

ein sehr interessantes Modul. Besteht auch die Möglichkeit dies für XMPP / Jabber zu nutzen bzw. zu erweitern?
Oder es gar universel zu nutzen, so das weitere Arten der Nachrichtenzustelung (Mail, Signal) unterstützt werden?

Vielen Dank schon mal für die Idee.

Gruß, Thomas

t1me2die

Zitat von: markus2456 am 14 Oktober 2018, 13:04:11
...
Ich habe soviel getestet, dass ich die Medlung von Idealo zurück bekommen habe "HTTP/1.1 429 Too Many Requests" :-D
...

Ging mir desöfteren genauso  ;D

Zitat von: markus2456 am 14 Oktober 2018, 13:04:11
...
Kann es sein, dass deine Abfrage mit Sonderzeichen Probleme hat? Zum Beispiel wenn ein "+" oder eine Klammer "(" vorkommt?

Wenn ein + oder ein / vorkommt, dann wird kein Notify angelegt, nur ein HTTPMod der auch den Namen des Produktes nicht hat. (siehe Anhänge)
...

Das ist korrekt. Ich versuche den Namen für das HTTPMOD zusammen zu basteln, jedoch mag FHEM nur wenige "Sonderzeichen". Bei einem Plus-Zeichen, einer Klammer oder Umlauten ist da relativ schnell Schluss.
Habe eine neue Version hier hinzugefügt, bitte einmal ausprobieren.

Zitat von: markus2456 am 14 Oktober 2018, 13:04:11
...
Was ich noch fragen wollte ist: Um einen PVG zu löschen ist es auch sehr umständlich, wenn der Name des PVG sehr lang ist.
Kann man das über eine kurze variante verbessern? Zum Beispiel, dass die PVGs durchummeriert werden und man dann nur noch schreiben muss "Lösche PVG Nr. 1"
...

Eine Zählernummer wäre eine Überlegung wert.
Jedoch sollte das Löschen über den Namen auch "recht" einfach funktionieren:

Bsp.:
Du hast einen Preisvergleich für den "Raspberry Pi 3 Model B+" so könntest du diesen Preisvergleich mit folgenden Texten löschen:

Lösche Pvg Raspberry (Löschbefehle 1)
Lösche Pvg Pi (Löschbefehle 2)
Lösche Pvg Model (Löschbefehle 3)
Lösche Pvg B+ (Löschbefehle 4)
Lösche Pvg Raspberry Pi 3 Model B+ (Löschbefehle 5)


Ich durchsuche mit dem eingegeben Namen alle Geräte im Raum "Preisvergleich".

Aber ACHTUNG:
Falls du 2 Preisvergleiche hast, die im Namen z.B. "Raspberry ...." enthalten, so werden beide gelöscht.

Konkretes Beispiel:

1. PVG = "Raspberry Pi 2"
2. PVG = "Raspberry Pi 3 Model B+"


Wenn du jetzt die ersten Löschbefehle 1 oder 2 von oben absetzt, so löscht du beide PVG.
Setzt du Löschbefehl 3, 4 oder 5 ab, so wird nur der zweite PVG gelöscht.

Also MERKE:
Wenn man zwei Preisvergleiche hat, welche denselben Namen haben, so muss der genaue Name angegeben werden um den richtigen Preisvergleich zu löschen.
Falls man nur einen Preisvergleich mit dem Namen hat, so reicht ein Teil des Namens um diesen zu löschen.

Ich hoffe, es war verständlich  :)
Jedoch werde ich mir auch noch einmal Gedanken über eine Nummerierung machen.

Gruß
Mathze

t1me2die

Zitat von: ThomasMagnum am 15 Oktober 2018, 06:44:10
Hallo,

ein sehr interessantes Modul. Besteht auch die Möglichkeit dies für XMPP / Jabber zu nutzen bzw. zu erweitern?
Oder es gar universel zu nutzen, so das weitere Arten der Nachrichtenzustelung (Mail, Signal) unterstützt werden?

Vielen Dank schon mal für die Idee.

Gruß, Thomas

Moin Thomas,

eine sehr interessante Idee!
Zur Zeit beruht das Modul auf Telegram.
Es wird alles über die Texteingabe von Telegram gesteuert (im Hintergrund natürlich durch FHEM, wobei man nichts im Frontend eingeben muss).

Bzgl. XMPP / Jabber habe ich noch keinerlei Erfahrung bzw. kann mir darunter auch noch nichts genaues vorstellen.
Falls mal so "einfach" eine Nachricht per Jabber rausschicken kann, wie es im Wiki steht:


fhem("set JabberClient1 msg Text");


wären die Anpassungen denkbar einfach.

In meinem Modul werden die Telegram Texte ähnlich versendet!


fhem("set $dev message @ID Text");


Ich werde mal etwas recherchieren und mir überlegen, ob ich weitere Möglichkeiten der Benachrichtigung schaffen möchte (Jabber / E-Mail / usw.)?

Gruß
Mathze

Christoph Morrison

Es gibt übrigens eine generische msg-Funktion in FHEM, just saying.

markus2456

Hallo Mathze, es funktioniert nun alles ohne Probleme.
Die Sonderzeichen funktionieren jetzt auch.

Das mit dem löschen ist so auch gut, wusste nicht, dass ein Teil des Namens reicht. So muss da nicht geändert werden.

Gruß
Markus

t1me2die

#14
Moin liebes Forum,

in dieser Version habe ich die Möglichkeit hinzugefügt, sich aktuelle Preisvergleiche anzeigen zu lassen.

Dazu einfach:


Aktueller pvg <Name>
Aktueller Preisvergleich <Name>


per Telegram schicken und schon bekommt ihr den aktuellen Preis inklusive Link als Antwort zugeschickt.
Siehe Screenshot.

Viel Spaß damit.
Bei Fehlern o.ä. bitte eine Rückmeldung an mich.

Gruß
Mathze