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. Cloud Dienste
  4. Möglich ? Eine Prozentzahl von Alexa an ein Script übergeben ?

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.6k

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

Geplant Angeheftet Gesperrt Verschoben Cloud Dienste
12 Beiträge 4 Kommentatoren 2.3k 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.
  • J Offline
    J Offline
    Joker971
    schrieb am zuletzt editiert von
    #1

    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 Antwort Letzte Antwort
    0
    • BluefoxB Offline
      BluefoxB Offline
      Bluefox
      schrieb am zuletzt editiert von
      #2

      @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 Antwort Letzte Antwort
      0
      • justrJ Offline
        justrJ Offline
        justr
        schrieb am zuletzt editiert von
        #3

        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 Antwort Letzte Antwort
        0
        • J Offline
          J Offline
          Joker971
          schrieb am zuletzt editiert von
          #4

          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 :D ):

          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 Antwort Letzte Antwort
          0
          • J Offline
            J Offline
            Joker971
            schrieb am zuletzt editiert von
            #5

            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 :D

            1 Antwort Letzte Antwort
            0
            • justrJ Offline
              justrJ Offline
              justr
              schrieb am zuletzt editiert von
              #6

              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 Antwort Letzte Antwort
              0
              • J Offline
                J Offline
                Joker971
                schrieb am zuletzt editiert von
                #7

                @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 Antwort Letzte Antwort
                0
                • BluefoxB Offline
                  BluefoxB Offline
                  Bluefox
                  schrieb am zuletzt editiert von
                  #8

                  @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 Antwort Letzte Antwort
                  0
                  • J Offline
                    J Offline
                    Joker971
                    schrieb am zuletzt editiert von
                    #9

                    Gut…wenn ich es genau so ausspreche geht es :D

                    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 Antwort Letzte Antwort
                    0
                    • BluefoxB Offline
                      BluefoxB Offline
                      Bluefox
                      schrieb am zuletzt editiert von
                      #10

                      @Joker971:

                      Gut…wenn ich es genau so ausspreche geht es :D

                      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 Antwort Letzte Antwort
                      0
                      • J Offline
                        J Offline
                        Joker971
                        schrieb am zuletzt editiert von
                        #11

                        @Bluefox:

                        @Joker971:

                        Gut…wenn ich es genau so ausspreche geht es :D

                        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 Antwort Letzte Antwort
                        0
                        • ? This user is from outside of this forum
                          ? This user is from outside of this forum
                          Gast
                          schrieb am zuletzt editiert von
                          #12

                          @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 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

                          780

                          Online

                          32.5k

                          Benutzer

                          81.7k

                          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