funktionierender "whatsapp vorlesen" task

rtwl

rtwl

Dauergast
1.384
hat hier jemand einen funktionierenden "whatsapp vorlesen" task am laufen mit allen möglichen Konstellationen?
also eine "natürliche" Ansage egal ob:
  • eine Nachricht einer Person
  • eine Nachricht aus einer Gruppe
  • 2 oder mehr Nachrichten einer Person
  • 2 oder mehr Nachrichten einer Person aus einer Gruppe
  • 2 oder mehr Nachrichten aus mehreren Personen einer Gruppe
  • 2 oder mehr Nachrichten mehrerer Personen
  • 2 oder mehr Nachrichten von Person und Gruppen.
warum ich so blöd frage:
ich habe kein Root, deswegen kommt WhatsTasker nicht in frage (anscheinend könnte man es damit). Ich habe die fertigen Projekte getestet, aber hier gibt es Probleme mit den oben genannten Möglichkeiten.
daher hab ich mich selber ans basteln gemacht. Ich nutze das plugin AutoNotification und setze dann diverse if Bedingungen um die verschiedenen Möglichkeiten abzufangen.
was bis jetzt gut funktioniert ist:
  • eine oder mehr Nachrichten einer Person
  • mehrere Nachrichten mehrerer Personen.
das Problem aktuell ist noch die Abfrage einer Nachricht aus einer Gruppe.

aber bevor ich hier weiter aushole an was es genau scheitert wollte ich mal fragen ob jemand einen funktionierenden task dafür hat? Ach ja, es geht mir nur ums vorlesen nicht um Antworten per Sprache.
 
Die einfachen Tasks im Anhang kennst Du sicher!?
 

Anhänge

  • Downloads.zip
    1,9 KB · Aufrufe: 44
Ja danke die kenne ich. Auf diese tasks hab ich es natürlich aufgebaut, aber ich möchte es schon etwas komplexer haben, eben mit allen Bedingungen wie im ersten Post erwähnt.

Aktuell sieht mein Projekt so aus. Ich glaube auch, dass es jetzt soweit funktioniert, muss aber noch testen.

PS: Die ganzen IF Bedingungen resultieren aus der Tatsache, dass AutoNotification die Variablen/Arrays manchmal unterschiedlich bestückt.
Sowie den Unterschied im 'Vorlesen' zu haben ob eine oder mehrere Nachrichten von einer oder mehreren Personen kommt.

