Advertisement
Guest User

Untitled

a guest
Jan 13th, 2017
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. # Receive and print an uplink message; return a downlink message
  2. # Usage: TTN_REGION=eu TTN_APP_ID=test TTN_ACCESS_KEY=ttn-account-v2.XXXXXXX ttn_up_down.rb
  3.  
  4. require 'rubygems'
  5. require 'mqtt'
  6. require 'json'
  7. require 'base64'
  8.  
  9. ttn_app_id=ENV['TTN_APP_ID']
  10. ttn_app_access_key=ENV['TTN_APP_ACCESS_KEY']
  11. ttn_region=ENV['TTN_REGION']
  12.  
  13. ttn_dev_id="test"
  14.  
  15. # connect:
  16. MQTT::Client.connect(
  17. :host => "#{ttn_region}.thethings.network",
  18. :port => 1883,
  19. :username => ttn_app_id,
  20. :password => ttn_app_access_key
  21. ) do |c|
  22.  
  23. # subscribe to uplink:
  24. c.get("#{ttn_app_id}/devices/#{ttn_dev_id}/up") do |topic, message|
  25.  
  26. # do stuff with the uplink:
  27. data = JSON.parse message
  28. payload_up = Base64.decode64(data["payload_raw"]).unpack("C*")
  29. puts "#{topic}: #{payload_up}"
  30.  
  31. # send downlink:
  32. payload_down = [0x01, 0x02, 0x03, 0x04]
  33. downlink = {
  34. :payload_raw => Base64.encode64(payload_down.pack("C*")).strip,
  35. :port => 1
  36. }
  37. c.publish("#{ttn_app_id}/devices/#{ttn_dev_id}/down", downlink.to_json)
  38.  
  39. end
  40. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement