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. Skripten / Logik
  4. Gibt es eine Case-Abfrage in blockly ?

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.6k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.2k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Gibt es eine Case-Abfrage in blockly ?

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
4 Beiträge 3 Kommentatoren 2.6k Aufrufe 1 Watching
  • Ä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.
  • M Offline
    M Offline
    Micro1959
    schrieb am zuletzt editiert von
    #1

    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?

    Win 10 Rechner - Raspberry Pi 3 - piVCCU - Alexa Echo plus+dot, Homematic IP Heizkörperthermostat 140280, Sonoff Tasmota Switches, WiFi (Steckdosen, RGB Led Streifen Kontrolleur, LED RGB) Hue Lampen weiß.

    1 Antwort Letzte Antwort
    0
    • DutchmanD Offline
      DutchmanD Offline
      Dutchman
      Developer Most Active Administrators
      schrieb am zuletzt editiert von
      #2

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

      Alternatief in blockly mit falls und sonst fall bloecken arbeiten

      1 Antwort Letzte Antwort
      0
      • M Offline
        M Offline
        Micro1959
        schrieb am zuletzt editiert von
        #3

        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

        Win 10 Rechner - Raspberry Pi 3 - piVCCU - Alexa Echo plus+dot, Homematic IP Heizkörperthermostat 140280, Sonoff Tasmota Switches, WiFi (Steckdosen, RGB Led Streifen Kontrolleur, LED RGB) Hue Lampen weiß.

        1 Antwort Letzte Antwort
        0
        • KLVNK Offline
          KLVNK Offline
          KLVN
          schrieb am zuletzt editiert von KLVN
          #4

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

          322

          Online

          32.7k

          Benutzer

          82.4k

          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