當前位置: 首頁>>代碼示例>>Python>>正文


Python aiohttp_client.async_get_clientsession方法代碼示例

本文整理匯總了Python中homeassistant.helpers.aiohttp_client.async_get_clientsession方法的典型用法代碼示例。如果您正苦於以下問題:Python aiohttp_client.async_get_clientsession方法的具體用法?Python aiohttp_client.async_get_clientsession怎麽用?Python aiohttp_client.async_get_clientsession使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在homeassistant.helpers.aiohttp_client的用法示例。


在下文中一共展示了aiohttp_client.async_get_clientsession方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: async_check_http_oauth

# 需要導入模塊: from homeassistant.helpers import aiohttp_client [as 別名]
# 或者: from homeassistant.helpers.aiohttp_client import async_get_clientsession [as 別名]
def async_check_http_oauth(self, triggered=None):
        _LOGGER.debug("[%s] check accessibility from local", LOGGER_NAME)
        try:
            if self._retry_remove is not None:
                self._retry_remove()
                self._retry_remove = None

            session = async_get_clientsession(self._hass, verify_ssl=False)
            with async_timeout.timeout(5, loop= self._hass.loop):
                response = await session.get(self._ha_url + '/havcs/auth/authorize')
            if response.status == 401:
                _LOGGER.debug("[%s][check] access success: url = %s, status = %s", LOGGER_NAME, self._ha_url + '/havcs/auth/authorize', response.status)
        except (asyncio.TimeoutError, aiohttp.ClientError):
            _LOGGER.debug("[%s][check] retry check after 15s", LOGGER_NAME)
            self._retry_times -= 1
            if(self._retry_times > 0):
                self._retry_remove = async_track_time_interval(
                    self._hass, self.async_check_http_oauth, timedelta(seconds=15)
                )
            else:
                _LOGGER.error("[%s][check] can not access http, check `ha_url` in configuration.yml", LOGGER_NAME)
        except Exception:
            _LOGGER.exception("[%s][check] unexpected error occur", LOGGER_NAME)
            raise 
開發者ID:cnk700i,項目名稱:havcs,代碼行數:26,代碼來源:http.py

示例2: async_bind_device

# 需要導入模塊: from homeassistant.helpers import aiohttp_client [as 別名]
# 或者: from homeassistant.helpers.aiohttp_client import async_get_clientsession [as 別名]
def async_bind_device(self):
        for uuid in self._hass.data[INTEGRATION][DATA_HAVCS_BIND_MANAGER].discovery:
            p_user_id = uuid.split('@')[0]
            platform = uuid.split('@')[1]
            if platform in self._hass.data[INTEGRATION][DATA_HAVCS_HANDLER] and getattr(self._hass.data[INTEGRATION][DATA_HAVCS_HANDLER].get(platform), 'should_report_when_starup', False) and hasattr(self._hass.data[INTEGRATION][DATA_HAVCS_HANDLER].get(platform), 'bind_device'):
                err_result, devices, entity_ids = self._hass.data[INTEGRATION][DATA_HAVCS_HANDLER][platform].process_discovery_command()
                if err_result:
                    return
                bind_entity_ids, unbind_entity_ids = await self._hass.data[INTEGRATION][DATA_HAVCS_BIND_MANAGER].async_save_changed_devices(entity_ids,platform, p_user_id,True)
                payload = await self._hass.data[INTEGRATION][DATA_HAVCS_HANDLER][platform].bind_device(p_user_id, entity_ids , unbind_entity_ids, devices)
                _LOGGER.debug("[skill] bind device to %s:\nbind_entity_ids = %s, unbind_entity_ids = %s", platform, bind_entity_ids, unbind_entity_ids)

                if payload:
                    url = HAVCS_SERVICE_URL + '/skill/smarthome.php?v=update&AppKey='+self._sync_manager.get('app_key')
                    data = havcs_util.AESCipher(self._sync_manager.get('decrypt_key')).encrypt(json.dumps(payload, ensure_ascii = False).encode('utf8'))
                    try:
                        session = async_get_clientsession(self._hass, verify_ssl=False)
                        with async_timeout.timeout(5, loop=self._hass.loop):
                            response = await session.post(url, data=data)
                            _LOGGER.debug("[skill] get bind device result from %s: %s", platform, await response.text())
                    except(asyncio.TimeoutError, aiohttp.ClientError):
                        _LOGGER.error("[skill] fail to access %s, bind device fail: timeout", url)
                    except:
                        _LOGGER.error("[skill] fail to access %s, bind device fail: %s", url, traceback.format_exc()) 
