Spaces:
Runtime error
Runtime error
| import json | |
| import random | |
| from datetime import datetime, timedelta | |
| # Initialize starting values | |
| sensor_id = "TS110-112" | |
| location = "server room" | |
| start_time = datetime.strptime("2023-07-18T10:15:30Z", "%Y-%m-%dT%H:%M:%SZ") | |
| temp = 75.2 | |
| humidity = 40.0 | |
| pressure = 1013 | |
| battery_life = 85 | |
| state = "normal" | |
| # Initialize data list | |
| data = [] | |
| halt=False | |
| for i in range(120): | |
| # Create data point | |
| data_point = { | |
| "sensorId": sensor_id, | |
| "location": {"description": location}, | |
| "timeStamp": (start_time + timedelta(minutes=i)).strftime("%Y-%m-%dT%H:%M:%SZ"), | |
| "readings": { | |
| "temperature": round(temp, 1), | |
| "humidity": round(humidity, 1), | |
| "pressure": pressure, | |
| "units": {"temperature": "Celsius", "humidity": "Percent", "pressure": "hPa"} | |
| }, | |
| "state": {"device": state, "batteryLife": round(battery_life, 1)} | |
| } | |
| # Append to data list | |
| data.append(data_point) | |
| # Update temperature, humidity and battery life | |
| if halt==False: | |
| temp += 1.5 if i < 60 else 2.9 # increase temperature faster after 60 minutes | |
| humidity += random.uniform(-0.2, 0.2) # fluctuate humidity | |
| battery_life -= 0.235 # decrease battery life | |
| # Update status | |
| if temp < 140: | |
| state = "normal" | |
| elif temp >= 140 and temp < 240: | |
| state = "warning" | |
| elif temp >= 240 and temp < 300: | |
| state = "failure" | |
| elif temp >= 300: | |
| state = "shutdown" | |
| halt=True | |
| elif halt==True: | |
| battery_life = 0 | |
| pressure = 0 | |
| humidity = 0 | |
| temp -= 4.5 | |
| # Write data to json file | |
| with open("ml_to_nl_translation/data/temperature_sensor_data.json", 'w') as f: | |
| json.dump(data, f, indent=4) |