openapi: 3.0.3
info:
  title: DoorLine Snap API
  description: API zur Steuerung und Abfrage von DoorLine Snap.
  version: 1.0.0
servers:
  - url: http://{ip-address}/api
    variables:
      ip-address:
        default: 192.168.178.30
paths:
  /cmd/mon_ping:
    get:
      summary: Verbindungstest
      responses:
        '200':
          description: Erfolgreiche Antwort
  /cmd/io_out01_trigger:
    get:
      summary: Relaiskontakt 1 für eine bestimmte Dauer einschalten
      parameters:
        - name: pin
          in: query
          required: true
          schema:
            type: string
        - name: duration
          in: query
          required: true
          schema:
            type: integer
            minimum: 500
            maximum: 60000
      responses:
        '200':
          description: Erfolgreiche Ausführung

  /cmd/io_out01_set:
    get:
      summary: Relaiskontakt 1 umschalten
      parameters:
        - name: pin
          in: query
          required: true
          schema:
            type: string
        - name: state
          in: query
          required: true
          schema:
            type: boolean
      responses:
        '200':
          description: Erfolgreiche Ausführung

  /cmd/io_out02_trigger:
    get:
      summary: Relaiskontakt 2 für eine bestimmte Dauer einschalten
      parameters:
        - name: pin
          in: query
          required: true
          schema:
            type: string
        - name: duration
          in: query
          required: true
          schema:
            type: integer
            minimum: 500
            maximum: 60000
      responses:
        '200':
          description: Erfolgreiche Ausführung

  /cmd/io_out02_set:
    get:
      summary: Relaiskontakt 2 umschalten
      parameters:
        - name: pin
          in: query
          required: true
          schema:
            type: string
        - name: state
          in: query
          required: true
          schema:
            type: boolean
      responses:
        '200':
          description: Erfolgreiche Ausführung

  /cmd/hmi_backlight_trigger:
    get:
      summary: Beleuchtung der Klingeltaste umschalten
      parameters:
        - name: pin
          in: query
          required: true
          schema:
            type: string
        - name: duration
          in: query
          required: true
          schema:
            type: integer
            minimum: 100
            maximum: 60000
      responses:
        '200':
          description: Erfolgreiche Ausführung

  /cmd/hmi_beep_trigger:
    get:
      summary: Piep mit bestimmter Dauer und Frequenz ausgeben
      parameters:
        - name: pin
          in: query
          required: true
          schema:
            type: string
        - name: duration
          in: query
          required: true
          schema:
            type: integer
            minimum: 100
            maximum: 60000
        - name: frequency
          in: query
          required: false
          schema:
            type: integer
            minimum: 200
            maximum: 10000
            default: 900
      responses:
        '200':
          description: Erfolgreiche Ausführung

  /hmi_button01_elapsed:
    get:
      summary: Zeit seit letzter Auslösung der Klingeltaste 1 abfragen
      parameters:
        - name: pin
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Erfolgreiche Abfrage
          content:
            application/json:
              schema:
                type: object
                properties:
                  hmi_button01_elapsed:
                    type: integer
                    example: 345343

  /hmi_button01_count:
    get:
      summary: Anzahl Auslösungen der Klingeltaste 1 seit Systemstart abfragen
      parameters:
        - name: pin
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Erfolgreiche Abfrage
          content:
            application/json:
              schema:
                type: object
                properties:
                  hmi_button01_count:
                    type: integer
                    example: 5

  /hmi_button02_elapsed:
    get:
      summary: Zeit seit letzter Auslösung der Klingeltaste 2 abfragen
      parameters:
        - name: pin
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Erfolgreiche Abfrage
          content:
            application/json:
              schema:
                type: object
                properties:
                  hmi_button02_elapsed:
                    type: integer
                    example: 3532

  /hmi_button02_count:
    get:
      summary: Anzahl Auslösungen der Klingeltaste 2 seit Systemstart abfragen
      parameters:
        - name: pin
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Erfolgreiche Abfrage
          content:
            application/json:
              schema:
                type: object
                properties:
                  hmi_button02_count:
                    type: integer
                    example: 1

  /io_in01:
    get:
      summary: Status des Schalteingangs abfragen
      parameters:
        - name: pin
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Erfolgreiche Abfrage
          content:
            application/json:
              schema:
                type: object
                properties:
                  io_in01:
                    type: boolean
                    example: false

  /io_out01:
    get:
      summary: Schaltzustand des Relaiskontakts 1 abfragen
      parameters:
        - name: pin
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Erfolgreiche Abfrage
          content:
            application/json:
              schema:
                type: object
                properties:
                  io_out01:
                    type: boolean
                    example: false

  /io_out02:
    get:
      summary: Schaltzustand des Relaiskontakts 2 abfragen
      parameters:
        - name: pin
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Erfolgreiche Abfrage
          content:
            application/json:
              schema:
                type: object
                properties:
                  io_out02:
                    type: boolean
                    example: true

  /io_sensor_light:
    get:
      summary: Helligkeit des Kamerabilds (ungefährer und sehr grober Lux-Wert)
      parameters:
        - name: pin
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Erfolgreiche Abfrage
          content:
            application/json:
              schema:
                type: object
                properties:
                  io_sensor_light:
                    type: integer
                    example: 400

  /x_sip_lastresult:
    get:
      summary: Statuscode der letzten SIP-Verbindung abfragen
      parameters:
        - name: pin
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Erfolgreiche Abfrage
          content:
            application/json:
              schema:
                type: object
                properties:
                  x_sip_lastresult:
                    type: string
                    example: "Undefined"

  /wlan_rssi:
    get:
      summary: WLAN Signalstärke abfragen
      parameters:
        - name: pin
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Erfolgreiche Abfrage
          content:
            application/json:
              schema:
                type: object
                properties:
                  wlan_rssi:
                    type: integer
                    example: -47

  /sys_uptime:
    get:
      summary: Zeit seit Systemstart abfragen
      parameters:
        - name: pin
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Erfolgreiche Abfrage
          content:
            application/json:
              schema:
                type: object
                properties:
                  sys_uptime:
                    type: integer
                    example: 4543326

  /sys_type:
    get:
      summary: Bezeichnung des Geräts abfragen
      parameters:
        - name: pin
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Erfolgreiche Abfrage
          content:
            application/json:
              schema:
                type: object
                properties:
                  sys_type:
                    type: string
                    example: "DoorLine Snap"

  /sys_fw_version:
    get:
      summary: Installierte Firmware-Version abfragen
      parameters:
        - name: pin
          in: query
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Erfolgreiche Abfrage
          content:
            application/json:
              schema:
                type: object
                properties:
                  sys_fw_version:
                    type: string
                    example: "1.5.0"
