Hoi mede fijnstof meters ik heb het nog niet voor elkaar
In de fijnstof configuratie kun je in de api aangeven waar je je eigen data heen kunt sturen.
Het gekke is als ik dit via Antagonist doe dan komt de data niet aan op mijn eigen webserver maar als ik test via een andere hosting dan komt de data wel aan van de fijnstof.
De data staat dan wel in
https://archive.sensor.community/ maar als die op je eigen webserver staat is dit wel makkelijker.
Anatagonist zegt zelf dat die TLS 1.1 heeft uitgeschakeld, zou dit dan hieraan kunnen liggen...
Is er iemand die Anagonist heeft als webhosting in lukt het daar dan wel???
en dit zijn de instellingen :
Ik stuur de gegevens naar een eigen map fijnstof
En dit staat in mijn sensordata.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<?php # ------------------------------------- SETTINGS
$timezone = 'Europe/Brussels'; #$timezone = 'America/New_York';
#
$data_dir = '/fijnstof';
#$data_dir = './cache';
#
$load_data_csv = false;// only save uploaded file
$load_data_csv = true; // save all measurements in 1 csv file / each day
$load_regional = true; // load sensor data to LOCAL site (f.i. leuvenair) needs userid-pw
$load_regional = false; #------------------------------- END OF SETTINGS #
# DO NOT CHANGE BELOW IF YOU ARE NOT SURE #
#-----------------------------------------------
# CREDIT - DO NOT REMOVE WITHOUT PERMISSION
#
# Original script from opendata-stuttgart
#
#
https://github.com/opendata-stuttgart/m ... r/data.php
#-----------------------------------------------
# display source of script if requested so
#-----------------------------------------------
if (isset($_REQUEST['sce']) && strtolower($_REQUEST['sce']) == 'view' ) { $filenameReal = __FILE__; $download_size = filesize($filenameReal);
header('Pragma: public');
header('Cache-Control: private');
header('Cache-Control: no-cache, must-revalidate');
header("Content-type: text/plain");
header("Accept-Ranges: bytes");
header("Content-Length: $download_size");
header('Connection: close');
readfile($filenameReal);
exit;}
#-----------------------------------------------
# adapted to be used # in the template environement
# to upload to local / regional website
#-----------------------------------------------
$pageName = 'sensordata.php'; $pageVersion = '4.00 2018-02-17';
$pageUpdated = 'release version'; #--------------------------------------- History
# 4.00 2018-02-17 release version
# ----------------------------------------------
$test_mode = false;
#$test_mode = true;
#
$luft_fields = array('durP1','ratioP1','P1','durP2','ratioP2','P2','SDS_P1','SDS_P2',
'temperature','humidity','BMP_temperature','BMP_pressure',
'BME280_temperature','BME280_humidity','BME280_pressure',
'samples','min_micro','max_micro','signal');
#
if (isset ($timezone)) { if (!function_exists('date_default_timezone_set')) { putenv("TZ=" . $timezone);} else { date_default_timezone_set($timezone);} }
#
# read header check ? sensor ID ('esp8266-'+ChipID)
if (isset($_SERVER['HTTP_SENSOR'])) { $header_sensor = $_SERVER['HTTP_SENSOR']; }
elseif (isset($_SERVER['HTTP_X_SENSOR'])) { $header_sensor = $_SERVER['HTTP_X_SENSOR'];}
elseif ($test_mode == false) { return;} // invalid access, some tries to mess things up
else { $header_sensor = 'we are testing';}
#
#---------------------------read data for sensor if ($test_mode == true)
{ $json = '{"esp8266id": "1329006", "software_version": "NRZ-2017-099", "sensordatavalues":[{"value_type":"SDS_P1","value":"2.03"},{"value_type":"SDS_P2","value":"1.43"},{"value_type":"temperature","value":"20.40"},{"value_type":"humidity","value":"49.80"},{"value_type":"samples","value":"605932"},{"value_type":"min_micro","value":"230"},{"value_type":"max_micro","value":"157026"},{"value_type":"signal","value":"-66"}]}'; }
else { $json = file_get_contents('php://input');}
if ($json == false) { return;} // invalid access, someone tries to mess things up
#
#-------- load last measurement to regional site
if ($load_regional <> false)
{ include 'sensorregional.php';
if (isset ($regional_user) && $regional_user <> 'user')
{ $ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $regional_url);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt( $ch, CURLOPT_HTTPHEADER,array(
'Content-Type: application/json',
'X-Sensor: '.$header_sensor,
'Content-Length: '.strlen($json),
'Connection: close'));
$result = curl_exec($ch);
curl_close ($ch);} }
#
#------------------- save last measurements-json
$lastdata = $data_dir.'/last_luft_data.json';
file_put_contents($lastdata,$json);
#
#---------------------- do we create daily files
if ($load_data_csv == false) {return;}
#
$results= json_decode($json,true);
if ($results == false) { echo 'Results: '.var_dump ($results,true);
return;} // invalid data, TODO add message
#
header_remove(); // ??
#
$now = date('c'); $today = date('Ymd'); #
#------ copy sensor data values to values array
foreach ($results["sensordatavalues"] as $arr) { $key = $arr["value_type"];
$values[$key] = $arr["value"]; }
#
#---------------------- print transmitted values
#echo "Sensor: ".$header_sensor.PHP_EOL;
#
#------- check if data dir exists, create if not
if (!file_exists($data_dir)) { mkdir($data_dir, 0755, true);}
#
#------ create first line of CSV with fieldnames
$names = 'time';
foreach ($luft_fields as $name) {$names .= ';'.$name;}
$names .= "\n";
#
#----------- create one line with field contents
$contents = $now;
foreach ($luft_fields as $name) { if (!isset($values[$name]))
{ $values[$name] = '';}
$contents .= ';'.$values[$name];}
$contents .= "\n";
#
#------------------------- save this measurement
$lastdata = $data_dir.'/last_luft_data.csv';
file_put_contents($lastdata,$names.$contents);
#
#---- save data values to CSV in one file per day
$datafile = $data_dir.'/data-'.$header_sensor.'-'.$today.'.csv';
#
#--- line with the fieldnames if file not exists
if (file_exists($datafile)) { $names = '';}
#
#----------- save this measurement in daily file
$outfile = fopen($datafile,"a");
fwrite($outfile, $names.$contents);
fclose($outfile);
if ($test_mode == true) {echo '<br />'.$contents.'<br />';}
?>
<title>ok</title>
</head>
<body>
ok
</body>
</html>
Met vriendelijke groet,
Hans wildeboer