Code:
    WhatsApp vorlesen test (529)
        A1: AutoNotification Query [ Konfiguration:Notification Apps: WhatsApp Timeout (Sekunden):20 ]
        A2: Popup-Benachrichtigung [ Text:%antextlines(1) Lang:An ]
        A3: Array Leeren [ Variable Array:%Wtitle ]
        A4: Array Leeren [ Variable Array:%Wtext ]
        A5: Array Leeren [ Variable Array:%Wtextlines ]
        A6: Stopp [ (Fehler):Aus Task: ] If [ %antitle ~ \%antitle ]
        A7: Array Set [ Variable Array:%Wtitle Values:%antitle() Teiler:, ]
        A8: Array Set [ Variable Array:%Wtext Values:%antext() Teiler:, ]
        A9: Variable Setzen [ Name:%textlinecheck Zu:%antextlines()  Recurse Variables:Aus Mathematisch:Aus Hinzufügen:Aus Max Rounding Digits:3 ] If [ %antextlines(1) ist gesetzt | %antextlines(1) ~ \%antextlines1 &+ %antextlines(2) ist gesetzt ]
        A10: Variablen [ Name:%textlinecheck Von:2 Länge:9 Anpassen:Aus Ergebnis Ablegen In:%textlineerste8 ] If [ %antextlines(1) ist gesetzt | %antextlines(1) ~ \%antextlines1 &+ %antextlines(2) ist gesetzt ]
        A11: If [ %textlineerste8 ~ antextlin ]
        <Mit antextlines>
        A12: Array Set [ Variable Array:%wtextlinesa Values:%antextlines() Teiler:, ]
        <Mit antextlines>
        A13: Array Set [ Variable Array:%Wtextlines Values:%wtextlinesa(2) Teiler:=:= ]
        A14: Else
        <ohne antextlines>
        A15: Array Set [ Variable Array:%Wtextlines Values:%antextlines Teiler:=:= ] If [ %antextlines(1) ist gesetzt | %antextlines(1) ~ \%antextlines1 ]
        A16: End If
        <1 von 1>
        A17: If [ %Wtextlines(2) ! gesetzt ]
        A18: Vorlesen [ Text:%antitle(1) schreibt %antext(1) Maschine: Stimme:default:default Stream:3 Tonhöhe:5 Geschwindigkeit:5 Respect Audio Focus:An Network:Aus sofort mit Task fortfahren:Aus ]
        A19: End If
        <2+ von 1>
        A20: If [ %Wtitle(1) ~ %Wtitle(2) & %Wtext(1) !~ %Wtext(2) ]
        A21: Vorlesen [ Text:%Wtextlines(#) Nachrichten von %Wtitle(1) Maschine: Stimme:default:default Stream:3 Tonhöhe:5 Geschwindigkeit:5 Respect Audio Focus:An Network:Aus sofort mit Task fortfahren:Aus ]
        A22: For [ Variable:%arr Einträge:1:%Wtextlines(#) ]
        A23: Vorlesen [ Text:Nachricht %arr: %Wtextlines(%arr) Maschine: Stimme:default:default Stream:3 Tonhöhe:5 Geschwindigkeit:5 Respect Audio Focus:An Network:Aus sofort mit Task fortfahren:Aus ]
        A24: End For
        A25: End If
        <X von 2>
        A26: If [ %Wtitle(1) !~ %Wtitle(2) ]
        A27: Vorlesen [ Text:%Wtextlines(#) Nachrichten aus mehreren Chats Maschine: Stimme:default:default Stream:3 Tonhöhe:5 Geschwindigkeit:5 Respect Audio Focus:An Network:Aus sofort mit Task fortfahren:Aus ]
        A28: For [ Variable:%arr Einträge:1:%Wtextlines(#) ]
        A29: Vorlesen [ Text:Nachricht %arr: %Wtextlines(%arr) Maschine: Stimme:default:default Stream:3 Tonhöhe:5 Geschwindigkeit:5 Respect Audio Focus:An Network:Aus sofort mit Task fortfahren:Aus ]
        A30: End For
        A31: End If
 
  • Danke
Reaktionen: qwoka und Hastenichgesehen
aktuelles Problem mit meinem task:
sobald nur eine Nachricht in einer Gruppe kommt, greift die falsche if Bedingung und es wird irgendwas vorgelesen.
kommt eine zweite oder mehr Nachrichten in die Gruppe (beide natürlich ungelesen und in der Statuszeile) funktioniert es wieder.

Status Problemlösung:
ich muss mal alle anderen Variablen aus dem AutoNotification checken ob es da eine bessere Variable gibt einzelne Nachrichten-Konstellationen als IF Bedingung zu verwenden.
 
WhatsApp Vorlesen Testversion v0.1

So geht es, aber sehr rudimentär. ohne ansagen viele Nachrichten von welchem Absender. Eventuell Hilft es dir für den Ausbau.

WhatsApp vorlesen test v0.1 (115)
A1: AutoNotification Query [ Konfiguration:Notification Apps: WhatsApp Timeout (Sekunden):20 ]
A2: Variable Aufteilen [ Name:%antextlines Teiler:=:= Basis löschen:Aus ] If [ %antextlines ist gesetzt ]
A3: [X] Popup-Benachrichtigung [ Text:%antextlines
%antitle %antext Lang:Aus ]
A4: Vorlesen [ Text:Nachricht %antitle %antext Maschine: Stimme:default:default Stream:3 Tonhöhe:5 Geschwindigkeit:5 Respect Audio Focus:An Network:Aus sofort mit Task fortfahren:Aus ] If [ %antextlines ! gesetzt ]
A5: For [ Variable:%arrrr Einträge:%antextlines() ]
A6: Vorlesen [ Text:Nachricht %arrrr Maschine: Stimme:default:default Stream:3 Tonhöhe:5 Geschwindigkeit:5 Respect Audio Focus:An Network:Aus sofort mit Task fortfahren:Aus ]
A7: End For
[/spioler]
 
Zuletzt bearbeitet von einem Moderator:
Bearbeitet von: derstein98 - Grund: derstein98+
Leider nicht, da es damit Probleme gibt wenn man zwei Nachrichten von einer Person bekommt. Da ist %antextlines leer, dafür hat man zwei Einträge in %antext(). Als trigger für eine Person verwende ich dafür den Vergleich der beiden Einträge in %antitel(), diese sind dabei identisch.
bei zwei Personen sind die %antitle() logischerweise ungleich.
bei zwei Nachrichten einer Person aus einer Gruppe sind sie auch ungleich, was aber dann die falsche vorlesen Aktion startet. Das Problem ist, dass der Nachrichtentext dabei in %antext() steht und erst ab der dritten Nachricht die array %antextlines() befüllt wird.

vielleicht kann mir jemand einen kurzen test task machen wie diese Einträge als die selbe Person triggern kann:
%arr(1) = "Max Mustermann @Gruppe"
%arr(2) = "Max Mustermann"

manchmal ist aber das @Gruppe im (2) und der Name in (1).

@Spardas, manchmal sieht %antextlines() so aus "Hallo=:=Wie geht's"
manchmal aber auch so
"%antextlines1,Hallo=:=Wie geht's"

auch das hab ich lösen können mit den 3 IF Bedingungen... zumindest haben meine Tests damit erfolg erbracht.
 
Ich beobachte diesen Thread sehr interessiert. @rtwl gibt es mittlerweile eine überarbeitete Version von Deinem Task oder blieb es bei der Testversion? Vielen Dank für diese Arbeit.
 
Bis jetzt hatte ich noch keine Gelegenheit weiter zu arbeiten. Daher bleibt es vorerst bei der Testversion.
ich habe auch noch nicht zu 100% herausgefunden wann es nicht funktioniert. Also bei welcher Konstellation an privat und Gruppen Nachrichten.
wenn du da eine Logik beobachtet hast, bitte melden. Vielleicht kommt dann meine Motivation wieder 😉
zu 95% funktioniert es aber aktuell bei mir.
 
  • Danke
Reaktionen: qwoka
@rtwl Bist Du mit Deinem Projekt weitergekomme oder blieb es bei der Testversion? Vielen Dank.
 
Danke für das Interesse, aber es bleibt bei der Testversion.
Da ich auch auf Signal umgestiegen bin, wird es definitiv dabei bleiben. Irgendwie fehlt mir auch grad die Zeit und Lust das ganze auf Signal zu ändern. Aber das war ja eh nicht die Frage 😉
 
Ok, aber danke für Dein bisheriges Projekt.
 

Ähnliche Themen

holms
Antworten
1
Aufrufe
93
Mathens
Mathens
j3sk0
  • j3sk0
Antworten
2
Aufrufe
236
j3sk0
j3sk0
P
Antworten
25
Aufrufe
1.134
Pentatulim
P
Zurück
Oben Unten