Skip to content
Chase Redmon edited this page Jan 1, 2022 · 3 revisions

Library Features

Rest API

Cirrus Wrapper

There are two methods under the CirrusWrapper class that allow you to retrieve information from the Ambient Weather REST endpoint.

  • FetchDeviceHistory
  • FetchDeviceHistory

Each method has three overloads that take different starting date parameters. The IAsyncEnumerable<IEnumerable<Device>> FetchDeviceHistory(DateTimeOffset? startDate, DateTimeOffset? endDate) overload will walk the REST API from the specified starting date to the specified end date (if one is given; if not, it will walk to the current date).

The IAsyncEnumerable<IEnumerable<Device>> FetchDeviceHistory(TimeSpan numberOfDaysToGoBack) overload will walk the specified number of whole days backwards from the current date (if the includeToday argument is true; otherwise, it walks from yesterday).

The IAsyncEnumerable<IEnumerable<Device>> FetchDeviceHistory(int? numberOfDaysToGoBack) overload overload will walk the specified number of whole days backwards from the current date (if the includeToday argument is true; otherwise, it walks from yesterday), same the above TimeSpan overload above.


Cirrus REST Wrapper

When this class is initiated, the constructor takes an IOptions argument and sets the class properties: MacAddress, ApiKey, and ApplicationKey for this class instance.

All class methods will use the three above instance variables for querying the API.

There are 3 different functions with a few different overloads, which are broken down below:

For fetching Weather Event Data from a Weather Station for a specified date:

  • FetchDeviceDataAsync
  • FetchDeviceDataAsJsonAsync
  • FetchDeviceDataAsServiceResponse

For fetching Weather Station metadata and most recent event data for a weather station by Mac Address:

  • FetchUserDevicesAsync
  • FetchUserDevicesAsJsonAsync
  • FetchUserDevices

For checking if data exists for a weather station on a particular date:

  • DoesDeviceDataExist

REST API Model

