Sony TV - Simple IP Control Protocol for BRAVIA

Hier ein Beispiel wie der Status (On/OFF) eines Sony TV´s ausgelesen werden kann.

Beispiele:

  • TV ON und Schalter X wird gedrückt → Es wird das TV-Licht geschaltet

  • TV ON und Schalter X wird gedrückt → Es wird das Licht auf 100% gestellt

fyi: Protokoll wird von euer Suchmaschine gefunden "Simple IP Control Protocol for BRAVIA"

Schritt-für-Schritt-Anleitung

  1. TV auf "Hotelmodus" umschalten - Somit ist er immer via Ehternet verbunden

  2. Gebt euerem TV eine Fixe IP

  3. Pico C Programm erstellen (code unten) → 10.0.0.13 ändern auf eure TV IP

  4. Ausgabe beliebieg weiterverarbeiten

 

////// Hier der PicoC Code

#define BUFF_SIZE 50

#define RD_BLOCK_SIZE 24

#define TIME_OUT_TO_READ 4000



char szBuffer[BUFF_SIZE];

char szTmpBuffer[RD_BLOCK_SIZE];

int nCnt;

int nBytesReceived = 0;



char* pTcpCmd = "*SEPOWR################\n";

STREAM* pTcpStream = NULL;



while(TRUE) {

    // connect to TV

    pTcpStream = stream_create("/dev/tcp/10.0.0.13/20060",0,0); // create Stream

    stream_write(pTcpStream,pTcpCmd,strlen(pTcpCmd)); // write to output buffer

    stream_flush(pTcpStream); // flush output buffer

    

    sleep(500); // wait 500 millisecond

        

    // read stream from TV



    do {

        nCnt = stream_read(pTcpStream, szTmpBuffer, RD_BLOCK_SIZE, TIME_OUT_TO_READ);

        if (nCnt + nBytesReceived > BUFF_SIZE) {

            nBytesReceived = -1;

            setoutput(0,1); // Error

            break; //File is too large

        }

        else if(nCnt > 0) {

            strncpy((char*)szBuffer + nBytesReceived, szTmpBuffer, nCnt);

            nBytesReceived += nCnt;

        }

    } while (nCnt > 0);



    stream_close(pTcpStream); // close Stream



    if (nBytesReceived > 0) {

        if(szBuffer[22] == 48) { // "0"

            setoutput(0,0);

        } else if (szBuffer[22] == 49) { // "1"

            setoutput(0,2);

        } else {

            setoutput(0,1); // Error

        }

    }

    

    nBytesReceived = 0;

    nCnt = 0;

    sleeps(4);        // wait 4 seconds

}



fyi: Protokoll wird von euer Suchmaschine gefunden "Simple IP Control Protocol for BRAVIA"



Freu mich auf euer review...