Advertisement
DanFrmSpace

solar_client

Jun 3rd, 2025 (edited)
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.28 KB | None | 0 0
  1. -- Simple Solar Panel Client - Uses only available methods
  2. local modem = peripheral.find("modem")
  3. local solar = peripheral.wrap("top")
  4.  
  5. if not modem then
  6.     print("No modem found!")
  7.     return
  8. end
  9.  
  10. if not solar then
  11.     print("No solar panel found on top!")
  12.     return
  13. end
  14.  
  15. -- Open wireless channels
  16. modem.open(100)
  17. modem.open(101)
  18.  
  19. local computerID = os.getComputerID()
  20. print("Solar Client " .. computerID .. " ready")
  21.  
  22. while true do
  23.     local event, side, channel, replyChannel, message = os.pullEvent("modem_message")
  24.    
  25.     if channel == 100 and message == "REQUEST_DATA" then
  26.         -- Get only the data we actually have
  27.         local energy = solar.getEnergy() or 0
  28.         local maxEnergy = solar.getMaxEnergy() or 0
  29.         local energyNeeded = solar.getEnergyNeeded() or 0
  30.         local maxOutput = solar.getMaxOutput() or 0
  31.        
  32.         local data = {
  33.             id = computerID,
  34.             energy = energy,
  35.             maxEnergy = maxEnergy,
  36.             energyNeeded = energyNeeded,
  37.             maxOutput = maxOutput,
  38.             timestamp = os.time()
  39.         }
  40.        
  41.         modem.transmit(101, 100, data)
  42.         print("ID:" .. computerID .. " Energy:" .. energy .. "/" .. maxEnergy .. " Need:" .. energyNeeded)
  43.     end
  44.    
  45.     sleep(0.1)
  46. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement