CommandFusion

Started by xynyx, June 16, 2013, 08:36:14

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Ro

WOW, netjes hoor. :worship:

De laatste tijd heb ik weinig gewijzigd. Ik ben vooral bezig geweest met Homeseer, slimme elektriciteit meter en deze info wegschrijven naar een database. Ik moet het CF gebeuren eigenlijk ook weer eens gaan oppakken en verder uitbreiden.
Classe SSP-800 + CA-5300, Phonar, Velodyne DD15, Dune D1, Humax 5050c, Sony KLD55HX920

xynyx

Voorlopig even klaar.
Alles werkt naar behoren. Het verwerken van de feedback verbeterd. Werkt nu met Objects. Was even een hele puzzel, maar het werkt prima. Alles is nu veel overzichtelijker. Wat zo'n squeezebox er allemaal uitgooit als feedback.......


Valkyrie

De knoop is doorgehakt en ik ga binnenkort een GC100-12 aanschaffen. :pompom:
Dat zal weer een hoop programmeerwerk zijn om alles over te zetten van de Pronto naar CommandFusion.

Zijn er toevallig leden die zijn/haar ontwerp voor Ipad naar mij toe willen sturen, zodat ik een basis heb? Dat scheelt mij namelijk een hoop werk! (xynyx, bedankt voor jouw bestand!)
Projectie: JVC DLA-NZ7 | Elite Screens EZframe 2.35:1 CineWhite 125"
Versterking: Arcam AV860 | Arcam P1000 | Arcam P429 Bronnen: Panasonic UB9004 | Lumin D2 | Apple TV 4K
Speakers: KEF Reference 203 | KEF Reference 204c | KEF Reference 201 | KEF KHT2001.3 Subwoofer: Velodyne DD-15
Audiorack: Finite Elemente Pagode Signature SG06 | Spectral CL1550 Kabels/stroom: Gigawatt | Furutech | Inakustik | Monster

Valkyrie

Wie heeft er trouwens ervaring met MediaPortal? Het ziet er erg interessant uit en zij hebben ook een erg mooie GUI.

http://www.team-mediaportal.com/
Projectie: JVC DLA-NZ7 | Elite Screens EZframe 2.35:1 CineWhite 125"
Versterking: Arcam AV860 | Arcam P1000 | Arcam P429 Bronnen: Panasonic UB9004 | Lumin D2 | Apple TV 4K
Speakers: KEF Reference 203 | KEF Reference 204c | KEF Reference 201 | KEF KHT2001.3 Subwoofer: Velodyne DD-15
Audiorack: Finite Elemente Pagode Signature SG06 | Spectral CL1550 Kabels/stroom: Gigawatt | Furutech | Inakustik | Monster

xynyx

Quote from: Valkyrie on March 27, 2014, 08:39:39
De knoop is doorgehakt en ik ga binnenkort een GC100-12 aanschaffen. :pompom:
Dat zal weer een hoop programmeerwerk zijn om alles over te zetten van de Pronto naar CommandFusion.

Zijn er toevallig leden die zijn/haar ontwerp voor Ipad naar mij toe willen sturen, zodat ik een basis heb? Dat scheelt mij namelijk een hoop werk! (xynyx, bedankt voor jouw bestand!)

Heb jij mijn js scriptjevoor de global cache? Wat ga je allemaal ovzetten? Ik neem aan dat met de gc100 ook. Rs232 wil aansturen. Als dat niet zo is moet geen gc100 kopen! De itachs zijn beter!! Gc100 zijn verouderd en kunnen bepaalde dingen niet die de itachs wel aan kunnen.

Valkyrie

Quote from: xynyx on March 27, 2014, 19:35:59
Heb jij mijn js scriptjevoor de global cache? Wat ga je allemaal ovzetten? Ik neem aan dat met de gc100 ook. Rs232 wil aansturen. Als dat niet zo is moet geen gc100 kopen! De itachs zijn beter!! Gc100 zijn verouderd en kunnen bepaalde dingen niet die de itachs wel aan kunnen.

De gc100 is vooral voor de RS232, daarnaast kan ik gewoon de IR gebruiken natuurlijk.

Ik ben nog wel even aan het kijken of CommandFusion het juiste programma is. Voor iRule zijn er diverse add-ons gemaakt (vera en sonos). Dat maakt iRule ook wel interessant.
Projectie: JVC DLA-NZ7 | Elite Screens EZframe 2.35:1 CineWhite 125"
Versterking: Arcam AV860 | Arcam P1000 | Arcam P429 Bronnen: Panasonic UB9004 | Lumin D2 | Apple TV 4K
Speakers: KEF Reference 203 | KEF Reference 204c | KEF Reference 201 | KEF KHT2001.3 Subwoofer: Velodyne DD-15
Audiorack: Finite Elemente Pagode Signature SG06 | Spectral CL1550 Kabels/stroom: Gigawatt | Furutech | Inakustik | Monster

Valkyrie

#206
Inmiddels is het gelukt om een lamp aan en uit te zetten en daarbij ook de feedback dat deze uit is. De eerste stappen zijn gezet! :pompom:
Wat mij alleen nog niet lukt is om een bepaalde "loop" te creëren. Het kan namelijk zijn dat de lampen vanaf de schakelaar bediend worden. Dan moet de status in de GUI ook worden geüpdatet.

Op internet heb ik ook de volgende code gevonden, het lukt mij alleen niet om hierbij de status van lampen uit te lezen:

var myJSON, baseURL = "http://192.168.1.98:3480/data_request?id=lu_status2&DataVersion=1";

function requestData(deviceNum) {
  CF.request(baseURL, function(status, headers, body) {
    if (status == 200) {
     
      // OK response received, now grab the JSON string from body and turn it into an object
      myJSON = JSON.parse(body);
     
      // Now assign one of the known state variables to a serial join (if it will always be at a certain index in the state & device array)
      CF.setJoin("s100", myJSON.devices[9].states[1].value);

      // Now assign one of the known state variables to a serial join (if it will always be at a certain index in the state & device array)
      CF.setJoin("s104", myJSON.devices[3].states[1].value);
     
      // Now assign one of the known state variables to a serial join (if it will always be at a certain index in the state & device array)
      CF.setJoin("s107", myJSON.devices[7].states[3].value);
     
      // Now assign one of the known state variables to a serial join (if it will always be at a certain index in the state & device array)
      CF.setJoin("s109", myJSON.devices[7].states[4].value);
     
      // Now assign one of the known state variables to a serial join (if it will always be at a certain index in the state & device array)
      CF.setJoin("s110", myJSON.devices[7].states[0].value);
     
      // Now assign one of the known state variables to a serial join (if it will always be at a certain index in the state & device array)
      CF.setJoin("s108", myJSON.devices[10].states[1].value);
     
      // Now assign one of the known state variables to a serial join (if it will always be at a certain index in the state & device array)
      CF.setJoin("s105", myJSON.devices[4].states[1].value);
     
      // Now assign one of the known state variables to a serial join (if it will always be at a certain index in the state & device array)
      CF.setJoin("s106", myJSON.devices[5].states[1].value);

      // Analog Join for slider position when another user change the light dimmer. (if it will always be at a certain index in the state & device array)
      CF.setJoin("a1000", (myJSON.devices[9].states[1].value)*655.35);
     
      // Analog Join for slider position when another user change the light dimmer. (if it will always be at a certain index in the state & device array)
      CF.setJoin("a1001", (myJSON.devices[3].states[1].value)*655.35);
     
      // Analog Join for slider position when another user change the light dimmer. (if it will always be at a certain index in the state & device array)
      CF.setJoin("a1002", (myJSON.devices[4].states[1].value)*655.35);
     
      // Analog Join for slider position when another user change the light dimmer. (if it will always be at a certain index in the state & device array)
      CF.setJoin("a1003", (myJSON.devices[5].states[1].value)*655.35);

      // Analog Join for slider position when another user change the light dimmer. (if it will always be at a certain index in the state & device array)
      CF.setJoin("d10", myJSON.devices[2].states[0].value);



    }
  });
}
Projectie: JVC DLA-NZ7 | Elite Screens EZframe 2.35:1 CineWhite 125"
Versterking: Arcam AV860 | Arcam P1000 | Arcam P429 Bronnen: Panasonic UB9004 | Lumin D2 | Apple TV 4K
Speakers: KEF Reference 203 | KEF Reference 204c | KEF Reference 201 | KEF KHT2001.3 Subwoofer: Velodyne DD-15
Audiorack: Finite Elemente Pagode Signature SG06 | Spectral CL1550 Kabels/stroom: Gigawatt | Furutech | Inakustik | Monster

