NEWS
Brematic direkt per Skript steuern
-
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
-
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.
MeiaEdit: the code was mixed up in the first post, so I fixed it myself.
-
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