Fhem: Aktuellen Benzinpreis von einem Ort per Telegram zuschicken lassen

Ich nutze schon seit langem das Benzinpreis-Plugin, welche mich ständig auf meinem Wand-Tablet und in Fhem darüber informiert, ob ich noch tanken fahren soll oder nicht. Der Preistrend kann man schön in Fhem ablesen und auf dem Tablet sieht jeder den aktuellen Preis seiner Tankstelle.

benzinpreis

Schön wäre es, so dachte ich, wenn ich nach Feierabend auf meinem Smartphone eine Telegram-Message von Fhem bekommen würde und noch entscheiden könnte, ob ich unterwegs günstiger Tanken kann. Okay, werdet ihr sagen, das geht ja auch mit den coolen Apps wie Clever-Tanken usw. Na gut, aber 5 Zeilen Scriptcode kann man doch eben coden.

Um den aktuellen Benzinpreis per Telegram auf sein Smartphone zu beamen, habe ich eine kurze AT-Anweisung geschrieben und eine Prozedur in 99_myUtils.pm hinzugefügt.

sub SendDieselpreis()
{
my $diesel_price = ReadingsVal("Benzinpreis","Diesel","Fehler");
fhem("set user1 message Dieselpreis in Bottrop aktuell: ".$diesel_price." Euro.");
}

in Fhem:
define at_SendeDieselpreis at *15:00 {SendDieselpreis()}

Wie man Telegram in Fhem installiert, erfahrt ihr in diesem Blog-Beitrag.
Einen Beitrag über Tablet-UI und einen Verweis auf das Benzin-Plugin habe ich hier geschrieben.

Und wie immer: Bei Fragen, fragen und ab damit in den Kommentaren.

tablet ui verkehr google

Dieser Beitrag wurde unter Fhem-Hausautomation abgelegt und mit verschlagwortet. Setze ein Lesezeichen auf den Permalink.

