NEWS
Ausgabe von SayIt umbauen und in anderen Objekt State schreiben
-
Hallo,
vielleicht kann mir hier jemand helfen.
Ich benötige ein Skript das mir die SayIt Ausgabe aus dem State (de;100;Die Waschmaschine ist fertig.) in ein anderen Objekt State wie folgt abspeichert.
"Die Waschmaschine ist fertig."
Also der State des Objekts darf nicht de;100; enthalten und der Text der Ansage müsste in " " gesetzt werden.
Hat jemand eine Idee wie sowas gehen könnte?
Viele Grüße,
Nanouk
-
Hallo,
vielleicht kann mir hier jemand helfen.
Ich benötige ein Skript das mir die SayIt Ausgabe aus dem State (de;100;Die Waschmaschine ist fertig.) in ein anderen Objekt State wie folgt abspeichert.
"Die Waschmaschine ist fertig."
Also der State des Objekts darf nicht de;100; enthalten und der Text der Ansage müsste in " " gesetzt werden.
Hat jemand eine Idee wie sowas gehen könnte?
Viele Grüße,
Nanouk `
Poste mal dein script "Die Waschmachine ist fertig", es wird denke ich einfacher da eine set-object hinzu zu fuegen als de sayit string aus zu lesen ?
~Dutch
-
Hi Dutch,
Waschmaschine war nur ein Beispiel.
Mir geht es generell um die sayit Ausgaben.
Ich hab es nicht geschafft meine Bose Soundtouch Lautsprecher über iobroker mit SayIt zum laufen zubekommen.
Bin jetzt einen Umweg über Fhem gegangen.
Da habe ich eine TTS Ausgabe auf den Soundtouch Geräten.
Wenn ich jetzt im iobroker in den Objekten unter Fhem (Adapter) die Bose Lautsprecher wähle und bei Datenpunkt Speak meinen Text in " " reinschreibe, bekomme ich eine Ausgabe über Fhem.
Jetzt müsste ich nur alles was in Objekte->SayIt->tts->text auftaucht, kopieren und in Objekte->fhem->bose->speak in Gänsefüßchen eintragen lassen.
Gruss
Nanouk
-
=
Jetzt müsste ich nur alles was in Objekte->SayIt->tts->text auftaucht, kopieren und in Objekte->fhem->bose->speak in Gänsefüßchen eintragen lassen. `
Hi Nanouk,
Ich verstehe diesen umweg nicht ganz da due sayit ja eigentlich liegen laesst, waere es dan nicht einfacher deine script so an zu passen das der tekst direct in ojecte fhem->bose->speak eingetragen wird ?
~Dutch
-
Ja, sicher,
aber dann müsste ich jedes einzelne Skript anpassen und davon hab ich wohl noch zu wenig Ahnung.
Dachte es wäre einfacher die Sayit Ausgabe umzuleiten.
Ich wüsste nicht wo ich bei jedem einzelnen Skript ansetzen müsste.
Zum Beispiel bei Anrufer Ansage. Da müsste ich wohl nur die
var idSayIt = 'sayit.0.tts.text';
ändern.
Aber was mache ich mit den verschiedenen blockly Skripts mit den Bausteinen sendto-> sayit.
Die müsste ich dann in JS wandeln und ebenfalls wie oben abändern?
Müsste ich wirklich nur den Pfad ändern?
var idSayIt = 'fhem.bose_XXXX.speak'; ````?
-
Ja, sicher,
aber dann müsste ich jedes einzelne Skript anpassen und davon hab ich wohl noch zu wenig Ahnung.
Dachte es wäre einfacher die Sayit Ausgabe umzuleiten.
Ich wüsste nicht wo ich bei jedem einzelnen Skript ansetzen müsste.
Zum Beispiel bei Anrufer Ansage. Da müsste ich wohl nur die
var idSayIt = 'sayit.0.tts.text';
ändern.
Aber was mache ich mit den verschiedenen blockly Skripts mit den Bausteinen sendto-> sayit.
Die müsste ich dann in JS wandeln und ebenfalls wie oben abändern?
Müsste ich wirklich nur den Pfad ändern?
var idSayIt = 'fhem.bose_XXXX.speak'; ````? `
komt drauf an wieviele scripte du hast
zu deinem erste beispiel correct, da sollte dan statt sayit die fhem ose rein.
Bei den blockly scripten einfach de sayit baustein rausnemen und ersetzen mit einen kontrollieren object mit …. (object = dein fhem object und wert was du jetzt an sayit gibst)
-
Okay, klingt logisch und nicht zu kompliziert.
Folgendes Problem hab ich aber noch:
var idAnrufer = "fritzbox.0.calls.ringActualNumber"; // actual last ringing number var idRing = "fritzbox.0.calls.ring"; var idSayIt = "fhem.0.BOSE_04A316E6E3FD.speak"/*BOSE_04A316E6E3FD speak*/; var ansageDelay = 8000; // Zeit in ms zwischen den Ansagen var timer = null; function ausgabeAnrufer(){ //setState("sayit.0.tts.text", "Anruf von. " + getState(Anrufer).val); setState (idSayIt,'Anruf von. ' + rufnummer2name(getState(idAnrufer).val)); }
Die Ausgabe wird in die entsprechende Objekt ID geschrieben. Allerdings muss sie in " " stehen. "Anruf von..123456"
Wenn ich die " zusätzlich ins Skript schreibe, funktioniert es aber nicht.
Wie kann ich das lösen?
-
dan mueeste die haken hinzugefuegt werden in etwa so ?
alter code : setState (idSayIt,'Anruf von. ' + rufnummer2name(getState(idAnrufer).val)); neuer code : setState (idSayIt,' " ' + 'Anruf von. ' + ' " ' + rufnummer2name(getState(idAnrufer).val) + ' " ');
-
Okay,
folgender Code hat funktioniert:
setState (idSayIt,' " ' + 'Anruf von. ' + rufnummer2name(getState(idAnrufer).val) + ' " ');
Vielen Dank,
Du hast mir jetzt sehr geholfen.
Gruss,
Nanouk