Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. [Vorlage] Sony Bravia TV ab 2013

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    5
    1
    136

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    8
    1
    169

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    871

[Vorlage] Sony Bravia TV ab 2013

Scheduled Pinned Locked Moved Skripten / Logik
18 Posts 4 Posters 5.2k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    T Offline
    tesso
    wrote on last edited by
    #9

    Hallo,

    ich habe das Skript bei mir im Einsatz. Das Ausschalten des Fernsehers geht über das Setzen der Datenpunktes "Power" auf false. (Kann gerade nicht nachsehen, ob er wirklich so heißt)

    Kann ich den Fernseher darüber auch wieder einschalten? Das will mir nicht gelingen. Muß ich evtl. am Fernsher noch etwas einstellen?

    Gibt es vielleicht schon eine neuere Version des Skriptes?

    1 Reply Last reply
    0
    • M Offline
      M Offline
      Mighty
      wrote on last edited by
      #10

      @tesso:

      Hallo,

      ich habe das Skript bei mir im Einsatz. Das Ausschalten des Fernsehers geht über das Setzen der Datenpunktes "Power" auf false. (Kann gerade nicht nachsehen, ob er wirklich so heißt)

      Kann ich den Fernseher darüber auch wieder einschalten? Das will mir nicht gelingen. Muß ich evtl. am Fernsher noch etwas einstellen?

      Gibt es vielleicht schon eine neuere Version des Skriptes? `

      Hi tesso,

      wo hast du denn die IP eingetragen und welche Infos muss man dem Skript noch geben? Bekomme es garnicht erst zum Starten. :-(

      Grüße Mighty

      WR105SI - FW 2.85 - APP 1.6.9 - Rasen 200 m²

      Loxone Smart Home

      1 Reply Last reply
      0
      • T Offline
        T Offline
        tesso
        wrote on last edited by
        #11

        Ich habe mich einfach an die Vorgehensweise aus dem ersten Post gehalten.

        Die IP habe ich im Datenpunkt für die IP eingetragen. Ich komme leider im Moment nicht auf mein System (bin unterwegs). Evtl. kann ich nachher nachschauen.

        1 Reply Last reply
        0
        • M Offline
          M Offline
          Mighty
          wrote on last edited by
          #12

          Wäre super, wenn du da nochmal nachschauen könntest.

          Datenpunkt?

          Grüße Mighty

          WR105SI - FW 2.85 - APP 1.6.9 - Rasen 200 m²

          Loxone Smart Home

          1 Reply Last reply
          0
          • T Offline
            T Offline
            tesso
            wrote on last edited by
            #13

            System - IP Adresse

            Nicht zu verfehlen

            1 Reply Last reply
            0
            • M Offline
              M Offline
              Mighty
              wrote on last edited by
              #14

              @tesso:

              System - IP Adresse

              Nicht zu verfehlen `

              Ok. Danke. Wo finde ich den Benutzernamen?

              Habe folgendes eingetragen:

              createState('javascript.0.Sony_Bravia_VAR.Authorization.User','Mighty',{type: "string", role: "User"});
              //System
              createState('javascript.0.Sony_Bravia_VAR.System.IP_Adresse','192.168.2.248',{type: "string", role: "IP Adresse"});
              

              Bekomme folgende Fehlermeldungen:

              5:59:30.270	[info]	javascript.0 script.js.Sony_Bravia.Main: Anfrage{"id":40,"method":"actRegister","params":[{"clientid":"","nickname":""},[{"clientid":"","value":"yes","nickname":"","function":"WOL"}]],"version":"1.0"}
              15:59:30.270	[info]	javascript.0 script.js.Sony_Bravia.Main: Anfrage{"id":40,"method":"actRegister","params":[{"clientid":"","nickname":""},[{"clientid":"","value":"yes","nickname":"","function":"WOL"}]],"version":"1.0"}
              15:59:30.270	[info]	javascript.0 script.js.Sony_Bravia.Main: Anfrage{"id":40,"method":"actRegister","params":[{"clientid":"","nickname":""},[{"clientid":"","value":"yes","nickname":"","function":"WOL"}]],"version":"1.0"}
              15:59:30.270	[info]	javascript.0 script.js.Sony_Bravia.Main: registered 25 subscriptions and 0 schedules
              15:59:30.270	[info]	javascript.0 script.js.Sony_Bravia.Main: registered 25 subscriptions and 0 schedules
              15:59:30.270	[info]	javascript.0 script.js.Sony_Bravia.Main: registered 25 subscriptions and 0 schedules
              15:59:32.543	[info]	javascript.0 script.js.Sony_Bravia.Main: Error: getaddrinfo ENOTFOUND null null:80
              15:59:32.543	[info]	javascript.0 script.js.Sony_Bravia.Main: Error: getaddrinfo ENOTFOUND null null:80
              15:59:32.543	[info]	javascript.0 script.js.Sony_Bravia.Main: Error: getaddrinfo ENOTFOUND null null:80
              

              Hat jemand eine Idee, was hier falsch läuft?

              Grüße Mighty

              WR105SI - FW 2.85 - APP 1.6.9 - Rasen 200 m²

              Loxone Smart Home

              1 Reply Last reply
              0
              • T Offline
                T Offline
                tesso
                wrote on last edited by
                #15

                Der Username ist etwas irreführend. gemeint ist der "Vorsinstallierte Schlüssel" den du ihm Fernseher einstellen musst.

                1 Reply Last reply
                0
                • M Offline
                  M Offline
                  Mighty
                  wrote on last edited by
                  #16

                  So, jetzt läuft es. Ich hatte die Daten direkt unter 'Skripte' im Code eingetragen. War aber falsch.

                  Man muss unter Objekte ->

                  javascript.0.Sony_Bravia_VAR.System und .Authorization seine Daten eintragen. Dann klappt's.

                  Wie man an was kommt, ist hier beschrieben:

                  https://github.com/alanreid/bravia

                  Danke & Grüße Mighty

                  ps jetzt fehlt nur noch der MR400 der Telekom für EntertainTV.

                  WR105SI - FW 2.85 - APP 1.6.9 - Rasen 200 m²

                  Loxone Smart Home

                  1 Reply Last reply
                  0
                  • L Offline
                    L Offline
                    Lucky
                    wrote on last edited by
                    #17

                    Moin Moin,

                    ich habe mal wider etwas an dem Skript gearbeitet

                    1.Durch einen Update Intervall werden die States jetzt auch Aktualisiert wenn mit der Fernbedienung bedient wurde

                    2. Verbesserungen und Fehler behoben

                    hier die neue Version

                    ! ```
                    `createState('javascript.0.Sony_Bravia_VAR.Authorization.PIN_Anfordern', false,{type: "boolean", role: "button"});
                    createState('javascript.0.Sony_Bravia_VAR.Authorization.Cookie', 'init',{type: "string", role: "Cookie",write:false});
                    createState('javascript.0.Sony_Bravia_VAR.Authorization.PIN', 0,{type: "number", role: "PIN"});
                    createState('javascript.0.Sony_Bravia_VAR.Authorization.Status', false,{type: "boolean", role: "Erfolgreich",write:false});
                    createState('javascript.0.Sony_Bravia_VAR.Authorization.User','',{type: "string", role: "User"});
                    //System
                    createState('javascript.0.Sony_Bravia_VAR.System.IP_Adresse',{type: "string", role: "IP Adresse"});
                    createState('javascript.0.Sony_Bravia_VAR.System.MAC_Adresse',{type: "string", role: "MAC Adresse",write:false});
                    createState('javascript.0.Sony_Bravia_VAR.System.Generation',{type: "string", role: "Generation",write:false});
                    createState('javascript.0.Sony_Bravia_VAR.System.Language',{type: "string", role: "Language",write:false});
                    createState('javascript.0.Sony_Bravia_VAR.System.Model',{type: "string", role: "Model",write:false});
                    createState('javascript.0.Sony_Bravia_VAR.System.Name',{type: "string", role: "Name",write:false});
                    createState('javascript.0.Sony_Bravia_VAR.System.Product',{type: "string", role: "Product",write:false});
                    createState('javascript.0.Sony_Bravia_VAR.System.Serial',{type: "string", role: "Serial",write:false});
                    createState('javascript.0.Sony_Bravia_VAR.System.Update', 0,{type: "boolean", role: "button"});
                    createState('javascript.0.Sony_Bravia_VAR.Power', false,{type: "boolean", role: "Power"});
                    //Control
                    createState('javascript.0.Sony_Bravia_VAR.Control.Play', false,{type:"boolean", role: "button"});
                    createState('javascript.0.Sony_Bravia_VAR.Control.Stop', false,{type: "boolean", role: "button"});
                    createState('javascript.0.Sony_Bravia_VAR.Control.Pause', false,{type: "boolean", role: "button"});
                    createState('javascript.0.Sony_Bravia_VAR.Control.Skip_Plus', false,{type: "boolean", role: "button"});
                    createState('javascript.0.Sony_Bravia_VAR.Control.Skip_Minus', false,{type: "boolean", role: "button"});
                    createState('javascript.0.Sony_Bravia_VAR.Control.Page_Next', false,{type: "boolean", role: "button"});
                    createState('javascript.0.Sony_Bravia_VAR.Control.Page_Previous', false,{type: "boolean", role: "button"});
                    //Input
                    createState('javascript.0.Sony_Bravia_VAR.Input.InputsStatus', false,{type: "boolean", role: "button"});
                    createState('javascript.0.Sony_Bravia_VAR.Input.ActivInput', false,{type: "string", role: "ActivInput"});
                    createState('javascript.0.Sony_Bravia_VAR.Input.HDMI1', false,{type: "boolean", role: "button"});
                    createState('javascript.0.Sony_Bravia_VAR.Input.HDMI2', false,{type: "boolean", role: "button"});
                    createState('javascript.0.Sony_Bravia_VAR.Input.HDMI3', false,{type: "boolean", role: "button"});
                    createState('javascript.0.Sony_Bravia_VAR.Input.HDMI4', false,{type: "boolean", role: "button"});
                    createState('javascript.0.Sony_Bravia_VAR.Input.SetTV', false,{type: "boolean", role: "button"});
                    createState('javascript.0.Sony_Bravia_VAR.Input.AV1', false,{type: "boolean", role: "button"});
                    createState('javascript.0.Sony_Bravia_VAR.Input.AV2', false,{type: "boolean", role: "button"});
                    createState('javascript.0.Sony_Bravia_VAR.Input.BildschirmSpiegeln', false,{type: "boolean", role: "button"});
                    //TV
                    createState('javascript.0.Sony_Bravia_VAR.TV.Channel', 0,{type: "number", role: "Channel"});
                    createState('javascript.0.Sony_Bravia_VAR.TV.ProgrammTitel',{type: "string", role: "ProgrammTitel",write:false});
                    createState('javascript.0.Sony_Bravia_VAR.TV.Länge',{type: "number", role: "Länge (Minuten)",write:false});
                    createState('javascript.0.Sony_Bravia_VAR.TV.Startzeit',{type: "string", role: "Startzeit",write:false});
                    createState('javascript.0.Sony_Bravia_VAR.TV.SenderLesen', false,{type: "boolean", role: "button"});
                    createState('javascript.0.Sony_Bravia_VAR.TV.ChannelList',0,{type: "number", role: "Channel List",states:"0:none"});
                    createState('javascript.0.Sony_Bravia_VAR.TV.SenderName',{type: "string", role: "Sendername",write:false});
                    //Audio
                    createState('javascript.0.Sony_Bravia_VAR.Audio.SpeakerVolume', 0,{type: "number", role: " SpeakerVolume"});
                    createState('javascript.0.Sony_Bravia_VAR.Audio.SpeakerVolume_UP', 0,{type: "number", role: "button"});
                    createState('javascript.0.Sony_Bravia_VAR.Audio.SpeakerVolume_DOWN', 0,{type: "number", role: "button"});
                    createState('javascript.0.Sony_Bravia_VAR.Audio.HeadphoneVolume', 0,{type: "number", role: " HeadphoneVolume",write:false});
                    createState('javascript.0.Sony_Bravia_VAR.Audio.SpeakerMute', false,{type: "boolean", role: "SpeakerMute"});
                    ! var request = require('request');
                    ! var MySonyTV = {
                    ip:'',
                    mac:'',
                    pin:0,
                    auth:'',
                    body:{},
                    channel:{},
                    sony:{id:1,method:'',params:[],version:'1.0'},

                    system: {       getColorKeysLayout:function (val) {return MySonyTV.Send(1,'system','getColorKeysLayout',val)},
                                    getCurrentTime:function (val) {return MySonyTV.Send(2,'system','getCurrentTime',val)},
                                    getDateTimeFormat:function (val) {return MySonyTV.Send(3,'system','getDateTimeFormat',val)},
                                    getInterfaceInformation:function (val) {return MySonyTV.Send(4,'system','getInterfaceInformation',val)},
                                    getMethodTypes:function (val) {return MySonyTV.Send(5,'system','getMethodTypes',val)},
                                    getPostalCode:function (val) {return MySonyTV.Send(6,'system','getPostalCode',val)},
                                    getPowerSavingMode:function (val) {return MySonyTV.Send(7,'system','getPowerSavingMode',val)},
                                    getPowerStatus:function (val) {return MySonyTV.Send(8,'system','getPowerStatus',val)},
                                    getRemoteControllerInfo:function (val) {return MySonyTV.Send(9,'system','getRemoteControllerInfo',val)},
                                    getSystemInformation:function (val) {return MySonyTV.Send(10,'system','getSystemInformation',val)},
                                    getSystemSupportedFunction:function (val) {return MySonyTV.Send(11,'system','getSystemSupportedFunction',val)},
                                    getVersions:function (val) {return MySonyTV.Send(12,'system','getVersions',val)},
                                    getWolMode:function (val) {return MySonyTV.Send(13,'system','getWolMode',val)},
                                    requestToNotifyDeviceStatus:function (val) {return MySonyTV.Send(14,'system','requestToNotifyDeviceStatus',val)},
                    
                                    setCurrentTime:function (val) {return MySonyTV.Send(15,'system','setCurrentTime',val)},
                                    setLEDIndicatorStatus:function (val) {return MySonyTV.Send(16,'system','setLEDIndicatorStatus',val)},
                                    setLanguage:function (val) {return MySonyTV.Send(17,'system','setLanguage',val)},
                                    setPostalCode:function (val) {return MySonyTV.Send(18,'system','setPostalCode',val)},
                                    setPowerSavingMode:function (val) {return MySonyTV.Send(19,'system','setPowerSavingMode',val)},
                                    setPowerStatus:function (val) {return MySonyTV.Send(20,'system','setPowerStatus',val)},
                                    setWolMode:function (val) {return MySonyTV.Send(21,'system','setWolMode',val)},
                    },
                    
                    avContent:{     deleteContent:function (val) {return MySonyTV.Send(22,'avContent','deleteContent',val)},
                                    getContentCount:function (val) {return MySonyTV.Send(23,'avContent','getContentCount',val)},
                                    getContentList:function (val) {return MySonyTV.Send(24,'avContent','getContentList',val)},
                                    getCurrentExternalInputsStatus:function (val) {return MySonyTV.Send(25,'avContent','getCurrentExternalInputsStatus',val)},
                                    getMethodTypes:function (val) {return MySonyTV.Send(26,'avContent','getMethodTypes',val)},
                                    getParentalRatingSettings:function (val) {return MySonyTV.Send(27,'avContent','getParentalRatingSettings',val)},
                                    getPlayingContentInfo:function (val) {return MySonyTV.Send(28,'avContent','getPlayingContentInfo',val)},
                                    getSchemeList:function (val) {return MySonyTV.Send(29,'avContent','getSchemeList',val)},
                                    getSourceList:function (val) {return MySonyTV.Send(30,'avContent','getSourceList',val)},
                                    getVersions:function (val) {return MySonyTV.Send(31,'avContent','getVersions',val)},
                    
                                    setDeleteProtection:function (val) {return MySonyTV.Send(32,'avContent','setDeleteProtection',val)},
                                    setPlayContent:function (val) {return MySonyTV.Send(33,'avContent','setPlayContent',val)},
                                    setPlayTvContent:function (val) {return MySonyTV.Send(34,'avContent','setPlayTvContent',val)},
                    },
                    
                    audio:{         getMethodTypes:function (val) {return MySonyTV.Send(35,'audio','getMethodTypes',val)},
                                    getVersions:function (val) {return MySonyTV.Send(36,'audio','getVersions',val)},
                                    getVolumeInformation:function (val) {return MySonyTV.Send(37,'audio','getVolumeInformation',val)},
                                    setAudioMute:function (val) {return MySonyTV.Send(38,'audio','setAudioMute',val)},
                                    setAudioVolume:function (val) {return MySonyTV.Send(39,'audio','setAudioVolume',val)},
                    },
                    
                    accessControl:{ actRegister:function (val) {return MySonyTV.Send(40,'accessControl','actRegister',val)},
                                    getMethodTypes:function (val) {return MySonyTV.Send(41,'accessControl','getMethodTypes',val)},
                                    getVersions:function (val) {return MySonyTV.Send(42,'accessControl','getVersions',val)},
                    }, 
                    
                    IRCC:         { setIRCC:function (val) {return MySonyTV.Send(255,'IRCC','setIRCC',val)},
                    
                    },
                    
                    Send: 	function(id,service,method,params) {
                    
                        this.sony.method=method;
                        this.sony.params=params;
                        this.sony.id=id;
                        this.ip=getState('javascript.0.Sony_Bravia_VAR.System.IP_Adresse').val;
                    

                    ! var j = request.jar();
                    var cookie = request.cookie(this.auth);
                    var FormData;

                        if(service!='IRCC'){FormData=JSON.stringify(this.sony)}
                        else{FormData='<ircccode>'+params+'</ircccode>';
                            console.log('IRCC');
                        }
                    

                    //##############################################################################
                    // Configure the request
                    var options = {
                    url: 'http://'+this.ip+'/sony/'+service,
                    jar: true,
                    method: 'POST',
                    headers: {'Authorization':'Basic '+ Buffer.from(':'+this.pin).toString('base64')},
                    form:FormData
                    };

                    ! console.log('Anfrage'+options.form);
                    ! j.setCookie(cookie,options.url);
                    ! // Start the request
                    request(options, function (error, response, body) {
                    ! if(!error){ // && response.statusCode == 200

                                //-------------------------------------------------------------------------------
                    
                                if ("undefined" !== typeof body&&service!='IRCC'){
                    
                                             console.log('Body '+body);  
                    
                                            this.body=JSON.parse(body);
                    
                                            if ("undefined" !== typeof this.body.error){
                                                if(this.body.error[1]=='not power-on'){
                                                    setState('javascript.0.Sony_Bravia_VAR.Power',val=false,akt=true);
                    
                                                    setTimeout(MySonyTV.system.getPowerStatus,10000,[]);  //neu (20.07.17)
                                                }
                                                else if(this.body.error[1]=='Unauthorized'){
                                                setState('javascript.0.Sony_Bravia_VAR.Authorization.Status',val=false,akt=true);
                                                setState('javascript.0.Sony_Bravia_VAR.Authorization.PIN',val=0,akt=false);
                                                console.warn('##############################Unauthorized##############################');
                    
                                                  this.auth='';
                                                  setState('javascript.0.Sony_Bravia_VAR.Authorization.Cookie',val= this.auth);  
                                                }
                    
                                                else if(this.body.error[1]=="not register any more"){
                                                setState('javascript.0.Sony_Bravia_VAR.Authorization.Status',val=false,akt=true);
                                                }
                    
                                                console.log(this.body.error[1]);
                                            }    
                                            else {
                    
                                                    if ("undefined" !== typeof this.body.auth_url){  //tritt ein wenn keinCookie vorhanden oder abgelaufen/falsch ist
                                                        setState('javascript.0.Sony_Bravia_VAR.Authorization.Status',val=false,akt=true);
                                                        console.log('Sony TV Authorization abgelaufen ! ');
                                                        //Authorization();  //kann probleme machen, endlosschleife
                    
                                                    }
                    
                                                    if ("undefined" !== typeof  this.body.id){
                                                    switch(this.body.id){
                    
                                                        case 40://actRegister
                                                            //cookie string zerlegen, krücke, aber gehr ;-) ---------------------------------
                                                             if ("undefined" !== typeof response.headers['set-cookie']){    //wenn objekt definiert ist
                                                                var C=JSON.stringify(response.headers['set-cookie']).split(';');
                                                                C=C[0].split('"');
                                                                this.auth=C[1];
                                                                setState('javascript.0.Sony_Bravia_VAR.Authorization.Cookie',val=this.auth,akt=true);
                                                                }//end if
                    
                                                            if ("undefined" !== typeof this.body.result){ //positive Antwort auf ActRegister
                                                                if (this.body.result.length===0){
                                                                    setState('javascript.0.Sony_Bravia_VAR.Authorization.Status',val=true,akt=true);
                                                                    setState('javascript.0.Sony_Bravia_VAR.Authorization.PIN',val=0,akt=true);
                                                                    update();
                                                                }
                    
                                                            } 
                                                            break;
                    
                                                        case 8://getPowerStatus
                                                        if(this.body.result[0].status=='active'){
                    
                                                            setState('javascript.0.Sony_Bravia_VAR.Power',val=true,akt=true)
                    
                                                            if(getState('javascript.0.Sony_Bravia_VAR.Authorization.Status').val===true){
                                                                    if ("undefined" == typeof Intervall){
                    
                                                                         Intervall=setInterval(updateStatus,5000);
                                                                    }
                                                                     else if (Intervall._idleTimeout<0){Intervall=setInterval(updateStatus,5000)};
                    
                                                                }
                    
                                                        }
                                                        else if(this.body.result[0].status=='standby'){
                                                            setState('javascript.0.Sony_Bravia_VAR.Power',val=false,akt=true)
                    
                                                            setTimeout(MySonyTV.system.getPowerStatus,10000,[]);  //neu (20.07.17)
                    
                                                             if ("undefined" !== typeof Intervall && Intervall._idleTimeout>0 ){
                                                                 clearInterval(Intervall)
                                                             }
                    
                                                        }
                                                            break;
                    
                                                        case 10://getSystemInformation
                                                        this.mac=this.body.result[0].macAddr;
                                                        setState('javascript.0.Sony_Bravia_VAR.System.MAC_Adresse',val=this.body.result[0].macAddr,akt=true);
                                                        setState('javascript.0.Sony_Bravia_VAR.System.Generation',val=this.body.result[0].generation,akt=true);
                                                        setState('javascript.0.Sony_Bravia_VAR.System.Language',val=this.body.result[0].language,akt=true);
                                                        setState('javascript.0.Sony_Bravia_VAR.System.Model',val=this.body.result[0].model,akt=true);
                                                        setState('javascript.0.Sony_Bravia_VAR.System.Name',val=this.body.result[0].name,akt=true);
                                                        setState('javascript.0.Sony_Bravia_VAR.System.Product',val=this.body.result[0].product,akt=true);
                                                        setState('javascript.0.Sony_Bravia_VAR.System.Serial',val=this.body.result[0].serial,akt=true);
                                                            break;
                    
                                                        case 37://getVolumeInformation
                                                            setState('javascript.0.Sony_Bravia_VAR.Audio.SpeakerVolume',val=this.body.result[0][0].volume,akt=true);
                                                            setState('javascript.0.Sony_Bravia_VAR.Audio.HeadphoneVolume',val=this.body.result[0][1].volume,akt=true);
                                                            setState('javascript.0.Sony_Bravia_VAR.Audio.SpeakerMute',val=this.body.result[0][0].mute,akt=true);
                                                            break;
                    
                                                        case 24://getContentList'
                                                            //var channels=this.body.result[0];
                                                            MySonyTV.channel=this.body.result[0];
                                                            var StateString='';
                                                             for(var i = 0; i < 20; i++) { //MySonyTV.channel.length geht nicht da mehr als 50 Sender
                                                                 StateString=StateString+i.toString()+':'+MySonyTV.channel[i].title+';';
                                                                 //StateString=StateString+i.toString()+':'+channels[i].title+';';
                                                             }
                                                             var obj = getObject('javascript.0.Sony_Bravia_VAR.TV.ChannelList');
                                                                        obj.common.states = StateString;
                                                                        setObject('javascript.0.Sony_Bravia_VAR.TV.ChannelList', obj);
                                                            break;
                    
                                                        case 28://getPlayingContentInfo':
                                                            if ("undefined" !== typeof this.body.result[0].source){
                                                                setState('javascript.0.Sony_Bravia_VAR.Input.ActivInput',this.body.result[0].source,akt=true);
                                                                if (this.body.result[0].source=='extInput:hdmi'&&this.body.result[0].title=='HDMI 1'){setState('javascript.0.Sony_Bravia_VAR.Input.HDMI1',true,akt=true)}
                                                                else if (this.body.result[0].source=='extInput:hdmi'&&this.body.result[0].title=='HDMI 2'){setState('javascript.0.Sony_Bravia_VAR.Input.HDMI2',true,akt=true)}
                                                                else if (this.body.result[0].source=='extInput:hdmi'&&this.body.result[0].title=='HDMI 3'){setState('javascript.0.Sony_Bravia_VAR.Input.HDMI3',true,akt=true)}
                                                                else if (this.body.result[0].source=='extInput:hdmi'&&this.body.result[0].title=='HDMI 4'){setState('javascript.0.Sony_Bravia_VAR.Input.HDMI4',true,akt=true)}
                                                                else if (this.body.result[0].source=='tv:dvbc'){setState('javascript.0.Sony_Bravia_VAR.Input.SetTV',true,akt=true)};
                    
                                                            };
                                                            if ("undefined" !== typeof this.body.result[0].programTitle){setState('javascript.0.Sony_Bravia_VAR.TV.ProgrammTitel',val=this.body.result[0].programTitle,akt=true)}; 
                                                            if ("undefined" !== typeof this.body.result[0].durationSec){setState('javascript.0.Sony_Bravia_VAR.TV.Länge',val=parseFloat(this.body.result[0].durationSec)/60,akt=true)};
                                                            if ("undefined" !== typeof this.body.result[0].startDateTime){setState('javascript.0.Sony_Bravia_VAR.TV.Startzeit',val=this.body.result[0].startDateTime,akt=true)};
                                                            if ("undefined" !== typeof this.body.result[0].title){setState('javascript.0.Sony_Bravia_VAR.TV.SenderName',val=this.body.result[0].title,akt=true)};
                                                            if ("undefined" !== typeof this.body.result[0].uri){
                                                                if ("undefined" !== typeof MySonyTV.channel[0]){
                                                                    for(var i=0; i < MySonyTV.channel.length; i++){
                                                                        if(MySonyTV.channel[i].uri==this.body.result[0].uri){
                                                                           setState('javascript.0.Sony_Bravia_VAR.TV.ChannelList',val=i,akt=true)
                                                                           setState('javascript.0.Sony_Bravia_VAR.TV.Channel',val=i,akt=true)
                                                                           break;
                                                                        }
                    
                                                                    }
                    
                                                                }    
                    
                                                            };
                    
                                                            break;
                    
                                                            default:
                                                            break;
                                                    }// end of Switch
                    
                                            }// if id undefined  
                                        }// end else
                    
                                } // end if undefined
                    

                    }//end if !error

                    else{
                    console.log(error) //oder ETIMEDOUT
                    if(error.code=='EHOSTUNREACH'||"ETIMEDOUT"){

                     setState('javascript.0.Sony_Bravia_VAR.Power',false,akt=true)
                    
                     if ("undefined" !== typeof Intervall){clearInterval(Intervall)}
                    
                     setTimeout(MySonyTV.system.getPowerStatus,10000,[]);
                    
                     console.log('##############################TV AUS ODER NICHT ERREICHBAR ##############################')
                    

                    }

                    !
                    !
                    }
                    ! }) ; // end of Request

                        return;
                    

                    } // end of Function Send
                    }; // end of Object MySonyTV
                    //##############################################################################

                    ! Authorization() // Initiale abfrage bei Skript Start !!

                    ! function update(){
                    MySonyTV.avContent.getContentList([{source:"tv:dvbc",target:"",type:"",cnt:50,stIdx:""}]);
                    MySonyTV.system.getSystemInformation([]);
                    MySonyTV.system.getPowerStatus([]);
                    MySonyTV.avContent.getPlayingContentInfo([])
                    MySonyTV.avContent.getCurrentExternalInputsStatus([]);
                    MySonyTV.audio.getVolumeInformation([])
                    }//end update
                    ! function updateStatus (){
                    console.log('######################################################### UPDATE TV STATUS ###########################################################')
                    MySonyTV.system.getPowerStatus([]);
                    MySonyTV.avContent.getPlayingContentInfo([])
                    //MySonyTV.avContent.getCurrentExternalInputsStatus([]);
                    MySonyTV.audio.getVolumeInformation([])
                    ! }
                    ! function Authorization(){
                    var user =getState('javascript.0.Sony_Bravia_VAR.Authorization.User').val
                    data= [{clientid:user,nickname:user},[{clientid:user,value:'yes',nickname:user,function:'WOL'}]];
                    MySonyTV.accessControl.actRegister(data);
                    }
                    ! var data;
                    ! on({id:'javascript.0.Sony_Bravia_VAR.Authorization.Status',change:'any'}, function (obj){

                     if (obj.state.val===true){
                         if(getState('javascript.0.Sony_Bravia_VAR.Power').val===true){
                                 if ("undefined" == typeof Intervall){Intervall=setInterval(updateStatus,5000)};
                            }        
                        }
                    else{
                        if ("undefined" !== typeof Intervall){clearInterval(Intervall)}
                    }
                    

                    });

                    ! on({id:'javascript.0.Sony_Bravia_VAR.System.IP_Adresse',change:"any"}, function (obj){
                    MySonyTV.ip=obj.state.val
                    MySonyTV.system.getSystemInformation([]);

                    }) ;

                    ! on({id:'javascript.0.Sony_Bravia_VAR.Authorization.PIN_Anfordern',val:true}, function (obj){
                    if(getState('javascript.0.Sony_Bravia_VAR.Authorization.User').val.length>=1){
                    Authorization()
                    }
                    }) ;

                    on('javascript.0.Sony_Bravia_VAR.Authorization.PIN', function (obj){
                    if (!obj.state.ack) {
                    MySonyTV.pin=obj.state.val;
                    Authorization()
                    }

                    });

                    on({id:'javascript.0.Sony_Bravia_VAR.Input.InputsStatus',val:true}, function (obj){
                    MySonyTV.avContent.getCurrentExternalInputsStatus([]);
                    //MySonyTV.avContent.getPlayingContentInfo([]);
                    //MySonyTV.avContent.getSchemeList([]);
                    //MySonyTV.avContent.getSourceList([{scheme:'tv'}]);
                    //MySonyTV.system.getRemoteControllerInfo([])
                    //MySonyTV.audio.getMethodTypes(['1.0']);

                    });

                    on({id:'javascript.0.Sony_Bravia_VAR.Input.HDMI1',val:true}, function (obj){
                            if (!obj.state.ack) { 
                    if (obj.state.val===true){
                        MySonyTV.avContent.setPlayContent([{uri:'extInput:hdmi?port=1'}]);
                        MySonyTV.avContent.getPlayingContentInfo([]);
                    }
                            }
                    

                    });

                    on({id:'javascript.0.Sony_Bravia_VAR.Input.HDMI2',val:true}, function (obj){
                            if (!obj.state.ack) { 
                    if (obj.state.val===true){
                        MySonyTV.avContent.setPlayContent([{uri:'extInput:hdmi?port=2'}]);
                        MySonyTV.avContent.getPlayingContentInfo([]);
                    }
                            }
                    

                    });

                    on({id:'javascript.0.Sony_Bravia_VAR.Input.HDMI3',val:true}, function (obj){
                            if (!obj.state.ack) { 
                    if (obj.state.val===true){
                        MySonyTV.avContent.setPlayContent([{uri:'extInput:hdmi?port=3'}]);
                        MySonyTV.avContent.getPlayingContentInfo([]);
                    }
                            }
                    

                    });

                      on({id:'javascript.0.Sony_Bravia_VAR.Input.HDMI4',val:true}, function (obj){
                              if (!obj.state.ack) { 
                    if (obj.state.val===true){
                        MySonyTV.avContent.setPlayContent([{uri:'extInput:hdmi?port=4'}]);
                        MySonyTV.avContent.getPlayingContentInfo([]);
                    }
                              }
                    

                    });

                      on({id:'javascript.0.Sony_Bravia_VAR.Input.SetTV',val:true}, function (obj){ 
                              if (!obj.state.ack) { 
                    if (obj.state.val===true){
                        MySonyTV.avContent.setPlayContent([{uri:'tv:'}]);
                        MySonyTV.avContent.getPlayingContentInfo([]);
                    }
                              }
                    

                    });

                      on({id:'javascript.0.Sony_Bravia_VAR.Input.AV1',val:true}, function (obj){
                              if (!obj.state.ack) { 
                    if (obj.state.val===true){
                        MySonyTV.avContent.setPlayContent([{uri:'extInput:scart?port=1'}]);
                        MySonyTV.avContent.getPlayingContentInfo([]);
                    }
                              }
                    

                    });

                        on({id:'javascript.0.Sony_Bravia_VAR.Input.AV2',val:true}, function (obj){
                              if (!obj.state.ack) { 
                    if (obj.state.val===true){
                        MySonyTV.avContent.setPlayContent([{uri:'extInput:composite?port=1'}]);
                        MySonyTV.avContent.getPlayingContentInfo([]);
                    }
                              }
                    

                    });

                          on({id:'javascript.0.Sony_Bravia_VAR.BildschirmSpiegeln',val:true}, function (obj){
                              if (!obj.state.ack) { 
                    if (obj.state.val===true){
                        MySonyTV.avContent.setPlayContent([{uri:'extInput:widi?port=1'}]);
                        MySonyTV.avContent.getPlayingContentInfo([]);
                    }
                              }
                    

                    });

                      on({id: 'javascript.0.Sony_Bravia_VAR.TV.SenderLesen', val: true}, function (obj){
                        MySonyTV.avContent.getContentList([{source:"tv:dvbc",target:"",type:"",cnt:50,stIdx:""}])
                         MySonyTV.avContent.getPlayingContentInfo([]);
                    

                    });

                      on(  'javascript.0.Sony_Bravia_VAR.TV.ChannelList', function (obj){
                           if (!obj.state.ack) {
                                   if ("undefined" !== typeof MySonyTV.channel[0]){
                    
                                         MySonyTV.avContent.setPlayContent([{uri:MySonyTV.channel[obj.state.val].uri}])
                                         MySonyTV.avContent.getPlayingContentInfo([]);
                                         }
                                         else {
                                             MySonyTV.avContent.getContentList([{source:"tv:dvbc",target:"",type:"",cnt:50,stIdx:""}])
                                             //setState('javascript.0.Sony_Bravia_VAR.TV.ChannelList',val=obj.oldState.val,akt=false)
                                    }
                           }
                      })
                    

                    !
                    on('javascript.0.Sony_Bravia_VAR.TV.Channel', function (obj){
                    if (!obj.state.ack) {
                    if(obj.state.val>=1){
                    //console.log (typeof MySonyTV.channel[0])
                    if ("undefined" !== typeof MySonyTV.channel[0]){

                                         MySonyTV.avContent.setPlayContent([{uri:MySonyTV.channel[obj.state.val-1].uri}]);
                                         MySonyTV.avContent.getPlayingContentInfo([]);
                                         }
                                         else {
                                             MySonyTV.avContent.getContentList([{source:"tv:dvbc",target:"",type:"",cnt:50,stIdx:""}])
                                         }
                                 }
                          }     
                    

                    });

                     on('javascript.0.Sony_Bravia_VAR.Audio.SpeakerVolume', function (obj){
                          if (!obj.state.ack) { 
                         MySonyTV.audio.setAudioVolume([{target:"speaker",volume:obj.state.val.toString()}])
                         MySonyTV.audio.getVolumeInformation([])
                          }
                    

                    });

                     on('javascript.0.Sony_Bravia_VAR.Audio.SpeakerMute', function (obj){
                         MySonyTV.audio.setAudioMute([{status:obj.state.val}])
                         MySonyTV.audio.getVolumeInformation([])
                    

                    }); //

                     on({id:'javascript.0.Sony_Bravia_VAR.Audio.SpeakerVolume_UP',val:true}, function (obj){
                          if (!obj.state.ack) { 
                               var vol=getState('javascript.0.Sony_Bravia_VAR.Audio.SpeakerVolume').val
                               if(vol<100){
                                   vol++
                                   MySonyTV.audio.setAudioVolume([{target:"speaker",volume:vol.toString()}])
                               }
                         MySonyTV.audio.getVolumeInformation([])
                          }
                    

                    });

                    on({id:'javascript.0.Sony_Bravia_VAR.Audio.SpeakerVolume_DOWN',val:true}, function (obj){
                    if (!obj.state.ack) {
                    var vol=getState('javascript.0.Sony_Bravia_VAR.Audio.SpeakerVolume').val
                    if(vol>0){
                    vol--
                    MySonyTV.audio.setAudioVolume([{target:"speaker",volume:vol.toString()}])
                    }
                    MySonyTV.audio.getVolumeInformation([])
                    }
                    });

                    on('javascript.0.Sony_Bravia_VAR.Power', function (obj){
                    if (!obj.state.ack) {
                    if (obj.state.val===false){
                    MySonyTV.system.setPowerStatus([{status:false}])
                    //if ("undefined" !== typeof Intervall){clearInterval(Intervall)}
                    }
                    else{
                    var wol = require('wake_on_lan');
                    wol.wake(getState('javascript.0.Sony_Bravia_VAR.System.MAC_Adresse').val, function(error) {
                    if(!error){
                    //setState('javascript.0.Sony_Bravia_VAR.Power',true,akt=true)
                    console.log('############################## TV WIRD EINGESCHALTET ##############################')

                                                                   setTimeout(MySonyTV.system.getPowerStatus,5000,[]);  //5s nach WOL Packet Powerstatus abfragen (20.07.17)
                                                               }
                                                               else{console.error('Fehler beim Einschalten(WOL)')}
                                                           });       
                                          }
                     }
                     else{}
                    

                    ! });

                    on( {id:'javascript.0.Sony_Bravia_VAR.System.Update',val:true}, function (obj){
                    update()

                    ! });

                    on( {id:'javascript.0.Sony_Bravia_VAR.Control.Play',val:true}, function (obj){
                       MySonyTV.IRCC.setIRCC('AAAAAgAAAJcAAAAaAw==')
                    

                    ! });

                       on( {id:'javascript.0.Sony_Bravia_VAR.Control.Stop',val:true}, function (obj){
                       MySonyTV.IRCC.setIRCC('AAAAAgAAAJcAAAAYAw==')
                    

                    ! });
                    ! on( {id:'javascript.0.Sony_Bravia_VAR.Control.Pause',val:true}, function (obj){
                    MySonyTV.IRCC.setIRCC('AAAAAgAAAJcAAAAZAw==')
                    ! });` [/i][/i][/i]

                    1 Reply Last reply
                    0
                    • M Offline
                      M Offline
                      Mighty
                      wrote on last edited by
                      #18

                      Hallo,

                      bekomme folgende Fehlermeldung:

                      host.loxberry 2017-09-21 21:14:22.240 error instance system.adapter.javascript.0 terminated with code 0 (OK)

                      javascript.0 2017-09-21 21:14:22.208 info terminating

                      javascript.0 2017-09-21 21:14:22.181 error at emitNone (events.js:91:20)

                      javascript.0 2017-09-21 21:14:22.181 error at IncomingMessage.g (events.js:292:16)

                      javascript.0 2017-09-21 21:14:22.181 error at IncomingMessage. (/opt/iobroker/node_modules/request/request.js:1085:12)

                      javascript.0 2017-09-21 21:14:22.181 error at Request.emit (events.js:188:7)

                      javascript.0 2017-09-21 21:14:22.181 error at emitOne (events.js:96:13)

                      javascript.0 2017-09-21 21:14:22.181 error at Request. (/opt/iobroker/node_modules/request/request.js:1163:10)

                      javascript.0 2017-09-21 21:14:22.181 error at Request.emit (events.js:191:7)

                      javascript.0 2017-09-21 21:14:22.181 error at emitTwo (events.js:106:13)

                      javascript.0 2017-09-21 21:14:22.181 error at Request.self.callback (/opt/iobroker/node_modules/request/request.js:186:22)

                      javascript.0 2017-09-21 21:14:22.181 error at Request._callback (script.js.Sony_Bravia.Main:270:110)

                      javascript.0 2017-09-21 21:14:22.181 error TypeError: Cannot read property 'title' of undefined

                      javascript.0 2017-09-21 21:14:22.180 error uncaught exception: Cannot read property 'title' of undefined

                      javascript.0 2017-09-21 21:14:22.159 info script.js.Sony_Bravia.Main: Body {"id":24,"result":[object Object]}

                      Kommentiere ich die Zeile 270 aus, geht es. Ich habe ja absolut keine Ahnung, aber kann es daran liegen, dass ich keine Kanäle habe? Benutze den Fernseher nur als Bildschirm.

                      Grüße Mighty

                      WR105SI - FW 2.85 - APP 1.6.9 - Rasen 200 m²

                      Loxone Smart Home

                      1 Reply Last reply
                      0

                      Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                      Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                      With your input, this post could be even better 💗

                      Register Login
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      221

                      Online

                      32.8k

                      Users

                      82.7k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Home
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe