Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst]Nur einmal im definierten Zeitraum auslösen? -Sonos Ansage

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    [gelöst]Nur einmal im definierten Zeitraum auslösen? -Sonos Ansage

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      skorpil last edited by

      Tempestas,

      Richtig! Darum geht es. Ich habe das ja auch mit der CCU Variablen gelöst. Sayit wird bespielt. Hier mal ein log Auszug

      sonos-0	2017-06-20 07:51:35.576	info	Restore state: volume - 49, mute: false, uri:
      sonos-0	2017-06-20 07:51:17.946	info	Play on sonos[RINCON_B8E937E5C96201400]: http://192.168.xx.xx:8082/state/sayit.3.tts.mp3, Volume: 40
      sonos-0	2017-06-20 07:51:17.931	info	try to control id sonos.0.root.192_168_0_89.tts with {"val":"40;http://192.168.xx.xx:8082/state/sayit.3.tts.mp3","ack":false,"ts":1497937877917,"q":0,"from":"system.adapter.sayit.3","lc":1453448706}
      sayit-3	2017-06-20 07:51:17.853	info	Copied file '/opt/iobroker/node_modules/iobroker.sayit/say.mp3' to '/opt/iobroker/cache/4fb8e282a851c96d6a99a645f84b4505.mp3'
      sayit-3	2017-06-20 07:51:17.844	info	Set "sonos.0.root.192_168_0_89.tts: 40;http://192.168.xx.xx:8082/state/sayit.3.tts.mp3
      sayit-3	2017-06-20 07:51:16.977	info	saying: Guten Morgen, heute ist Dienstag der 20te Juni 2017\. Es ist 7 Uhr und 51 Minuten. Die Aussentemperatur beträgt 17,6 Grad. Wetter Bedingungen, Heiter .Heute haben Geburtstag, Xxxxxx
      

      Dennoch bleibt die Sonos manchmal stumm, manchmal nicht. Ich habe den Eindruck, dass das mit dem Abspielen eines Radiosenders nach der Ansage zu tun hat. Bin aber nicht sicher. Ich beobachte vier Situationen:

      1. ein Radiosender läuft. Wenn ich dann die Durchsage sende, wird sie zunächst korrekt angespielt. Dann allerdings nochmal, aber deutlich leiser. Warum zweimal, ich weiß es nicht. Und danach wird das Radio auch nicht fortgesetzt

      2. eine Playlist läuft: diese wird von der Durchsage wunschgemäß unterbrochen und danach die Playlist fortgesetzt. Also alles bestens

      3. Radio läuft und gleichzeitig gibt es auch noch eine Playlist in der Sonos Anzeige: Durchsage erfolgt wie unter 1. zweimal, beim zweitenmal leiser und weder das Radio noch die Playlist werden danach gespielt.

      4. kein Radiosender, keine in der Sonos Anzeige: die Durchsage erfolgt korrekt. Das file wird angespielt und "verschwindet" danach auch aus der Playeransicht bei Sonos.

      Fazit und Frage: wenn ein Radiosender aktiv ist, werden Durchsagen nicht mehr sauber angespielt. Hat jemand eine Idee, wie das korrigiert werden kann?

      1 Reply Last reply Reply Quote 0
      • Dutchman
        Dutchman Developer Most Active Administrators last edited by

        Sollten wir das nicht in einen separaten thread besprechen ?

        Auslösung in Zeitraum ist gelöst oder?

        Jetzt haben wir noch ein Sonos Problem

        –-----------------------

        Send from mobile device

        1 Reply Last reply Reply Quote 0
        • S
          skorpil last edited by

          Das war mir auch schon im Kopf herumgegangen. Soll ich den Titel ändern?

          Vielleicht hören wir noch, was tempestas sagt….

          1 Reply Last reply Reply Quote 0
          • T
            tempestas last edited by

            Hallo skorpil,

            nur in Kürze:

            Auch ich (und andere) kennen das Problem mit SayIt, das es leiser wird, wenn mehrere Ansagen kommen.

            Meine Vermutung ist, dass SayIt seinen Volume Befehl, sofern gesetzt, multipliziert, d.h. z.B. aus 15 (=0.15 von max 1) wird beim nächsten Mal 0.15 x 0.15 = 0,025 . Oder irgendwie so in der Richtung. Genaues bleibt unklar.

            Ich kenne es von meiner "Fenster offen" Ansage, dass es immer leiser wurde bis hin zum totalen Muten der Boxen.

            Siehe den Link, da beschreibt ein anderer User ebenfalls ähnliche Probleme. Dort war mir aufgefallen, dass er seine Ansage aus mehreren SayIts zusammensetzt, statt eine Datei zu schaffen, die dann abgespielt wird. Entsprechend wurde es bei ihm auch immer leiser. Leider hat er auf meine Nachfrage nicht mehr reagiert.

            http://forum.iobroker.net/viewtopic.php?f=21&t=6694

            Auch bei meinen Versuchen, meinen Alarmsound für die Alarmanlage über SayIT auszugeben, ist es mir aufgefallen. Da hatte ich zwar auch Skript Fehler, tatsache war aber, dass es immer leiser wurde, wenn das Skript die nächste Runde SayIT "eingeleitet" hat, während die alte noch aktiv war. Wobei "aktiv" teilweise nach meinem Eindruck länger ist als die reine Spielzeit der mp3.

            Was für einen Radiostream nutzt du, wenn es zu Problemen kommt? Irgendwo habe ich von Problemen bei Amazon Prime gelesen, wohingegen tuneIn funktioniert (bei mir läufts ohne Probleme).

            Bin nun erstmal unterwegs, mehr später.

            1 Reply Last reply Reply Quote 0
            • S
              skorpil last edited by

              Ich arbeite mit tuneIn. Das sieht ja danach aus, als hätte noch niemand eine Lösung. Und das scheint auch die Ursache für mein Problem zu sein…

              Restore state: volume - 8, mute: false, uri:
              sonos-0	2017-06-21 08:02:06.429	info	Play on sonos[RINCON_B8E937E5C96201400]: http://192.168.0.80:8082/state/sayit.3.tts.mp3, Volume: 40
              sonos-0	2017-06-21 08:02:06.414	info	try to control id sonos.0.root.192_168_0_89.tts with {"val":"40;http://192.168.0.80:8082/state/sayit.3.tts.mp3","ack":false,"ts":1498024926399,"q":0,"from":"system.adapter.sayit.3","lc":1453448706}
              

              Schau mal auf mein Post #16. Da war "restore state: volume -40" und jetzt war es "-8".

              Heute war die Ansage da.

              Vielleicht sollten wir das mal als Fehler im GitHub melden und ggf. in einen neuen threat unter Adapter formulieren. Was mein ihr?

              1 Reply Last reply Reply Quote 0
              • T
                tempestas last edited by

                Hallo Skorpil,

                welches Volume wird denn da restored?

                Man hat ja zum einen die Lautstärke der Sonosbox an sich, zum anderen SayIt (leider habe ich kein Gefühl dafür, wie diese beiden miteinander in Bezug stehen: Überschreibt SayIt die Sonos Einstellung? Wird es als Faktor eingerechnet?)

                Auf dem Git steht ja auch noch:

                > sayit.N.tts.volume: volume which will be used by playing of the phrase.

                Das ist ja das, was wir normalerweise ansprechen in den Skripten.

                > You can specify the volume of announcement in percent from current or given volume (not from maximal). E.g. if command is de;75;Gutes Wetter and "announce volume" is 50%, the announce will be played with volume 38% from 100% possible.

                Wo setze ich das "announce volume"? Das habe ich noch nicht gefunden? Spielt das in das Problem mit rein?

                1 Reply Last reply Reply Quote 0
                • S
                  skorpil last edited by

                  Welche volumes da restored werden, weiß ich auch nicht. Ich vermute: der Wert vorher. Aber…..

                  Ich rate: "announce volume" ist das, auf dem die Sonos gerade steht. Also der letzte Stand des zuletzt angespielten Musikstückes, Ansage, was auch immer...ich verstehe den englischen Text so, dass die Lautstärke der Ansage sich stets auf den letzten "current" Stand bezieht. Und dieser auch "restored", also wieder hergestellt wird.

                  Nur, manchmal eben nicht. Z.B. bei Radiostreams...

                  1 Reply Last reply Reply Quote 0
                  • S
                    skorpil last edited by

                    Heute morgen habe ich manuell, bevor die Ansage kam, die Lautstärke auf einen mitteren Wert gestellt. Genau in Werten geht das leider nicht. Hier das log:

                    sonos-0	2017-06-22 07:31:13.802	info	Restore state: volume - 42, mute: false, uri:
                    sonos-0	2017-06-22 07:30:51.631	info	Play on sonos[RINCON_B8E937E5C96201400]: http://192.168.xx.xx:8082/state/sayit.3.tts.mp3, Volume: 40
                    

                    Danach wird ja der Radiostream gestartet mit

                     "http://192.168.xx.xx/sonos2.php?zonen=kueche&action=radioplaylist&playlist=RTL%20-%20Die%20besten%20Hits%20aller%20Zeiten&volume=8";
                    
                    

                    Hier wird als Lautstärke "Volumen=8" eingestellt. Und die zeigt sich so auch in der Sonos App.

                    1 Reply Last reply Reply Quote 0
                    • T
                      tempestas last edited by

                      @skorpil:

                      Welche volumes da restored werden, weiß ich auch nicht. Ich vermute: der Wert vorher. Aber…..

                      Ich rate: "announce volume" ist das, auf dem die Sonos gerade steht. Also der letzte Stand des zuletzt angespielten Musikstückes, Ansage, was auch immer...ich verstehe den englischen Text so, dass die Lautstärke der Ansage sich stets auf den letzten "current" Stand bezieht. Und dieser auch "restored", also wieder hergestellt wird.

                      Nur, manchmal eben nicht. Z.B. bei Radiostreams... `

                      Das würde erklären, warum die Boxen leiser werden bis hin zum Mute. Meine Vermutung ist, dass SayIt während es läuft quasi die Lautstärke der Sonos "übernimmt", aber nicht schnell genug zurücksetzt.

                      Dann kommt die nächste Ansage, die Sonosbox gilt statt z.B. auf 50% eben nur auf SayIt * Sonosbox [sagen wir 15 x 50% = 7.5] und wird wieder multipliziert… so wird es immer leiser.

                      Meine Lösung für mein Fensterskript war es, einfach das SayIt Volume nicht zu setzen im Skript, wobei ich das auch noch beobachten muss (aktuell ist es einfach zu warm morgens).

                      Unklar bleibt aber sowieso für mich, was genau die Laustärke ist. Da die Boxen ja nicht in % geregelt werden sondern undefinierbaren absoluten Zahlen (was bedeuted "12"? Ich weiß nur, dass 12 bei mir für das Badezimmer laut genug ist morgens).

                      1 Reply Last reply Reply Quote 0
                      • 6nfanatic
                        6nfanatic last edited by

                        @Dutchman:

                        @skorpil:

                        Das ist sehr lieb, Dutchman. Ich probiere erstmal und werde das funktionsfähige Skript hier posten - wenn ich es hinkriege. `

                        😄 so wieder am PC, hier hast du mal ein beispiel wie ich es gelöst habe zur inspieration 😉

                        Blöcke:

                        Screen Shot 2017-06-18 at 15.03.41.png

                        Der generierte JavaCode sieht dan in etwa so aus:

                        var Bedtime;
                        
                        // Activate Bed-Time Modus by TV off
                        Bedtime = false;
                        on({id: "harmony.0.Woonkamer.activities.currentStatus"/*activity:currentStatus*/, change: "ne"}, function (obj) {
                          var value = obj.state.val;
                          var oldValue = obj.oldState.val;
                          // Disable lights living room with delay of 15 seconds
                          if (getState("harmony.0.Woonkamer.activities.currentStatus").val == 0 && getState("openhab.0.items.Woonkamer_Kast").val == true && compareTime("22:00", "6:00", "between")) {
                            setStateDelayed("openhab.0.items.Woonkamer_Kast", false, 15000, false);
                          }
                          Bedtime = true;
                        });
                        schedule({astro: "sunrise", shift: 0}, function () {
                          if (compareTime(getAstroDate("sunrise", undefined, 0), null, "<", null) && Bedtime == true) {
                            Bedtime = false;
                          }
                        });
                        
                        

                        In dem block setze ich eine variable auf falsch, danach die abfrage ob die variable false ist wen ja setze auf true.

                        Bei nästen mal ist die variable true und wird nichts ausgeöst.

                        Der zweite block setz per astro funtion den block wieder auf falsch (war in meinem fall praktisch kan aber auch anderer shedule usw sein).

                        Da ich es mit variablen löse ist der wert nicht festgelegd, also adapter, script oder iobroker neustart fängt dan wieder bei NULL an.

                        Dutch

                        PS: wenn du diese blöcke probieren möchtest hier der code zum import:

                        ! ..... `

                        Hey, ich habe mich an deinem Script orientiert da ich das ganze derzeit lerne 🙂

                        Ich benutze das ganze für eine Guten-Morgen Routine.

                        Irgendwie klappt es mit dem Flag aber nicht, kannst du sagen was ich falsch mache?

                         <xml xmlns="http://www.w3.org/1999/xhtml"><block type="variables_set" id="xvs=nbv9z_Z)s;4Z!|#^" x="38" y="64"><field name="VAR">Wakeup</field>
                            <value name="VALUE"><block type="logic_boolean" id="AjrYZTXBGz7w,~Vol6Wz"><field name="BOOL">TRUE</field></block></value> 
                            <next><block type="on" id="kPCG3bU;Fc7HHYySm@{Q"><field name="OID">node-red.0.hue-motion</field>
                                <field name="CONDITION">ne</field>
                        
                                <statement name="STATEMENT"><block type="controls_if" id=";/djsW44X8,iQmkuZ!Uy"><value name="IF0"><block type="logic_operation" id="tgZjK(Z+ya7E2)fo1mjo"><field name="OP">AND</field>
                                        <value name="A"><block type="time_compare" id="epL2VT@^sVJ4VslQ-y_~"><mutation end_time="true"></mutation>
                                            <field name="OPTION">between</field>
                                            <field name="START_TIME">06:00</field>
                                            <field name="END_TIME">13:00</field></block></value> 
                                        <value name="B"><block type="logic_compare" id="e]lW_ksSt7qU~^F8JsvJ"><field name="OP">EQ</field>
                                            <value name="A"><block type="get_value" id="5G:,`TR:EOA4v2i!JuA-"><field name="ATTR">val</field>
                                                <field name="OID">node-red.0.hue-motion</field></block></value> 
                                            <value name="B"><block type="logic_boolean" id="G|,)nJw[c=62.zDmB|`6"><field name="BOOL">TRUE</field></block></value></block></value></block></value> 
                                    <statement name="DO0"><block type="control" id="Z5Mtuz[=Qey@=8+o9=LA"><mutation delay_input="false"></mutation>
                                        <field name="OID">alexa2.0.Echo-Devices.G090XXX70MLB.Commands.speak</field>
                                        <field name="WITH_DELAY">FALSE</field>
                                        <value name="VALUE"><block type="text_join" id="PPs!%YASk!0_zaU20niI"><mutation items="5"></mutation>
                                            <value name="ADD0"><block type="text" id="-!?cr_WS}IK!;yZC2`!a"><field name="TEXT">Guten Morgen Chef. Ich hoffe du hast gut geschlafen. Dein Wagen hat noch</field></block></value> 
                                            <value name="ADD1"><block type="get_value" id="bsS=yj1t~Vc2P0`jE5JR"><field name="ATTR">val</field>
                                                <field name="OID">bmw.0.XXXXX.dynamic.remaining_fuel</field></block></value> 
                                            <value name="ADD2"><block type="text" id="vY3Y_`Q9y;q1]pt|WI;R"><field name="TEXT">Liter im Tank, was einer ungefähren Reichweite von</field></block></value> 
                                            <value name="ADD3"><block type="get_value" id="MyW,AR!g!)-5`{p!n`^4"><field name="ATTR">val</field>
                                                <field name="OID">bmw.0.XXXXX.dynamic.kombi_current_remaining_range_fuel</field></block></value> 
                                            <value name="ADD4"><block type="text" id="WMIilUe72b(P/%l1}6B="><field name="TEXT">Kilometer entspricht.</field></block></value></block></value> 
                                        <next><block type="control" id="#~uPdO~TuVuqY;HL_TVW"><mutation delay_input="true"></mutation>
                                            <field name="OID">alexa2.0.Echo-Devices.G090XXX70MLB.Routines.4a56b499-87ff-4c8e-aae1-6e0d58d282fd</field>
                                            <field name="WITH_DELAY">TRUE</field>
                                            <field name="DELAY_MS">13</field>
                                            <field name="UNIT">sec</field>
                                            <field name="CLEAR_RUNNING">FALSE</field>
                                            <value name="VALUE"><block type="logic_boolean" id="x=?;8Ck-h~K?+GPG?1Hw"><field name="BOOL">TRUE</field></block></value></block></next></block></statement> 
                                    <next><block type="variables_set" id="=~tAtK@6owV.Uq`Br9MB"><field name="VAR">Wakeup</field>
                                        <value name="VALUE"><block type="logic_boolean" id="Ahp!B(;)WC+R#C`kAQ{K"><field name="BOOL">FALSE</field></block></value></block></next></block></statement> 
                                <next><block type="astro" id="nqQ4%f_iInvU{ytAz]47"><field name="TYPE">night</field>
                                    <field name="OFFSET">0</field>
                                    <statement name="STATEMENT"><block type="controls_if" id=";@|9?-X9ar]3sk+h`|1T"><value name="IF0"><block type="time_compare" id="o0C8kqnxjshVIy*`1v+2"><mutation end_time="false"></mutation>
                                            <field name="OPTION">></field>
                                            <field name="START_TIME">05:00</field></block></value> 
                                        <statement name="DO0"><block type="variables_set" id=")eT.f,x+2V+ah|{H.g4d"><field name="VAR">Wakeup</field>
                                            <value name="VALUE"><block type="logic_boolean" id="5(v;8@2RzqpVe{BcM[sG"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement></block></next></block></next></block></xml> 
                        
                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        960
                        Online

                        32.1k
                        Users

                        80.7k
                        Topics

                        1.3m
                        Posts

                        6
                        25
                        3563
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo