;; interface to the pachube API ; ; ; ; ; 36.2 ; ; ; (module pachube scheme (require net/url) (provide (all-defined-out)) (define source (string->url "http://www.pachube.com/api/1951.xml")) (define api-key "") (define (format-data l m) (string-append "" l "" m "")) (define serial (open-input-file "/dev/cu.usbserial-A6004bp0")) (define (read-serial) (process (read-line serial)) (read-serial)) (define (process str) (let ([data (regexp-split #rx"," str)]) (printf "light: ~a, moisture: ~a~n" (list-ref data 1) (list-ref data 2)) (send-data (list-ref data 1) (list-ref data 2)))) ;; retrive data ;; curl --request GET --header "X-PachubeApiKey: YOUR_API_KEY" "http://www.pachube.com/api/504.csv" (define (get-test) (get-pure-port source (list (string-append "X-PachubeApiKey: " api-key)))) ;; update the values from a feed ;; curl --request PUT --header "X-PachubeApiKey: YOUR_API_KEY" --data "test" "http://www.pachube.com/api/504.csv" (define (send-data l m) (display-pure-port (put-impure-port source (string->bytes/utf-8 (format-data l m)) (list (string-append "X-PachubeApiKey: " api-key))))) )