Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Gibt es eine Case-Abfrage in blockly ?

    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

    Gibt es eine Case-Abfrage in blockly ?

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

      Hallo Gemeinde,

      ich möchte mir eine Fernsehsteuerung machen.

      Dazu habe ich im Broadlink alle Zahlentasten angelernt. (Kanal0, Kanal1, …. Kanal9)

      Nun möchte ich per Alexa den Wert von einem State "Kanal" setzen.

      Das geht.

      Die Auswertung ist etwas komplizierter, da ich ja die genannte Zahl auseinanderplücken muss,

      und dann Ziffer für Ziffer entsprechend den Broadlink antriggern muss.

      Da ich in Javascript noch nicht so fit bin, würde ich gerne erstmal das über blockly lösen,

      wenn das überhaupt geht, ohne zuviel schreiben zu müssen.

      Ich hatte so an eine Case-Abfrage gedacht:

      1. wenn der Trigger (Wert X) <=9 ist dann brauche ich nur eine Taste entsprechend triggern.

      (steuere (KanalX) mit wahr)

      2. wenn nicht frage ich, ob der Trigger (Wert XY) <=99 ist, dann muss ich entsprechend die 10er Position und dann die Einer-Position des Wertes zum triggern verwenden.

      (steuere KanalX mit wahr, steuere KanalY mit wahr)

      3. analog zu 2. dann bei einem 3-stelligen Kanal.

      Hat da jemand eine Idee, wie man das am besten machen könnte?

      1 Reply Last reply Reply Quote 0
      • Dutchman
        Dutchman Developer Most Active Administrators last edited by

        Blockly kennt "case" nicht in javascript koennte man das machen.

        Alternatief in blockly mit falls und sonst fall bloecken arbeiten

        1 Reply Last reply Reply Quote 0
        • M
          Micro1959 last edited by

          Soweit so gut, habe gerade eine funktionierende Lösung gemacht, die noch überschaubar ist.

          Allerdings akzeptiert das Madel Alexa nur Werte bis 100.

          Also was müsste ich denn meine State-Variable definieren, dass sie auch höhere Zahlen zulässt?
          4342_kanalsteuerung.png

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

            Vor dieser Aufgabe stand ich auch gerade und habe es so gelöst:

            • Neuer Datenpunkt "TV_gewählteProgramm" (Typ: Zeichenkette)
            • in VIS einen Button State (in meinem Fall Material Design) mit dem Kanal des jeweiligen Senders und mit Kommas getrennt als Wert, z.B. ZDF = 0,2 ; ProSieben = 0,7
            • Blockly (siehe Bild):
              • Der Wert aus dem Datenpunkt wird in eine Liste gewandelt (Trennzeichen = Komma), also "0,2" -> [0,2]
                (EDIT: Hier kann auch "im Text x nimm y. Element" genommen werden, ich hatte es aber noch als Liste, weil ich vorher anders programmiert habe)
              • Je nach Wert des ersten Elements, wird die entsprechende Zahl an den Fernseher (Samsung) gesendet
              • Danach wird das zweite Element geprüft, hier aber mit einer Verzögerung, damit der Fernseher hinterherkommt.
              • Am Schluss bestätige ich noch mit der Taste "Enter", damit das Umschalten schneller über die Bühne geht.

            Vorher hatte ich es wesentlich kompakter und schöner, doch leider lässt JS/Blockly kein "time.sleep()" zu, sodass jeder Durchgang verzögert werden könnte. Leider kann man auch nicht die Verzögerung der "steuere ..."-Blöcke mit einer Variable einspeisen. Dann könnte man nämlich den ersten Durchlauf mit der Verzögerung i = 0 laufen lassen und jeden weiteren dann mit i = i + 1 Sek., um alle Befehle nacheinander auszuführen.

            4bad5334-d851-43e1-a6da-20ffc426ee9e-image.png

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

            Support us

            ioBroker
            Community Adapters
            Donate

            866
            Online

            31.8k
            Users

            80.0k
            Topics

            1.3m
            Posts

            3
            4
            2395
            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