Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Sonoff RF Bridge Tasmota und Portisch 433mhz

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Sonoff RF Bridge Tasmota und Portisch 433mhz

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      shgmongo @sissiwup last edited by

      Im Skript müßt ihr mindestens den Pfad zu RfRaw angeben.
      Wenn der Datenpunkt bei euch also sonoff.123.myBridge.RfRaw heißt, dann
      sonoff.123.myBridge. (mit Punkt)

      //Version 0.9 15.11.2020
      let bridgename="javascript.0.bridge.";  //speicherort der Variablen
      let sonoff="sonoff.0.Tasmota_21.";  // wo ist RfRaw und RfRaw_Data
      
      createState(bridgename+"learn",false,{type: "boolean", role: "button"});
      createState(bridgename+"counter",1000,{type: "number", role: "state"});
      createState(bridgename+"learning","off",{type: "string", role: "state"});
      createState(bridgename+"lastcode","?",{type: "string", role: "state"});
      createState(bridgename+"lastdate","?",{type: "string", role: "state"});
      createState(bridgename+"lastname","?",{type: "string", role: "state"});
      
      var counter=getState(bridgename+"counter").val;
      
      setState(bridgename+'learn',false);
      setState(bridgename+'learning',"off");
      setState(sonoff+'RfRaw',"177");
      
      on(bridgename+'learn',function(obj) {
          if (obj.state.val) {
              if (getState(bridgename+'learning').val=="off") {
                  setState(sonoff+'RfRaw',"177");
                  setState(bridgename+'learning',"on");
              } else {
                  setState(bridgename+'learning',"off");
              }
          }
          setState(bridgename+'learn',false);
      })
      
      on(sonoff+'RfReceived_Data',function(obj){
              console.log(obj.state.val);
              setState(sonoff+'RfRaw',"177");
      
      })
      
      function attachListener() {
          setTimeout(function() { 
              $('state[id='+bridgename+'code.*.send]').on(function (id, i) {
                  buttonPress(id);
              });
              $('state[id='+bridgename+'code.*.name]').on(function (obj, i) {
                  nameChanged(obj);
              });
          ;}, 2000);
          setTimeout(function() { 
              $('state[id='+bridgename+'code.*.send]').on(function (id, i) {
                  buttonPress(id);
              });
              $('state[id='+bridgename+'code.*.name]').on(function (obj, i) {
                  nameChanged(obj);
              });
          ;}, 10000);
      }
      
      function nameChanged(obj) {
          if (obj.state.val==obj.oldState.val) {
              console.log("ALT=NEU");
              return;
          }
          var oldnam=obj.id.substr(0,obj.id.length-4);
          var nam=obj.state.val;
          var newnam=bridgename+"code."+nam+".";
          console.log(newnam);
          console.log(oldnam);
          console.log(getState(oldnam+"org"));
          createStates(newnam,nam,getState(oldnam+"org").val,getState(oldnam+"count").val,getState(oldnam+"transform").val);
          setTimeout(function() {
              deleteState(oldnam+"send");
              deleteState(oldnam+"name");
              deleteState(oldnam+"recieved");
              deleteState(oldnam+"org");
              deleteState(oldnam+"count");
              deleteState(oldnam+"transform");
              attachListener();
          },1000);
      }
      
      $('state[id='+bridgename+'code.*.name]').on(function (obj, i) {
          nameChanged(obj);
      });
      
      function buttonPress(obj) {
          if (obj.state.val==true) {
              console.log("Pressed: " + obj.id);
              setState(obj.id,false);
              var nam=obj.id.substr(0,obj.id.length-4);
              var code=getState(nam+"transform").val;
           //   console.log(code);
              setState(sonoff+'RfRaw',"177");
              setState(sonoff+'RfRaw',code);
              setState(sonoff+'RfRaw',"177");
          }
      
      }
      
      var SelectorButtons = $('state[id='+bridgename+'code.*.send]');
      SelectorButtons.each(function (id, i) {
              setState(id,false);
      });
      
      var SelectorRecieved = $('state[id='+bridgename+'code.*.org]');
      SelectorRecieved.each(function (id, i) {
              console.log("Bekannte Codes:" + getState(id).val);
      });
      
      function createStates(prefix,name,org,count,newcode) {
          // console.log("New:" + prefix + "-" +name);
              createState(prefix+"send",false,{type: "boolean", role: "button"});
              createState(prefix+"name",name,{type: "string", role: "info"});
              createState(prefix+"recieved", formatDate(new Date(), "JJJJ.MM.TT SS:mm:ss"),{type: "string", role: "state"});
              createState(prefix+"org",org,{type: "string", role: "state"});
              createState(prefix+"count",count,{type: "number", role: "state"});
              createState(prefix+"transform",newcode,{type: "string", role: "state"});
      }
      
      on(sonoff+'RfRaw_Data',function(obj){
          var code=obj.state.val;
          setState(bridgename+"lastcode",code);
          setState(bridgename+"lastdate",formatDate(new Date(), "JJJJ.MM.TT SS:mm:ss"))
          if (code=="AAA055") return;
          if (code.length<12) return;
          var elems=code.split(" ");
      
          $('state[id='+bridgename+'code.*.org]').each(function (id, i) {
              var akt=getState(id).val
              if (akt!=null) {
                  akt=akt.split(" ");
                  if (elems[elems.length-2]==akt[akt.length-2]) {
                      var nam=id.substr(0,id.length-3);
                      setState(nam+"count",getState(nam+"count").val+1);
                      setState(nam+"recieved", formatDate(new Date(), "JJJJ.MM.TT SS:mm:ss"));
                      var lastname=nam.substr(0,nam.length-1).split(".");
                      setState(bridgename+"lastname",lastname[lastname.length-1]);
                      //  return false;
                  }
              }
          });
      
          if (getState(bridgename+'learning').val=="on") {
      //        console.log("Neu  : " + code);
              $('state[id='+bridgename+'code.*.org]').each(function (id, i) {
                  var akt=getState(id).val;
                  if (akt!=null) {
                      akt=akt.split(" ");
                      if (elems[elems.length-2]==akt[akt.length-2]) {
                          console.log("Code bekannt:" + id);
                          code="";
                          return false;
                      }
                  }
              });
              if (code=="") return;
              console.log("Schreib:" + code);
             // return;
              counter=counter+1;
              setState(bridgename+'counter',counter);
      
              var name=bridgename+"code."+String(counter)+".";
              var laenge=2;
              var newcode="";
              for (let i=3;i<elems.length;i++) {
                  newcode=newcode+" "+elems[i];
                  laenge=laenge+elems[i].length;
              }
              laenge=laenge/2;
              var newcode=elems[0]+" B0 "+laenge.toString(16)+" "+elems[2]+" 08"+newcode;
              createStates(name,"unbekannt",obj.state.val,1,newcode);
              attachListener();
          } 
          
      
      })
      
      attachListener();
      schedule("*/20 * * * *", function () {
          setState(sonoff+'RfRaw',"177");
      });
      
      
      
      

      Hallo ich bin neu in der Materie und frage mich, wo muss ich diesen Code eingeben? Und wo im Code muss ich den Pfad ändern?

      Muss ich ihn in Rfaw eintragen?
      RFraw.JPG

      Wenn ich den vorhanden Code mit den oben genannten ersetzte, kann ich nicht mehr speichern drücken
      Code.JPG

      Kann mir bitte jemand sagen, wie ich es machen muss?

      Gruß,
      Sebastian

      DJMarc75 1 Reply Last reply Reply Quote 0
      • DJMarc75
        DJMarc75 @shgmongo last edited by

        @shgmongo sagte in Sonoff RF Bridge Tasmota und Portisch 433mhz:

        wo muss ich diesen Code eingeben?

        Du musst ein Javaskript im Adapter Javascript erstellen.
        Dort den kompletten Code einfügen und in Zeile 3 deinen Pfad anpassen.

        Bitte den Startpost genau lesen, da ist eigentlich alles beschrieben.

        Grüße

        S 1 Reply Last reply Reply Quote 0
        • S
          shgmongo @DJMarc75 last edited by shgmongo

          Hab es hin bekommen.

          Musste unter Skripte.JPG
          ein Skript erstellen.

          Dann meinen Pfad auf sonoff.o.Sonoffbridge. ändern und laufen lassen.

          Wie drücke ich auf "learn" ? Bei mir kein Ordner mit Code angelegt....

          S 1 Reply Last reply Reply Quote 0
          • S
            shgmongo @shgmongo last edited by

            Ich habe es nach der Anleitung hinbekommen meine Fernbedienungsbefehle auszulesen und meine Rollläden damit fahren zu lassen.

            Jetzt würde ich gerne Alexa sagen, dass sie dies tun soll.

            Kann mir jemand sagen oder eine Anleitung nennen, wie ich das machen kann?

            Sebastian

            DJMarc75 1 Reply Last reply Reply Quote 0
            • DJMarc75
              DJMarc75 @shgmongo last edited by

              @shgmongo sagte in Sonoff RF Bridge Tasmota und Portisch 433mhz:

              Kann mir jemand sagen oder eine Anleitung nennen, wie ich das machen kann?

              Suchfunktion hier im Forum benutzen und falls nicht fündig einen eigenen Beitrag aufmachen weil das hier nicht zum Thema des Beitrages gehört.

              1 Reply Last reply Reply Quote 0
              • D
                DaniX42 @pangaea last edited by

                @pangaea said in Sonoff RF Bridge Tasmota und Portisch 433mhz:

                Problem mit ON/OFF auf Einzeltaster - Lampe schaltet ein und gleich wieder aus / Sendezeit zu lange?

                Ich habe das gleiche Problem bei einer Markise mit Beleuchtung. RAUS, REIN und STOPP funktionieren aber die Licht-Taste ist pro Drücker für AUS/EIN zuständig. Ich verbringe bereits Tage mit dem Script, habe alles versucht, die doppelten EventListener reduziert auf einen aber es scheint tatsächlich an der Sendedauer der RF-Bridge mit Portisch-Firmware zu liegen. Weiß jemand zufällig ob man die Sendedauer beeinflussen kann?

                Ralla66 1 Reply Last reply Reply Quote 0
                • Ralla66
                  Ralla66 Most Active @DaniX42 last edited by Ralla66

                  @danix42
                  in dem du den Raw Code verkürzt wenn zu lang und nur einmal sendest.
                  Gezielt senden geht dann per http raw cmd oder mqtt.
                  Lesestoff

                  1 Reply Last reply Reply Quote 0
                  • H
                    Henrik last edited by

                    Mega, was für ein cooles Script. Habe nach notwendigen Pfadanpassungen meine FB's angelernt.
                    Habe nun auch endlich meine Dooya DC90 Markisen (Empasa) Fernbedienung im ioBroker und kann jetzt mit Wettersensoren das Teil überwachen.
                    Super und vielen Dank

                    H 1 Reply Last reply Reply Quote 0
                    • H
                      Henrik @Henrik last edited by

                      @henrik
                      Vielleicht bekomme ich ja noch Hilfe.
                      Wollte nach dem Winter den Sonoff wieder in Betrieb nehmen. Jetzt fehlt mir der DP RfRaw. Versuche mit rfraw 177 bzw. 166 führten nicht zum Erfolg. Meine angelernte FB Befehle funktionieren leider nicht mehr und neu anlernen klappt nicht.

                      B C 2 Replies Last reply Reply Quote 0
                      • B
                        Berti69 @Henrik last edited by

                        Hallo
                        Versuche jetzt schon ne ganze Zeit durch Videos und lesen hier im Forum mein Steckdosen von QUIGG und brennenstuhl zu schalten. Leider ohne Erfolg. Habe alles so gemacht wie in der Beschreibung oben. Code kommt an und wird gleich umgewandelt. Aber beim senden über die Konsole mit rfraw geht nichts bzw sehe die rote LED blinken. Steckdose wird nicht geschaltet. Wo liegt mein Fehler. Danke

                        B 1 Reply Last reply Reply Quote 0
                        • B
                          Berti69 @Berti69 last edited by

                          Habe noch ein paar Befehle versucht
                          rfraw 255.JPG
                          Vielleicht könnt ihr was damit anfangen

                          1 Reply Last reply Reply Quote 0
                          • C
                            Computerhenne @Henrik last edited by

                            @henrik
                            Komme nicht weiter. Ohne DP RFRaw funktioniert nichts.
                            da56ff0d-f761-491d-b914-9a8f71ddbb50-image.png
                            Das ist meine Liste an Datenpunkten. Wieso fehlen die wichtigen Datenpunkte auf einmal?

                            1 Reply Last reply Reply Quote 0
                            • S
                              schienw last edited by

                              Hallo sissiwup,

                              danke für dein Skript, hat mir beim erkennen der codes geholfen und mein LED-Lampe mit Infrarotheizung reagiert auch, blitzt aber nur kurz auf und geht dann wieder aus. Ist sie an geht sie kurz aus und schaltet sich wieder ein.
                              Diese Code erhalte ich:

                              {"RfRaw":{"Data":"AA B1 04 0212 05C8 0410 173E 3808181808181818180808180808181818080808080808080808080808080808180808080808080808180808180818181828 55"}}
                              	    AA B0 3C 04 08 0212 05C8 0410 173E 3808181808181818180808180808181818080808080808080808080808080808180808080808080808180808180818181828 55
                              {"RfRaw":{"Data":"AA B1 04 0212 05C8 041A 1734 3808181808181818180808180808181818080808080808080808080808080808180808080808080808180808180818181828 55"}}
                              	    AA B0 3C 04 08 0212 05C8 041A 1734 3808181808181818180808180808181818080808080808080808080808080808180808080808080808180808180818181828 55
                              {"RfRaw":{"Data":"AA B1 04 0212 05C8 0406 170C 3808181808181818180808180808181818080808080808080808080808080808180808080808080808180808180818181828 55"}}
                              	    AA B0 3C 04 08 0212 05C8 0406 170C 3808181808181818180808180808181818080808080808080808080808080808180808080808080808180808180818181828 55
                              {"RfRaw":{"Data":"AA B1 04 0212 05BE 0410 164E 3808181808181818180808180808181818080808080808080808080808080808180808080808080808180808180818181828 55"}}
                                          AA B0 3C 04 08 0212 05BE 0410 164E 3808181808181818180808180808181818080808080808080808080808080808180808080808080808180808180818181828 55
                              
                              {"RfRaw":{"Data":"AA B1 04 0212 05C8 0406 175C 3808181808181818180808180808181818080808080808080808080808080808180808080808080808180808180818181828 55"}}
                              {"RfRaw":{"Data":"AA B1 04 0212 05C8 0424 172A 3808181808181818180808180808181818080808080808080808080808080818080808080808080808180808181808080828 55"}}
                              {"RfRaw":{"Data":"AA B1 04 0208 05C8 0424 173E 3808181808181818180808180808181818080808080808080808080808080818080808080808080808180808181808080828 55"}}
                              {"RfRaw":{"Data":"AA B1 04 0212 05BE 041A 173E 3808181808181818180808180808181818080808080808080808080808080808180808080808080808180808180818181828 55"}}
                                          AA B0 3C 04 08 0212 05BE 041A 173E 3808181808181818180808180808181818080808080808080808080808080808180808080808080808180808180818181828 55
                              {"RfRaw":{"Data":"AA B1 04 0212 05B4 03FC 1720 3808181808181818180808180808181818080808080808080808080808080808180808080808080808180808180818181828 55"}}
                              {"RfRaw":{"Data":"AA B1 04 0212 05C8 041A 173E 3808181808181818180808180808181818080808080808080808080808080808180808080808080808180808180818181828 55"}}
                              {"RfRaw":{"Data":"AA B1 04 0212 05C8 0410 1734 3808181808181818180808180808181818080808080808080808080808080818080808080808080808180808181808080828 55"}}
                              {"RfRaw":{"Data":"AA B1 04 0212 05C8 041A 1734 3808181808181818180808180808181818080808080808080808080808080808180808080808080808180808180818181828 55"}}
                              {"RfRaw":{"Data":"AA B1 04 0212 05BE 0406 1734 3808181808181818180808180808181818080808080808080808080808080808180808080808080808180808180818181828 55"}}
                              {"RfRaw":{"Data":"AA B1 04 0208 05C8 0406 173E 3808181808181818180808180808181818080808080808080808080808080808180808080808080808180808180818181828 55"}}
                              {"RfRaw":{"Data":"AA B1 04 0208 05C8 0406 1748 3808181808181818180808180808181818080808080808080808080808080808080808080808080808180808180818180828 55"}}
                                          AA B0 3C 04 08 0208 05C8 0406 1748 3808181808181818180808180808181818080808080808080808080808080808080808080808080808180808180818180828 55
                              

                              Die Zeilen dazwischen sind die codierten B0.

                              Hatte jemand schon dieses Verhalten?

                              Vielen Dank

                              Schienw

                              1 Reply Last reply Reply Quote 0
                              • O
                                oxident last edited by

                                Entschuldigt bitte, wenn ich hier dazwischenquatsche:
                                Wisst ihr, ob ich mit der Sonoff/Tasmota/Portisch-Lösung prinzipiell Glück haben könnte, Rollos und Markisen mit dem Dooya-Protokoll steuern kann?

                                Meine bisherigen Versuche mit SIGNALduino (CC1101+ESP32) über FHEM zu iobroker waren eher mittelprächtig und funktionierten nur sporadisch.

                                Bei der Sonoff-Bridge steht aber überall, dass keine Rolling-Codes unterstützt werden. Aber das nutzen Rolläden doch, oder?

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                550
                                Online

                                31.7k
                                Users

                                79.7k
                                Topics

                                1.3m
                                Posts

                                javascript monitoring scenes
                                23
                                44
                                7411
                                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