Valkyrie

Na wat zoekwerk heb ik ook onderstaande code gevonden met uitleg. Hopelijk kom ik er zo uit. :unsure:


var myJSON, baseURL = "http://192.168.1.98:3480/data_request?id=lu_status2&DataVersion=1&DeviceNum=";

function requestData(deviceNum) {
CF.request(baseURL + deviceNum, function(status, headers, body) {
if (status == 200) {

// OK response received, now grab the JSON string from body and turn it into an object
myJSON = JSON.parse(body);

// Now assign one of the known state variables to a serial join (if it will always be at a certain index in the state array)
CF.setJoin("s100", myJSON["Device_Num_"+deviceNum].states[1].value);

// Or lookup a variable by name from a specific device name if multiple devices are returned
CF.setJoin("s101", getDeviceVariable("Device_Num_"+deviceNum,"LoadLevelStatus"));

// Or lookup a variable by name on its own if you don't care what device it is coming from
CF.setJoin("s102", getVariable("LoadLevelStatus"));

}
});
}


// Get the value of a variable from a specific device
function getDeviceVariable(deviceName, variableName) {
// First check that the device name exists
if (!myJSON.hasOwnProperty(deviceName)) {
CF.log("Device name could not be found: " + deviceName);
return;
}
// Get the number of state variables in the device
var i = 0, n = myJSON[deviceName].states.length;
// Loop through all the state variables
for (; i < n; i++) {
// Find the variable name that matches the one requested
if (myJSON[deviceName].states[i].variable == variableName) {
// Send the value of the variable back to the caller
return myJSON[deviceName].states[i].variable;
}
}
// If we get to here, the variable was not found in any of the devices.
// Do some error logging and send back an empty string as the value
CF.log("State variable not found: " + variableName);
return "";
}


// Get the value of a variable from the first device that contains it
function getVariable(variableName) {
// Loop through all device objects in the returned data (eg. Device_Num_3)
for (var device in myJSON) {
// Get the number of state variables in the device
var i = 0, n = myJSON[device].states.length;
// Loop through all the state variables
for (; i < n; i++) {
// Find the variable name that matches the one requested
if (myJSON[device].states[i].variable == variableName) {
// Send the value of the variable back to the caller
return myJSON[device].states[i].variable;
}
}
}
// If we get to here, the variable was not found in any of the devices.
// Do some error logging and send back null value
CF.log("State variable not found: " + variableName);
return;
}
Projectie: JVC DLA-NZ7 | Elite Screens EZframe 2.35:1 CineWhite 125"
Versterking: Arcam AV860 | Arcam P1000 | Arcam P429 Bronnen: Panasonic UB9004 | Lumin D2 | Apple TV 4K
Speakers: KEF Reference 203 | KEF Reference 204c | KEF Reference 201 | KEF KHT2001.3 Subwoofer: Velodyne DD-15
Audiorack: Finite Elemente Pagode Signature SG06 | Spectral CL1550 Kabels/stroom: Gigawatt | Furutech | Inakustik | Monster

Valkyrie

#208
Het is nu wel definitief gelukt!!! :pompom: :pompom:
Ik kan nu mijn verlichting aansturen en krijg de feedback terug op het scherm. Daarnaast zie ik met welk percentage de lampen branden. :)

Nu kan ik de skin verder aanpassen naar mijn eigen wensen en hopelijk binnenkort starten met de Global Cache GC100-12. Ik heb wel een enorm mooie versie gezien, maar jammer genoeg heb ik daar de knopjes niet van:









Voor de geïnteresseerden de code die ik gebruik. Voor de commando's heb ik een "System" en "Commands" aangemaakt binnen guiDesigner.


var myJSON, baseURL = "http://192.168.1.98:3480/data_request?id=lu_status2&DataVersion=0";