開發者ID:cnk700i,項目名稱:havcs,代碼行數:26,代碼來源:bind.py

示例3: init_connection

# 需要導入模塊: from homeassistant.helpers import aiohttp_client [as 別名]
# 或者: from homeassistant.helpers.aiohttp_client import async_get_clientsession [as 別名]
def init_connection(self):
        session = async_get_clientsession(self.hass)
        self.connection = AudiConnectAccount(
            session=session,
            username=self.config_entry.data.get(CONF_USERNAME),
            password=self.config_entry.data.get(CONF_PASSWORD),
            country=self.config_entry.data.get(CONF_REGION),
            spin=self.config_entry.data.get(CONF_SPIN),
        )

        self.hass.services.async_register(
            DOMAIN,
            SERVICE_REFRESH_VEHICLE_DATA,
            self.refresh_vehicle_data,
            schema=SERVICE_REFRESH_VEHICLE_DATA_SCHEMA,
        )
        self.hass.services.async_register(
            DOMAIN,
            SERVICE_EXECUTE_VEHICLE_ACTION,
            self.execute_vehicle_action,
            schema=SERVICE_EXECUTE_VEHICLE_ACTION_SCHEMA,
        )

        self.connection.add_observer(self) 
開發者ID:arjenvrh,項目名稱:audi_connect_ha,代碼行數:26,代碼來源:audi_account.py

示例4: async_setup_platform

# 需要導入模塊: from homeassistant.helpers import aiohttp_client [as 別名]
# 或者: from homeassistant.helpers.aiohttp_client import async_get_clientsession [as 別名]
def async_setup_platform(hass, config, async_add_entities,
                               discovery_info=None):
    using_wu = CONF_API_KEY in config
    session = None
    if using_wu:
        session = async_get_clientsession(hass)
        if not await _async_get_wu_data(
                hass, session, config[CONF_API_KEY], [], config[CONF_QUERY]):
            return False

    async_add_entities([IlluminanceSensor(using_wu, config, session)], True) 
開發者ID:pnbruckner,項目名稱:homeassistant-config,代碼行數:13,代碼來源:sensor.py

示例5: _test_token

# 需要導入模塊: from homeassistant.helpers import aiohttp_client [as 別名]
# 或者: from homeassistant.helpers.aiohttp_client import async_get_clientsession [as 別名]
def _test_token(self, token):
        """Return true if token is valid."""
        try:
            session = aiohttp_client.async_get_clientsession(self.hass)
            await get_repository(session, token, "hacs/org")
            return True
        except (
            AIOGitHubAPIException,
            AIOGitHubAPIAuthenticationException,
        ) as exception:
            _LOGGER.error(exception)
        return False 
開發者ID:hacs,項目名稱:integration,代碼行數:14,代碼來源:config_flow.py

示例6: async_get_longitude_latitude

