So, nun hab ich das Script mal ausprobiert und das klappt auch bei mir ganz prima..von daher schon mal vielen Dank!
Nun wollte ich das Ganze für 4 Tankstellen erweitern und habe einfach mal alles vervierfacht. Natürlich ist mir klar, dass das sehr unelegant ist, aber die Verfeinerung über Array und Schleife soll dann erfolgen, wenn ich mich etwas mehr an die Programmierung gewöhnt habe :oops:
Also sieht mein (unelegantes) Script derzeit so aus:
var idPreis1 = "tankerkoenig.0.stations.0.e5.short";
var idName1 = "tankerkoenig.0.stations.0.name";
var idPreis2 = "tankerkoenig.0.stations.1.e5.short";
var idName2 = "tankerkoenig.0.stations.1.name";
var idPreis3 = "tankerkoenig.0.stations.2.e5.short";
var idName3 = "tankerkoenig.0.stations.2.name";
var idPreis4 = "tankerkoenig.0.stations.3.e5.short";
var idName4 = "tankerkoenig.0.stations.3.name";
on({id: 'telegram.0.communicate.request', change: 'any'}, function (obj) {
var stateval = getState('telegram.0.communicate.request').val; // Statevalue in Variable schreiben
var benutzer = stateval.substring(1,stateval.indexOf("]")); // Benutzer aus Statevalue extrahieren
var befehl = stateval.substring(stateval.indexOf("]")+1,stateval.length); // Befehl/Text aus Statevalue extrahieren
if (befehl.search(/(?=.*(\Benzin\b|\bTanken\b)).+/ig) != -1) {
var preis1 = "Der aktuelle Preis für SUPER bei " + getState(idName1).val + " beträgt:\n\n" + getState(idPreis1).val.replace(/
/g , "\n")+"9";
var preis2 = "Der aktuelle Preis für SUPER bei " + getState(idName2).val + " beträgt:\n\n" + getState(idPreis2).val.replace(/
/g , "\n")+"9";
var preis3 = "Der aktuelle Preis für SUPER bei " + getState(idName3).val + " beträgt:\n\n" + getState(idPreis3).val.replace(/
/g , "\n")+"9";
var preis4 = "Der aktuelle Preis für SUPER bei " + getState(idName4).val + " beträgt:\n\n" + getState(idPreis4).val.replace(/
/g , "\n")+"9";
var preis=preis1+preis2+preis3+preis4;
sendTo('telegram', {
user: benutzer,
text: preis
});
}
});
Wobei mir jetzt nicht klar ist, was der Fehler ist…durch Probieren hab ich zwar herausgefunden, dass der schon oben in der Deklaration muss, aber nicht so recht, warum...wenn ich nur mit IdPreis1 und IdName1 arbeite, funktioniert es...nur sobald zusätzliche Datenpunkte dazukommen, ist das Ganze ungültig...