Mistä saan parsettua tagin nimen?

Olen tehnyt seuraavan scriptin ja nyt pitäisi vielä kaivaa anturin nimi esiin. Mistäs kohtaa raw-dataa se oikein löytyisi?

Scripti on seuraava
Teksti ilman muotoiluja<?php
$db = $mysqli = new mysqli(“xxxxx”, “xxxxx”, “xxxxxx”, “xxxxxx”);
mysqli_set_charset($db,“utf8mb4”);

Define Type Variables

date_default_timezone_set(‘Europe/Helsinki’);

$webhook = file_get_contents(‘php://input’);
$json = json_decode($webhook, true);
$tags = array(“C6:BD:75:6D:37:3B”, “D0:19:F5:0F:7D:D0”, “EB:F2:42:75:B8:AE”, “DE:D8:0B:89:EF:2F”, “E6:7E:6F:39:A4:5E”, “E3:09:1D:AE:7A:90”, “E5:04:15:90:F0:09”, “D5:6D:A1:23:73:C7”);
$current_time = date(‘H:i’);
$inserted_mac_addresses = array();
foreach($tags as $tag) {
$data = $json[“data”][“tags”][$tag][“data”];
$temperature_bytes = substr($data, 8, 12);
$temperature_int = hexdec($temperature_bytes);
$temperature_int = unpack(“s”, pack(“S”, $temperature_int))[1];
$temperature_offset = hexdec(substr($data, 2, 2));
$temperature = ($temperature_int + $temperature_offset) * 0.005;
$temperature = round($temperature,1);
if ($current_time == “00:00” || $current_time == “02:00” || $current_time == “04:00” || $current_time == “06:00” || $current_time == “08:00” || $current_time == “10:00” || $current_time == “12:00” || $current_time == “14:00” || $current_time == “16:00” || $current_time == “18:00” || $current_time == “20:00” || $current_time == “22:00” && !in_array($tag, $inserted_mac_addresses)) {
$inserted_mac_addresses = $tag;
$now = date(“Y-m-d H:i”);

$sqlcount = “SELECT * FROM lampotilat WHERE pakastinarkkumac=‘$tag’ and paivamaara = ‘$now’ limit 1”;
$num_rows = mysqli_query($db,$sqlcount);
$rowcount=mysqli_num_rows($num_rows);
$nnow1= strtotime(date(“Y-m-d H:i:s”)) . ‘000’;
if ($rowcount == 0) {
$sql = “INSERT INTO lampotilat (lampotila, pakastinarkkumac, paivamaara, unixtime) VALUES (‘$temperature’, ‘$tag’,‘$now’,$nnow1)”;
mysqli_query($db, $sql);
file_put_contents(‘ruuvi.log’, “LISÄTÄÄN KANTAAN. MAC: $tag - $temperature\r\n”, FILE_APPEND);
}else{
file_put_contents(‘ruuvi.log’, “EI LISTÄTÄ KANTAAN ($now). MAC: $tag - $temperature\r\n”, FILE_APPEND);
}

}
}
?>

@otso lta löytyisi tähän varmaan vinkki :slight_smile:

Oletusnimi tageilla on “Ruuvi XX:YY”, jossa XX ja YY ovat MAC-osoitteen kaksi viimeistä tavua. Sinun tapauksessasi “Ruuvi 37:3B”, “Ruuvi 7D:D0” jne. Ruuvi Stationissa konfiguroitua nimeä ei näe Bluetoothin yli, helpoimmalla pääset jos kirjoitat käsin MAC->nimi koodiin jos käytössä on 8 tagia.

Ruuvi Cloudin API on julkinen ja luettavissa osoitteessa docs.ruuvi.com, halutessasi voit myös hakea sieltä MAC->nimi arvot jotka olet konfiguroinut Ruuvi Stationissa mutta se menee työläämmäksi.

Juu, olen nimennyt ne eri nimillä (FRZ-1, FRZ-2 jne). Käytetään sitten MAC osoitetta tunnisteena muissa tietokannan tauluissa. Olisi vaan helpompi muistaa nimet, kuin MAC-osoitteet, kun näitä tulee olemaan varmaan 20 kappaletta.
Kiitos kommenteista.

Google translates the original post as:
I have made the following script and now I should dig out the name of the sensor. Where in the raw data would you find it?

The script is as follows
Text without formatting<?php

Otso says: The default tag name is “RUUVI XX:YY”, where XX and YY are the last two bytes of the MAC address. In your case, “RUUVI 37:3B”, “RUUVI 7D:D0”, etc. The name configured in Ruuvi Station cannot be seen over Bluetooth, the easiest way is to enter the MAC->name manually in the code if 8 tags are used.

Ruuvi Cloud’s API is public and can be read at docs.ruuvi.com 1, if you want, you can also retrieve from there the MAC->name values that you have configured in Ruuvi Station, but it will be more laborious.

Jari_Laksonen replied: Yep, I’ve given them different names (FRZ-1, FRZ-2, etc.). Let’s then use the MAC address as an identifier in other tables in the database. It would be easier to remember the names than the MAC addresses, since there will probably be 20 of these.
Thanks for the comments.

The exact default name is “Ruvvi XXYY” for example:

52 75 75 76 69 20 32 30 42 43
R  u  u  v  i     2   0  B  C

for a MAC address of E9:38:3F:DD:20:BC