function requestData(deviceNum) {
  CF.request(baseURL, function(status, headers, body) {
    if (status == 200) {
     
// OK response received, now grab the JSON string from body and turn it into an object
    myJSON = JSON.parse(body);
     
    // Now assign one of the known state variables to a serial join (if it will always be at a certain index in the state & device array)
    CF.setJoin("s101", myJSON.devices[2].states[1].value);
    CF.setJoin("s102", myJSON.devices[3].states[1].value);
CF.setJoin("s1012", myJSON.devices[4].states[1].value + "%");
CF.setJoin("s1022", myJSON.devices[5].states[1].value + "%");
CF.setJoin("s1032", myJSON.devices[6].states[1].value + "%");

    // Analog Join for slider position when another user change the light dimmer. (if it will always be at a certain index in the state & device array)
    CF.setJoin("a1011", (myJSON.devices[4].states[1].value)*655,35);
    CF.setJoin("a1021", (myJSON.devices[5].states[1].value)*655,35);
    CF.setJoin("a1031", (myJSON.devices[6].states[1].value)*655,35);

//Symbol
if (myJSON.devices[4].states[1].value > 0){CF.setJoin("s1013","light_on.png")}
else {CF.setJoin("s1013","light_off.png")}
if (myJSON.devices[5].states[1].value > 0){CF.setJoin("s1023","light_on.png")}
else {CF.setJoin("s1023","light_off.png")}
if (myJSON.devices[6].states[1].value > 0){CF.setJoin("s1033","light_on.png")}
else {CF.setJoin("s1033","light_off.png")}

    }
  });
}
Projectie: JVC DLA-NZ7 | Elite Screens EZframe 2.35:1 CineWhite 125"
Versterking: Arcam AV860 | Arcam P1000 | Arcam P429 Bronnen: Panasonic UB9004 | Lumin D2 | Apple TV 4K
Speakers: KEF Reference 203 | KEF Reference 204c | KEF Reference 201 | KEF KHT2001.3 Subwoofer: Velodyne DD-15
Audiorack: Finite Elemente Pagode Signature SG06 | Spectral CL1550 Kabels/stroom: Gigawatt | Furutech | Inakustik | Monster

xynyx

GUI komt me bekend voor  ;)

Mooi dat het werkt. Geeft altijd een kik.

Ik ben even kwijt wat vera nu retour geeft. Klopt het dat je kan kiezen tussen xml of wat jij retour krijgt? In mijn vera script doe ik het met xml. Jij blijkbaar niet.

Valkyrie

#210
Quote from: xynyx on March 30, 2014, 00:21:10
GUI komt me bekend voor  ;)

Mooi dat het werkt. Geeft altijd een kik.

Ik ben even kwijt wat vera nu retour geeft. Klopt het dat je kan kiezen tussen xml of wat jij retour krijgt? In mijn vera script doe ik het met xml. Jij blijkbaar niet.

De Vera kan feedback geven in XML en in JSON. Het script wat ik gebruik is op basis van JSON. ;)
Projectie: JVC DLA-NZ7 | Elite Screens EZframe 2.35:1 CineWhite 125"
Versterking: Arcam AV860 | Arcam P1000 | Arcam P429 Bronnen: Panasonic UB9004 | Lumin D2 | Apple TV 4K
Speakers: KEF Reference 203 | KEF Reference 204c | KEF Reference 201 | KEF KHT2001.3 Subwoofer: Velodyne DD-15
Audiorack: Finite Elemente Pagode Signature SG06 | Spectral CL1550 Kabels/stroom: Gigawatt | Furutech | Inakustik | Monster

Kjelt

Ziet er goed uit  :thumbs-up: maaruh.... Vardagsrum?

jaco

dat ziet er goed uit, werkt zo een vera light met zwave ok per % dimming ?
9.1.6 setup  Marantz AV10, Genelec G4 x9 voor base layer. Genelec G3 x6  voor hoogte kanalen. Genelec hts-4 subwoofer. VPL-XW5000ES. Screen Excelence enlightor 4k scherm

Valkyrie

Quote from: Kjelt on March 30, 2014, 16:18:54
Ziet er goed uit  :thumbs-up: maaruh.... Vardagsrum?

Dat is niet mijn skin hè. ;)
Qua layout vindt ik die erg gaaf en dat witte spreekt mij ook erg aan. :)

