# Module `lib.webpage.webhookpage`

Function define the web page to configure the webhook to interact with domoticz or other

Expand source code

    # Distributed under Pycameresp License
    # Copyright (c) 2023 Remi BERTHOLET
    """ Function define the web page to configure the webhook to interact with domoticz or other """
    import server.httpserver
    import server.httprequest
    import server.webhook
    from htmltemplate       import *
    import webpage.mainpage
    import tools.lang
    import tools.info
    import tools.features

    @server.httpserver.HttpServer.add_route(b'/webhook', menu=tools.lang.menu_server, item=tools.lang.item_webhook, available=tools.features.features.webhook)
    async def webhook(request, response, args):
            """ Function define the web page to configure the webhook  """
            config = server.webhook.WebhookConfig()
            disabled, action, submit = webpage.mainpage.manage_default_button(request, config)
            page = webpage.mainpage.main_frame(request, response, args,tools.lang.webhook_configuration,
                    Form([
                            Switch(text=tools.lang.activated, name=b"activated", checked=config.activated, disabled=disabled),
                            Edit(text=tools.lang.webhook_inhabited_house,   name=b"inhabited_house",   placeholder=tools.lang.url_http_required, value=server.httprequest.HttpRequest.to_html(config.inhabited_house),    disabled=disabled),
                            Edit(text=tools.lang.webhook_empty_house,       name=b"empty_house",       placeholder=tools.lang.url_http_required, value=config.empty_house,        disabled=disabled),
                            Edit(text=tools.lang.webhook_motion_detected,   name=b"motion_detected",   placeholder=tools.lang.url_http_required, value=config.motion_detected,    disabled=disabled) if tools.info.iscamera() else None,
                            Edit(text=tools.lang.webhook_no_motion_detected,name=b"no_motion_detected",placeholder=tools.lang.url_http_required, value=config.no_motion_detected, disabled=disabled) if tools.info.iscamera() else None,
                            submit,
                    ]))
            await response.send_page(page)

## Functions

`async def webhook(request, response, args)`

  Function define the web page to configure the webhook

  Expand source code

      @server.httpserver.HttpServer.add_route(b'/webhook', menu=tools.lang.menu_server, item=tools.lang.item_webhook, available=tools.features.features.webhook)
      async def webhook(request, response, args):
              """ Function define the web page to configure the webhook  """
              config = server.webhook.WebhookConfig()
              disabled, action, submit = webpage.mainpage.manage_default_button(request, config)
              page = webpage.mainpage.main_frame(request, response, args,tools.lang.webhook_configuration,
                      Form([
                              Switch(text=tools.lang.activated, name=b"activated", checked=config.activated, disabled=disabled),
                              Edit(text=tools.lang.webhook_inhabited_house,   name=b"inhabited_house",   placeholder=tools.lang.url_http_required, value=server.httprequest.HttpRequest.to_html(config.inhabited_house),    disabled=disabled),
                              Edit(text=tools.lang.webhook_empty_house,       name=b"empty_house",       placeholder=tools.lang.url_http_required, value=config.empty_house,        disabled=disabled),
                              Edit(text=tools.lang.webhook_motion_detected,   name=b"motion_detected",   placeholder=tools.lang.url_http_required, value=config.motion_detected,    disabled=disabled) if tools.info.iscamera() else None,
                              Edit(text=tools.lang.webhook_no_motion_detected,name=b"no_motion_detected",placeholder=tools.lang.url_http_required, value=config.no_motion_detected, disabled=disabled) if tools.info.iscamera() else None,
                              submit,
                      ]))
              await response.send_page(page)