Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Sonos: Rundruf/ Ansage im ganzen Haus?

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.5k

Sonos: Rundruf/ Ansage im ganzen Haus?

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
15 Beiträge 6 Kommentatoren 4.1k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • S Offline
    S Offline
    skorpil
    schrieb am zuletzt editiert von
    #1

    Hat jemand schon einmal versucht, einen beliebigen Text im Handy einzugeben und den dann über Sayit ansagen zu lassen. Wie müsste man soetwas programmieren.

    Da ich mehrere Sonos Anlagen im Haus laufen habe, könnte man eine solche Funktion z. B. dafür nutzen, im ganzen Haus z. B. ansagen zu lassen, dass das Frühstück fertig ist. Oder Ähnliches.

    1 Antwort Letzte Antwort
    0
    • Jey CeeJ Offline
      Jey CeeJ Offline
      Jey Cee
      Developer
      schrieb am zuletzt editiert von
      #2

      Das ist denke ich eine Frage des Adapters. Man kann beim Sayit adapter ja auswählen auf welchem Gerät ausgegeben werden soll, darunter ist auch die möglichkeit auf allen Geräten ausgeben.

      Ich würde demnach eine Instanz vom Sayit adapter nur für Ansagen im ganzen haus nutzen. Das scheint mir das einfachste.

      Die Ansage würde ich per Telegram schicken und mit text2command auswerten.

      Ganz Konkret:

      Nachricht von mir an telegram, "An Alle: Es gibt Frühstück". In text2command die Regel "Schreibe den Text in Zustand", der Text aus der Nachricht, ohne den Trigger, schreibt man in ein Objekt.

      Mit einem Skript wartet man auf die Änderung des Objekts und schickt den Text an die Sayit instanz, die es auf allen Sonos Geräten ausgibt.

      Persönlicher Support
      Spenden -> paypal.me/J3YC33

      1 Antwort Letzte Antwort
      0
      • blauholstenB Offline
        blauholstenB Offline
        blauholsten
        Developer
        schrieb am zuletzt editiert von
        #3

        Hi,

        Bin zwar nicht im Besitz einer Sonos Anlage, aber wenn du Telegram benutzt sollte das über den Sayit Adapter realisierbar sein. (Sind nur Beispiele)

        Entwickler vom: - Viessman Adapter
        - Alarm Adapter

        1 Antwort Letzte Antwort
        0
        • P Offline
          P Offline
          Phantomio
          schrieb am zuletzt editiert von
          #4

          Die Frage hatte ich auch ;)

          Bei mir läuft es

          Script: http://forum.iobroker.net/viewtopic.php?f=30&t=4731

          Gruß

          Phantomio

          Geräte: CCU2, RaspberryPi2,

          Adapter: email, feiertage, flot, fritzbox, history, hm-rpc.0, hm-rpc.1 (Für Homematic IP), ical, javascript, sayit, scenes, socketio, sonos, tankerkoenig, telegram, text2command, vis, web, yr

          1 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            skorpil
            schrieb am zuletzt editiert von
            #5

            In kürze: erstmal vielen Dank. Ich werde das Projekt dann mal in Angeiff nehmen und mich sich mit dann auftauchenden Fragen wieder melden…

            1 Antwort Letzte Antwort
            0
            • S Offline
              S Offline
              skorpil
              schrieb am zuletzt editiert von
              #6

              Phantomio,

              Gerade probiere ich so ein bisschen herum. Kriege es aber nicht hin. Irgendwo mache ich einen Denkfehler!

              Die "Schreibe den Text in Zustand" Regel habe ich angelegt.

              Was muss ich bei den beiden Parameter Feldern Geräte ID und "Wert zum schreiben" , und im Quittungstextfeld eintragen?

              Was muss ich als trigger in telegram schreiben, damit der Text in den Zustand geschrieben wird?

              Danke für die Hilfe.

              1 Antwort Letzte Antwort
              0
              • S Offline
                S Offline
                skorpil
                schrieb am zuletzt editiert von
                #7

                Phantomio,

                mir wird gerade Einiges klarer. Mein Problem: auf dem iPad unter Safari wird das Feld "Tripper-"Worte" nicht angezeigt. Daher konnte ich mir keinen Reim darauf machen. Jetzt arbeite ich gerade statt vom iPad auf dem PC. Und siehe da, ich fange an die Logik zu verstehen.

                1 Antwort Letzte Antwort
                0
                • P Offline
                  P Offline
                  Phantomio
                  schrieb am zuletzt editiert von
                  #8

                  Hallo Skorpil,

                  mein Ansatz ist ein anderer (Ohne Text to Kommandos).

                  Ich brauche nur den SayIt und den Telegram Adapter.

                  Wenn mit Telegram etwas empfangen wird, steht im Objekt z.B. telegram.0.communicate.request [Name1]Say Test

                  Ist Dein Name Länger oder Kürzer muss Ausgabe.slice1,10 angepasst werden Bei mir sind es inkl. Say 10 Zeichen.

                  Es wird also alles ab dem 11 Zeichen an den SayIt Adapter übergeben.

                  Die Abfrage:

                  if (getState("javascript.0.Sprachausgabe").val && isTimeInRange("10:00:00", "23:00:00")){

                  funktioniert nur wenn das Objekt javascript.0.Sprachausgabe auf True ist. Ich benutze das um mit einem Button in Vis die Sprachausgabe temporär zu deaktivieren.

                  Und die Funktion isTimeInRange (siehe hier im Forum) muss auch im Script angelegt sein.

                  on ({id: "telegram.0.communicate.request",              change:  "any"},    fAusgabe);
                  
                  function fAusgabe(){
                      var Ausgabe = getState("telegram.0.communicate.request").val;
                      var Keyword = (Ausgabe.slice(1, 10));
                      //log (Keyword);
                      if (Keyword === "Name0]Say"){
                          log("Telegramm Say empfangen");
                          if (getState("javascript.0.Sprachausgabe").val && isTimeInRange("10:00:00", "23:00:00")){
                              setState (idSayIt, (Ausgabe.slice(10, Ausgabe.length)));
                              setState("telegram.0.communicate.response", "Script fAusgabe beendet"); 
                          } else{
                              setState("telegram.0.communicate.response", "Sprachausgabe deaktiviert, oder ausserhalb des Zeitbereichs");
                          }
                      }
                  }
                  
                  

                  Ich hoffe das hilft dir ein wenig weiter

                  Gruß

                  Phantomio

                  Geräte: CCU2, RaspberryPi2,

                  Adapter: email, feiertage, flot, fritzbox, history, hm-rpc.0, hm-rpc.1 (Für Homematic IP), ical, javascript, sayit, scenes, socketio, sonos, tankerkoenig, telegram, text2command, vis, web, yr

                  1 Antwort Letzte Antwort
                  0
                  • S Offline
                    S Offline
                    skorpil
                    schrieb am zuletzt editiert von
                    #9

                    Großartig [emoji16]. Vielen Dank.

                    1 Antwort Letzte Antwort
                    0
                    • S Offline
                      S Offline
                      skorpil
                      schrieb am zuletzt editiert von
                      #10

                      Phantomio,

                      hier noch einmal eine Variante Deines Skripts: ich habe es ein wenig "verallgemeinert", d.h. im Bereich "Definitionen" kann nun das "Suchwort (aka Key) angegeben werden und die manuelle Ermittlung der Position resp. das Einsetzen der Werte in dien SLICE Befehl dann damit entfallen. TimeRange müßte ggf. noch integriert werden. War für mich aber nicht wichtig, so daß diese Anweisung bei mir entfallen ist.

                      Danke jedenfalls noch einmal für die Hilfe

                      ! //######################################################################
                      ! // Skript zum Rundruf im Haus (Telegram, Sonos) (auf der Basis der Ideen von Phantomio)
                      ! //######################################################################
                      ! on ({id: "telegram.0.communicate.request",  change:  "any"}, fAusgabe);
                      ! //######################################################################
                      ! // Definitionen und User Anpassungen
                      ! //######################################################################
                      ! // für die Sonos Ausgabe, "2" für Büro , "4" für alle (bei mir!)
                      ! var idSayIt = "sayit.4.tts.text";
                      ! var lautstaerke = 40;
                      ! // Keyword wird hier festgelegt
                      ! var Key = "Rundruf";
                      ! // #####################################################################
                      ! // Funktion
                      ! // #####################################################################
                      ! function fAusgabe(){
                      !     var Ausgabe = getState("telegram.0.communicate.request").val;
                      !     //log("Ausgabe–---->" + Ausgabe +"#");
                      !    
                      !     // Länge des Ausdrucks in Telegram + Position des Keys + Länge des Key ermitteln
                      !     var LaengeAusgabe = Ausgabe.length;
                      !     var PositionKey = Ausgabe.indexOf(Key);
                      !     var LaengeKey = Key.length;
                      !    
                      !     // log(LaengeAusgabe);
                      !     // log(PositionKey);
                      !     // log(LaengeKey);
                      !    
                      !     var Keyword = (Ausgabe.slice(PositionKey, PositionKey + LaengeKey));
                      !     // log("Keyword------>" + Keyword+"#");
                      !    
                      !     var ansage = (Ausgabe.slice(PositionKey + LaengeKey, LaengeAusgabe));
                      !     //log("ansage------>" + ansage+"#");
                      !    
                      !     if (Keyword === Key){
                      !        // log("Telegramm Say empfangen");
                      !         setState (idSayIt, lautstaerke +";" + ansage);
                      !     }
                      ! }

                      1 Antwort Letzte Antwort
                      0
                      • S Offline
                        S Offline
                        skorpil
                        schrieb am zuletzt editiert von
                        #11

                        Jetzt habe ich doch noch mal eine Frage an die Spezialisten: ich habe mir telegram, Sonos und sayit eingerichtet. Funktioniert auch. Aaaaber, ich habe insgesamt 5 Sonos Geräte. Die Durchsage soll aber nicht auf allen 5, sondern nur auf dreien davon erfolgen. Ich habe Sonos.0 angelegt. Da sind ALLE meine Sonos Geräte hinterlegt. Im sayit Adapter kann ich nun entweder eines der Sonos Geräte oder alle Sonos Geräte auswählen. Aber leider eben nicht die drei zusammen, die ich nutzen möchte.

                        Habt ihr eine Idee, wie das gehen könnte? Als workaround hatte ich mich überlegt, eine zweite Sonos Instanz anzulegen, eben nur mit den drei Sonos Geräten, die ich benötige. Und die dann von einer Sayit Instanz anzusprechen. Geht das? Ich bin nämlich nicht sicher, ob das dann mit den Ports klappt. In der bestehenden Sonos.0 Instanz habe ich Port 8083 aktiviert. Muss ich bei einer evtl Sonos.1 Instanz einen anderen Port wählen?

                        Oder muss ich das Ganze über weitere sayit Instanzen lösen, die dann jeweils auf ein Sonox Geräte zugreifen?

                        Danke für die Hilfe!

                        1 Antwort Letzte Antwort
                        0
                        • P Offline
                          P Offline
                          pix
                          schrieb am zuletzt editiert von
                          #12

                          Hallo,

                          Ich würde den Weg mit der zweiten Sonos Instanz versuchen.

                          Alternativ kannst du natürlich noch vor jeder Ansage eine Gruppe von Geräten anlegen und diese Gruppe nach der Ansage wieder zerlegen.

                          Pix

                          ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                          1 Antwort Letzte Antwort
                          0
                          • S Offline
                            S Offline
                            skorpil
                            schrieb am zuletzt editiert von
                            #13

                            Danke, Pix,

                            Ich scheue mich ein wenig, die zweite Sonos Instanz anzulegen:

                            A) weil ich nicht weiß, welchen Port ich dan nutzen sollte, und

                            B) weil ich das schon einmal versucht hatte, und mir damit - glaube ich - meine iobroker Installation zerschossen habe. Es kamen jedenfalls dann gar keine Ansagen mehr. Ich bin allerdings UNSICHER, ob das durch die zweite Sonos Instanz verursacht wurde. Vielleicht war der Fehler auch woanders.

                            Ich werde mir mal in Image anlegen, damit ich in Ruhe testen und zur Not den alten Zustand wieder herstellen kann. (Wobei, habt ihr Erfahrungen mit bootfahigen Images? Welches Programm? Roadkill oder windows imager oder?)

                            Liebe Grüße

                            Bernd

                            1 Antwort Letzte Antwort
                            0
                            • Y Offline
                              Y Offline
                              ykuendig
                              schrieb am zuletzt editiert von
                              #14

                              Hab ich eben mal live gemacht. Sonos mit + eine neue Instanz verpasst.

                              Installierte mit exit-0 alles OK.

                              Die Instanz war natürlich rot. Dort den nächsten freien Port (bei mir wars 8084) eingestellt

                              Blieb rot. Neustart Button gedrückt -> Grün

                              Nichts zerschossen bis jetzt. Fingers-Crossed -Nachtrag: Nur der Speicher geht mir bald aus auf dem pi

                              Gruss Yves

                              1 Antwort Letzte Antwort
                              0
                              • S Offline
                                S Offline
                                skorpil
                                schrieb am zuletzt editiert von
                                #15

                                Ykuendig,

                                Danke für die Information

                                1 Antwort Letzte Antwort
                                0
                                Antworten
                                • In einem neuen Thema antworten
                                Anmelden zum Antworten
                                • Älteste zuerst
                                • Neuste zuerst
                                • Meiste Stimmen


                                Support us

                                ioBroker
                                Community Adapters
                                Donate
                                FAQ Cloud / IOT
                                HowTo: Node.js-Update
                                HowTo: Backup/Restore
                                Downloads
                                BLOG

                                757

                                Online

                                32.5k

                                Benutzer

                                81.6k

                                Themen

                                1.3m

                                Beiträge
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                ioBroker Community 2014-2025
                                logo
                                • Anmelden

                                • Du hast noch kein Konto? Registrieren

                                • Anmelden oder registrieren, um zu suchen
                                • Erster Beitrag
                                  Letzter Beitrag
                                0
                                • Home
                                • Aktuell
                                • Tags
                                • Ungelesen 0
                                • Kategorien
                                • Unreplied
                                • Beliebt
                                • GitHub
                                • Docu
                                • Hilfe