Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. If else if Anweisung

    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

    If else if Anweisung

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

      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 Reply Quote 0
      • AlCalzone
        AlCalzone Developer last edited by

        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);
            }
        });
        
        1 Reply Last reply Reply Quote 0
        • T
          thomson last edited by

          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 Reply Quote 0
          • BuZZy
            BuZZy last edited by

            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 Reply Quote 0
            • T
              thomson last edited by

              Das klingt gut. Wie kann ich das machen?

              Danke und gruß

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

                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 Reply Quote 0
                • AlCalzone
                  AlCalzone Developer last edited by

                  Oder kürzer:

                  @BuZZy:

                  // ...
                      const code = obj.state.val.substr(-12);
                  // ...
                  
                  ```` ` 
                  1 Reply Last reply Reply Quote 0
                  • T
                    thomson last edited by

                    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 Reply Quote 0
                    • AlCalzone
                      AlCalzone Developer last edited by

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

                      1 Reply Last reply Reply Quote 0
                      • T
                        thomson last edited by

                        okay. Aber nun weiß ich worauf ich achten mus

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        757
                        Online

                        31.7k
                        Users

                        79.9k
                        Topics

                        1.3m
                        Posts

                        4
                        24
                        4406
                        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