Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Heating Up!

Heating Up!

DiY'ing a WiFi-enabled Thermostat

Arnout Engelen

September 29, 2015
Tweet

More Decks by Arnout Engelen

Other Decks in Technology

Transcript

  1. DATA HUB LevelDB lightweight key/value store good support for key

    ranges HTTP API https://github.com/raboof/leveldb-http multilevel-http + auth + custom endpoints ~100 loc javascript
  2. PUBLISHING c a t / s y s / b

    u s / w 1 / d e v i c e s / 2 8 ­ 0 4 1 4 6 0 7 7 8 9 f f / w 1 _ s l a v e 5 4 0 1 5 5 0 0 7 f f f 0 c 1 0 c 0 : c r c = c 0 Y E S 5 4 0 1 5 5 0 0 7 f f f 0 c 1 0 c 0 t = 2 1 2 5 0 T E M P = ` c a t / s y s / b u s / w 1 / d e v i c e s / 2 8 ­ 0 4 1 4 6 0 7 7 8 9 f f / w 1 _ s l a v e \ | t a i l ­ n 1 \ | s e d " s / . * t = \ \ ( . . \ \ ) \ \ ( . . . \ \ ) / \ \ 1 . \ \ 2 / " ` T I M E = $ ( ( $ ( d a t e + % s % N ) / 1 0 0 0 0 0 0 ) ) D A T A = { \ " t i m e s t a m p \ " : $ T I M E , \ " v a l u e \ " : $ T E M P } c u r l ­ X P O S T \ ­ ­ a n y a u t h ­ ­ u s e r f o o : b a r \ ­ d " $ D A T A " \ ­ H " C o n t e n t ­ T y p e : a p p l i c a t i o n / j s o n " \ $ D B _ U R L / d a t a / t e m p e r a t u r e ­ $ T I M E
  3. SUBSCRIBING $ h t t p g e t $

    D B _ U R L / l a t e s t / t e m p e r a t u r e . . . C o n t e n t ­ T y p e : a p p l i c a t i o n / j s o n { " t i m e s t a m p " : 1 4 0 7 1 7 6 4 6 9 7 7 8 , " v a l u e " : 2 4 . 8 1 2 } $ h t t p ­ ­ s t r e a m g e t $ D B _ U R L / s t r e a m / t e m p e r a t u r e & g t = 1 4 0 7 1 7 6 4 6 9 7 7 8 . . . C o n t e n t ­ T y p e : t e x t / e v e n t ­ s t r e a m i d : t e m p e r a t u r e ­ 1 4 0 7 3 5 0 2 9 8 1 3 8 d a t a : { " t i m e s t a m p " : 1 4 0 7 3 5 0 2 9 8 1 3 8 , " v a l u e " : 2 4 . 0 6 2 } i d : t e m p e r a t u r e ­ 1 4 0 7 3 5 0 3 0 4 2 1 9 d a t a : { " t i m e s t a m p " : 1 4 0 7 3 5 0 3 0 4 2 1 9 , " v a l u e " : 2 4 . 0 0 0 } ^ C
  4. ONE MORE THING! Model my home (based on temp and

    relay state) Evaluate (or train!) controller implementations