Ankündigung

Einklappen
Keine Ankündigung bisher.

openHAB jQuery Mobile state ändern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    openHAB jQuery Mobile state ändern

    Hallo zusammen,

    ich baue im Moment eine Hybrid App (PhoneGap, Javascript, HTML5, mit jQuery Mobile für openHAB.

    Ich habe allerdings Probleme mit dem Ändern einen Zustandes für ein Item.
    Z.B. möchte ich den state für ein Licht von "ON" auf "OFF" ändern.
    Nur wie sieht hierfür die Syntax aus?

    Den state auslesen funktioniert über:
    Code:
    function getState(){
    
    	var query = "http://localhost:8080/rest/items/Light_Outdoor_Terrace";
    	
    	$.getJSON(query, function(json){
    		var state = json.state;
    		alert(state);
    	});
    }
    wie muss ich dies machen wenn ich den state ändern möchte? Mein Ansatz bisher:
    Code:
    function postState(){
    **************
    	$.ajax({
    	type: "POST",
    	url: "http://localhost:8080/rest/items/Light_Outdoor_Terrace/",
    	data: ({state: on}),
    	dataType: "text",
    	success: onSuccess
    	});**************
    }
    Gruß

    #2
    Hi,

    schau mal auf die REST API Wiki Seite, da steht eigentlich alles (wenn auch knapp) drauf.
    Den Status kannst Du noch einfacher als Plain String unter

    Code:
    http://localhost:8080/rest/items/Light_Outdoor_Terrace/state
    abrufen. Analog kannst Du ihn per HTTP PUT (nicht POST!) auf diese URI setzen.
    Für ein Kommando schickst Du hingegen ein HTTP POST auf
    Code:
    http://localhost:8080/rest/items/Light_Outdoor_Terrace/
    .

    Viele Grüße,
    Kai

    Kommentar


      #3
      Hi Kai,

      vielen Dank schonmal für deine Antwort!!

      So ganz verstehe ich es jedoch noch nicht, wahrscheinlich auch weil das Wiki ziemlich kurz gehalten ist. Ich behalte aber PUT beim state ändern! Unten mein neuer Versuch, leider ändert er den state nicht. Siehst du meinen Fehler? Wäre super wenn du mir helfen könntest!

      Code:
      function putState(){
      
      	 $.ajax( {
             url: 'http://localhost:8080/rest/items/Heating_GF_Toilet/state',
             type: 'PUT',
             data: function() {"OFF"},
             dataType: 'text/plain'.
          
       	);
      }
      Gruß
      Jochen

      Kommentar


        #4
        Wenn Du den aktuellen Status des items abfragen willst:

        Code:
        function getState()
        {
        	var request = $.ajax
        	({
        		type	: "[B]GET[/B]",
        		url	: "http://192.168.100.100:8080/rest/items/MyLight/state"
        	});
        
        	request.done( function(data) 
        	{ 
        		console.log( "Success: Status=" + data );
        	});
        
        	request.fail( function(jqXHR, textStatus ) 
        	{ 
        		console.log( "Failure: " + textStatus );
        	});
        }
        Wenn Du den aktuellen Status des items aktualisieren willst:

        Code:
        function setState( txtNewState )
        {
        	console.log("Set state..");
        
        	var request = $.ajax
        	({
        		type		: "[B]PUT[/B]",
        		url		: "http://192.168.100.100:8080/rest/items/MyLight/state",
        		data		: txtNewState, 
        		headers		: { 'Content-Type': 'text/plain' }
        	});
        
        	request.done( function(data) 
        	{ 
        		console.log( "Success" );
        	});
        
        	request.fail( function(jqXHR, textStatus ) 
        	{ 
        		console.log( "Failure: " + textStatus );
        	});
        }
        Wenn Du ein Kommando absetzen willst:

        Code:
        function sendCommand( txtCommand )
        {
        	var request = $.ajax
        	({
        		type		: "[B]POST[/B]",
        		url		: "http://192.168.100.100:8080/rest/items/MyLight/",
        		data		: txtCommand,
        		headers		: { 'Content-Type': 'text/plain' }
        	});
        
        	request.done( function(data) 
        	{ 
        		console.log( "Success: Status=" + data );
        	});
        
        	request.fail( function(jqXHR, textStatus ) 
        	{ 
        		console.log( "Failure: " + textStatus );
        	});
        }
        
        sendCommand("ON");
        Ich werde diese Beispiele bei Gelegenheit ins REST-WIKI aufnehmen...

        LG,
        Michael

        Kommentar


          #5
          Zitat von bitkeeper Beitrag anzeigen
          Ich werde diese Beispiele bei Gelegenheit ins REST-WIKI aufnehmen...
          fände ich cool, danke!

          Gruß,

          Thomas E.-E.
          Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)

          Kommentar


            #6
            Schon da: https://code.google.com/p/openhab-sa...i/RESTExamples

            Kommentar

            Lädt...
            X