Wert aus WEB Hook

Benötige Hilfe.

Wie bekomme ich z.B. den „recordType“ in eine Variable. ?

Versucht habe ich das:

<?php

IPS_LogMessage("WebHook GET", print_r($_GET, true));
IPS_LogMessage("WebHook POST", print_r($_POST, true));
IPS_LogMessage("WebHook IPS", print_r($_IPS, true));
IPS_LogMessage("WebHook RAW", file_get_contents("php://input"));
echo "Meldung: " . $_GET['Meldung'];



SetValue(26285, $_POST->{"recordType"});

Bitte die Meldung einmal mit Rechtsklick kopieren und hier als Text Posten. Danke.
Michael

dass muss vermutlich $_POST['records'][0]['recordType'] heissen.

  1. diese Variablen sind Arrays, keine Objekte
  2. recordType ist nach dem sichtbarem Meldungs-Fragment Bestandteil von record und record ist ein Array.

Screenshots sind i.d.R. nicht wirklich aussagefähig / interpretierbar.

$_POST['records']

mus noch umgewandelt werden mit

$temp = $json_decode($_POST['records']);
SetValue(26285, $temp->recordType);

Vielen Dank für die schnelle Antwort, funktioniert leider nicht.

09.02.2023, 20:29:10 | WebHook POST         | Array
(
    [lockId] => 7817026
    [notifyType] => 1
    [records] => [{"lockId":12345,"electricQuantity":100,"serverDate":1675970950555,"recordType":8,"success":1,"lockMac":"F5:xx:xx:06:F9:xx","keyboardPwd":"1234567","lockDate":1675970746000,"username":"jh daumen"}]
    [admin] => jxxxx@gmail.com
    [lockMac] => xx:E1:xx:06:F9:xx
)

$temp = json_decode($_POST['records']);
IPS_LogMessage("WebHook IPSjj", print_r($temp, true));

sieht dann so aus

09.02.2023, 20:55:17 | WebHook IPSjj        | Array
(
    [0] => stdClass Object
        (
            [lockId] => 7817026
            [electricQuantity] => 100
            [serverDate] => 1675972517333
            [recordType] => 8
            [success] => 1
            [lockMac] => xxxxxxxxxxx
            [keyboardPwd] => xxxxxxxxx
            [lockDate] => 1675972299000
            [username] => jh daumen
        )

)

Und $temp->recordType liefert nicht den gewünschten Output?

Nachtrag: $temp[0]->recordType

Habs hin bekommen. Danke für die Unterstützung:

$temp = json_decode($_POST['records']);


SetValue(28944, $temp[0]->{"recordType"});

Darum ja den Text und kein Bild Posten.
Dann können die Helfer es auch testen.
So war da raten dabei.
Michael