Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Alexa erzählt etwas anderes als sie soll

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Alexa erzählt etwas anderes als sie soll

    This topic has been deleted. Only users with topic management privileges can see it.
    • F
      Flori @Nordischerjung last edited by

      @nordischerjung

      So ich habe es einmal so umgesetzt in jedem Block.
      Der Trigger im Trigger ist somit auch Geschichte. 😉

      Testen muß ich aber später. Habe jetzt einiges abgeändert was mir so vorgeschlagen wurde.
      Ich sage auf alle Fälle bescheid ob es dann so funktioniert wie es soll.

      Ein Dankeschön aber trotz dem an Euch alle 😉

      ec29ccd9-8932-4b4d-bdf2-355fc993d6a6-grafik.png

      Codierknecht 1 Reply Last reply Reply Quote 0
      • A
        Ahnungsbefreit @Flori last edited by

        @flori genau!

        1 Reply Last reply Reply Quote 0
        • Codierknecht
          Codierknecht Developer Most Active @Flori last edited by

          @flori
          Statt "Wert von Objekt ID" kannst Du auch direkt den Wert des auslösenden Trigger lesen.
          128d4d19-81ed-47b8-bffa-e4c14eb3c278-image.png
          Dazu diesen Block verwenden und auf "Wert" ändern.
          Spart Ressourcen 😉

          Codierknecht 1 Reply Last reply Reply Quote 0
          • N
            Nordischerjung @Codierknecht last edited by Nordischerjung

            @codierknecht sagte in Alex erzählt etwas anderes als sie soll:

            @flori sagte in Alex erzählt etwas anderes als sie soll:

            @codierknecht
            Naja es sind 3 Alexas, deswegen habe ich gedacht das ich die Lautstärke bei jeder anpasse. Es ist jedes mal mit einer anderen Alexa verlinkt oder verknüpft. Und dies eben in jeden Block für sich je nachdem welcher aufgerufen wird. 😉

            Dass Du in dem bei mir abgeschnittenen Teil die Lautstärke der 3 Tanten setzt ist klar.
            Aber vorher schreibst Du 3x die Lautstärke in immer die gleiche Variable - die nie wieder verwendet wird. Das kannst Du Dir an der Stelle sparen.
            9efa1139-97ec-44f9-a6a5-ca2fe455a8f1-image.png

            Ne das ist schon richtig so, jedes Gerät hat diesen DP. der heißt im Blockly nur gleich. Man kann nicht sehen auf welcher Alexa der DP zugreift

            Edit: aber es müssten dann 3 verschiedene Variablen sein 🙂

            Codierknecht 1 Reply Last reply Reply Quote 0
            • Codierknecht
              Codierknecht Developer Most Active @Nordischerjung last edited by Codierknecht

              @nordischerjung sagte in Alex erzählt etwas anderes als sie soll:

              Ne das ist schon richtig so, jedes Gerät hat diesen DP. der heißt im Blockly nur gleich

              Auch das ist klar. Aber er schreibt die Werte der 3 Tanten in immer die gleiche Variable. Wozu?

              @nordischerjung sagte in Alex erzählt etwas anderes als sie soll:

              Edit: aber es müssten dann 3 verschiedene Variablen sein

              Dann hätte er 3 Variablen, die nie wieder verwendet werden. Macht eigentlich wenig Sinn.

              N 1 Reply Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active @Codierknecht last edited by

                @Flori
                Sieht dann prinzipiell so aus:
                4be2665f-4950-413a-b8ff-d79865bf82c9-image.png

                1 Reply Last reply Reply Quote 0
                • N
                  Nordischerjung @Codierknecht last edited by

                  @codierknecht sagte in Alex erzählt etwas anderes als sie soll:

                  @nordischerjung sagte in Alex erzählt etwas anderes als sie soll:

                  Ne das ist schon richtig so, jedes Gerät hat diesen DP. der heißt im Blockly nur gleich

                  Auch das ist klar. Aber er schreibt die Werte der 3 Tanten in immer die gleiche Variable. Wozu?

                  @nordischerjung sagte in Alex erzählt etwas anderes als sie soll:

                  Edit: aber es müssten dann 3 verschiedene Variablen sein

                  Dann hätte er 3 Variablen, die nie wieder verwendet werden. Macht eigentlich wenig Sinn.

                  Das stimmt, macht nur Sinn wenn man sie danach wieder zurück schreibt

                  1 Reply Last reply Reply Quote 0
                  • F
                    Flori @Codierknecht last edited by

                    @codierknecht

                    Ja das mag so sein, nur Programmier technisch kann ich Dir da irgend wie jetzt nicht ganz folgen.
                    Wenn ich es nur in einen Block rein schreiben würde und sie aber den anderen Block aufruft laut Stand der Alarmanlage wo bekommt sie dann die Lautstärke her?

                    Ich habe die Lautstärke ja ausserhalb des Blocklys nirgends definiert.
                    Und zwischen den Schaltungen könnte es ja sein das sie zwischenzeitlich mit Lautstärke 60 spielt zum Musik hören zum Beispiel.
                    Vieleicht habe ich aber auch nur etwas in das Blockly geschrieben was ich irgend wo gesehn habe und mir so gedacht habe ich könnte es für diesen Zweck ganz gut gebrauchen.

                    Was die oberen 3 Zeilen machen ist mir bis jetzt noch ein Rätsel, haben aber eben viele so in Ihren Blocklys verbaut. 😉

                    37d0dbcd-1c13-435e-9e37-aa7bb986c09f-grafik.png

                    Codierknecht 1 Reply Last reply Reply Quote 0
                    • Codierknecht
                      Codierknecht Developer Most Active @Flori last edited by Codierknecht

                      @flori sagte in Alex erzählt etwas anderes als sie soll:

                      Was die oberen 3 Zeilen machen ist mir bis jetzt noch ein Rätsel, .

                      Du schreibst da die aktuelle Lautstärke der 3 Tanten in eine (immer gleiche) Variable.
                      Mal abgesehen davon, dass das so keinen Sin macht, verwendest Du diese Variable im weiteren Verlauf offenbar nicht mehr. Diese 3 Zeilen kannst Du Dir also sparen.
                      Ist kein "Fehler" der irgendwas kaputt macht, aber unnötig.

                      haben aber eben viele so in Ihren Blocklys verbaut

                      Dann wird der Inhalt der Variablen in deren Blocklys mit Sicherheit später weiterverarbeitet.
                      Brauchst Du hier nicht.

                      @flori sagte in Alex erzählt etwas anderes als sie soll:

                      Und zwischen den Schaltungen könnte es ja sein das sie zwischenzeitlich mit Lautstärke 60 spielt zum Musik hören zum Beispiel.

                      Du setzt ja in den unteren 3 Zeilen die Lautstärke explizit auf "30".

                      Sinn machen würde das mit 3 unterschiedlichen Variablen.
                      Da schreibt man dann die jeweilige Lautstärke der Tanten rein.
                      Nach der Ausgabe des gewünschten Textes könnte man die Lautstärke dann wieder auf den gemerkten Wert zurücksetzen. Machst Du aber nirgendwo.

                      In Pseudocode sähe das ungefähr so aus:

                      // Aktuelle Lautstärke (in Variablen) merken
                      Setze Lautstaerke1 auf 'Wert von Alexa 1'
                      Setze Lautstaerke2 auf 'Wert von Alexa 2'
                      Setze Lautstaerke3 auf 'Wert von Alexa 3'
                      
                      // Lautstärke für Textausgabe auf "30" setzen
                      Steuere 'Lautstaerke von Alexa1' mit 30
                      Steuere 'Lautstaerke von Alexa2' mit 30
                      Steuere 'Lautstaerke von Alexa3' mit 30
                      
                      // Text ausgeben
                      Textausgabe an Alexa1
                      Textausgabe an Alexa2
                      Textausgabe an Alexa3
                      
                      // Lautstärken wieder auf gemerkte Werte (aus Variablen) setzen
                      Steuere 'Lautstaerke von Alexa1' mit Lautstaerke1
                      Steuere 'Lautstaerke von Alexa2' mit Lautstaerke2
                      Steuere 'Lautstaerke von Alexa3' mit Lautstaerke3
                      
                      
                      F 2 Replies Last reply Reply Quote 0
                      • F
                        Flori @Codierknecht last edited by

                        @codierknecht

                        ja das hatte ich aber schon so im Hinterkopf, das sie vieleicht vorne an der Eingangstür nicht so laut spricht das die Alarmanlage ausgeschaltet ist wie im Wohnzimmer. Ich habe sie nur jetzt in dem Starter Blockly auf eine Lautstärke gesetzt. Anpassen wollte ich es dann später wenn dann mal alles vernünftig läuft. Ansonsten hätte ich es ja auch gleich oben in den Programm Kopf geschrieben wo es dann gleichzeitig für alle gilt.
                        So hätte ich es dann probiert ob es funktioniert zum Beispiel.

                        6a58888d-19a5-42cc-aeda-46f75b35b7c8-grafik.png

                        So hatte ich mir das vorgestellt. 😉
                        Aber trotz dem Danke für Deinen Tip. 😉

                        1 Reply Last reply Reply Quote 0
                        • F
                          Flori @Codierknecht last edited by

                          @codierknecht

                          Ah ja ok, Du setzt den Lautstärke Wert nach der Ausage dann gleich wieder zurück auf den vorherigen Wert wie er ursprünglich war.

                          Codierknecht F 2 Replies Last reply Reply Quote 0
                          • Codierknecht
                            Codierknecht Developer Most Active @Flori last edited by

                            @flori sagte in Alex erzählt etwas anderes als sie soll:

                            @codierknecht

                            Ah ja ok, Du setzt den Lautstärke Wert nach der Ausage dann gleich wieder zurück auf den vorherigen Wert wie er ursprünglich war.

                            Exakt.
                            Aber dafür benötigt man halt 3 unterschiedliche Variablen (LS1 bis LS3).

                            1 Reply Last reply Reply Quote 0
                            • F
                              Flori @Flori last edited by

                              @flori

                              Ok ich werde das mal so umsetzen wie du mir das im Pseudocode geschrieben hast und freue mich wenn es dann so funktioniert und ich wieder etwas dazu gelernt habe. 😉

                              1 Reply Last reply Reply Quote 0
                              • D
                                DennisMenger @Flori last edited by

                                @flori Ja genau, um die States ging es mir. Hatte mich halt gewundert, dass du 0,1 und 3 abfragst. Mein innerer Monk hat die 2 vermisst.

                                1 Reply Last reply Reply Quote 0
                                • paul53
                                  paul53 @Flori last edited by paul53

                                  @flori
                                  Um nicht unnötig Ressourcen zu verbrauchen, sollte "steuere" pro Datenpunkt und "sendTo email" möglichst nur einmal aufgerufen werden. Für die unterschiedlichen auszugebenden Texte verwendet man Variablen. Etwa so:

                                  Bild_2023-01-25_112842506.png

                                  Mit Rückstellung auf die alte Lautstärke:

                                  Bild_2023-01-25_114028623.png

                                  Codierknecht 1 Reply Last reply Reply Quote 0
                                  • Codierknecht
                                    Codierknecht Developer Most Active @paul53 last edited by

                                    @paul53
                                    Wobei ich in solchen Fällen ein Freund von switch bin. Macht das Ganze in meinen Augen - gerade für Laien - etwas besser lesbar:
                                    2420a964-1dd1-48f8-9618-18b7db8a8a0a-image.png

                                    paul53 1 Reply Last reply Reply Quote 0
                                    • paul53
                                      paul53 @Codierknecht last edited by

                                      @codierknecht sagte: Freund von switch

                                      Ja, ich auch. Ich habe nicht mitbekommen, dass man nun auch Wert an "der Fall ist" koppeln kann. Das war in früheren Versionen des JS-Adapters nicht möglich.

                                      Codierknecht 1 Reply Last reply Reply Quote 0
                                      • F
                                        Flori @Codierknecht last edited by

                                        @codierknecht

                                        Also ich habe jetzt alles probiert Doppeltrigger entfernt, Zeit so verarbeitet wie vorgeschlagen. Sie mag einfach nicht, ich habe den Text ein paar mal abgeändert unter anderen auch in "die Kuh ist vom Eis", "Morgen ist Montag" und einiges mehr.
                                        Es kommt immer wieder das sie sagt "Ich helfe dir gerne dich mit den richtigen Soundtrack bei Laune zu halten, sage einfach spiele Musik"

                                        Ist für mich unerklärlich, weil ich sage ihr ja nichts was sie falsch verstehen könnte, sie soll ja nur den Text der im Feld drinne steht auslesen quasi und in Ton umwandeln und ausgeben.

                                        1 Reply Last reply Reply Quote 0
                                        • Codierknecht
                                          Codierknecht Developer Most Active @paul53 last edited by

                                          @paul53
                                          Im Code sieht das jedenfalls sauber aus - probiert habe ich nicht.

                                          switch ((obj.state ? obj.state.val : "")) {
                                            case 0:
                                                msg = 'Alarmanlage eingeschaltet';
                                                break;
                                            case 1:
                                                msg = 'Alarmanlage im ZuHause-Modus';
                                                break;
                                            case 3:
                                                msg = 'Alarmanlage ausgeschaltet';
                                                break;
                                          }
                                          
                                          F paul53 2 Replies Last reply Reply Quote 0
                                          • F
                                            Flori @Codierknecht last edited by

                                            @codierknecht
                                            Wenn ich mir den Datenpunkt anschaue dann übergibt er ihn auch so mit "Morgen ist Montag"
                                            Aber sie sagt immer nur das berühmte Sätzchen."Ich helfe dir gerne dich mit den richtigen Soundtrack bei Laune zu halten, sage einfach spiele Musik"

                                            348909cc-ce14-4000-8fae-55aae5db895f-grafik.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            479
                                            Online

                                            32.0k
                                            Users

                                            80.5k
                                            Topics

                                            1.3m
                                            Posts

                                            8
                                            81
                                            2189
                                            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