Hallo Meistertr,
hast du es mitlerweile hinbekommen? Habe auch Hyperion am laufen und würde es gern per vis Befehl aus bzw einschalten. Könntest du mir kurz erklären wie du Hyperion angesprochen hast? `
Ja nach langem probieren hat es geklappt
hier mein script:
sendMessage('{"command": "clear", "priority": 100 }\r\n'); if(logging) log(" Ambipi: Ambipi wurde angeschaltet" ); } else { sendMessage('{ "color": [0,0,0], "command": "color", "priority": 100 }\r\n'); if(logging) log(" Ambipi: Ambipi wurde abgeschaltet" ); setState("javascript.0.ambipi.sel_effect",""); onByOther=false;! ````
// Zum Ansteuern von Hyperion
// Copyright by Meistertr
//Version 0.2
! createState('ambipi.on', false);
createState('ambipi.clear', false);
createState('ambipi.color');
createState('ambipi.tvmode',true);
createState('ambipi.effects');
createState('ambipi.sel_effect');
! var logging = true;
var ip = "ambipi"; //hier die IP oder den Hostname
var port = 19444; // Port vin Hyperion nicht ändern
var onByOther = false;
! var eff = "Cinema brighten lights;Cinema dim lights;Knight rider;Blue mood blobs;Cold mood blobs;Full color mood blobs;Red mood blobs;Green mood blobs;Warm mood blobs;Police Lights Single;Police Lights Solid;Rainbow mood;Rainbow swirl fast;Rainbow swirl;Running dots;System Shutdown;Snake;Sparks Color;Sparks;X-Mas";
! setState("javascript.0.ambipi.effects",eff);
! var net = require('net');
! function sendMessage(message) {
var client = net.connect({host:ip, port: port}, function () {
! if(logging)console.log('connected to server!');
try{
client.write(message);
}catch(e){
console.log("Konnte Wert nicht an Ambipi senden, Fehler: " + e);
}
});
}
! subscribe({id:"javascript.0.ambipi.color"}, function (obj) {
if (obj.newState.val != obj.oldState.val){
onByOther=true;
var r = parseInt(obj.newState.val.substr(1, 2), 16);
var g = parseInt(obj.newState.val.substr(3, 2), 16);
var b = parseInt(obj.newState.val.substr(5, 2), 16);
console.log(r +" "+g+ " "+b);
if(logging) log(" Ambipi: Die Farbe wurde auf "+ r + g + b + " gesetzt" );
sendMessage('{ "color": ['+ r +','+ g +','+ b +'], "command": "color", "priority": 100 }\r\n');
if(obj.newState.val !== "#000000")setState("javascript.0.ambipi.on", true);
}
! });
! subscribe({id:"javascript.0.ambipi.on"}, function (obj) {
if (obj.newState.val === true && onByOther === false){
turnON(true);
}
else if(obj.newState.val === false){
turnON(false);
}
! });
! subscribe({id:"javascript.0.ambipi.sel_effect", valNe:""}, function (obj) {
if (obj.newState.val !== obj.oldState.val) {
onByOther= true;
sendMessage('{ "command": "effect", "effect": {"name": "'+ obj.newState.val +'"}, "priority": 100 }\r\n');
if(logging) log(" Ambipi: Ambipi auf Effect " + obj.newState.val + " geschaltet" );
setState("javascript.0.ambipi.on", true);
! }
else {
! }
});
! subscribe({id:"javascript.0.ambipi.clear", value:true}, function (obj) {
if (obj.newState.val ===true && getState("javascript.0.ambipi.on").val ){
sendMessage('{"command": "clear", "priority": 100 }\r\n');
if(logging) log(" Ambipi: Set to default" );
setState("javascript.0.ambipi.sel_effect","");
}
});
! subscribe({id:"hm-rpc.1.CUX2803003.1.STATE"/TV:1.STATE/}, function (obj) {
if (obj.newState.val ===true){
! setState("javascript.0.ambipi.on", true);
turnON (true);
if(logging) log(" Ambipi: wurder durch TV eingeschaltet" );
}
if (obj.newState.val ===false){
turnON (false);
setState("javascript.0.ambipi.on", false);
if(logging) log(" Ambipi: wurder durch TV ausgeschaltet" );
}
});
! function turnON (param){
if (param === true) {
! }
}
! ````