Quote from: jaco on March 30, 2014, 16:19:06
dat ziet er goed uit, werkt zo een vera light met zwave ok per % dimming ?

Ik gebruik dit script met een Vera Light. De slider kan ik heen en weer zetten voor het % dimming.
Waarschijnlijk zal jij het zodanig kunnen programmeren dat je in een tekstveld het percentage invult en dan de lamp met dat percentage aan gaat. ;)
Projectie: JVC DLA-NZ7 | Elite Screens EZframe 2.35:1 CineWhite 125"
Versterking: Arcam AV860 | Arcam P1000 | Arcam P429 Bronnen: Panasonic UB9004 | Lumin D2 | Apple TV 4K
Speakers: KEF Reference 203 | KEF Reference 204c | KEF Reference 201 | KEF KHT2001.3 Subwoofer: Velodyne DD-15
Audiorack: Finite Elemente Pagode Signature SG06 | Spectral CL1550 Kabels/stroom: Gigawatt | Furutech | Inakustik | Monster

jaco

Mooi, ik ben even aan het mailen met wat webshops omdat ik philips ledlino armaturen heb.
Ik krijg verschillende antwoorden terug, even wat heen en weer mailen.
9.1.6 setup  Marantz AV10, Genelec G4 x9 voor base layer. Genelec G3 x6  voor hoogte kanalen. Genelec hts-4 subwoofer. VPL-XW5000ES. Screen Excelence enlightor 4k scherm

jaco

Quote from: Valkyrie on March 30, 2014, 19:34:05
Ik gebruik dit script met een Vera Light. De slider kan ik heen en weer zetten voor het % dimming.
Waarschijnlijk zal jij het zodanig kunnen programmeren dat je in een tekstveld het percentage invult en dan de lamp met dat percentage aan gaat. ;)
Het ziet er niet heel moeilijk uit met die 2 voorbeelden die jij hebt.

Met de:
var myJSON, baseURL = "http://192.168.1.98:3480/data_request?id=lu_status2&DataVersion=0";

Zet je een link naar je vera light.

