NEWS
TCP/IP Befehl über iobroker
-
Hallo zusammen,
ich habe ein LAN-Relais und möchte dieses über iobroker ansteuern.
Gemäß der Beschreibung (siehe nachstehender Link) kann ich über TCP / IP Befehle die einzelnen Ports schalten:
https://www.robot-electronics.co.uk/htm/eth_rly16tech1.htm
Meine Frage:
Wie sieht der Befehl denn in iobroker (Blockly) aus?
Ich nehme an, dass ich unter dem Baustein "Aktionen" in dem Feld "exec" einen Befehl eintragen muss. Vielleicht kann mir jemand helfen.Herzlichen Dank !
Gruß, Jörg
-
Als Ergänzung hier die Erläuterung von der Homepage:
TCP/IP Commands
The ETH-RLY16 can also be controlled using a simple command set sent over TCP/IP on port 17494 (0x4456).
Most commands are only a single byte and if applicable the ETH-RLY16 will automatically send its response. The only exception to this being the "Set relay states" command which requires an additional desired states byte to be sent immediately after the command byte. -
Zu Blockly habe ich jetzt keine Info.
Aber mit JavaScript könnte es so aussehen:
var net = require('net'); function sendMessage(host, port, message) { var client = net.connect({host: host, port: port}, function () { // 'connect' listener console.log('connected to LAN-Relais!'); client.write(message); }); client.on('data', function (data) { console.log(data.toString()); client.end(); }); client.on('end', function () { console.log('disconnected from LAN-Relais'); }); client.on('error', function (error) { console.error('error: ' + error); client.end(); }); } sendMessage('192.168.1.10', 17494, '\x5A\r\n'); // ask for version sendMessage('192.168.1.10', 17494, '\x65\r\n'); // turn relay 1 on
-
Dank Stabilostick !
Wenn ich das in JavaScript einfüge und unten die IP-Adresse ändere tut sich nix...
Muss ich oben bei "host: host, port: Port" irgendetwas vorgeben?Danke für die Zeit und Mühe.
Bin absoluter Laie was das ganz angeht... -
javascript.0 script.js.AAA-Testphase.Test_Port_1: error: Error: connect ETIMEDOUT 192.168.178.xx:17494
-
Du musst im sendMessage unten die richtige IP Deines LAN-Relais eingeben (da wo 192.xxxx steht).
-
ja, das habe ich. Die IP ist korrekt auch der Port ist offen.
Ich komme auch auf die Oberfläche der Karte, wo ich manuell einen Port öffnen kann. -
Schon einmal unter Windows probiert, den Port anzusprechen?
telnet 192.168.178.xx 17494
Was passiert da?
-
Vielleicht Firewall oder Virenscanner?
-
-
bekommt keine Verbindung.
Habe den Port 17494 als http tcp freigeschaltet:oder muss das ein anderer sein?
-
Ähm, welche Firewall ist das? Bei Windows ist normalerweise alles Ausgehende frei.
Bei der Rückmeldung ist entweder die IP falsch oder der Port unter der IP ist nicht freigeschaltet.
-
@Stabilostick sagte in TCP/IP Befehl über iobroker:
Ähm, welche Firewall ist das? Bei Windows ist normalerweise alles Ausgehende frei.
Bei der Rückmeldung ist entweder die IP falsch oder der Port unter der IP ist nicht freigeschaltet.
Schaut nach FritzBox aus........
-
Firewall ist ausgeschaltet.
Ip-Adresse ist aber richtig.
in Fritz Box ist auch Port 17494 korrekt als TCP drin.mmhhhhh
-
@alf4711
Wenn Du IN Deinem Netzwerk von Gerät zu Gerät kommunizierst, dann hat die Firewall in der Fritzbox damit exakt NICHTS mit zu tun. -
-
Ja und? Willst Du wirklich, dass das Relais aus dem Internet für jeden erreichbar ist? Da machst Du nämlich damit.
-
@alf4711
Damit kann jetzt jeder aus dem Internet über den port auf dein Gerät zugreifen -
nein natürlich nicht.
was könnte ich denn noch probieren? -
Wie sieht das Programm aus, mit dem Du testest? Ist das der "Relay Module Test"?
Natürlich nicht.
Lösch diese Regel in der FB. Und alle Regeln, die Du für ioBroker usw. eingerichtet hast, wenn das Gerät nicht aus dme Internet erreichbar sein soll.