API Event Name Library Property Name .NET Type
"dateutc" EpochMilliseconds long?
"tempinf" IndoorTemperatureFahrenheit double?
"humidityin" IndoorHumidity int?
"baromrelin" RelativeBarometricPressure double?
"baromabsin" AbsoluteBarometricPressure double?
"tempf" OutdoorTemperatureFahrenheit double?
"battout" BatteryLowIndicator int?
"humidity" OutdoorHumidity int?
"winddir" WindDirection int?
"windspeedmph" WindSpeedMph double?
"windgustmph" WindGustMph double?
"maxdailygust" MaxDailyGust double?
"hourlyrainin" HourlyRainfall double?
"eventrainin" EventRainfall double?
"dailyrainin" DailyRainfall double?
"weeklyrainin" WeeklyRainfall double?
"monthlyrainin" MonthlyRainfall double?
"yearlyrainin" YearlyRainfall double?
"totalrainin" TotalRainfall double?
"solarradiation" SolarRadiation double?
"uv" UltravioletRadiationIndex int?
"feelsLike" OutdoorFeelsLikeTemperatureFahrenheit double?
"dewPoint" DewPointFahrenheit double?
"feelsLikein" IndoorFeelsLikeTemperatureFahrenheit double?
"dewPointin" IndoorDewPointTemperatureFahrenheit double?
"lastRain" LastRain DateTimeOffset
"loc" Loc string?
"date" UtcDate DateTimeOffset?
"windgustdir" WindGustDir int?
"windspdmph_avg2m" WindSpeedMph2MinuteAverage double?
"winddir_avg2m" WindDirection2MinuteAverage int?
"windspdmph_avg10m" WindSpeedMph10MinuteAverage double?
"winddir_avg10m" WindDirection10MinuteAverage int?
"batt_25" PM25AirQualityBatteryLowIndicator int?
"24hourrainin" Previous24HourRainfall double?
"co2" CO2PartsPerMillion double?
"batt_co2" CO2SensorBatteryLowIndicator int
"pm25" PM25OutdoorAirQuality double?
"pm25_24h" PM25OutdoorAirQuality24HourAverage double?
"pm25_in" PM25IndoorAirQuality double?
"pm25_in_24h" PM25IndoorAirQuality24HourAverage double?
"humidity1" HumiditySensor1 int?
"humidity2" HumiditySensor2 int?
"humidity3" HumiditySensor3 int?
"humidity4" HumiditySensor4 int?
"humidity5" HumiditySensor5 int?
"humidity6" HumiditySensor6 int?
"humidity7" HumiditySensor7 int?
"humidity8" HumiditySensor8 int?
"humidity9" HumiditySensor9 int?
"humidity10" HumiditySensor10 int?
"temp1f" TemperatureSensor1 double?
"temp2f" TemperatureSensor2 double?
"temp3f" TemperatureSensor3 double?
"temp4f" TemperatureSensor4 double?
"temp5f" TemperatureSensor5 double?
"temp6f" TemperatureSensor6 double?
"temp7f" TemperatureSensor7 double?
"temp8f" TemperatureSensor8 double?
"temp9f" TemperatureSensor9 double?
"temp10f" TemperatureSensor10 double?
"soiltemp1f" SoilTemperatureSensor1 double?
"soiltemp2f" SoilTemperatureSensor2 double?
"soiltemp3f" SoilTemperatureSensor3 double?
"soiltemp4f" SoilTemperatureSensor4 double?
"soiltemp5f" SoilTemperatureSensor5 double?
"soiltemp6f" SoilTemperatureSensor6 double?
"soiltemp7f" SoilTemperatureSensor7 double?
"soiltemp8f" SoilTemperatureSensor8 double?
"soiltemp9f" SoilTemperatureSensor9 double?
"soiltemp10f" SoilTemperatureSensor10 double?
"soilhum1" SoilHumiditySensor1 int?
"soilhum2" SoilHumiditySensor2 int?
"soilhum3" SoilHumiditySensor3 int?
"soilhum4" SoilHumiditySensor4 int?
"soilhum5" SoilHumiditySensor5 int?
"soilhum6" SoilHumiditySensor6 int?
"soilhum7" SoilHumiditySensor7 int?
"soilhum8" SoilHumiditySensor8 int?
"soilhum9" SoilHumiditySensor9 int?
"soilhum10" SoilHumiditySensor10 int?
"batt1" BatteryLowIndicator1 int?
"batt2" BatteryLowIndicator2 int?
"batt3" BatteryLowIndicator3 int?
"batt4" BatteryLowIndicator4 int?
"batt5" BatteryLowIndicator5 int?
"batt6" BatteryLowIndicator6 int?
"batt7" BatteryLowIndicator7 int?
"batt8" BatteryLowIndicator8 int?
"batt9" BatteryLowIndicator9 int?
"batt10" BatteryLowIndicator10 int?
"relay1" Relay1 int?
"relay2" Relay2 int?
"relay3" Relay3 int?
"relay4" Relay4 int?
"relay5" Relay5 int?
"relay6" Relay6 int?
"relay7" Relay7 int?
"relay8" Relay8 int?
"relay9" Relay9 int?
"relay10" Relay10 int?
"tz" IANATimeZone string?
"feelsLike1" FeelsLikeTemperatureFahrenheit1 double?
"feelsLike2" FeelsLikeTemperatureFahrenheit2 double?
"feelsLike3" FeelsLikeTemperatureFahrenheit3 double?
"feelsLike4" FeelsLikeTemperatureFahrenheit4 double?
"feelsLike5" FeelsLikeTemperatureFahrenheit5 double?
"feelsLike6" FeelsLikeTemperatureFahrenheit6 double?
"feelsLike7" FeelsLikeTemperatureFahrenheit7 double?
"feelsLike8" FeelsLikeTemperatureFahrenheit8 double?
"feelsLike9" FeelsLikeTemperatureFahrenheit9 double?
"feelsLike10" FeelsLikeTemperatureFahrenheit10 double?
"dewPoint1" DewPointFahrenheit1 double?
"dewPoint2" DewPointFahrenheit2 double?
"dewPoint3" DewPointFahrenheit3 double?
"dewPoint4" DewPointFahrenheit4 double?
"dewPoint5" DewPointFahrenheit5 double?
"dewPoint6" DewPointFahrenheit6 double?
"dewPoint7" DewPointFahrenheit7 double?
"dewPoint8" DewPointFahrenheit8 double?
"dewPoint9" DewPointFahrenheit9 double?
"dewPoint10" DewPointFahrenheit10 double?
"lightning_day" LightningStrikesPerDay int?
"lightning_hour" LightningStrikesPerHours int?
"lightning_time" LastLightningStrikeTime DateTimeOffset?
"lightning_distance" LightningStrikeDistance double?
"macAddress" MacAddress string?

Clone this wiki locally