Hintergrundbild zeitabhängig aus verschiedenen Verzeichnissen setzten

Z

ZweiradFahrer

Ambitioniertes Mitglied
10
Servus :)

Was ich machen möchte?
Ich möchte abhängig von der Tageszeit aus verschiedenen Verzeichnissen Hintergrundbilder verwenden. Dazu würde ich Twilight verwenden. Entsprechend habe ich nun 4 Profile, jeweils getriggert durch Twilight. Um nicht auch 4 Tasks erstellen zu müssen, wollte ich einen Task erstellen und diesen durch eine globale Variable steuern.

Verzeichnissestruktur:
/wallpaper/day
/wallpaper/night
/wallpaper/sunrise
/wallpaper/sunset


Tasker-Task:"Hintergrundbild ändern"
Globale Variable: %Wallpaper_dir
  1. Dateien auflisten: %Wallpaper_dir in %files
  2. Variable setzten: %random_max zu %files(#)
  3. Variable zufällig wählen: %random (min=1, max=%random_max)
  4. Variable setzten: %random_file zu %files(%random)
  5. Hintergrundbild auswählen: %Wallpaper_dir/%random_file
Problem:
Ich kann in dem Profil zwar nun den erstellten Task auswählen - aber vorher nicht die globale Variable setzten um das für das Profil spezifische Verzeichnis anzugeben.
 
Zuletzt bearbeitet:
Hey,
ich habe es noch nicht ganz kapiert, was genau gibt die Variable %Wallpaper_dir an?
 
Die war dazu gedacht, abhängig vom triggernden Profil das Wallpaperverzeichnis anzugeben.

Profil: Hintergrund_Nacht
SET %Wallpaper_dir = /wallpaper/night
Call-Task: "Hintergrundbild Ändern"

Profil: Hintergrund_Sonnenaufgang
SET %Wallpaper_dir = /wallpaper/sunrise
Call-Task: "Hintergrundbild Ändern"

usw..

Zumindest war es so gedacht. Aber irgendwie hab ich den Verdacht, dass sich globale Variablen nicht als Argument für einen Task zweckentfremden lassen und ich die für jedes Profil einzeln erstellen muss... Oder?
 
Also am Einfachsten wäre es, wenn du mal das Projekt mit den Bildordnern bzw. Beispiele daraus als Zip hochlädtst.
Dann schaue ich einfach mal drüber, mir ist das sonst irgendwie zu "fremd" gerade.
Also deine Beschreibung will nicht so recht in meinen Kopf.
 
Hallo,

den Profilen einen Namen geben und dann im Task das Array %caller auswerten. Da der Task direkt aufgerufen wird, sollte der Profilname in %caller1 enthalten sein.

Grüße, Jürgen.
 
Kann sein, dass der Anhang fehlt?
 
Welcher Anhang?
 
Ah sorry, habe nicht auf den Namen geschaut, hat sich erledigt.
 
@androidkoller
Der Hinweis mit %caller1 war super :)

Hat den Task zwar jetzt etwas aufgebläht, aber es funktioniert (Zumindest mit der Testvariable, das Triggern durch die Profile muss ich noch abwarten). Die Verzeichnisstruktur ist unverändert, der Task sieht jetzt wie folgt aus:

Keine globalen Variablen mehr.
  1. Variable setzen: %wallpaper_dir = wallpaper/sunrise/ Wenn: %caller1 = Sonnenaufgang
  2. Variable setzen: %wallpaper_dir = wallpaper/day/ Wenn: %caller1 = Tag
  3. Variable setzen: %wallpaper_dir = wallpaper/sunset/ Wenn: %caller1 = Sonnenuntergang
  4. Variable setzen: %wallpaper_dir = wallpaper/night/ Wenn: %caller1 = Nacht
  5. Variable setzen: %wallpaper_dir = wallpaper/sunrise/ DEAKTIVIERT/ZUM TESTEN
  6. Dateien auflisten: %wallpaper_dir in %files
  7. Variable setzten: %random_max = %files(#)
  8. Variable zufällig wählen: %random (min=1, max=%random_max)
  9. Variable setzten: %random_file = %files(%random)
  10. Hintergrund auswählen: %random_file
Und noch ein Tipp für die Fehlersuche: Tasker trimmt abschließende Leerzeichen leider nicht automatisch. :unsure:

Eine Frage dann doch noch: Was für einen Sinn macht es, bei dem Twilight-Trigger einen Range (also z.B.: Sunrise bis Sunset) anzugeben? Der Task wird doch so oder so nur beim Eintritt (im Beispiel Sunrise) ausgeführt oder täusche ich mich?
 
Hallo,

in %caller1 steht "profile=enter:Sonnenaufgang". Die Abfrage sollte so aussehen: "Wenn: %caller1 ~ *Sonnenaufgang".

ZweiradFahrer schrieb:
Eine Frage dann doch noch: Was für einen Sinn macht es, bei dem Twilight-Trigger einen Range (also z.B.: Sunrise bis Sunset) anzugeben? Der Task wird doch so oder so nur beim Eintritt (im Beispiel Sunrise) ausgeführt oder täusche ich mich?
Das ist ein Status-Kontext (im Gegensatz zu einem Ereignis-Kontext). Du kannst einen Ausgangstask hinzufügen, der bei Sonnenuntergang ausgeführt wird. Außerdem wird das Profil auch aktiviert, wenn du dein Handy z.B. zehn Minuten nach Sonnenaufgang einschaltest. Du könntest deine Aufgabe also nur mit zwei Profilen lösen, denke ich: "Sunrise to Sunset -> Tag" und "From Dusk till Dawn -> Nacht" (cooler Film btw).


  • Variable setzen: %wallpaper_dir = wallpaper/sunrise/ Wenn: %caller1 ~ *Nacht Und: %caller1 ~ *exit*
  • Variable setzen: %wallpaper_dir = wallpaper/day/ Wenn: %caller1 ~ *Tag Und: %caller1 ~ *enter*
  • Variable setzen: %wallpaper_dir = wallpaper/sunset/ Wenn: %caller1 ~ *Tag Und: %caller1 ~ *exit*
  • Variable setzen: %wallpaper_dir = wallpaper/night/ Wenn: %caller1 ~ *Nacht Und: %caller1 ~ *enter*


Grüße, Jürgen.
 
Lol. Das es da auch Ausgangs-Tasks geben könnte, habe ich gar nicht bedacht. :blushing:
Danke, dass reduziert das ganze um immerhin zwei Profile :)
 

Ähnliche Themen

X
Antworten
7
Aufrufe
339
x-dealer
X
Viper73
Antworten
1
Aufrufe
252
Cecoupeter
Cecoupeter
W
Antworten
9
Aufrufe
597
-Sven-
-Sven-
Zurück
Oben Unten