Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Über scriptEnabled triggern verboten. Aber wie richtig?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Über scriptEnabled triggern verboten. Aber wie richtig?

    This topic has been deleted. Only users with topic management privileges can see it.
    • dslraser
      dslraser Forum Testing Most Active @ramses last edited by dslraser

      @ramses
      ja, über ssml

      Klick

      hier mal ein Ausschnitt

      on({id: 'javascript.0.Eigene_Datenpunkte.01Alexa2Ansagen.Ansagen.01Temperaturansage_gesamt', change: "any"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        Schlafzimmer = getState("javascript.0.Eigene_Datenpunkte.01Alexa2Ansagen.Temperaturen.01Schlafzimmer").val;
        Wohnzimmer = getState("javascript.0.Eigene_Datenpunkte.01Alexa2Ansagen.Temperaturen.02Wohnzimmer").val;
        Badezimmer = getState("javascript.0.Eigene_Datenpunkte.01Alexa2Ansagen.Temperaturen.03Badezimmer").val;
        Flur = getState("javascript.0.Eigene_Datenpunkte.01Alexa2Ansagen.Temperaturen.04Flur").val;
        G_C3_A4stezimmer = getState("javascript.0.Eigene_Datenpunkte.01Alexa2Ansagen.Temperaturen.05Gästezimmer").val;
        Garten = getState("javascript.0.Eigene_Datenpunkte.01Alexa2Ansagen.Temperaturen.06Garten").val;
        Ansage = ['<speak><voice name="Hans">','','','Los gehts. ','Im Wohnzimmer sind,',Wohnzimmer,'Grad.','</voice><voice name="Vicki">','im Badezimmer sind,',Badezimmer,'Grad.','</voice><voice name="Hans">','im Gästezimmer sind,',G_C3_A4stezimmer,'Grad.','</voice><voice name="Vicki">','im Flur sind, ',Flur,'Grad.','</voice><voice name="Hans">','im Schlafzimmer sind, ',Schlafzimmer,'Grad, ','</voice><voice name="Vicki">','und draussen im Garten sind, ',Garten,'Grad.','</voice><voice name="Alexa"><prosody volume="+6dB">','Das wäre dann alles .','</prosody>','</voice></speak>'].join('');
        // Wohnzimmer
        if (getState("alexa2.0.History.name").val == 'Wohnzimmer') {
          setState("alexa2.0.Echo-Devices.xxx.Commands.ssml"/*ssml*/, Ansage);
        }
      

      Das sind die Ansagen im Wechsel mit Hans und Vicki und zum Schluss eine Lautstärke Erhöhung mit der Ansage durch Alexa mit: das wäre dann alles.

      R 1 Reply Last reply Reply Quote 0
      • R
        ramses @dslraser last edited by

        @dslraser

        sehr schön. Danke dir.

        So ich glaube ich hab meinen Fehler gefunden. Ich wohne in einem Altbau mit 3m hohen Wänden. Hier schallt es oftmals ein wenig. Es scheint so, 2 andere Alexas hören meine Stimme auch und springen deshalb hin und her und geben dann im falschen Raum aus. Wenn ich die Alexa mit ihrem Namen "anflüster" so das definitiv nur eine reagieren kann, ist es bisher nicht mehr vorgekommen (300 Versuche -morgen bin ich heiser).
        Lustigerweise ist sowas zb noch nie vorgekommen bei anderen Befehlen wie Musikwiedergabe und Co.

        R 1 Reply Last reply Reply Quote 0
        • R
          ramses @ramses last edited by ramses

          @dslraser
          Hab jetzt mal so eine Routine gemacht. Kann man unterbinden, dass eine Ansage wie "Alexa, wie ist das Klima im Kinderzimmer" nicht mit OK quittiert?

          dslraser 1 Reply Last reply Reply Quote 0
          • dslraser
            dslraser Forum Testing Most Active @ramses last edited by

            @ramses
            ich nutze den Kurzmodus. Einstellung in der Amazon App.

            R 1 Reply Last reply Reply Quote 0
            • R
              ramses @dslraser last edited by ramses

              @dslraser
              Diese Einstellung finde ich wo?

              Ah habs.. aber ein Ton bleibt halt immer noch. Gegen das OK hab ich ja jetzt nichts. Nur OK ist halt keine Antwort auf eine Frage sondern auf einen Befehl 🙂

              dslraser 1 Reply Last reply Reply Quote 0
              • dslraser
                dslraser Forum Testing Most Active @ramses last edited by

                @ramses
                Einstellungen/Alexa Konto/Alexa-Spachantworten

                Screenshot_20190311-195705_Amazon Alexa.jpg

                R 1 Reply Last reply Reply Quote 0
                • R
                  ramses @dslraser last edited by

                  @dslraser

                  Ah jetzt ja.

                  .. aber ein Ton bleibt halt immer noch. Gegen das OK hab ich ja im Grunde jetzt nichts. Nur OK ist halt keine Antwort auf eine Frage sondern auf einen Befehl 🙂

                  dslraser 1 Reply Last reply Reply Quote 0
                  • dslraser
                    dslraser Forum Testing Most Active @ramses last edited by dslraser

                    @ramses
                    kannst ja noch "moment", oder "ich schau mal nach", (oder was Dir eben gefällt ) davor setzen.

                    Edit: dann kommt kein Ton im Kurzmodus und auch kein okay im Normalmodus.

                    Screenshot_20190311-200651_Amazon Alexa.jpg

                    R 1 Reply Last reply Reply Quote 0
                    • R
                      ramses @dslraser last edited by ramses

                      @dslraser

                      Das unterbindet aber wahrscheinlich nicht, dass der Bestätigungs-Ton, bzw das Bestätigungs-OK durch ein "Moment bitte" ersetzt wird, oder?
                      Aber ich vermute du meinst das im Sinne von flüssiger Sprache.
                      In der Langform würde dann vermutlich ein "Ok, moment" bei rauskommen,oder?

                      dslraser 1 Reply Last reply Reply Quote 0
                      • dslraser
                        dslraser Forum Testing Most Active @ramses last edited by

                        @ramses
                        doch, wird dann unterbunden, gerade probiert

                        R 1 Reply Last reply Reply Quote 0
                        • R
                          ramses @dslraser last edited by

                          @dslraser
                          Genial. So, glaube heute hast du mir wirklich genug geholfen. Ich gehe dann mal ein wenig basteln. Vielen Dank noch mal für deine Hilfe.

                          1 Reply Last reply Reply Quote 0
                          • apollon77
                            apollon77 @ramses last edited by

                            @ramses Ja korrekt verstanden. Das das Skript "immer läuft" ist egal weil es ja nur etwas tut wenn auf dem Trigger was passiert.

                            1 Reply Last reply Reply Quote 0
                            • liv-in-sky
                              liv-in-sky last edited by

                              hi - ich habe alle meine scripts aufgeräumt und das triggern eines scripts wie hier vorgeschlagen geändert

                              ein script ist noch übrig geblieben - in bestimmten situationen hat dieses script etwas über 10 andere scripts disabled - auf false gesetzt. hat jmd eine idee, wie ich das ohne datenpunkt steuern kann. in diesem script kann man sehr einfach sehen, welche scripts disabled werden - mir geht es nicht darum, mir eine if abfrage in diesen speziellen scripts zu sparen, sondern einen schnellen überblick zu behalten und nicht alle scripts zu durchsuchen , ob sie diese datenpunktabfrage haben. ich reaslisiere damit sowas wie "2 modi" für die haussteuerung .

                              eine andere techn. frage hätte ich noch: ich hatte insgesamt über 30 scripts, die gestoppt waren und nach aufruf wieder beendet wurden. ich fand das gar keine so üble idee, weil ich dachte, das system spart sich speicher und performance, wenn diese selten aufgerufenen scripts nicht als aktiv im system verwaltet werden - lag ich da falsch ?

                              Homoran 1 Reply Last reply Reply Quote 0
                              • Homoran
                                Homoran Global Moderator Administrators @liv-in-sky last edited by

                                @liv-in-sky sagte in Über scriptEnabled triggern verboten. Aber wie richtig?:

                                lag ich da falsch ?

                                nein!

                                Die Aufgabe des "einen" Scripts habe ich noch nicht ganz verstanden.

                                Vielleicht liege ich da auch falsch, aber du brauchst (eventuell) gar kein if sondern nur den Trigger auf den State.
                                und wenn ich es doch richtig verstanden haben sollte, kann das auch ein einziger state für alle 10 anderen Scripts sein

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

                                  @liv-in-sky sagte in Über scriptEnabled triggern verboten. Aber wie richtig?:

                                  eine andere techn. frage hätte ich noch: ich hatte insgesamt über 30 scripts, die gestoppt waren und nach aufruf wieder beendet wurden. ich fand das gar keine so üble idee, weil ich dachte, das system spart sich speicher und performance, wenn diese selten aufgerufenen scripts nicht als aktiv im system verwaltet werden - lag ich da falsch ?

                                  Natürlich hat es eine kleine Auswirkung auf RAM Verbrauch. Durch das generell "Event-getriebene" Grundsystem von JavaScript ist das aber nur sehr wenig was da wirklich zusätzlich gemacht wird. Der rest "läuft" erst dann wenn wirklich ein Trigger ausgeführt wird.

                                  Ohne es jetzt zu testen würde ich sagen das sich das ständige "starten/stoppen/Speicher aufräumen" bei dem bisherigen Ansatz und das was Du jetzt ggf "mehr "brauchst aufhebt. Beweise habe ich natürlich keine 😉

                                  liv-in-sky 1 Reply Last reply Reply Quote 0
                                  • liv-in-sky
                                    liv-in-sky last edited by

                                    hi @Homoran
                                    das eine script hat einen trigger - wenn datenpunkt xyz ist gesetzt - schalte bestimmte 10 andere scripts ab - bzw sie sollen nicht mehr getriggert werden.

                                    diese 10 anderen scripts haben sich bis jetzt nicht um den datenpunkt xyz gekümmert, sondern haben die aufgabe , immer zu wissen, in welchen raum ich mich gerade aufhalte und dann auf eine bestimmte art zu reagieren. sind eine oder mehrere personen im haus, macht dies keinen sinn, diese "online-verfolgung" wird dann abgeschalten, weil das system das nicht mehr unterscheiden kann. diese 10 scripts besitzen eigene trigger untereinander (meist bewegungsmelder die innerhalb von kleiner 2 sekunden reagieren und mit tür-sensoren zusammenarbeiten). damit dies nun mit einem datenpunkt funktioniert, muss ich eine if abfrage in jedes script integrieren, da die ursprünglichen trigger nicht geändert werden sollen. diese trigger sind etwas zickig - wenn ein bewegungsmelder nicht richtig funbktioniert, kommt das system letztlich durcheinander - allein während der fehlersuche ist es schon wichtig, die 10 scripts abzuschalten, weil die scripte sehr eng zusammen arbeiten.

                                    Homoran 1 Reply Last reply Reply Quote 0
                                    • liv-in-sky
                                      liv-in-sky @apollon77 last edited by

                                      @apollon77 sagte in Über scriptEnabled triggern verboten. Aber wie richtig?:

                                      @liv-in-sky sagte in Über scriptEnabled triggern verboten. Aber wie richtig?:

                                      eine andere techn. frage hätte ich noch: ich hatte insgesamt über 30 scripts, die gestoppt waren und nach aufruf wieder beendet wurden. ich fand das gar keine so üble idee, weil ich dachte, das system spart sich speicher und performance, wenn diese selten aufgerufenen scripts nicht als aktiv im system verwaltet werden - lag ich da falsch ?

                                      Natürlich hat es eine kleine Auswirkung auf RAM Verbrauch. Durch das generell "Event-getriebene" Grundsystem von JavaScript ist das aber nur sehr wenig was da wirklich zusätzlich gemacht wird. Der rest "läuft" erst dann wenn wirklich ein Trigger ausgeführt wird.

                                      Ohne es jetzt zu testen würde ich sagen das sich das ständige "starten/stoppen/Speicher aufräumen" bei dem bisherigen Ansatz und das was Du jetzt ggf "mehr "brauchst aufhebt. Beweise habe ich natürlich keine 😉

                                      hi @apollon77

                                      das muss muss auch nicht bewiesen werden 🙂 ich habe auch festgestellt, dass tatsächlich ein kleiner performance anstieg bei ein paar scripts durch die umstellung vorliegt (schnellere reaktion) . anscheinend ist das "speicher aufräumen" schlechter fürs system

                                      1 Reply Last reply Reply Quote 0
                                      • Homoran
                                        Homoran Global Moderator Administrators @liv-in-sky last edited by

                                        @liv-in-sky
                                        Dann wirst du um das If wohl doch nicht rumkommen 😉
                                        Also wäre ein weiterer State ("mehrere_anwesend") notwendig, der durch WasAuchImmer aktiviert wird und in den 10 Scripten berücksichtigt wird

                                        liv-in-sky 1 Reply Last reply Reply Quote 0
                                        • liv-in-sky
                                          liv-in-sky @Homoran last edited by

                                          @Homoran sagte in Über scriptEnabled triggern verboten. Aber wie richtig?:

                                          @liv-in-sky
                                          Dann wirst du um das If wohl doch nicht rumkommen 😉
                                          Also wäre ein weiterer State ("mehrere_anwesend") notwendig, der durch WasAuchImmer aktiviert wird und in den 10 Scripten berücksichtigt wird

                                          die aktivierung dieses states ist nicht das problem (handyanwesenheit, , alexa oder ein wifischalter direkt am eingasng (wenn besuch kommt), ...

                                          ich wollte nur einen guten überblick behalten - hatte eben noch die idee, einen eigene js-adapter für diese scripts zu errichten und diesen adapter ein und auszuschalten ich nehme an, das bringt mir auch nicht viel

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          964
                                          Online

                                          31.9k
                                          Users

                                          80.1k
                                          Topics

                                          1.3m
                                          Posts

                                          9
                                          37
                                          1873
                                          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