Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Cloud Dienste
    4. Möglich ? Eine Prozentzahl von Alexa an ein Script übergeben ?

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Möglich ? Eine Prozentzahl von Alexa an ein Script übergeben ?

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

      Hi,

      ich möchte meinen Fernseher mit Alexa steuern. Habe mir also ein Script geschrieben welches die Lautstärke um 10 Punkte erhöht sobald es von Alexa aufgerufen wird (Verknüpfung über den Cloud-Adapter). In den Objekteigenschaften des Skriptes steht dieses auf type "Logikwert". Wenn ich das jetzt umstelle auf "Zahl" könnte ich dann jetzt z.b sagen: Alexa, die Lautstärke um 15 erhöhen. Kann ich diese 15 irgendwie an das Skript übergeben ??? Ist soetwas möglich ?

      Sorry aber ich bin blutiger Anfänger mit ioBroker und Java…

      1 Reply Last reply Reply Quote 0
      • Bluefox
        Bluefox last edited by

        @Joker971:

        Hi,

        ich möchte meinen Fernseher mit Alexa steuern. Habe mir also ein Script geschrieben welches die Lautstärke um 10 Punkte erhöht sobald es von Alexa aufgerufen wird (Verknüpfung über den Cloud-Adapter). In den Objekteigenschaften des Skriptes steht dieses auf type "Logikwert". Wenn ich das jetzt umstelle auf "Zahl" könnte ich dann jetzt z.b sagen: Alexa, die Lautstärke um 15 erhöhen. Kann ich diese 15 irgendwie an das Skript übergeben ??? Ist soetwas möglich ?

        Sorry aber ich bin blutiger Anfänger mit ioBroker und Java… `
        Musst du nicht. Du ergänzst dein Objekt mit

        common.min = -1000000

        common.max = 1000000

        Und dann einfach im Skript vergleichst du neues Wert mit dem Letztem Wert und du hast deine Differenz.

        1 Reply Last reply Reply Quote 0
        • justr
          justr last edited by

          Hi Joker,

          ok, jetzt war Bluefox doch schneller. Da ich den Text aber bereits geschrieben habe und mit unsicher bin, ob seine Antwort wirklich deiner Frage beantwortet, hier noch mein Beitrag: 😉

          Also ein Datenpunkt kann mit den Objekteigenschaften

          [...]
              "smartName": "bla blub",
              "type": "number",            // <--entspricht "Zahl" im Reiter "allgemein"
              "unit": "%",
              "min": 0,
              "max": 100,
              "read": true,
              "write": true
          [...]
          

          wunderbar mit Alexa per "Alexa, schalte bla blub auf x Prozent" gesteuert werden.

          Mittels Java-Script kannst du dann jede Aktualisierung des entsprechenden Datenpunkts mitbekommen:

          on({
              id: "<dein von/alexa/gesteuerter/datenpunkt="">",
              change: "any"
          }, function (obj) {
              var x = obj.state.val;
              // machIrgendwas(x);
          });</dein>
          

          Change: "any" ist nötig, damit das Script bei jeder Aktualisierung getriggert wird. "ne" für "not equal" würde nur Änderungen mitbekommen und dann könntest du nicht zweimal den gleichen Befehl schicken (also etwa zweimal hintereinander um 5% erhöhen). Für die Reduktion der Lautstärke benutzt du dann am besten einen zweiten Datenpunkt, damit keine seltsamen Sprachbefehle wie "schalte bla blub auf minus y%" oder ähnliches dabei rauskommen.

          Übrigens macht Alexa bei den Befehlen "erhöhe um x %" eigentlich von alleine genau diese Funktionalität (dp_neu = dp_alt + x). Hier hast du nur das Problem, dass Alexa zwischenzeitliche manuelle Änderungen (z.B. per Fernbedienung) natürlich nicht mitbekommt und relative Änderungen immer auf den ihr zuletzt bekannten Wert vornimmt.

          Erste Anlaufstelle für javascript-Befehle und deren Optionen ist immer die Hilfeseite des Adapters (das "?" am Ende des javascript-Adapters auf der Adapter-Seite).

          Grundsätzliche javascript-Referenz findest du natürlich zuhauf im Internet (z.B. https://wiki.selfhtml.org/wiki/JavaScript). Grundsätzliche Programmiererfahrung sollte vorhanden sein bzw. muss sich angeeignet werden. 😉

          Viel Spaß und Erfolg, justr

          1 Reply Last reply Reply Quote 0
          • J
            Joker971 last edited by

            Hi erst einmal Danke für eure Antworten! Ich weiss nicht ob ich es richtig rüber gebracht habe… Der eigentlich Datenpunkt, der tatsächlich den Fernseher anspricht, kann nur true oder False. Im Script muss ich eine Schleife durchlaufen, die jetzt diesen Datenpunkt x-mal auf true schaltet.

            Ich habe mir das folgendermaßen zusammen gebastelt (Premiere, mein erstes Java-Script 😄 😞

            for(var i=0; i<11; i++)
            {
            setTimeout(setState("samsung.0.Volume.Volume Up"/*Volume.Volume Up*/,true),1500);
            }
            

            Ich kann über diesen Datenpunkt (oder einen anderen) auch nicht ermitteln, wo hoch die Lautstärke gerade eingestellt ist!

            Daher möchte ich Alexa einfach sagen können, Alexa erhöhe die Lautstärke um 10, oder so ähnlich. Sollte ich dann auf weniger als 0 oder mehr als 100 kommen wäre das egal.

            Ich muss also im Skript mitkriegen das es von Alexa aufgerufen wurde und muss dann dort die "übergebene Zahl" ermitteln.

            Ich habe das jetzt mal so gemacht wie ihr es geraten habt (min + max habe ich in den Objecteigenschaften des Scriptes hinzugefügt), allerdings funktioniert es so noch nicht:

            var x = getState("javascript.0.scriptEnabled.Fernseher.Volume+10"/*scriptEnabled.Fernseher.Volume+10*/).Val;
            for(var i=0; i
            

            Obwohl ich "Zahl" in den Objekteigenschaften des Skriptes ausgewählt habe, kann ich als "Wert" nur true/False eintragen. Funktioniert es vielleicht deshalb nicht ?

            1 Reply Last reply Reply Quote 0
            • J
              Joker971 last edited by

              Sodele, ich bin jetzt einen ganz anderen Weg gegangen!

              Ich habe mir einfach einen eigenen Datenpunkt gemacht der von Alexa bedient wird. Diesen überwache ich per Skript und bei dem bekomme ich auch die Zahl, die von Alexa kommt, über den State mitgeteilt. Das funktioniert 😄

              1 Reply Last reply Reply Quote 0
              • justr
                justr last edited by

                Hallo Joker,

                sehe ich das richtig? Du hast im Skripteditor einen Ordner "Fernseher" angelegt und darin dann das Skript "Volume+10"? Dann würde nämlich der Datenpunkt anzeigen, dass bzw. ob das Script an sich aktiv ist ("scriptEnabled"). Das hat nichts mit Triggerpunkten zu tun. Deswegen kennt er vermutlich nur true oder false und wird mit dem Play- und Pause-Button gesteuert.

                Wie du mittlerweile festgestellt hast, brauchst du einen eigenen Datenpunkt mit Type "Zahl" bzw. "number", den du mit Alexa dann steuern kannst.

                1 Reply Last reply Reply Quote 0
                • J
                  Joker971 last edited by

                  @justr:

                  Hallo Joker,

                  sehe ich das richtig? Du hast im Skripteditor einen Ordner "Fernseher" angelegt und darin dann das Skript "Volume+10"? Dann würde nämlich der Datenpunkt anzeigen, dass bzw. ob das Script an sich aktiv ist ("scriptEnabled"). Das hat nichts mit Triggerpunkten zu tun. Deswegen kennt er vermutlich nur true oder false und wird mit dem Play- und Pause-Button gesteuert.

                  Wie du mittlerweile festgestellt hast, brauchst du einen eigenen Datenpunkt mit Type "Zahl" bzw. "number", den du mit Alexa dann steuern kannst. `

                  Ja, einen Datenpunkt habe ich ja jetzt gemacht und damit funktioniert es jetzt auch.

                  Ich habe aber ein neues Problem. Alexa akzeptiert kein "minus"…

                  Wenn ich sage: Setze Fernseher auf Lautstärke 20%! Dann wird der Datenpunkt auf 20% gesetzt. Alles Ok. Sage ich aber: Erhöhe um 10%! Dann versteht Alexa das nicht. Genauso wenig: verringere um 10%! Wird auch nicht erkannt. Ich kann nur absolute Werte angeben.

                  Da der Samsung-Datenpunkt aber nur true/false kennt und ich für Lauter und Leiser 2 getrennte Datenpunkte in einer Schleife ansprechen muss, kann ich leider über Alexa nur lauter machen da ich die aktuelle Lautstärke nicht abfragen kann 😞 Oder hat jemand noch eine andere Idee was man da machen könnte ?

                  1 Reply Last reply Reply Quote 0
                  • Bluefox
                    Bluefox last edited by

                    @Joker971:

                    @justr:

                    Hallo Joker,

                    sehe ich das richtig? Du hast im Skripteditor einen Ordner "Fernseher" angelegt und darin dann das Skript "Volume+10"? Dann würde nämlich der Datenpunkt anzeigen, dass bzw. ob das Script an sich aktiv ist ("scriptEnabled"). Das hat nichts mit Triggerpunkten zu tun. Deswegen kennt er vermutlich nur true oder false und wird mit dem Play- und Pause-Button gesteuert.

                    Wie du mittlerweile festgestellt hast, brauchst du einen eigenen Datenpunkt mit Type "Zahl" bzw. "number", den du mit Alexa dann steuern kannst. `

                    Ja, einen Datenpunkt habe ich ja jetzt gemacht und damit funktioniert es jetzt auch.

                    Ich habe aber ein neues Problem. Alexa akzeptiert kein "minus"…

                    Wenn ich sage: Setze Fernseher auf Lautstärke 20%! Dann wird der Datenpunkt auf 20% gesetzt. Alles Ok. Sage ich aber: Erhöhe um 10%! Dann versteht Alexa das nicht. Genauso wenig: verringere um 10%! Wird auch nicht erkannt. Ich kann nur absolute Werte angeben.

                    Da der Samsung-Datenpunkt aber nur true/false kennt und ich für Lauter und Leiser 2 getrennte Datenpunkte in einer Schleife ansprechen muss, kann ich leider über Alexa nur lauter machen da ich die aktuelle Lautstärke nicht abfragen kann 😞 Oder hat jemand noch eine andere Idee was man da machen könnte ? `
                    Laut Dokumentation soll es gehen:

                    https://developer.amazon.com/public/sol … agerequest

                    “Alexa, reduziere Gerätename um Anzahl Prozent”

                    “Alexa, erhöhe Gerätename um Anzahl Prozent”

                    Ich hoffe du sagst schon "Alexa erhöhe Fernseher um 10%" oder?

                    1 Reply Last reply Reply Quote 0
                    • J
                      Joker971 last edited by

                      Gut…wenn ich es genau so ausspreche geht es 😄

                      Nutzt mir aber nix! Wenn ich sage sie soll um 10% erhöhen setzt sie meinen Datenpunkt auf 100% ! Liegt es vielleicht daran das sie den aktuellen wert des Datenpunktes nicht kennt und sie versucht diese 10% auf zu addieren um dann wieder einen absoluten Wert zu übermitteln ?

                      1 Reply Last reply Reply Quote 0
                      • Bluefox
                        Bluefox last edited by

                        @Joker971:

                        Gut…wenn ich es genau so ausspreche geht es 😄

                        Nutzt mir aber nix! Wenn ich sage sie soll um 10% erhöhen setzt sie meinen Datenpunkt auf 100% ! Liegt es vielleicht daran das sie den aktuellen wert des Datenpunktes nicht kennt und sie versucht diese 10% auf zu addieren um dann wieder einen absoluten Wert zu übermitteln ? `
                        Deswegen habe ich dir gesagt, dass du min, max auf -100000 und 100000 setzten solltest, dann wird Alexa dein Wert unendlich erhöhen oder verkleinen und du nur Differenz dann ausrechnen solltest.

                        1 Reply Last reply Reply Quote 0
                        • J
                          Joker971 last edited by

                          @Bluefox:

                          @Joker971:

                          Gut…wenn ich es genau so ausspreche geht es 😄

                          Nutzt mir aber nix! Wenn ich sage sie soll um 10% erhöhen setzt sie meinen Datenpunkt auf 100% ! Liegt es vielleicht daran das sie den aktuellen wert des Datenpunktes nicht kennt und sie versucht diese 10% auf zu addieren um dann wieder einen absoluten Wert zu übermitteln ? Deswegen habe ich dir gesagt, dass du min, max auf -100000 und 100000 setzten solltest, dann wird Alexa dein Wert unendlich erhöhen oder verkleinen und du nur Differenz dann ausrechnen solltest.

                          Kapier ich irgendwie nicht :roll:

                          Hab ich jetzt so eingerichtet aber egal was ich für eine Prozentzahl ansage, Alexa setzt immer auf das maximal Mögliche (100000). Wie soll mir das helfen ?

                          1 Reply Last reply Reply Quote 0
                          • ?
                            Guest last edited by

                            @Joker971:

                            Hi,

                            ich möchte meinen Fernseher mit Alexa steuern. Habe mir also ein Script geschrieben welches die Lautstärke um 10 Punkte erhöht sobald es von Alexa aufgerufen wird (Verknüpfung über den Cloud-Adapter). In den Objekteigenschaften des Skriptes steht dieses auf type "Logikwert". Wenn ich das jetzt umstelle auf "Zahl" könnte ich dann jetzt z.b sagen: Alexa, die Lautstärke um 15 erhöhen. Kann ich diese 15 irgendwie an das Skript übergeben ??? Ist soetwas möglich ?

                            Sorry aber ich bin blutiger Anfänger mit ioBroker und Java…

                            Hallo zusammen 🙂

                            Bin neu hier und bin beim googlen hier auf dieses Thema gestoßen… Da es genau das behandelt was ich momentan verzweifelt versuche zu realisieren, wollte ich fragen ob Sie die Steuerung mittels Alexa vernünftig lösen konnten.

                            Gruß

                            Gesendet von meinem SM-G950F mit Tapatalk

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post

                            Support us

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

                            514
                            Online

                            31.7k
                            Users

                            79.7k
                            Topics

                            1.3m
                            Posts

                            4
                            12
                            2201
                            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