NEWS
Anruferkette via Alexa2.0 und tr-064
-
Hallo zusammen,
wie schon in einem andrem Beitrag geschrieben bin ich seit ein paar Monaten an meinem ioBroker Projekt, und kam bisher mit den Foreinträgen soweit das ich keine weitere Hilfe benötige. Aber nun ist es soweit das ich euch einmal um Rat bitten muss. Ich habe folgendes vor:Wenn mein Sohn eher von der Schule kommt, soll er per Alexa mich in der Firma und wenn ich da nicht bin auf dem Handy Anrufen, damit ich Bescheid weiß das er da ist. Habe mir also über die Alexa App eine Routine bzw Scene eingerichtet die mir beim Satz, "Alexa, ich habe Schulfrei" einen Virtuellen Schalter auf "true" stellt. Soweit so gut. Dazu habe ich dann ein Script geschrieben mit einer art "Anruferkette" die mich dann jeweils auf den 2 Nummern hintereinander Anruft solange bis jemand ran geht.
Nun zu meinem Problem.
Wird der Anruf gestartet, werde ich auch nacheinander auf den Nummern angerufen,aber wenn ich den Befehl wieder wegnehme geht es trotzdem weiter. Auch wenn ich den Anruf dann entgegennehme und dann wieder aufgelegt habe werde ich immer wieder angerufen, bis ich den Script pausiere. Ich habe mir also eine "Endlosschleife" gebaut. Wie ich das gemacht habe und wie ich das lösen kann ist mir aber ein Rätzel.
Könnt ihr mir helfen? Danke
Hier mein Script
-
@Spark sagte:
aber wenn ich den Befehl wieder wegnehme geht es trotzdem weiter.
Weil auf "wahr" getriggert wird. Versuche es mal so:
-
Hi @paul53
danke für deinen Tipp, werde ich heute Abend direkt ausprobieren. Ich möchte das Script gerne verstehen und deswegen habe ich da noch ein Frage,du Fragst bei "falls" mit einer UND Verknüpfung den Wert und dann nochmal der Wert von der ID. Was hat das für einen Hintergrund?
Feedback gibt es dann später wenn ich es getestet habe.
-
@Spark sagte:
Fragst bei "falls" mit einer UND Verknüpfung den Wert und dann nochmal der Wert von der ID.
Wert ist der Wert des Triggerdatenpunktes (unter Trigger) mit dem Namen "Anruf tätigen". Bei der ID ist der Datenpunkt mit dem Namen "On call states" zuzuweisen. Also bedeutet die Abfrage:
falls Wert von "Anruf tätigen" == wahr UND Wert von "On call states" != "connect" -
Hi @paul53
habe es gestern mal ausprobiert. Es funktioniert etwas besser aber leider nicht so wie ich es mir gedacht habe.
-
Wird erst nach 1 minute der Anruf gestartet. Das wird von dem Intervall kommen. Denke das bekomme ich aber gelöst.
-
Wird obwohl ich den Anruf bei der 1. Nummer entgegengenommen habe wird nach dem Auflegen die 2. (und 3.) trotzdem noch angerufen. Vermute das das daran liegt das der Intervall schon gestartet war und dieser noch einmalig durchläuft?!
-
-
@Spark sagte:
Wird erst nach 1 minute der Anruf gestartet.
Packe die zwei "steuere" in eine Funktion und rufe die Funktion vor dem Intervall und im Intervall auf.
@Spark sagte in Anruferkette via Alexa2.0 und tr-064:
obwohl ich den Anruf bei der 1. Nummer entgegengenommen habe
Um sofort auf die Anrufentgegennahme zu reagieren, muss auf den Datenpunkt "on call states" getriggert werden und bei "connect" das Intervall gestoppt werden.
-
Also so?
-
@Spark sagte:
Also so?
Der erste Versuch zur 2. Nummer wird so erst nach 80 s erfolgen.
Welchen Sinn soll der letzte Befehl im sonst-Zweig ergeben ?
-
@paul53 sagte in Anruferkette via Alexa2.0 und tr-064:
Der erste Versuch zur 2. Nummer wird so erst nach 80 s erfolgen.
Nein es ist die 2. Nummer unten. Also erst die für 1min die Nr. 2 aus der Schleife, dann die 1. und dann wieder die 2.
Der Sinn des letzen sonst ist, das der Status von "Anruf tätigen" wieder auf false gesetzt wird nachdem die Anrufe getätigt wurden. Sonst würde der ja immer auf "high" bleiben und beim Nächsten Befehl würde der Anruf nicht ausgelöst werden.
-
@Spark sagte:
der Status von "Anruf tätigen" wieder auf false gesetzt wird nachdem die Anrufe getätigt wurden.
Das funktioniert an der Stelle nicht, da nur getriggert wird, wenn sich der Wert von "Anruf tätigen" ändert. Der Befehl wird also nur ausgeführt, wenn "Anruf tätigen" wahr wird und zu dem Zeitpunkt bereits "connected" ist.
Der Befehl "Anruf tätigen" auf false muss in den 2. Trigger. Dann kann dort das "stop Intervall" wegfallen, weil durch den Befehl der erste Trigger aktiviert wird und in den sonst-Zweig läuft.
-
Tip,Top!
Denke jetzt klappt es. Bin gerade nicht zuhause, werde es aber heute Abend mal testen. Danke für deine Hilfe
-
@Spark
Ich habe die ganze Zeit überlegt wie ich mich auf dem Handy per Anruf aus ioBroker anrufen lassen kann, dein Tipp mit dem "ring" und der Nummer funktioniert, Danke für die unfreiwillige HilfeWenn der Anruf dann angenommen wird, was passiert dann bei dir, kann man dann auch einen Text sagen lassen ?
Nach so was suche ich noch. (Alexa und tr-064 Adapter sind bei mir installiert.) -
@Spark könntest du vielleicht dein fertiges Script als Export einfügen ? Natürlich ohne Nummern
-
Ich würde mich für das fertige Skript gerne anschließen.
Ebenfalls interessiert mich, was bei Rufannahme gesagt wird?Danke für Info...