13 Kommentare zu Fhem: Aktuellen Benzinpreis von einem Ort per Telegram zuschicken lassen

  1. Rene sagt:

    Hallo ich bin am verzweifeln.

    Ich versuche die aktuelle Temperatur autom. per telegram zu verschicken. Bis jetzt habe ich das mit yowsup gemacht aber die haben mir jetzt zum 2. Mal die Karte gesperrt….
    in den 99_myUtils.pm steht:
    sub Aussen()
    {
    my $temperature = ReadingsVal(„Villa_aussen“, „temperature“, „“);
    fhem(„set telebot message Aussentemperatur aktuell: „.$temperature.“ °C.“);
    }

    aufgerufen wird mit:
    define at_aussentemp at +*00:00:10 {Aussen()}

    das habe ich als definition von Telegram:

    attr telebot cmdKeyword xx
    attr telebot defaultPeer @Rene_xxxx
    attr telebot pollingTimeout 120
    attr telebot room Geräte

    Folgende Fehlermeldung kommt:

    2017.12.29 19:42:33 3: TelegramBot_SendIt telebot: Failed with :FAILED peer not found :@Rene_xxxx:
    2017.12.29 19:42:33 3: TelegramBot_Callback telebot: resulted in NonBlockingGet: returned FAILED peer not found :@Rene_xxxx: from SendIt
    2017.12.29 19:42:33 3: set telebot message Aussentemperatur aktuell: -0.125 °C. : FAILED peer not found :@Rene_xxxx:
    2017.12.29 19:42:33 3: at_aussentemp: FAILED peer not found :@Rene_xxxx:

    senden per :
    set telebot message @Rene_xxxx test

    funktioniert einwandfrei.
    Bitte helft mir ich bin seit Tagen am Fehlersuchen…

  2. Jack sagt:

    ich habs mit DOIF hinbekommen.

    define di_Wertstoff DOIF ([20:00] and [Wertstoff:state] < 2) (set telebot message Morgen Wertstoff)

    🙂

  3. Jack sagt:

    Hey Robin,

    ich bin echt am verzweifeln mit der Benachrichtigung über Telegram.
    Jetzt hab ich nen Code womit ich eine Nachricht bekomme, allerdings berücksichtigt der Code nicht den zustand von meinem Müll dummy.

    define at_TelegramMuell_Bio at *20:00 set telebot message ‚Müllkalender‘ ‚Morgen wird die Biomülltonne abgeholt‘

    Wie bekomme ich jetzt in diesem Code noch das er vorher guckt ob zb. Biomuell auf 1 steht. Biomuell:1, bekomme ich einfach nicht mit in den Code.

    Ich habs mit Notifys, at´s und im 99_myUtils versucht. Ich kriegs nicht hin.

    Gruß

    Jack

  4. Robin sagt:

    Hallo Jack,
    ad hoc würde ich eine AT-Anweisung nehmen, die täglich drüberschaut, wie es mit den Abholtermin bestellt ist. Mein Bilderrahmen sagt mir einen Tag durch Aufleuchten einer LED in verschiedenen Farben auch Bescheid, wann und welcher Müll raus muss. Dabei gibt es Variablen, sieht dann ungefähr so aus:
    gelberSack:.* {
    if ((ReadingsVal("gelberSack", "state", "99")) == 1) {
    myLEDSend("10111",2,1,"LEDgelberSack",1);
    } elsif ((ReadingsVal("gelberSack", "state", "99")) == 0) {
    myLEDSend("10111",1,1,"LEDgelberSack",0);
    } else {
    myLEDSend("10111",1,0,"LEDgelberSack",99);
    }
    }
    Die Basis ist mein Google-Kalender, wo ich einmalig alle Abfuhrtermine der Einzelnen Tonnen eingetragen habe.
    Wenn also der State vom gelberSack 0 ist dann heute, gelberSack 1 dann morgen, sonst 99 irgendwann. Die Variable könnte man mit einem Telegram verknüpfen. Du könntest auch direkt die Date-Funktion vom Google-Kalender anzapfen.

    LG
    /robin

  5. Jack sagt:

    Hey Robin,

    anfängerfehler was. 😀
    das nächste was ich gerne zum läufen bringen möchte ist, das ich den nächsten Müllabfuhr Termin per Telegram zugeschickt bekommen möchte. Den passenden Kalender hab ich schon, nur krieg ich es nicht hin das der Telegrambot mir einen Tag vorher eine Nachricht schickt.

    Gruß

  6. Robin sagt:

    Hi Jack,
    dachte ich mir :-), viel Spaß noch mit Fhem und den Benzin-Plug. Bei mir ist es auch im Einsatz mit dem Tablet-UI (-> https://blog.moneybag.de/fhem-alternatives-frontend-fuer-fhem-tablet-ui/).

    LG
    /robin

  7. Jack sagt:

    Hey Robin,

    vielen dank für deine Hilfe, mein fehler war wirkich das ich den falschen NAME angegeben habe.

    Jetzt läuft´s

    Gruß Jack

  8. Robin sagt:

    Hallo Jack,
    kann ich von hier aus nicht beurteilen. Kommt denn „hallo welt“ von Telegram rüber? Dann scheint ja Telegram zu laufen und ich vermute es liegt am ReadingsVal.
    Bei mir NAME= Benzinpreis und in den Readings heißt es „Diesel“. also zusammen dann als Sub geschrieben: sub SendDieselpreis()
    {
    my $diesel_price = ReadingsVal("Benzinpreis","Diesel","Fehler");
    fhem("set user1 message Dieselpreis in Bottrop aktuell: ".$diesel_price." Euro.");
    }

    in Fhem:
    define at_SendeDieselpreis at *15:00 {SendDieselpreis()}
    Der schubst mir jeden Tag um 15 Uhr (at-Befehl) den aktuellen Benzinpreis aufs Handy.

  9. Jack sagt:

    Hi,

    ich habe versucht dein Code bei mir einzusetzen, user1 dementsprechend geändert. Aber ich bekomme immer nur über Telegram die Nachricht „Fehler“ wie kann das sein?

    Stimmt mein ReadingsVal nicht?

    Hoffe das du mir helfen kannst.

    Gruß Jack

  10. Robin sagt:

    Hallo Mario,

    dann mach das doch per Hand: http://forum.fhem.de/index.php/topic,13166.390.html
    Ich finde meinen eigenen code nicht mehr.. drum hab ich mal im Forum gesucht 🙂

    LG
    /robin

  11. Mario sagt:

    Hi Robin!

    Danke für die schnelle Antwort und den super Blog.

    Hab mir schon einige Sachen von Dir abgeschaut und übernommen…

    Die neue Farbverlaufs-Funktion habe ich gleich mal bei den Luftgütesensoren eingebaut.

    Für Akkus eignet sie sich leider noch nicht (grün müsste oben und rot unten sein). Da warte ich noch, bis das auch mal kommt…

    Schöne Weihnachten,
    Mario

  12. Robin sagt:

    Hallo Mario,
    klar darfst Du fragen.
    In den Plot-Einstellungen nach: Y-Axis,Plot-Type,Style,Width suchen, dann in Drop-Down-Feld: Right / Lines / IOfill_gyr eintragen.
    Zu damaliger Zeit habe ich 3 Funktionsabschnitte gemacht. Da gab es IOFill_gyr noch nicht.
    Die manuelle Möglichkeit sieht so aus: https://blog.moneybag.de/luftqualitaets-sensor-voltcraft-co-20-ein-erfahrungsbericht

    LG
    /robin

  13. Mario sagt:

    Hi Robin!

    Darf man fragen, wie Du den schönen Farbverlauf in der gplot hingekriegt hast?

    Sieht sehr gut aus und würde ich gern (umgedreht) für meine Tablet-Akkuanzeigen übernehmen…

    LG,
    Mario

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.