Homey Community Forum

Webhook uitdaging

Hi allemaal, ik heb een bewakingscamera die ook nummerborden op het pad scant. Via een clouddienst (Openalpr) kunnen er via een webhook post alerts gestuurd worden waarmee ik bepaalde flows wil laten starten als mijn of andere kentekens herkend worden.

Nu kan ik met https://5df24xxxxb807eb355cafb.connect.athom.com/api/manager/logic/webhook/startflow prima een flow starten. Dat werkt allemaal wel. De uitdaging/probleem is dat ik de HTTP POST van die online dienst niet kan wijzigen. Die dienst stuurt allemaal info mee zoals hieronder. Het enige wat ik kan invoeren is de URL.

Nu wil ik de flow dus starten als er een webhook ontvangen wordt. Maakt niet uit hoe die er uit ziet. Heeft iemand enig idee hoe ik dat voor elkaar kan krijgen of hoe de URL er uit moet komen te zien waar Openalpr zijn webhook naar post?

Als ik de webhook post naar webhook.site laat sturen ziet de raw data er zo uit:

{
“site_name”: “DESKTOP-KG99KAQ”,
“description”: “”,
“camera_number”: 2090093754,
“agent_uid”: “46NHJN8YYBVXI1H1UA345631DR6FM27NO409MCXTZ0”,
“alert_list”: “Scanautos”,
“group”: {
“epoch_start”: 1587414193991,
“is_preview”: false,
“camera_id”: 209009544,
“frame_start”: 802529,
“agent_uid”: “46NHJN8YYBVA2NA1DR6FM27NO409MCXTZ0”,
“best_confidence”: 94.00166320800781,
}

Alle hulp wordt zeer gewaardeerd omdat ik al een week aan het zoeken ben.

Dat gaat met de ingebouwde webhooks niet werken, die werken echt alleen met GET (het zijn ook geen echte webhooks, meer een soort van callbacks).

Je kunt wel de HTTP request flowkaarten app gebruiken, die accepteert ook POST requests met JSON data.

Dank je voor de input. Ondertussen bezig gegaan met HTTP request flowkaarten. Als ik de voorgestelde link gebruik krijg ik de volgende error:

Server responded with HTTP Code: 401
{“code”:401,“error”:“not_logged_in”,“error_description”:“You need to log in to access this resource”}

Gebruikte link:
https://5dfxxxxxxxxxxxb807eb35xxxfb.connect.athom.com/api/app/com.internet/:event:

Enig idee waarom ik dat krijg?

Waarschijnlijk heb je Authentication in de app settings aan laten staan, die moet uitgezet worden.

Die had ik al uit staan🤔

Van wat ik weet is dat ze authentication nu verplichten, dus je kan deze niet meer uitzetten.

Werkt zonder problemen bij mij:

$ curl -XPOST 'https://XXX.connect.athom.com/api/app/com.internet/test'
"OK"

Welke flow kaart gebruik je als trigger?

Ok dus uitzetten kan wel maar werkt niet.

Dan komt helaas direct mijn volgende vraag hoe authentication in zijn werk gaat.

Sorry voor de vele vragen hoor😊

Als je authenticatie hebt uitgezet moet je wel de app eerst opnieuw opstarten voordat het effect heeft.

Met uit en aan krijg ik met https://XXX.connect.athom.com/api/app/com.internet/test allebei een “ok” nu. Testbericht via Openalpr geeft nu ook een ok en triggered mijn flow. Nog even afwachten of een echte HTTP post ook de flow gaat triggeren.

Ik houd jullie op de hoogte!

1 Like

Dank voor jullie hulp. Het doet nu wat ik graag zou willen!

Dan nog 1 vraagje: kan ik uit de JSON bv het kenteken KP380J ook in een tag laden ?

{
“site_name”: “DESKTOP-KG7DKAQ”,
“description”: “”,
“camera_number”: 2090093754,
“agent_uid”: “46NHJN8YYBVXI1H1UA2NA1DR6FM27NO409MCXTZ0”,
“alert_list”: “Scanautos”,
“group”: {
“epoch_start”: 1587414193991,
“is_preview”: false,
“camera_id”: 209754,
“frame_start”: 8041529,
“agent_uid”: “46NHJN8YYBVXI1H1UA2NA1DR6FM27NO409MCXTZ0”,
“best_confidence”: 94.00166320800781,
“vehicle_crop_jpeg”: “/9j/4AAQSkZJRgABAQAAAQABAAD/2CigAooAKKAP/2Q==”,
“company_id”: “7fa17173-9618-bdb43d528458”,
“version”: 2,
“agent_type”: “alprd”,
“best_plate”: {
“plate”: “KP380J”,
“confidence”: 94.00166320800781,
“region_confidence”: 99,
“vehicle_region”: {
“y”: 63,
“x”: 708,
“height”: 520,
“width”: 520
},

Dat moet je in verschillende flows gaan doen.

De eerste flow “ontvangt” de POST:

  • ALS “Ontvangen POST”
  • DAN “JSONPath for trigger” (als JSONPath expressie gebruik je $.group.best_plate.plate, als trigger naam mag je kiezen wat je wilt, bijvoorbeeld gevonden_nummerplaat)

Dan een tweede flow:

  • ALS “JSONPath waarde”, met als parameter de hierboven gebruikte trigger naam
  • DAN “…” (wat je wilt)
1 Like

Ik ben er nog niet helemaal uit waar ik wat in voer. Het is iig nog niet gelukt

Waar zit je precies vast dan?