# 需要導入模塊: from homeassistant.helpers import aiohttp_client [as 別名]
# 或者: from homeassistant.helpers.aiohttp_client import async_get_clientsession [as 別名]
def async_get_longitude_latitude(self, address_dict):
            
        if address_dict.get(CONF_LONGITUDE_LATITUDE) is not None:
            return address_dict.get(CONF_LONGITUDE_LATITUDE)

        if (address_dict.get(CONF_ADDRESS) is None) or (address_dict.get(CONF_CITY) is None):
            return
            
        url = ("http://restapi.amap.com/v3/geocode/geo?key="
               + self._api_key
               + '&address=' + address_dict.get(CONF_ADDRESS)
               + '&city=' + address_dict.get(CONF_CITY)
               )

        try:
            session = async_get_clientsession(self._hass)
            with async_timeout.timeout(15, loop=self._hass.loop):
                response = yield from session.get( url )

        except(asyncio.TimeoutError, aiohttp.ClientError):
            _LOGGER.error("Error while accessing: %s", url)
            return

        if response.status != 200:
            _LOGGER.error("Error while accessing: %s, status=%d", url, response.status)
            return

        data = yield from response.json()

        if data is None:
            _LOGGER.error("Request api Error: %s", url)
            return
        elif (data['status'] != '1'):
            _LOGGER.error("Error Api return, state=%s, errmsg=%s",
                          data['status'],
                          data['info']
                          )
            return

        return data['geocodes'][0]['location'] 
開發者ID:zhujisheng,項目名稱:HAComponent,代碼行數:42,代碼來源:sensor.py

示例7: async_connect

# 需要導入模塊: from homeassistant.helpers import aiohttp_client [as 別名]
# 或者: from homeassistant.helpers.aiohttp_client import async_get_clientsession [as 別名]
def async_connect(self):
        """Connect to remote home-assistant websocket..."""
        url = self._get_url()

        session = async_get_clientsession(self._hass, self._verify_ssl)
        self._hass.states.async_set(self._connection_state_entity, STATE_CONNECTING, self._instance_attrs)

        while True:
            try:
                _LOGGER.info('Connecting to %s', url)
                self._connection = await session.ws_connect(url)
            except aiohttp.client_exceptions.ClientError as err:
                _LOGGER.error(
                    'Could not connect to %s, retry in 10 seconds...', url)
                self._hass.states.async_set(self._connection_state_entity, STATE_RECONNECTING, self._instance_attrs)
                await asyncio.sleep(10)
            else:
                _LOGGER.info(
                    'Connected to home-assistant websocket at %s', url)
                self._hass.states.async_set(self._connection_state_entity, STATE_CONNECTED, self._instance_attrs)
                break

        async def stop():
            """Close connection."""
            if self._connection is not None:
                await self._connection.close()
            self._hass.states.async_set(self._connection_state_entity, STATE_DISCONNECTED)
        
        self._hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STOP, stop)

        asyncio.ensure_future(self._recv()) 
開發者ID:lukas-hetzenecker,項目名稱:home-assistant-remote,代碼行數:33,代碼來源:__init__.py

示例8: __init__

# 需要導入模塊: from homeassistant.helpers import aiohttp_client [as 別名]
# 或者: from homeassistant.helpers.aiohttp_client import async_get_clientsession [as 別名]
def __init__(self, hass, name, stop_id, direction):
    """Initialize the sensor."""
    self.hass = hass
    self.websession = async_get_clientsession(hass)
    self._name = name
    self.stop_id = stop_id
    self.direction = direction
    self.data = {
      'stopName': '...',
      'actual': []
    } 
開發者ID:macbury,項目名稱:SmartHouse,代碼行數:13,代碼來源:sensor.py

示例9: setup_platform

# 需要導入模塊: from homeassistant.helpers import aiohttp_client [as 別名]
# 或者: from homeassistant.helpers.aiohttp_client import async_get_clientsession [as 別名]
def setup_platform(hass, config, add_devices, discovery_info=None):
  _LOGGER.error('Setup of the soundbar')
  ip = config.get(CONF_HOST)
  port = config.get(CONF_PORT)
  name = config.get(CONF_NAME)
  max_volume = int(config.get(CONF_MAX_VOLUME))
  session = async_get_clientsession(hass)
  api = MultiRoomApi(ip, port, session, hass)
  add_devices([MultiRoomDevice(name, max_volume, api)], True) 
開發者ID:macbury,項目名稱:SmartHouse,代碼行數:11,代碼來源:media_player.py

示例10: setup_platform

