YIO Remote Two auf Kickstarter

Hi Ralf,
das klingt gut. Mit welchem Command bzw. mit welcher URL setzt Du den Activity-On- bzw. -Off-Befehl ab? Ich hätte, wie bei den anderen IR-Commands, mit einem PUT gerechnet. Aber dazu finde ich auf die Schnelle nichts.

Chris

Moin Chris,

mit diesem Script:

<?php
switch ($_IPS['SENDER']){
    case 'R2':
        $IP = $_IPS['IP'];
        $Key = $_IPS['Key'];
        $UID = $_IPS['UID'];
        $Kommando = $_IPS['Kommando'];
        send_remote($IP, $Key, $UID, $Kommando);
        break;
}

function send_remote($IP, $Key, $UID, $Kommando) {

    $ch = curl_init('http://' . $IP . '/api/entities/'.$UID.'/command');
    $data['entity_id'] = $UID;
    $data['cmd_id'] = $Kommando;
    $data_string = json_encode($data);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'Authorization: Bearer ' . $Key,
        'Content-Type: application/json',
        'Content-Length: ' . strlen($data_string))
    );
    $result = curl_exec($ch);
// Data und Result speichere ich für Debugging in Variablen.
//    SetValue(58547, $data_string);
//    SetValue(15501, $result);
    curl_close($ch);
// Hier rufe ich nochmal alle Aktivitäten ab um den Status schneller zu bekommen
//    sleep(5);
//    IPS_RunScript(22072);
}
?>

Dieses Script rufe ich mit

IPS_RunScriptEx(<ID vom obigen Script> , Array("SENDER" => "R2", "IP" => $IP, "Key" => $Key, "UID" => $UID, "Kommando" => 'activity.on'));

auf. $IP = IP der R2, $Key = API-Key dieser R2, $UID = UID vom Gerät oder Aktion, Kommando = activity.on (an), activity.off (aus) oder eben DIGIT_1, MUTE oder anderen Befehl.

Ralf

Hi,

Ich lese hier gespannt mit da ich auch auf meine R3 warte.

Gruß Max

Moin Ralf,

danke Dir! Ich wollte nicht glauben bzw. konnte mir nicht vorstellen, dass man für „activity.on“ erstnahft zweimal die UID der Aktivität weitergeben muss. Aber dann ist es eben so.
Weißt Du, ob es einen Befehl für „ActivityGroup.off“ gibt? Ein Skript welches zunächst auswertet, welche Aktivität „on“ ist, um diese in der Gruppe auszuschalten wäre unpraktisch. Den State der ActivityGroup kann man auswerten - aber gibt es auch einen globalen Aus-Befehl für eine ganze Gruppe?

Chris

Sorry nein. Ich habe immer nur eine Aktivität in meinen Gruppen aktiv.

Ralf