Regel nur einmal ausführen

Androchap

Androchap

Fortgeschrittenes Mitglied
23
Hallo,

hat jemand einen Tipp für mich, wie ich eine Regel dazu bewege nur einmal ausgeführt zu werden?

Hintergrund ist eigentlich nur eine Spielerei, dass mir mein Smartphone erzählt, dass das Akku komplett geladen ist. Dazu habe ich eine Regel, "Sprich 'Akku geladen' wenn Akuustand grösser 99%". Nun erzählt mir die Dame auch, wenn das Akku bei 100% ist - jedoch tut sie das immer mal wieder, da mein Akku recht lange bei 100% steht (was an sich natürlich klasse ist :biggrin:).

Ich habe nun eine 'Krücke' eingebaut, dass die Regel alle fünf Stunden wiederholt werden soll. Genug Zeit für mein Akku ein paar Prozente zu verlieren. Wenn ich jedoch innerhalb dieser 5 Stunden nochmal ans Netz gehe, bekomme ich keine Meldung mehr. :bored:

Vielleicht kann mir also jemand einen Tipp geben, wie ich dem Llama beibringe nur einmal auf diese Regel zu reagieren.
 
Mach Dir eine Variable, welche die Tatsache speichert, dass Du die 99% gerissen hast und Werte sie aus.



In Pseudocode:

* Wenn Ladestand < 99% und YayYippiehyayMeinAkkuIstderVollste ungleich 0: Variable YayYippiehyayMeinAkkuIstderVollste auf 0 setzen

* Wenn Ladestand > 99% und YayYippiehyayMeinAkkuIstderVollste ist nicht 1: Das tun, was Du möchtest und Variable YayYippiehyayMeinAkkuIstderVollste auf 1 setzen.
 
Aber ist das dann nicht genau das, was ich jetzt schon mache? Oder wird eine Variable nur bei Änderung ausgewertet? Dann wär es logisch ... andernfalls steht ja meine Variable wieder für eine gewisse Zeit auf "1" und die Dame kommt aus dem Plaudern nicht raus...
 
Hoppla, etwas länger geschlafen? ;-)

Wenn ich mir das jetzt so angucke, wundert es mich auch, dass Deine ursprüngliche Variante nicht funktioniert.

Mein Vorschlag müsste aber dennoch funktionieren. → einfach mal ausprobieren…?

Der wichtige Teil ist die zusätzliche Bedingung "Variable != 1". Das ist ja nur beim erstmaligen durchbrechen der 99%-Marke wahr.
 
  • Danke
Reaktionen: Androchap
oder:

1. Wenn Akku > 99 -> Variable auf 1 setzen
2. Wenn Variable = 1 -> Dame reden lassen UND Variable auf 2 setzen (stellt sicher, dass die Dame nur einmal quatscht)
3. Wenn Akku < 99 und Variable <> 0 -> Variable auf 0 setzen
 
  • Danke
Reaktionen: Androchap
So funktionierts! :)
Das setzen der Variable auf 2 war der Knackpunkt ... hätte man auch selbst drauf kommen können ... DANKE für eure Hilfe!
 
habe eine ähnliche frage:

wenn ich im auto das ladekabel und das audiokabel anschließe,
wird ene regel ausgeführt.

wenn ich den motor kurz ausmache und neu starte, wird die regel wieder abgearbeitet.
kann ich das verhindern?
 
Müsste dann wie oben gemacht werden. Also eine variable setzen.

Zusätzliche Bedingung (in der existierenden Regel): variable "Regel wurde ausgeführt" = 0

Zusätzliches Ereignis (in der existierenden Regel): variable "Regel wurde ausgeführt" auf 1 setzen

Zusätzliche Regel:

Bedingung: Headset entfernt (also audiokabel abgezogen, ich gehe davon aus, dass im Kopfhörer-Ausgang steckt)

Ereignis: variable "Regel wurde ausgeführt" auf 0 setzen
 
Zuletzt bearbeitet:
bitte einmal für doofe!

ich rufe die regel auf
klicke auf "bdingung hinzufügen"

und dann?
 
Llama-Variable -> einen Namen geben, mittleres Feld so lassen (aktueller Wert), im unteren Feld eine 0 reinschreiben

gaqe3evy.jpg


Und dann Ereignis hinzufügen
Llama-Variable -> oberstes Feld rechts auf den Pfeil und deine Variable auswählen
-> Unteres Feld (Variablenwert) eine 1 reinschreiben

Rest so lassen

jynu9ybe.jpg


Und natürlich jeweils mit Ok bestätigen ;)
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: bollerah und titan72c
ich habs eingestellt.vorhin gings nicht,
weil ich die und-verknüpfung vergessen ahtte.
melde mich morgen.
danke erstmal!
 
Du musst nicht zwingend die UND-Verknüpfung nehmen. Das macht Llama automatisch.
Hast du auch die zweite Regel noch gemacht, die die variable wieder zurücksetzt?

Edit: am besten, du listest hier mal auf, wie deine regeln aussehen mit Bedingungen und Ereignissen.
 
Zuletzt bearbeitet:
also, so, wie ich das jetzt habe, klappts nicht.

Bedingung: Regel wurde ausgeführt
Wert 0

Ereignis: Regel wurde ausgeführt
auf 1

