NEWS
Werte per Telegram an iobroker senden
-
Guten Tag,
ich baue gerade ein Script das den taschengeldkontostand meiner Kids visualisiert, damit sie nicht ständig überall ihr Taschengeld im Haus rumfliegen haben.
Dieser Wert wird im Panel dargestellt. Wöchentlich wird eine paremetrierbare Summe inkrementiert.
Ich brauche Allerdings noch eine Möglichkeit außer der Reihe Geld einzuzahlen, wenn sie beispielsweise Rasen mähen oder Geld abzuheben.
Aufgrund der kriminellen Energie möchte ich dies aber nicht in einer VIS machen sondern via Telegram Bot. Bisher nutze ich textcommand schon intensiv mit zahlreichen Funktionen, hier aber immer nur mit Schlüsselworten.Gibt es eine Möglichkeit, ein Schlüsselwort gefolgt von einem variabel eisntellbaren Wert zu senden, der dann in ein Objekt geschrieben wird? Auf dieses Objekt schaut ein Trigger der dann aufaddiert und zurücksetzt.
LG
Nils -
Wenn du am Handy in telegram etwas eingibst, dann erscheint dies in einem DP in iob.
Und diesen DP kannst du doch dann auswerten. -
Hi,
mit
Schreibe Text in zustand
geht es. Aber er erkennt kein - zeichen. da muss ich mal n bisschen rumprobieren. -
habe eben ein bisschen gespielt:
var vEingabe = getState("telegram.0.communicate.request").val; var vUser = vEingabe.substring(1, vEingabe.indexOf("]")); log (vUser); var text = vEingabe.substring(vEingabe.indexOf("]")+1, vEingabe.length ); log (text); var arr = text.split(","); log (arr[0]); var wert = parseFloat(arr[1]) log (typeof wert)
Schau dir mal das Script an.
Wenn du in telegram z.B. eingibst: rasen,10
dann hat die Variable vUser den Namen der gesendet hat.
Und in arr0 bekommst du rasen
und in wert den Wert.Musst halt noch umwandeln und ein paar if einbauen je nachdem was du machen willst.
-
Hi, ich habs jetzt so gelöst.
Danke dir Bahnuhr:
on({id: 'telegram.0.communicate.request', change: "any"}, async function (obj) { var vEingabe = getState("telegram.0.communicate.request").val; var text = vEingabe.substring(vEingabe.indexOf("]")+1, vEingabe.length ); var arr = text.split(","); var wert = parseFloat(arr[1]) if (arr[0] == 'Lieblingskind' || arr[0] == 'Schwarzschaf'){ var newvalue = getState('javascript.0.Taschengeld.'+arr[0]+'Abs').val + wert; setState('javascript.0.Taschengeld.'+arr[0]+'Abs', (parseFloat(newvalue))); //neue summe übertragen text = 'Es wurden '+wert+'€ zu '+arr[0]+' addiert.' sendTo("telegram", "send", { text: text}); } });
-
@jmeister79 Bist du hier noch aktiv im Forum? Könntest du das "Taschengeld"-Script veröffentlichen? Oder auch gerne jemand anderes, ich bin bestimmt nicht der einzige der danach sucht oder so etwas realisieren möchte.
-
@booleeny sagte in Werte per Telegram an iobroker senden:
Könntest du das "Taschengeld"-Script veröffentlichen?
He ??
Steht doch 1 Beitrag über deinem.
-
@bahnuhr Das is doch nur der "Telegram" Part. Ich dachte es gibt noch ein größeres Skript um das mit den Kontoständen zu realisieren. Ok vielleicht habe ich auch zu kompliziert gedacht. Wenn es nur ein Wert ist, der sich per Telegram editieren lässt hast du recht. Durch die zwei genannten Kinder und die Aktivitäten, dachte ich es gibt auch ein Log. Naja ich habe es nun soweit hingebastelt, dass Kontostände in der Vis angezeigt werden, Beträge abgehoben und eingezahlt werden können und es ein Log dazu gibt. Wenn das läuft und hübsch ist poste ich das.