Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Brematic direkt per Skript steuern

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Brematic direkt per Skript steuern

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

      Nachdem man leider nix findet zu diesem Thema, hier mein eigener Java Script, mit dem man aus ioBroker direkt Funksteckdosen ansteuern kann von Brennenstuhl, Unitec, etc, die jeweils 5 Bit Schalter verwenden für den Gruppen und Unit Code.

      Der Script erzeugt einfach einen "TXP:" Code passend für die Brematic und sollte auch mit dem Intertechno-Gateway funktionieren.

      Übrigends habe ich die Erzeugung eigener "TXP:" Raw Codes zwischenzeitlich herausgefunden, und eine Anleitung hier gepostet:

      https://forum.bernis-hideout.de/viewtopic.php?f=43&t=88

      Hier nun mein Skript:

      createState('BrennenstuhlPlug1', 0, { type: 'number' });                                                    
      createState('BrennenstuhlPlug2', 0, { type: 'number' });                                                    
      createState('BrennenstuhlPlug3', 0, { type: 'number' });                                                    
      
      const idVis1 = 'javascript.0.BrennenstuhlPlug1'; 
      const idVis2 = 'javascript.0.BrennenstuhlPlug2'; 
      const idVis3 = 'javascript.0.BrennenstuhlPlug3'; 
      
      const Brennenstuhl_Master1 = '10010';                                                                       
      const Brennenstuhl_Slave1 = '10000';                                                                        
      const Brennenstuhl_Slave2 = '01000';                                                                        
      const Brennenstuhl_Slave3 = '00100';                                                                        
      
      const g_BrematicIP = '192.168.0.10';                                                                     
      const g_BrematicPort = 49880;                                                                               
      
      on(idVis1, function (obj)                                                                                   
      {                                                                                                           
          sendBrematicMessage(buildBrennenstuhlMessage(Brennenstuhl_Master1, Brennenstuhl_Slave1, obj.state.val));
      });                                                                                                         
      
      on(idVis2, function (obj)                                                                                   
      {                                                                                                           
          sendBrematicMessage(buildBrennenstuhlMessage(Brennenstuhl_Master1, Brennenstuhl_Slave2, obj.state.val));
      });                                                                                                         
      
      on(idVis3, function (obj)                                                                                   
      {                                                                                                           
          sendBrematicMessage(buildBrennenstuhlMessage(Brennenstuhl_Master1, Brennenstuhl_Slave3, obj.state.val));
      });                                                                                                         
      
      function sendBrematicMessage(strMessage)                                                                    
      {                                                                                                           
          var dgram = require('dgram');                                                                           
          var client = dgram.createSocket('udp4');                                                                
          client.send(strMessage, 0, strMessage.length, g_BrematicPort, g_BrematicIP,                             
              function(err, bytes)                                                                                
              {                                                                                                   
                  if(err)                                                                                         
                      throw err;                                                                                  
                  client.close();                                                                                 
              }                                                                                                   
          );                                                                                                      
      }                                                                                                           
      
      function buildBrennenstuhlMessage(strPlugMaster, strPlugSlave, bState)                                      
      {                                                                                                           
          var iRepeat = 3;                                                                                        
          var iPause = 5600;                                                                                      
          var iPulseLength = 350;                                                                                 
          var iSignalCnt = 25;                                                                                    
      
          var strinit = ',1,3,';                                                                                  
          var strHead = 'TXP:0,0,' + iRepeat + ',' + iPause + ',' + iPulseLength + ',' + iSignalCnt + strinit;    
          var strLastCodeSeq = '1,';                                                                              
          var strTail = strLastCodeSeq + '0';                                                                     
      
          var strOn = '1,3,1,3,3,1,';                                                                             
          var strOff = '3,1,1,3,1,3,';                                                                            
          var strSeqLow = '3,1,1,3,';                                                                             
          var strSeqHigh = '1,3,1,3,';                                                                            
      
          var strState = strOn;                                                                                   
          if(bState == '0')                                                                                       
              strState = strOff;                                                                                  
      
          var strMaster = '';                                                                                     
          var strSlave = '';                                                                                      
      
          for(var i=0;i<strplugmaster.length;i++) {/if(strplugmaster[i]="=" '1')/strmaster/+="strSeqHigh;" else/}/for(i="0;i<strPlugSlave.length;i++)" if(strplugslave[i]="=" strslave/var/strmessage="strHead" strstate/strtail;/return(strmessage);/<e=""></strplugmaster.length;i++)
      

      2 Globale Variablen sind mit euren Ip und Port Adressen des Brematic Gateway anzupassen.

      Dazu muss noch die DIP Schalter Stellung der Funkdosen im Code angepasst werden.

      Bitte um eure Meinungen und Danksagungen :lol: 😄

      Derrow

      M 1 Reply Last reply Reply Quote 0
      • M
        meia @Derrow last edited by meia

        @Derrow

        I tried you script but I get the error: javascript.0 script.js.common.Brennenstuhl compile failed: at script.js.common.Brennenstuhl:70,
        which is the last row
        for(var i=0;i<strplugmaster.length;i++) {/if(strplugmaster[i]="=" '1')/strmaster/+="strSeqHigh;" else/}/for(i="0;i<strPlugSlave.length;i++)" if(strplugslave[i]="=" strslave/var/strmessage="strHead" strstate/strtail;/return(strmessage);/<e=""></strplugmaster.length;i++)>

        Any ideas what could be the problem?
        I have configured IP, Port and dips, so it should work.
        I also have another tool running (FB.Switch), which is working fine (but I want to migrate to iobroker).

        Thanks a lot.
        Meia

        Edit: the code was mixed up in the first post, so I fixed it myself.

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

          Hallo, @Derrow,

          würdest Du Dein Brennenstuhlscript hier noch einmal reinstellen. Das Script im Post 1 ist irgendwie gemixt am Ende. Vielen Dank.

          Gruß
          opossum

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

          Support us

          ioBroker
          Community Adapters
          Donate

          967
          Online

          31.6k
          Users

          79.4k
          Topics

          1.3m
          Posts

          javascript
          3
          3
          1074
          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