https://github.com/LupusArgentum/TelekomWidget/blob/main/forked-telekom.js
-
-
Save LupusArgentum/27a12aeb2db42cf1a3658f6b10ad9079 to your computer and use it in GitHub Desktop.
Ah, jetzt ist es auf einmal da. Habe auf das Widget geklickt und dann wurde es mir seltsamerweise angezeigt.
Bestens!
die Farben hätte ich eher an den prozentualen verbrauch angepasst. Also wie viele Tage hat der Monat noch ->9 Tage
Er hatte 31 Tage macht also pro tag ca 3,2%.
Ich bin jetzt bei Tag 22 also darf ich im grünen Bereich maximal 70,96% verbraucht haben.
In dem Fall <=70,96-3,2/2 =96,36% -> GRÜN
<=70,96-3,2/2 =72,56% -> Gelb
">"72,56% -> ROT
Ich habe einen ganz ähnlichen Wunsch, und das mal für mich angepasst.
Orange wird es wenn nicht mehr viel Luft ist zum "erlaubten Verbrauch".
Der erlaubte Verbrauch wären zur Monatsmitte z.B. 50%.
Rot wird es, wenn man bereits ein gutes Stück mehr verbraucht hat als erlaubt.
Zusätzlich gibt es noch feste Grenzen. Rot wird’s immer ab 90%. Und grün bleibt es immer bis zu einem kleinen Schwellwert.
// change color of the remaining volume according to usage
const line2 = list.addText(100 - data.usedPercentage + "%")
line2.font = Font.boldSystemFont(36)
// rough calculate remainig percentage of this month
// adjust colors according to what's needed within rest of the month
let availableMonthPercentage = (data.remainingSeconds / (31*86400)) * 100
let bufferPercentage = 5
line2.textColor = Color.green()
if (data.usedPercentage >= ((100 - availableMonthPercentage) - bufferPercentage) && data.usedPercentage >= bufferPercentage) {
line2.textColor = Color.orange()
} else if (data.usedPercentage >= ((100 - availableMonthPercentage) + bufferPercentage) || data.usedPercentage >= 90) {
line2.textColor = Color.red()
}
-> Diese Änderung habe ich im "Original-Script" gesehen. Kann ich dieses auch bei dir ändern? Also einfach o.g. Passage gegen die entsprechende Stelle bei dir tauschen?
Danke im Voraus!
const line2 = list.addText(100 - data.usedPercentage + "%") line2.font = Font.boldSystemFont(36) // rough calculate remainig percentage of this month // adjust colors according to what's needed within rest of the month let availableMonthPercentage = (data.remainingSeconds / (31*86400)) * 100 let bufferPercentage = 5 line2.textColor = Color.green() if (data.usedPercentage >= ((100 - availableMonthPercentage) - bufferPercentage) && data.usedPercentage >= bufferPercentage) { line2.textColor = Color.orange() } else if (data.usedPercentage >= ((100 - availableMonthPercentage) + bufferPercentage) || data.usedPercentage >= 90) { line2.textColor = Color.red() }
-> Diese Änderung habe ich im "Original-Script" gesehen. Kann ich dieses auch bei dir ändern? Also einfach o.g. Passage gegen die entsprechende Stelle bei dir tauschen?
Danke im Voraus!
Das sollte sich problemlos in mein Skript einfügen lassen. Einfach die Zeilen die zu line2 gehören durch den neuen Code ersetzen.
const line2 = list.addText(100 - data.usedPercentage + "%") line2.font = Font.boldSystemFont(36) // rough calculate remainig percentage of this month // adjust colors according to what's needed within rest of the month let availableMonthPercentage = (data.remainingSeconds / (31*86400)) * 100 let bufferPercentage = 5 line2.textColor = Color.green() if (data.usedPercentage >= ((100 - availableMonthPercentage) - bufferPercentage) && data.usedPercentage >= bufferPercentage) { line2.textColor = Color.orange() } else if (data.usedPercentage >= ((100 - availableMonthPercentage) + bufferPercentage) || data.usedPercentage >= 90) { line2.textColor = Color.red() }
-> Diese Änderung habe ich im "Original-Script" gesehen. Kann ich dieses auch bei dir ändern? Also einfach o.g. Passage gegen die entsprechende Stelle bei dir tauschen?
Danke im Voraus!Das sollte sich problemlos in mein Skript einfügen lassen. Einfach die Zeilen die zu line2 gehören durch den neuen Code ersetzen.
Ja, ok - bestens! Werde morgen mal ein bisschen mit Mobile Daten surfen und dann schauen ob es rot eingeteigte wird, da ich dann ja quasi über dem prozentualen Tagesbedarf liegen werde.
Melde mich dann mal … ;)
const line2 = list.addText(100 - data.usedPercentage + "%")
line2.font = Font.boldSystemFont(36)
// rough calculate remainig percentage of this month
// adjust colors according to what's needed within rest of the month
let availableMonthPercentage = (data.remainingSeconds / (31*86400)) * 100
let bufferPercentage = 5
line2.textColor = Color.green()
if (data.usedPercentage >= ((100 - availableMonthPercentage) - bufferPercentage) && data.usedPercentage >= bufferPercentage) {
line2.textColor = Color.orange()
} else if (data.usedPercentage >= ((100 - availableMonthPercentage) + bufferPercentage) || data.usedPercentage >= 90) {
line2.textColor = Color.red()
}
Aus dem else if muss ein if gemacht werden, dann klappt es besser.
So sieht es inzwischen bei mir aus:
Ich habe noch weitere Änderungen vorgenommen:
- Anzeige des verbleibenden statt des verbrauchten Volumens (im Text und in der Prozentangabe)
- Anzeige der Restlaufzeit in Tagen (falls noch Tage vorhanden sind) und Stunden. Ggf. als "< 1 Stunde", wenn nur noch Minuten übrig sind.
- Anzeige der Uhrzeit der letzten erfolgreichen Aktualisierung. Ggf. mit Datum, wenn das nicht am selben Tag war.
Zeile34: if (!data || !data.usedPercentage)
Hier sollte nicht usedPercentage
genutzt werden. Zu Beginn des Abrechnungszeitraums ist das verbrauchte Volumen = 0.
Befindet man sich dann im WLAN, schlägt die Überprüfung zu. Ich habe hier auf initialVolume
gewechselt.
const line2 = list.addText(100 - data.usedPercentage + "%")
line2.font = Font.boldSystemFont(36)
// rough calculate remainig percentage of this month
// adjust colors according to what's needed within rest of the month
let availableMonthPercentage = (data.remainingSeconds / (31*86400)) * 100
let bufferPercentage = 5
line2.textColor = Color.green()
if (data.usedPercentage >= ((100 - availableMonthPercentage) - bufferPercentage) && data.usedPercentage >= bufferPercentage) {
line2.textColor = Color.orange()
} else if (data.usedPercentage >= ((100 - availableMonthPercentage) + bufferPercentage) || data.usedPercentage >= 90) {
line2.textColor = Color.red()
}Aus dem else if muss ein if gemacht werden, dann klappt es besser.
So sieht es inzwischen bei mir aus:
Ich habe noch weitere Änderungen vorgenommen:
- Anzeige des verbleibenden statt des verbrauchten Volumens (im Text und in der Prozentangabe)
- Anzeige der Restlaufzeit in Tagen (falls noch Tage vorhanden sind) und Stunden. Ggf. als "< 1 Stunde", wenn nur noch Minuten übrig sind.
- Anzeige der Uhrzeit der letzten erfolgreichen Aktualisierung. Ggf. mit Datum, wenn das nicht am selben Tag war.
Kannst du die geänderten Passagen hier einstellen, damit ich die Restlaufzeit in Tagen sowie die Uhrzeit der letzten ERFOLGREICHEN Aktualisierung ebenfalls einstellen kann? Aber Anzeige des verbrauchten Datenvolumens möchte ich gerne beibehalten.
Und ist der Änderung von JoeGIT42 hilfreich? Muss ich dann zusätzlich das "else if" gegen "if" eintauschen?
Vielen Dank im Voraus! :)
Ich habe noch weitere Änderungen vorgenommen:
- Anzeige des verbleibenden statt des verbrauchten Volumens (im Text und in der Prozentangabe)
- Anzeige der Restlaufzeit in Tagen (falls noch Tage vorhanden sind) und Stunden. Ggf. als "< 1 Stunde", wenn nur noch Minuten übrig sind.
- Anzeige der Uhrzeit der letzten erfolgreichen Aktualisierung. Ggf. mit Datum, wenn das nicht am selben Tag war.
Kannst du die geänderten Passagen hier einstellen, damit ich die Restlaufzeit in Tagen sowie die Uhrzeit der letzten ERFOLGREICHEN Aktualisierung ebenfalls einstellen kann? Aber Anzeige des verbrauchten Datenvolumens möchte ich gerne beibehalten.
Und ist der Änderung von JoeGIT42 hilfreich? Muss ich dann zusätzlich das "else if" gegen "if" eintauschen?Vielen Dank im Voraus! :)
Wenn du mir den Code gibst, schaue ich mal, was davon ich hier einstellen möchte.
Zeile34: if (!data || !data.usedPercentage)
Hier sollte nichtusedPercentage
genutzt werden. Zu Beginn des Abrechnungszeitraums ist das verbrauchte Volumen = 0.
Befindet man sich dann im WLAN, schlägt die Überprüfung zu. Ich habe hier aufinitialVolume
gewechselt.
Die Zeile ist noch aus dem Original-Skript, darüber hatte ich mir bislang keine Gedanken gemacht. Sollte
if (!data)
nicht eigentlich ausreichen?
Zeile34: if (!data || !data.usedPercentage)
Hier sollte nichtusedPercentage
genutzt werden. Zu Beginn des Abrechnungszeitraums ist das verbrauchte Volumen = 0.
Befindet man sich dann im WLAN, schlägt die Überprüfung zu. Ich habe hier aufinitialVolume
gewechselt.Die Zeile ist noch aus dem Original-Skript, darüber hatte ich mir bislang keine Gedanken gemacht. Sollte
if (!data)
nicht eigentlich ausreichen?
Würde ich auch sagen, allerdings weiss ich nicht, was die Zeile darüber zurückgibt, wenn aus der iCloud keine Daten gelesen werden können. Ich würde false
oder null
erwarten. Aber wenn es das nicht, macht die zusätzliche Abfrage eines Wertes Sinn.
Wenn du mir den Code gibst, schaue ich mal, was davon ich hier einstellen möchte.
Den mache ich nachher nochmal etwas schöner.
Als Issue kann ich das hier nicht eintragen, oder? Dann wäre der potentielle merge leichter.
Wenn du mir den Code gibst, schaue ich mal, was davon ich hier einstellen möchte.
Den mache ich nachher nochmal etwas schöner.
Als Issue kann ich das hier nicht eintragen, oder? Dann wäre der potentielle merge leichter.
Ich habe das ganze hier mal als Repo erstellt, da kannst du deinen Issue ggf. eintragen.
Ich habe mich eben selbst daran gewagt deine Änderungen zu programmieren und merke, dass das ganze komplizierter ist als gedacht, daher freue ich mich auf deinen Input :)
Anzeige der Uhrzeit der letzten erfolgreichen (letzter Abruf von datapass.de, nicht mehr letzter Widget-Refresh) Aktualisierung. Ggf. mit Datum, wenn das nicht am selben Tag war.
Das ist mit dem aktuellen Update umgesetzt.
Vielen Dank, das hört sich gut an!
Habe es gerade aktualisiert, aber mir wird keine Logo angezeigt :( Ich muss doch nur das Wort logo als Parameter (also nicht im Script, sondern wenn ich das Widget lange gedrückt halte) eingeben oder?