Die Variable, bzw. der Wert müsste ja irgendwann wieder auf 0 gesetzt werden (wenn man das Handy aus der Ladevorrichtung genommen hat), oder?
 
1. Regel: (deine schon existierende mit den roten sachen erweitern)
Bedingungen:
- Audiokabel angeschlossen
- am Ladegerät
- Variable Wert 0 (siehe 1. Screenshot in meinem anderen Post)

Ereignis:
- das was es jetzt schon tut
- Variable auf 1 setzen (siehe 2. Screenshot in meinem anderen Post)

2. Regel (die musst du noch erstellen um die Variable wieder zurückzusetzen)
siehe Zitat
Cua schrieb:
Zusätzliche Regel:

Bedingung: Headset entfernt (also audiokabel abgezogen, ich gehe davon aus, dass im Kopfhörer-Ausgang steckt)

Ereignis: variable "Regel wurde ausgeführt" auf 0 setzen
Damit wird die Variable wieder auf 0 gesetzt und somit wird erst wieder dein (ungenananntes) Ereignis ausgeführt, wenn das Audiokabel einmal abgezogen war. Also nicht, wenn nur der Motor mal neu gestartet wurde.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: bollerah
habs jetzt mal so gemacht.
(wobei ich das rote nicht verstehe, ich hatte eh einfach deinen screenshot übernommen)

morgen teste ichs und gebe bescheid.

DANKE für die mühe !!!
 
Der Screenshot hat doch nur gezeigt, wie die variable zu verarbeiten ist.

Aber, wenn du jetzt alles so hast, wie es dasteht, sollte es funktionieren. Wenn nicht beim ersten mal, dann hat die variable noch keinen definierten wert. Dann einfach mal das audio-kabel abziehen. Dann sollte ja die 2. Regel greifen, und die variable auf 0 setzen.
 
  • Danke
Reaktionen: titan72c und bollerah
hej & guten morgen

scheint tatsächlich zu klappen!
(falls nicht, melde ich mich hier nochmal)

vielen dank an alle helferlein!
 
  • Danke
Reaktionen: Cua
Hmm -
irgendwie find ich Llam geil, bin aber trotzdem am Verzweifeln: :(

-------------------
Immer wieder meldet sich Llama mit dem Ereignis "Zuhause ankommen", obwohl sich das Smartphone nicht bewegt !

Bedingung: Gebiet Beitreten Zuhause
Erweitert... : "Verzögerung" um 2 Minuten, "Verzögerte vergessen, falls unzutreffend" ist aktiviert
Ereignisse: "App-Schnellzugriff ausführen" => Zuhause ankommen, u.a. eine Sprachausgabe

------------------

Massnahmen: habe schon x-mal Gebiet ZUHAUSE neu erfasst, aber da ich auf dem Land wohne, sind dies i.d.R. nur 3 Zellen.
( Manchmal, aber selten, tauchen auch nur die Zellen : -1:-1:-1 auf )

----------------

Dann habe ich auch schon über Variablen siniert, aber das hilft mir - glaube ich - nicht weiter. Denn wenn ich ZUHAUSE regulär verlasse, dann ändern sich die Zellen ja gewollt, und dann soll ja die Regel "Zuhause verlassen" ja ganz normal ablaufen... Und wenn ich dann das nächste Mal wieder "Zuhause ankomme", dann sollen die entsprechenden Erieignisse ja wieder ganz normal durchlaufen werden.

Oder mache ich da irgendwie einen Denkfehler ? :confused:

Kernfrage also: Woher weiß Llama, dass ich das Gebiet wirklich verlasse <-----> oder dass nur der Kontakt zu einer Funkzelle mal abgerissen ist und nach > 2 Minuten wieder vorhanden ist, ohne dass sich das Smartphone bewegt hat.
Zusatzfrage: Müssen ALLE einem Gebiet zugewiesenen Zellen erkannt werden, damit das Ereignis gestartet wird, oder reicht EINE der mehreren registrierten Zellen für ein Gebiet aus, um das Ereignis zu starten ?


Danke im voraus für Antworten.... :rolleyes2:
 
Es reicht eine Zelle, du bist ja auch nur mit einer Zelle verbunden ;)
Und wenn die Verbindung mal abreißt, ist das Telefon mit keiner Zelle verbunden, die Llama als " zu Hause" erkennt, als bist du im unbekannten Gebiet, wenn dann wieder Verbindung da ist, betrittst du wieder das Gebiet "zu Hause“ und Llama führt die Regel also ordnungsgemäß aus.
Eine Möglichkeit wäre, beim Betreten von "zu Hause" eine variable zu setzen, die zurücksetzt wird, wenn du das Gebiet für x Minuten verlassen hast und diese dann in die Regel integrieren. Musst dann gucken, wie lange die Zeit sein muss um diesen "Abriss" der Verbindung zu überbrücken.
 
Man sollte auf jeden Fall die Zelle -1:-1:-1 ignorieren, die ist nämlich dummerweise überall. :)

Wenn sie ignoriert wird, bleibt einfach das Gebiet aktiv, das vorher zuletzt gesehen wurde.
 

Ähnliche Themen

T
Antworten
0
Aufrufe
999
transfererror
T
K
Antworten
0
Aufrufe
1.981
kucki007
K
L
Antworten
5
Aufrufe
3.060
RajaP
R
Zurück
Oben Unten