# 需要導入模塊: from homeassistant.helpers import aiohttp_client [as 別名]
# 或者: from homeassistant.helpers.aiohttp_client import async_get_clientsession [as 別名]
def setup_platform(hass, config, add_devices, discovery_info=None):
  account_id = config.get(CONF_ACCOUNT_ID)
  token = config.get(CONF_TOKEN)
  name = config.get(CONF_NAME)

  websession = async_get_clientsession(hass)

  add_devices([HarvestSensor(hass, websession, account_id, token, name)]) 
開發者ID:macbury,項目名稱:SmartHouse,代碼行數:10,代碼來源:sensor.py

示例11: setup_platform

# 需要導入模塊: from homeassistant.helpers import aiohttp_client [as 別名]
# 或者: from homeassistant.helpers.aiohttp_client import async_get_clientsession [as 別名]
def setup_platform(hass, config, add_devices, discovery_info=None):
  username = config.get(CONF_USERNAME)
  password = config.get(CONF_PASSWORD)
  name = config.get(CONF_NAME)

  websession = async_get_clientsession(hass)

  add_devices([LunchingSensor(hass, websession, name, username, password)]) 
開發者ID:macbury,項目名稱:SmartHouse,代碼行數:10,代碼來源:sensor.py

示例12: __init__

# 需要導入模塊: from homeassistant.helpers import aiohttp_client [as 別名]
# 或者: from homeassistant.helpers.aiohttp_client import async_get_clientsession [as 別名]
def __init__(self, hass, city_card_id, identity_id, name):
    """Initialize the sensor."""
    self.hass = hass
    self.websession = async_get_clientsession(hass)
    self.city_card_id = city_card_id
    self.identity_id = identity_id
    self._lines = []
    self._name = name
    self._expire_at = None
    self._state = STATE_OFF 
開發者ID:macbury,項目名稱:SmartHouse,代碼行數:12,代碼來源:sensor.py

示例13: sync_device

# 需要導入模塊: from homeassistant.helpers import aiohttp_client [as 別名]
# 或者: from homeassistant.helpers.aiohttp_client import async_get_clientsession [as 別名]
def sync_device(self):
        remove_listener = self._sync_manager.get('remove_listener')
        if remove_listener:
            remove_listener()
    
        @callback
        def report_device(event):
            # _LOGGER.debug("[skill] %s changed, try to report", event.data[ATTR_ENTITY_ID])
            self._hass.add_job(async_report_device(event))

        async def async_report_device(event):
            """report device state when changed. """
            entity = self._hass.states.get(event.data[ATTR_ENTITY_ID])
            if entity is None:
                return
            for platform, handler in self._hass.data[INTEGRATION][DATA_HAVCS_HANDLER].items():
                if hasattr(handler, 'report_device'):
                    device_ids = handler.vcdm.get_entity_related_device_ids(self._hass, entity.entity_id)
                    for device_id in device_ids:
                        payload = handler.report_device(device_id)
                        _LOGGER.debug("[skill] report device to %s: platform = %s, device_id = %s (entity_id = %s), data = %s", platform, device_id, event.data[ATTR_ENTITY_ID], platform, payload)
                        if payload:
                            url = HAVCS_SERVICE_URL + '/skill/'+platform+'.php?v=report&AppKey=' + self._sync_manager.get('app_key')
                            data = havcs_util.AESCipher(self._sync_manager.get('decrypt_key')).encrypt(json.dumps(payload, ensure_ascii = False).encode('utf8'))
                            try:
                                session = async_get_clientsession(self._hass, verify_ssl=False)
                                with async_timeout.timeout(5, loop=self._hass.loop):
                                    response = await session.post(url, data=data)
                                    _LOGGER.debug("[skill] get report device result from %s: %s", platform, await response.text())
                            except(asyncio.TimeoutError, aiohttp.ClientError):
                                _LOGGER.error("[skill] fail to access %s, report device fail: timeout", url)
                            except:
                                _LOGGER.error("[skill] fail to access %s, report device fail: %s", url, traceback.format_exc())
        
        self._sync_manager['remove_listener'] = self._hass.bus.async_listen(EVENT_STATE_CHANGED, report_device) 
開發者ID:cnk700i,項目名稱:havcs,代碼行數:37,代碼來源:bind.py

示例14: async_update

# 需要導入模塊: from homeassistant.helpers import aiohttp_client [as 別名]
# 或者: from homeassistant.helpers.aiohttp_client import async_get_clientsession [as 別名]
def async_update(self, now):
        """從遠程更新信息."""
        _LOGGER.info("Update from JingdongWangxiang's OpenAPI...")

        """
        # 異步模式的測試代碼
        import time
        _LOGGER.info("before time.sleep")
        time.sleep(40)
        _LOGGER.info("after time.sleep and before asyncio.sleep")
        asyncio.sleep(40)
        _LOGGER.info("after asyncio.sleep and before yield from asyncio.sleep")
        yield from asyncio.sleep(40)
        _LOGGER.info("after yield from asyncio.sleep")
        """

        # 通過HTTP訪問,獲取需要的信息
        # 此處使用了基於aiohttp庫的async_get_clientsession
        try:
            session = async_get_clientsession(self._hass)
            with async_timeout.timeout(15, loop=self._hass.loop):
                response = yield from session.post(
                    self._url, data=self._params)

        except(asyncio.TimeoutError, aiohttp.ClientError):
            _LOGGER.error("Error while accessing: %s", self._url)
            return

        if response.status != 200:
            _LOGGER.error("Error while accessing: %s, status=%d",
                          self._url,
                          response.status)
            return

        try:
            result = yield from response.json()
        except(aiohttp.client_exceptions.ContentTypeError):
            _LOGGER.error("Error return type: %s", str(response))
            return

        if result is None:
            _LOGGER.error("Request api Error")
            return
        elif result["code"] != "10000":
            _LOGGER.error("Error API return, code=%s, msg=%s",
                          result["code"],
                          result["msg"])
            return

        # 根據http返回的結果,更新數據
        all_result = result["result"]["HeWeather5"][0]
        self._temprature = all_result["now"]["tmp"]
        self._humidity = all_result["now"]["hum"]
        self._pm25 = all_result["aqi"]["city"]["pm25"]
        self._updatetime = all_result["basic"]["update"]["loc"] 
開發者ID:zhujisheng,項目名稱:HAComponent,代碼行數:57,代碼來源:hachina9.py

示例15: async_update

# 需要導入模塊: from homeassistant.helpers import aiohttp_client [as 別名]
# 或者: from homeassistant.helpers.aiohttp_client import async_get_clientsession [as 別名]
def async_update(self, now):
        """Get the latest data and updates the states."""

        date = now.strftime("%Y-%m-%d")
        params = {
            "key": self.key,
            "date": date,
            }

        try:
            session = async_get_clientsession(self.hass)
            with async_timeout.timeout(15, loop=self.hass.loop):
                response = yield from session.post( self.url, data=params )

        except(asyncio.TimeoutError, aiohttp.ClientError):
            _LOGGER.error("Error while accessing: %s", self.url)
            return

        if response.status != 200:
            _LOGGER.error("Error while accessing: %s, status=%d", url, response.status)
            return

        result = yield from response.json()

        if result is None:
            _LOGGER.error("Request api Error: %s", url)
            return
        elif (result["error_code"] != 0):
            _LOGGER.error("Error API return, errorcode=%s, reson=%s",
                          result["error_code"],
                          result["reason"],
                          )
            return
        
        
        self.yangli = result["result"]["yangli"]
        self.yinli = result["result"]["yinli"]
        self.wuxing = result["result"]["wuxing"].replace(" ","、")
        self.chongsha = result["result"]["chongsha"]
        self.baiji = result["result"]["baiji"].replace(" ","、")
        self.jishen = result["result"]["jishen"].replace(" ","、")
        self.yi = result["result"]["yi"].replace(" ","、")
        self.xiongshen = result["result"]["xiongshen"].replace(" ","、")
        self.ji = result["result"]["ji"].replace(" ","、") 
開發者ID:zhujisheng,項目名稱:HAComponent,代碼行數:46,代碼來源:sensor.py


注:本文中的homeassistant.helpers.aiohttp_client.async_get_clientsession方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。