Plugwise Stretch 2.0 – Instellen via HTTP POST commandos
Met het voorbeeld hieronder kun je de stretch instellen zonder de “Desktop” software van plugwise nodig te hebben, het is gebaseerd op hetzelfde principe als de POST commando om een Circle te schakelen.
Met het voorbeeld hieronder kun je de optie “scan_for_nodes” aan of uit zetten:
Ps. de code hieronder is geschreven voor Autoit, maar dit kun je uiteraard ook omzetten in een PHP script!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
; ------------------------------------------------------------------------------ ; Autoit3 script to give a example how to configure a stretch using POST to XML (tested on firmware 1.0.41) ; v1.0, 2012-05-14 by Sebastiaan Ebeltjes ; Greetings from Deventer, The Netherlands ; ; Only one option for now: scan_for_nodes ; ------------------------------------------------------------------------------ ; Stretch 2.0 setup Global $StretchIp = "192.168.1.101" ;The IP adres of the Stretch 2.0, like: 192.168.1.X Global $StretchId = "STRETCHID" ;The 8 letters of the Stretch 2.0 ID ; "scan_for_nodes" config setup Global $ZigBeeNetworkID = "26856339e7054cd3bea73c" ;look for this @ http://192.168.1.X/minirest/networks or http://192.168.1.X/minirest/modules Global $SwitchStatus = "on" ;on/off ; Kernel Global $PostAdres = "http://" & $StretchIp & "/minirest/networks;id=" & $ZigBeeNetworkID & "/scan_for_nodes=" & $SwitchStatus $oHTTP = ObjCreate("winhttp.winhttprequest.5.1") $oHTTP.Open("POST", $PostAdres, False) $oHTTP.SetRequestHeader("Host", $StretchIp) $oHTTP.SetRequestHeader("Authorization", "Basic " & _Base64Encode("stretch:" & $StretchId)) $oHTTP.Send() Global $PostResponse = $oHTTP.ResponseText If $oHTTP.Status <> "200" Then MsgBox(64, "Error", $PostResponse) Else MsgBox(64, "Done!", "scan_for_nodes=" & $SwitchStatus) EndIf Exit Func _Base64Encode($sData) Local $oXml = ObjCreate("Msxml2.DOMDocument") If Not IsObj($oXml) Then SetError(1, 1, 0) EndIf Local $oElement = $oXml.createElement("b64") If Not IsObj($oElement) Then SetError(2, 2, 0) EndIf $oElement.dataType = "bin.base64" $oElement.nodeTypedValue = Binary($sData) Local $sReturn = $oElement.Text If StringLen($sReturn) = 0 Then SetError(3, 3, 0) EndIf Return $sReturn EndFunc |