Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Elegante Methode um mehrere IF-Abfragen zu gestalten

    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

    Elegante Methode um mehrere IF-Abfragen zu gestalten

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

      Hallöchen,

      ich baue mir gerade einen Email-Send-Master.
      Also ein Blockly was mir eine Email sendet unter bestimmten Bedingungen und das zentral gesteuert.
      Also wenn irgendwo eine Email geschickt werden soll dann setze ich einen DP auf einen bestimmten Wert, z.B. 10.
      Das Script weiss dann, okay Wert 10 bedeutet ich schicke eine Mail mit dem Inhalt "Gartenbewässerung gestartet" oder sowas.

      Das führt natürlich dazu dass irgendwann in einer riesigen IF-Abfrage ende.
      IF 10
      IF 11
      IF 12 usw.

      Gibt es eine Idee, wie ich das elegranter machen kann?
      Vielleicht sowas wie "CASE - SELECT"?
      Oder Rückgabe über ein Array .. keine Ahnung.

      VG

      paul53 Asgothian OliverIO 3 Replies Last reply Reply Quote 0
      • paul53
        paul53 @daPanic last edited by paul53

        @dapanic sagte: wie "CASE - SELECT"?

        Prinzip:

        Blockly_temp.JPG

        @dapanic sagte in Elegante Methode um mehrere IF-Abfragen zu gestalten:

        Mail mit dem Inhalt "Gartenbewässerung gestartet"

        Weshalb schreibst du nicht gleich die Nachricht in den Datenpunkt?

        1 Reply Last reply Reply Quote 1
        • Asgothian
          Asgothian Developer @daPanic last edited by Asgothian

          @dapanic sagte in Elegante Methode um mehrere IF-Abfragen zu gestalten:

          Gibt es eine Idee, wie ich das elegranter machen kann?
          Vielleicht sowas wie "CASE - SELECT"?
          Oder Rückgabe über ein Array .. keine Ahnung.

          es gibt alles 3:

          • der case ist Baustein für case/select
          • Arrays (die in Blockly als Liste geführt werden
          • JSON Objekte mit Attributen, wo du so ein Konstrukt aufbauen kannst:
          {
            val10: { message: "der Garten ist alle", delay: 30, repeat: false, recipients: ["max", "Moritz", "jedermann"]},
            val20: { message: "der Garten ist voll", delay: 3000, repeat: true, repeatIntervall:10, recipients: []}
          }
          

          A.

          1 Reply Last reply Reply Quote 0
          • OliverIO
            OliverIO @daPanic last edited by

            @dapanic

            Ich würde auch so wie der 3. Fall von @Asgothian machen.
            Eine Datenstrukturen aufbauen wo alle notwendigen Informationen enthalten sind und dann nur eine kleine programmlogik, welche anhand Input die entsprechenden Daten aus der Datenstrukturen auswählt und anhand der Parameter dann die Aktionen ausführt.
            Das ist sehr flexibel und für zukünftiger Erweiterungen offen.
            Auch durch minimierten Programmcode weniger Fehleranfälligkeit, was nachher die Suche schwierig macht.

            D 1 Reply Last reply Reply Quote 0
            • D
              daPanic @OliverIO last edited by

              @oliverio Das würde ich mir dann mal anschauen.

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

              Support us

              ioBroker
              Community Adapters
              Donate

              488
              Online

              31.9k
              Users

              80.2k
              Topics

              1.3m
              Posts

              4
              5
              192
              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