Add season sensor and time scheduling/do not disturb mode/occupancy sensor to generic thermostat

I. Season sensor
Generic thermostat would need a season sensor (Summer, Autumn, Winter, Spring) to check against, in order to prevent starting in obvious wrong situations.

The component already has initial_operation_mode which can be set to off or auto. However, in cases temperature sensor is not initialized or a wrong temperature is posted, it should also check against the meteorological/astronomical season sensor in order to prevent AC starting in the winter or the heater in the summer days (or have them both turned on in the same time).

II. Do not disturb mode
Adding a do not disturb mode would prevent the AC starting in the middle of the night. It could be set to check against a day/night sensor or an occupancy sensor (case nobody is home) and turn the thermostat off.

Instead of just enabling heater during winter only or AC during summer or a current workaround is to set the generic thermostat to off. A similar automation can be set for second case and triggered by a specific moment of the day (then turn it to auto once the home occupancy sensor is triggered).

- alias: Heater state
  trigger:
    platform: homeassistant
    event: start
  condition:
    condition: or
    conditions:
      - condition: state
        entity_id: sensor.season
        state: "Summer"
      - condition: state
        entity_id: sensor.season
        state: "Autumn"
  action:
    - delay: "00:01:05"
    - service: climate.set_operation_mode
      entity_id: climate.heater
      data: 
        operation_mode: "off"