Die roep je aan met:

  CF.request(baseURL, function(status, headers, body)

En dan parse je hem met:

    myJSON = JSON.parse(body);
     
De rest is gui geneuzel.


Ik zie nergens waar je een lamp aanzet, dan moet je de ver light toch een commando sturen neem ik aan.
9.1.6 setup  Marantz AV10, Genelec G4 x9 voor base layer. Genelec G3 x6  voor hoogte kanalen. Genelec hts-4 subwoofer. VPL-XW5000ES. Screen Excelence enlightor 4k scherm

Valkyrie

Quote from: jaco on March 30, 2014, 21:09:48
Ik zie nergens waar je een lamp aanzet, dan moet je de ver light toch een commando sturen neem ik aan.

Dat klopt helemaal, want dat doe ik via het programma.

In de System Manager heb ik eerst de Vera toegevoegd. Nadat de Vera is toegevoegd heb ik commando's aangemaakt. Dit zijn gewoon de HTML-commando's voor de Vera. Vervolgens zit er een feedback-commando in en heeft de pagina een Page Timer.
Projectie: JVC DLA-NZ7 | Elite Screens EZframe 2.35:1 CineWhite 125"
Versterking: Arcam AV860 | Arcam P1000 | Arcam P429 Bronnen: Panasonic UB9004 | Lumin D2 | Apple TV 4K
Speakers: KEF Reference 203 | KEF Reference 204c | KEF Reference 201 | KEF KHT2001.3 Subwoofer: Velodyne DD-15
Audiorack: Finite Elemente Pagode Signature SG06 | Spectral CL1550 Kabels/stroom: Gigawatt | Furutech | Inakustik | Monster

Valkyrie

En de laatste (Page Timer)
Projectie: JVC DLA-NZ7 | Elite Screens EZframe 2.35:1 CineWhite 125"
Versterking: Arcam AV860 | Arcam P1000 | Arcam P429 Bronnen: Panasonic UB9004 | Lumin D2 | Apple TV 4K
Speakers: KEF Reference 203 | KEF Reference 204c | KEF Reference 201 | KEF KHT2001.3 Subwoofer: Velodyne DD-15
Audiorack: Finite Elemente Pagode Signature SG06 | Spectral CL1550 Kabels/stroom: Gigawatt | Furutech | Inakustik | Monster

jaco

Ik ga eerst nog een lutron syntetische load proberen. Kost helaas wel bijna 140 ero voor 1 zone.
Maar zwave gaat hem niet worden met philips ledlimo lampen volgens een zwave dealer in NL hier.
9.1.6 setup  Marantz AV10, Genelec G4 x9 voor base layer. Genelec G3 x6  voor hoogte kanalen. Genelec hts-4 subwoofer. VPL-XW5000ES. Screen Excelence enlightor 4k scherm

Kjelt

Quote from: jaco on April  1, 2014, 10:54:26
Ik ga eerst nog een lutron syntetische load proberen. Kost helaas wel bijna 140 ero voor 1 zone.
Maar zwave gaat hem niet worden met philips ledlimo lampen volgens een zwave dealer in NL hier.
Een Ledino heeft een trailing edge dimmer nodig. De meeste (zo niet alle) Zwave dimmers zijn leading edge en dat gaat dus niet werken.
Wat je nog zou kunnen doen (maar dat kan ook een dure grap worden) is de hele led driver te vervangen. Ik weet niet welke versie Ledino je hebt maar degene met 3 leds kun je een willekeurige leddriver van 12V 700mA voor gebruiken, als die bv dus een protocol ondersteund (DALI, DMX...etc) kun je ze zo ook aansturen (wel zo mooi).

jaco

Het dimt met mijn lutron zonder veel problemen van 100% terug naar 30% maar daar onder gaat het knipperen. Dit zou een te lage load zijn. Kreeg advies om er een ohmse belasting bij te hangen.
Heb een ventilator en een halogeen lamp geprobeerd. Maar dat was wellicht ook te weinig.
Nu die lutron module maar proberen.
9.1.6 setup  Marantz AV10, Genelec G4 x9 voor base layer. Genelec G3 x6  voor hoogte kanalen. Genelec hts-4 subwoofer. VPL-XW5000ES. Screen Excelence enlightor 4k scherm

Kjelt

Quote from: jaco on April  1, 2014, 14:11:21
Het dimt met mijn lutron zonder veel problemen van 100% terug naar 30% maar daar onder gaat het knipperen. Dit zou een te lage load zijn. Kreeg advies om er een ohmse belasting bij te hangen.
Heb een ventilator en een halogeen lamp geprobeerd. Maar dat was wellicht ook te weinig.
Nu die lutron module maar proberen.
Een halogeenlamp van hoeveel W? 100W zou moeten lukken.
Ventilator is een inductieve belasting geen ohmse ;)

jaco

30 watt of zo.

Deze module kost me 130 euro helaas, maar als het probleem oplost heb ik er vrede mee.
Een echte weerstand wordt erg warm, en een 100 watt halogeen lamp erbij kan ik niet gebruiken.
9.1.6 setup  Marantz AV10, Genelec G4 x9 voor base layer. Genelec G3 x6  voor hoogte kanalen. Genelec hts-4 subwoofer. VPL-XW5000ES. Screen Excelence enlightor 4k scherm

Kjelt

#223
Hey Jaco,
nu ik er langer over denk zal het bijschakelen van extra vermogen ook niet lekker werken want de electronica in de Ledino driver is gebouwd voor trailing edge en dat is gewoon een heel andere golfvorm.
Die Lutron trailing edge dimmer vind ik voor 130 euro nog niet eens zo heel erg duur. Een gewone Berker trailing edge dimmer voor handbediening in de muur kost ook al gauw 80 euro en zoals je weet is Lutron altijd tjing tjing kassa ring ring  ;D

jaco

Dit zit achter een GRX3106 die kost 800 euro voor 6 zones.
Per zone moet er dan zo een ding achter, althans ik hoop dat het het probleem oplost. Als dat zo is zijn de kosten aanvaardbaar voor mij.
9.1.6 setup  Marantz AV10, Genelec G4 x9 voor base layer. Genelec G3 x6  voor hoogte kanalen. Genelec hts-4 subwoofer. VPL-XW5000ES. Screen Excelence enlightor 4k scherm