Speaking of ASCOM drivers...
I just added ASCOM ALPACA support for Safety and ObservingConditions to the latest OCS (Main Branch.)
For ALPACA there are no additional drivers to install into ASCOM. You do have to configure ASCOM to use it however (no automatic discovery yet/ever?)
Both drivers pass ASCOM confirmance checks for me. Safety was easy, ObservingConditions took a little while:
ConformanceCheck ASCOM Device Conformance Checker Version 6.5.7933.18877, Build time: 9/20/2021 11:29:18 AM
ConformanceCheck Running on: ASCOM Platform 6.5 SP1 6.5.1.3234
ConformanceCheck Driver ProgID: ASCOM.AlpacaDynamic1.ObservingConditions
Error handling
Error number for "Not Implemented" is: 80040400
Error number for "Invalid Value 1" is: 80040405
Error number for "Value Not Set 1" is: 80040402
Error number for "Value Not Set 2" is: 80040403
Error messages will not be interpreted to infer state.
19:27:38.575 Driver Access Checks OK
19:27:38.581 AccessChecks About to create instance using Activator.CreateInstance
19:27:39.237 AccessChecks OK Successfully created driver using late binding
19:27:39.242 AccessChecks About to set Connected property true
19:27:39.261 AccessChecks About to set Connected property false
19:27:39.281 AccessChecks OK Successfully connected using late binding
19:27:39.285 AccessChecks INFO The driver is a COM object
19:27:39.290 DisposeAndReleaseObject About to release AccessChecks driver instance
19:27:39.295 DisposeAndReleaseObject About to set Connected property
19:27:39.968 AccessChecks About to set Connected property
19:27:39.986 AccessChecks INFO Device exposes Interface IObservingConditions
19:27:39.991 AccessChecks About to set Connected property
19:27:40.660 AccessChecks OK Successfully created driver Using driver access toolkit
19:27:40.666 AccessChecks About to set Connected property
19:27:40.690 AccessChecks OK Successfully connected Using driver access toolkit
19:27:40.696 AccessChecks About to set Connected property
Conform is using ASCOM.DriverAccess.ObservingConditions to get an ObservingConditions object
19:27:40.743 ConformanceCheck OK Driver instance created successfully
19:27:40.819 ConformanceCheck About to set Connected property
19:27:40.826 Absolute About to set Connected property
19:27:40.852 ConformanceCheck OK Connected OK
Common Driver Methods
19:27:40.904 InterfaceVersion About to get property InterfaceVersion
19:27:40.919 InterfaceVersion OK 1
19:27:40.958 Connected About to get property Connected
19:27:40.967 Connected OK True
19:27:41.005 Description About to get property Description
19:27:41.024 Description OK ONCUE OCS w/Hardware Version 4
19:27:41.066 DriverInfo About to get property DriverInfo
19:27:41.087 DriverInfo OK ASCOM Dynamic Driver v6.5.1.3234 - REMOTE DEVICE: OCS Alpaca Driver for Safety, Dome, Etc. version 1.0
19:27:41.129 DriverVersion About to get property DriverVersion
19:27:41.146 DriverVersion OK 1.0
19:27:41.189 Name About to get property Name
19:27:41.209 Name OK OCS Alpaca Driver
19:27:41.250 CommandString INFO Conform cannot test the CommandString method
19:27:41.256 CommandBlind INFO Conform cannot test the CommandBlind method
19:27:41.263 CommandBool INFO Conform cannot test the CommandBool method
19:27:41.268 Action INFO Conform cannot test the Action method
19:27:41.277 SupportedActions About to call method SupportedActions
19:27:41.306 SupportedActions OK Driver returned an empty action list
Properties
19:27:41.474 AveragePeriod About to get AveragePeriod property
19:27:41.493 AveragePeriod OK 0
19:27:41.503 AveragePeriod Write About to set AveragePeriod property
19:27:41.528 AveragePeriod Write OK Invalid Value exception generated as expected on set average period < -1.0
19:27:41.538 AveragePeriod Write About to set AveragePeriod property
19:27:41.556 AveragePeriod Write OK Successfully set average period to 0.0
19:27:41.565 AveragePeriod Write About to set AveragePeriod property
19:27:41.588 AveragePeriod Write OK Invalid value exception thrown when average period is set to 5.0, which is permitted by the specification
19:27:41.596 AveragePeriod Write About to set AveragePeriod property
19:27:41.616 AveragePeriod Write OK Successfully restored original average period: 0
19:27:41.623 CloudCover About to get CloudCover property
19:27:41.644 CloudCover OK Optional member threw a PropertyNotImplementedException exception.
19:27:41.655 DewPoint About to get DewPoint property
19:27:41.673 DewPoint OK 6.885975647
19:27:41.681 Humidity About to get Humidity property
19:27:41.700 Humidity OK 29.62988281
19:27:41.710 DewPoint & Humidity OK Dew point and humidity are both implemented per the interface specification
19:27:41.720 Pressure About to get Pressure property
19:27:41.741 Pressure OK 1010.837952
19:27:41.749 RainRate About to get RainRate property
19:27:41.769 RainRate OK Optional member threw a PropertyNotImplementedException exception.
19:27:41.786 SkyBrightness About to get SkyBrightness property
19:27:41.805 SkyBrightness OK Optional member threw a PropertyNotImplementedException exception.
19:27:41.815 SkyQuality About to get SkyQuality property
19:27:41.837 SkyQuality OK Optional member threw a PropertyNotImplementedException exception.
19:27:41.849 StarFWHM About to get StarFWHM property
19:27:41.868 StarFWHM OK Optional member threw a PropertyNotImplementedException exception.
19:27:41.879 SkyTemperature About to get SkyTemperature property
19:27:41.898 SkyTemperature OK Optional member threw a PropertyNotImplementedException exception.
19:27:41.906 Temperature About to get Temperature property
19:27:41.926 Temperature OK 20.95999908
19:27:41.936 WindDirection About to get WindDirection property
19:27:41.955 WindDirection OK Optional member threw a PropertyNotImplementedException exception.
19:27:41.965 WindGust About to get WindGust property
19:27:41.985 WindGust OK Optional member threw a PropertyNotImplementedException exception.
19:27:41.994 WindSpeed About to get WindSpeed property
19:27:42.016 WindSpeed OK Optional member threw a PropertyNotImplementedException exception.
Methods
19:27:42.069 TimeSinceLastUpdateLatest About to call TimeSinceLastUpdate(Latest) method
19:27:42.089 TimeSinceLastUpdateLatest OK 0
19:27:42.097 TimeSinceLastUpdateCloudCover About to call TimeSinceLastUpdate(CloudCover) method
19:27:42.119 TimeSinceLastUpdateCloudCover OK Optional member threw a MethodNotImplementedException exception.
19:27:42.128 TimeSinceLastUpdateDewPoint About to call TimeSinceLastUpdate(DewPoint) method
19:27:42.146 TimeSinceLastUpdateDewPoint OK 0
19:27:42.156 TimeSinceLastUpdateHumidity About to call TimeSinceLastUpdate(Humidity) method
19:27:42.175 TimeSinceLastUpdateHumidity OK 0
19:27:42.185 DewPoint & Humidity OK Dew point and humidity are both implemented per the interface specification
19:27:42.219 TimeSinceLastUpdatePressure About to call TimeSinceLastUpdate(Pressure) method
19:27:42.237 TimeSinceLastUpdatePressure OK 0
19:27:42.245 TimeSinceLastUpdateRainRate About to call TimeSinceLastUpdate(RainRate) method
19:27:42.267 TimeSinceLastUpdateRainRate OK Optional member threw a MethodNotImplementedException exception.
19:27:42.276 TimeSinceLastUpdateSkyBrightness About to call TimeSinceLastUpdate(SkyBrightness) method
19:27:42.304 TimeSinceLastUpdateSkyBrightness OK Optional member threw a MethodNotImplementedException exception.
19:27:42.313 TimeSinceLastUpdateSkyQuality About to call TimeSinceLastUpdate(SkyQuality) method
19:27:42.372 TimeSinceLastUpdateSkyQuality OK Optional member threw a MethodNotImplementedException exception.
19:27:42.379 TimeSinceLastUpdateStarFWHM About to call TimeSinceLastUpdate(StarFWHM) method
19:27:42.401 TimeSinceLastUpdateStarFWHM OK Optional member threw a MethodNotImplementedException exception.
19:27:42.410 TimeSinceLastUpdateSkyTemperature About to call TimeSinceLastUpdate(SkyTemperature) method
19:27:42.463 TimeSinceLastUpdateSkyTemperature OK Optional member threw a MethodNotImplementedException exception.
19:27:42.472 TimeSinceLastUpdateTemperature About to call TimeSinceLastUpdate(Temperature) method
19:27:42.490 TimeSinceLastUpdateTemperature OK 0
19:27:42.498 TimeSinceLastUpdateWindDirection About to call TimeSinceLastUpdate(WindDirection) method
19:27:42.518 TimeSinceLastUpdateWindDirection OK Optional member threw a MethodNotImplementedException exception.
19:27:42.527 TimeSinceLastUpdateWindGust About to call TimeSinceLastUpdate(WindGust) method
19:27:42.547 TimeSinceLastUpdateWindGust OK Optional member threw a MethodNotImplementedException exception.
19:27:42.556 TimeSinceLastUpdateWindSpeed About to call TimeSinceLastUpdate(WindSpeed) method
19:27:42.576 TimeSinceLastUpdateWindSpeed OK Optional member threw a MethodNotImplementedException exception.
19:27:42.586 AveragePeriod Write About to call Refresh method
19:27:42.607 Refresh OK Optional member threw a MethodNotImplementedException exception.
19:27:42.644 SensorDescriptionCloudCover About to call SensorDescription(CloudCover) method
19:27:42.665 SensorDescriptionCloudCover OK Optional member threw a MethodNotImplementedException exception.
19:27:42.676 SensorDescriptionDewPoint About to call SensorDescription(DewPoint) method
19:27:42.698 SensorDescriptionDewPoint OK Bosch BME280 Temperature Sensor on I2C & Bosch BME280 Humidity Sensor on I2C
19:27:42.706 SensorDescriptionHumidity About to call SensorDescription(Humidity) method
19:27:42.727 SensorDescriptionHumidity OK Bosch BME280 Humidity Sensor on I2C
19:27:42.738 DewPoint & Humidity OK Dew point and humidity are both implemented per the interface specification
19:27:42.746 SensorDescriptionPressure About to call SensorDescription(Pressure) method
19:27:42.767 SensorDescriptionPressure OK Bosch BME280 Pressure Sensor on I2C
19:27:42.776 SensorDescriptionRainRate About to call SensorDescription(RainRate) method
19:27:42.796 SensorDescriptionRainRate OK Optional member threw a MethodNotImplementedException exception.
19:27:42.804 SensorDescriptionSkyBrightness About to call SensorDescription(SkyBrightness) method
19:27:42.824 SensorDescriptionSkyBrightness OK Optional member threw a MethodNotImplementedException exception.
19:27:42.833 SensorDescriptionSkyQuality About to call SensorDescription(SkyQuality) method
19:27:42.854 SensorDescriptionSkyQuality OK Optional member threw a MethodNotImplementedException exception.
19:27:42.864 SensorDescriptionStarFWHM About to call SensorDescription(StarFWHM) method
19:27:42.885 SensorDescriptionStarFWHM OK Optional member threw a MethodNotImplementedException exception.
19:27:42.893 SensorDescriptionSkyTemperature About to call SensorDescription(SkyTemperature) method
19:27:42.918 SensorDescriptionSkyTemperature OK Optional member threw a MethodNotImplementedException exception.
19:27:42.927 SensorDescriptionTemperature About to call SensorDescription(Temperature) method
19:27:42.963 SensorDescriptionTemperature OK Bosch BME280 Temperature Sensor on I2C
19:27:42.971 SensorDescriptionWindDirection About to call SensorDescription(WindDirection) method
19:27:42.991 SensorDescriptionWindDirection OK Optional member threw a MethodNotImplementedException exception.
19:27:43.000 SensorDescriptionWindGust About to call SensorDescription(WindGust) method
19:27:43.021 SensorDescriptionWindGust OK Optional member threw a MethodNotImplementedException exception.
19:27:43.031 SensorDescriptionWindSpeed About to call SensorDescription(WindSpeed) method
19:27:43.052 SensorDescriptionWindSpeed OK Optional member threw a MethodNotImplementedException exception.
19:27:43.061 Consistency - CloudCover OK Sensor value, description and time since last update are all not implemented as required by the specification
19:27:43.070 Consistency - DewPoint OK Sensor value, description and time since last update are all implemented as required by the specification
19:27:43.078 Consistency - Humidity OK Sensor value, description and time since last update are all implemented as required by the specification
19:27:43.089 Consistency - Pressure OK Sensor value, description and time since last update are all implemented as required by the specification
19:27:43.099 Consistency - RainRate OK Sensor value, description and time since last update are all not implemented as required by the specification
19:27:43.109 Consistency - SkyBrightness OK Sensor value, description and time since last update are all not implemented as required by the specification
19:27:43.118 Consistency - SkyQuality OK Sensor value, description and time since last update are all not implemented as required by the specification
19:27:43.126 Consistency - SkyTemperature OK Sensor value, description and time since last update are all not implemented as required by the specification
19:27:43.136 Consistency - StarFWHM OK Sensor value, description and time since last update are all not implemented as required by the specification
19:27:43.144 Consistency - Temperature OK Sensor value, description and time since last update are all implemented as required by the specification
19:27:43.155 Consistency - WindDirection OK Sensor value, description and time since last update are all not implemented as required by the specification
19:27:43.163 Consistency - WindGust OK Sensor value, description and time since last update are all not implemented as required by the specification
19:27:43.182 Consistency - WindSpeed OK Sensor value, description and time since last update are all not implemented as required by the specification
Conformance test complete
19:27:43.313 DisposeAndReleaseObject About to release ObservingConditions driver instance
19:27:43.322 DisposeAndReleaseObject About to set Connected property
No errors, warnings or issues found: your driver passes ASCOM validation!!