Antwort
Nov 05, 2017 - 14:23
var url = "http://192.168.xxx.xxx/cgi/control.cgi?login=p:Admin:Admin&p=list";
var http = require('http');
var req = http.get(url, function(res) {
var body = '';
res.setEncoding('utf8');
res.on('data', function(chunk) {
body += chunk;
});
res.on('end', function() {
console.log(body);
//hier body zerlegen mit...
//var Out1 = (body.substring(12,13));
executeDeviceCommand(
"AIO GATEWAY V4+ (FA)",
"PowerOut1[21]",
{"value":"setValue","ext":Out1},
function(err) {
err && console.error(err.message);
}
);
});
});
req.on('error', function(err) {
console.error(err);
});
wenn deine url 0 0 0 1 liefert dann was liefert dir substring(12,13) ....nichts :)
was willst du haben von dem ergebniss?
du musst die zeile:
//var Out1 = (body.substring(12,13));
anpassen und di // zeichen entfernen
die erste null bekommst du mit substring 0,1, denke ich
Von
Danke zdenko33, so funktioniert es.
Das mit 12,13 bezieht sich auf die ganze Antwort, und die heisst eben
<html>0 1 0 1 </html>
der Rest des Textes wurde verschluckt.
Danke vielmals, Du bist doch immer die letzte Rettung
Gruss
Peter
Von
aha, also läuft dann ???
Von
läuft super
Von
viel spass :) gruss
Von
Hallo zdenko33
geht das auch mit diesem Gerät
Auszug aus der Deviceinfo:
<device tcptype="textnl" controlport="5524" icon="avr" tpl="320x460:253:3380@3|1024x748:254:3384@3" name="RevoxM202Control" id="RevoxM202Control“>
mit Applescript geht es so:
do shell script "echo" & " | nc -i " & 1 & " 192.168.1.202 5524“
set myString to result
wäre super
Gruss
Von
meinst du das hier:
https://www.revox.com/uploads/tx_sbdownloader/M-Text_Protokoll_1.08.pdf
Von
demnach sollten die befehle so aussehen:
25 : SET : VOLUME : 30
Raumnummer : Grundbefehl : Befehlsparameter CR
nun dein apple script sieht nicht danach aus.... :)
Von
Ja, Befehle sende ich über die Deviceinfo(die übrigens auch von Dir war).
Der Status ist immer abrufbereit, auch ohne separatem Befehl.
Da ich zur Zeit den Status über AppleScript hole, was etwas umständlich ist, wäre eine direkte Lösung in JavaScript optimal.
Wenn es geht, wäre das toll.
Danke und Gruss Peter
Von
versuch mal mit diesem script erstmal ob steuern geht
var net = require('net');
function sendMessage(host, port, message) {
var client = net.connect({host:host, port: port}, function () {
// 'connect' listener
console.log('connected to server!');
client.write(message);
});
client.on('data', function (data) {
console.log(data.toString());
client.end();
});
client.on('end', function () {
console.log('disconnected from server');
});
client.on('error', function (error) {
console.error('error: ' + error);
client.end();
});
}
sendMessage('192.168.1.205', 19444, '{ "color": [0,0,0], "command": "color", "priority": 100 }');
unten musst du noch deine befehle anpassen
Von
sendMessage('192.168.1.205', 19444, '25 : SET : VOLUME : 30 \r\n' );
sosollte die letzte zeile sein...
Von
oder so :)
sendMessage('192.168.1.205', 19444, '25 : SET : VOLUME : 30 \r' );
Von
für Befehle nehme ich die Deviceinfo:
<device tcptype="textnl" controlport="5524" icon="avr" tpl="320x460:253:3380@3|1024x748:254:3384@3" name="RevoxM202Control" id="RevoxM202Control">
<key id="Volume_6" code="00:SET:VOLUME:6:"/>
<key id="Volume_8" code="00:SET:VOLUME:8:"/>
Für den Status geht es so in der letzten Zeile:
sendMessage('192.168.1.205', 19444, '{ "color": [0,0,0], "command": "color", "priority": 100 }');
08:28:41Skript Neues Skript hat gestartet.
08:28:42connected to server!
08:28:4200:STATUS:ROOM:10:1:MyMusic :ORF Radio Vorarl:0:
08:28:42disconnected from server
08:28:42Skript Neues Skript hat geendet.
jetzt muss diese Antwort noch in eine Javascript.Variable, dann bin ich überglücklich
Von
nun ja die letzte zeile sieht so aus als wäre sie nicht nutzbar mit deinem gerät.....auch port und alles
poste das script jetzt hier welches die log ausgabe von oben ausgibt
ist das nach dem du den befehl absendest oder ist die log immer so?
Von
nach dem senden diese Antwort
08:28:41Skript Neues Skript hat gestartet.
08:28:42connected to server!
08:28:4200:STATUS:ROOM:10:1:MyMusic :ORF Radio Vorarl:0:
08:28:42disconnected from server
08:28:42Skript Neues Skript hat geendet.
gehe jetzt ausser Haus
Danke bis später
Von
ok
in dem script:
client.on('data', function (data) {
console.log(data.toString());
client.end();
eine zeile so einfügen:
var antwort = data.toString();
client.on('data', function (data) {
console.log(data.toString());
var antwort = data.toString();
//hier das snippet aus scripteditor für eine string variable schreiben, dort dann antwort rein
client.end();
Von
Werde es nachher probieren, besten Dank
Gruss
Von
Hallo zdenko33
so funktioniert es.
herzlichen Dank für Deine ausführliche Hilfe
Gruss
Peter
var net = require('net');
function sendMessage(host, port, message) {
var client = net.connect({host:host, port: port}, function () {
// 'connect' listener
console.log('connected to server!');
client.write(message);
});
client.on('data', function (data) {
console.log(data.toString());
var antwort = data.toString();
var Volume = (antwort.substring(15,17));
executeDeviceCommand(
"AIO GATEWAY V4+ (FA)",
"PowerOut1[21]",
{"value":"setValue","ext":Volume},
function(err) {
err && console.error(err.message);
}
);
client.end();
});
client.on('end', function () {
console.log('disconnected from server');
});
client.on('error', function (error) {
console.error('error: ' + error);
client.end();
});
}
//sendMessage('192.168.1.2xx', 5524, '00:SET:VOLUME:12:\r\n');//nur Befehl senden ohne Status
sendMessage('192.168.1.2xx', 5524,'{ "color": [0,0,0], "command": "color", "priority": 100 }');//nur Statusabfrage
Neuen Kommentar hinzufügen