Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. If else if Anweisung

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

If else if Anweisung

If else if Anweisung

Scheduled Pinned Locked Moved Skripten / Logik
24 Posts 4 Posters 4.8k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    T Offline
    thomson
    wrote on last edited by
    #15

    Ja das habe ich gemacht. Ist das so Richtig?

    on({id: "mqtt.0.ESPURNA_CB3A71.rfin"/*ESPURNA_CB3A71/rfin*/, change: "any"}, function (obj) {
        const sA = "1EC800FA03027F7CE2";        //Taste A
        const sB = "1EC800FA03027F7CE8";        //Taste B
        log(obj.state.val);
        if (sA ===  getState("mqtt.0.ESPURNA_CB3A71.rfin")) {
            console.log(sA);
            setState("sonoff.0.Wohnzimmerlampe.POWER"/*Wohnzimmerlampe POWER*/,true);
        }
         if (sB ===  getState("mqtt.0.ESPURNA_CB3A71.rfin")) {
               console.log(sB);
            setState("sonoff.0.Wohnzimmerlampe.POWER"/*Wohnzimmerlampe POWER*/,false);
        }
    });
    

    LOG

    09:05:12.500	[info]	javascript.0 Stop script script.js.common.RF_Bridge
    09:05:12.526	[info]	javascript.0 Start javascript script.js.common.RF_Bridge
    09:05:12.527	[info]	javascript.0 script.js.common.RF_Bridge: registered 1 subscription and 0 schedules
    09:05:13.918	[info]	javascript.0 script.js.common.RF_Bridge: 1EBE00FA03027F7CE2
    09:05:18.273	[info]	javascript.0 script.js.common.RF_Bridge: 1EBE00FA03027F7CE8
    

    //edit

    Habe in der if Bedingung die getState abfrage raus genommen. Dann schaltet die Lampe für einen Bruchteil einer Sek. Man hört nur ein schnelles klacken vom Relai. Beim Drücken der "aus" Taste passiert das selbe

    Das steth dan im LOG - Habe nur einmal auf "A" gedrückt. Das kommt dabei raus. Beim drücken von "B" das selbe…

    javascript.0	2018-08-07 09:09:45.284	info	script.js.common.RF_Bridge: 1EC800FA03027F7CE8
    javascript.0	2018-08-07 09:09:45.284	info	script.js.common.RF_Bridge: 1EC800FA03027F7CE2
    javascript.0	2018-08-07 09:09:45.283	info	script.js.common.RF_Bridge: 1EC800FA03027F7CE2
    
    1 Reply Last reply
    0
    • AlCalzoneA Offline
      AlCalzoneA Offline
      AlCalzone
      Developer
      wrote on last edited by
      #16

      Und da haben wirs schon…

      Laut log wird "1E<u>BE00</u>FA03027F7CE2" und "1E<u>BE00</u>FA03027F7CE8" empfangen, du vergleichst aber mit "1E<u>C800</u>FA03027F7CE2" und "1E<u>C800</u>FA03027F7CE8"

      Und wie ich schon sagte, nicht nochmal den State abfragen (getState), sondern den vorhandenen Wert (obj.state.val) nutzen!

      on({id: "mqtt.0.ESPURNA_CB3A71.rfin"/*ESPURNA_CB3A71/rfin*/, change: "any"}, function (obj) {
          const sA = "1EBE00FA03027F7CE2";        //Taste A
          const sB = "1EBE00FA03027F7CE8";        //Taste B
          log(obj.state.val);
          if (sA ===  obj.state.val) {
              setState("sonoff.0.Wohnzimmerlampe.POWER"/*Wohnzimmerlampe POWER*/,true);
          } else if (sB ===  obj.state.val) {
              setState("sonoff.0.Wohnzimmerlampe.POWER"/*Wohnzimmerlampe POWER*/,false);
          }
      });
      

      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

      1 Reply Last reply
      0
      • T Offline
        T Offline
        thomson
        wrote on last edited by
        #17

        ok. Jetzt habe ich es auch gesehen.

        Aber warum ändert sich der wert immer?

        Habe die Sonoff brige mit ESPurna 1.12.3.

        als FB SONOFF 433 mhz Fernbedienung

        Das ist mir vorher nicht aufegefallen das sich die Werte bei jedem Tastendruck ändern. Was kann ich dagegen tun?

        In ESPurna unter dem Punkt RFBRIDGE kann man Signale anlernen. Dort ändern sich der Wert auch

        1 Reply Last reply
        0
        • BuZZyB Offline
          BuZZyB Offline
          BuZZy
          wrote on last edited by
          #18

          Wenn es immer nur die ersten paar Zeichen sind die sich ändern könnte man einfach prüfen ob der letzte Teil stimmt und den Anfang des empfangen Codes weglassen..

          Gruß

          1 Reply Last reply
          0
          • T Offline
            T Offline
            thomson
            wrote on last edited by
            #19

            Das klingt gut. Wie kann ich das machen?

            Danke und gruß

            1 Reply Last reply
            0
            • BuZZyB Offline
              BuZZyB Offline
              BuZZy
              wrote on last edited by
              #20
              on({id: "mqtt.0.ESPURNA_CB3A71.rfin"/*ESPURNA_CB3A71/rfin*/, change: "any"}, function (obj) {
                  const sA = "FA03027F7CE2";        //Taste A
                  const sB = "FA03027F7CE8";        //Taste B
                  const val = obj.state.val;
                  const code = val.substr(val.length - 12);
                  if (code === sA) {
                      setState("sonoff.0.Wohnzimmerlampe.POWER"/*Wohnzimmerlampe POWER*/,true);
                  } else if (code === sB) {
                      setState("sonoff.0.Wohnzimmerlampe.POWER"/*Wohnzimmerlampe POWER*/,false);
                  }
              });
              

              So ungefähr - Prüfung auf die letzten 12 Zeichen im empfangenen Wert..

              Gruß

              1 Reply Last reply
              0
              • AlCalzoneA Offline
                AlCalzoneA Offline
                AlCalzone
                Developer
                wrote on last edited by
                #21

                Oder kürzer:

                @BuZZy:

                // ...
                    const code = obj.state.val.substr(-12);
                // ...
                
                ```` ` 

                Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                1 Reply Last reply
                0
                • T Offline
                  T Offline
                  thomson
                  wrote on last edited by
                  #22

                  Ich danke euch. Das läuft so 🙂

                  Und wieder ein wenig schlauer…

                  Dennoch komisch. ich habe erwartet das der code der FB immer gleich ist....

                  1 Reply Last reply
                  0
                  • AlCalzoneA Offline
                    AlCalzoneA Offline
                    AlCalzone
                    Developer
                    wrote on last edited by
                    #23

                    Wahrscheinlich ist die eine Ziffer eine fortlaufende Sequenz, das ist bei dem ein oder anderen Protokoll auch so.

                    Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                    1 Reply Last reply
                    0
                    • T Offline
                      T Offline
                      thomson
                      wrote on last edited by
                      #24

                      okay. Aber nun weiß ich worauf ich achten mus

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      578

                      Online

                      32.4k

                      Users

                      81.3k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe