Ga naar inhoud


PHP / JSON vraagje


Con

Aanbevolen berichten

Hè hè, eindelijk vanavond een url kunnen versturen binnen PHP.

Nu komt er schot in.

 

Ik las nog dat je lokaal  geen url kon verzenden maar ook hier

zal mijn Engels wel tekort zijn geschoten om dat goed te vertalen.

 

Nu heb ik een nieuwe basis om variabelen uit te werken en

een functie te schrijven.

 

Wordt vervolgd.

aangepast door Con

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds november 2023 glasvezel via Solcon (voor het laatst).

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W11, Intel Nuc i5 met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites


Het resultaat en volledig werkend, eerst het tabel en daarna (voor de liefhebber)  het script.

post-36489-0-89770500-1454878294.jpg

 

En hier het script, het zal geen schoonheidsprijs ontvangen en wellicht is het

regelmatig steenkolen PHP maar het werkt als een speer.;

<html>

<head>
<link  href="styles.css"  rel="stylesheet" TYPE="text/css" />
 <meta charset="UTF-8">
 <title>Testpagina Con</title>
</head>
<body BGCOLOR="#bbbbbb" TEXT="white">


<?php // Functie definiëren 
function f($id, $item){
$json_string = file_get_contents("http://192.168.178.25:8080/json.htm?type=devices&rid=$id");
$parsed_json = json_decode($json_string, true);
$parsed_json = $parsed_json['result'][0];
$q = $parsed_json[$item];
if (is_numeric($q)) {
	$q = sprintf('%0.1f',$q);
}
if ($q == "On") {
	$q = "open";
}
if ($q == "Off") {
	$q = "dicht";
}

return $q;} 

function col($st){
	if ($st=="open") {
	$col="red";
	}
if ($st=="dicht") {
	$col="blue";
	}
return $col;}
?>

 
<?php
/*  tt  tc  ts
bui 218 --- ---
aan 106 --- ---
ret 210 --- ---
woo 154 120 121
vlo 176 144 150
slp 105 140 148
dou 104 145 149
bij 075 141 147
keu 074 146 139
tin 160 143 193
con 159 142 198
ove --- --- 219
ket --- --- 195
*/

$rood="red";
$blauw="blue";

$ttbui = f(218,"Temp");  $grbui = 10*floatval($ttbui);
if ($ttbui>=0){
$bui = "<tr> <th> buiten </th> <td>$ttbui</td><td>&degC</td><td><HR WIDTH=$grbui color=$rood> </td> <td colspan=3 rowspan=3> </td>";
}
if ($ttbui<0){
$grbui = -10*floatval($ttbui);
$bui = "<tr> <th> buiten </th> <td>$ttbui</td><td>&degC</td><td><HR WIDTH=$grbui color=$blauw> </td> <td colspan=3 rowspan=3> </td>";
}	

$ttaan = f(106,"Temp");  $graan = 10*floatval($ttaan);
$aan = "<tr> <th> aanvoer </th> <td>$ttaan</td><td>&degC</td><td><HR WIDTH=$graan color=$rood </td>";

$ttret = f(210,"Temp");  $grret = 10*floatval($ttret);
$ret = "<tr> <th> retour </th> <td>$ttret</td><td>&degC</td><td><HR WIDTH=$grret color=$rood> </td>";

$ttwoo = f(154,"Temp");  $grwoo = 10*floatval($ttwoo); $tcwoo = f(120,"SetPoint"); $tswoo = f(121,"Status");
$col = col($tswoo);
$woo = "<tr> <th> woonkamer </th> <td>$ttwoo</td><td>&degC</td>
<td><HR WIDTH=$grwoo color=$rood> </td><td>$tcwoo</td><td bgcolor= $col >$tswoo</td>";

$ttvlo = f(176,"Temp");  $grvlo = 10*floatval($ttvlo); $tcvlo = f(144,"SetPoint"); $tsvlo = f(150,"Status");
$col = col($tsvlo);
$vlo = "<tr> <th> vloer </th> <td>$ttvlo</td><td>&degC</td>
<td><HR WIDTH=$grvlo color=$rood> </td><td>$tcvlo</td><td bgcolor= $col >$tsvlo</td>";

$ttdou = f(104,"Temp");  $grdou = 10*floatval($ttdou); $tcdou = f(145,"SetPoint"); $tsdou = f(149,"Status");
$col = col($tsdou);
$dou = "<tr> <th> douche </th> <td>$ttdou</td><td>&degC</td>
<td><HR WIDTH=$grdou color=$rood> </td><td>$tcdou</td><td bgcolor= $col >$tsdou</td>";

$ttslp = f(105,"Temp");  $grslp = 10*floatval($ttslp); $tcslp = f(140,"SetPoint"); $tsslp = f(148,"Status");
$col = col($tsslp);
$slp = "<tr> <th> slaapkamer </th> <td>$ttslp</td><td>&degC</td>
<td><HR WIDTH=$grslp color=$rood> </td><td>$tcslp</td><td bgcolor= $col >$tsslp</td>";

$ttbij = f( 75,"Temp");  $grbij = 10*floatval($ttbij); $tcbij = f(141,"SetPoint"); $tsbij = f(147,"Status");
$col = col($tsbij);
$bij = "<tr> <th> bijkeuken </th> <td>$ttbij</td><td>&degC</td>
<td><HR WIDTH=$grbij color=$rood> </td><td>$tcbij</td><td bgcolor= $col >$tsbij</td>";

$ttkeu = f( 74,"Temp");  $grkeu = 10*floatval($ttkeu); $tckeu = f(146,"SetPoint"); $tskeu = f(139,"Status");
$col = col($tskeu);
$keu = "<tr> <th> keuken </th> <td>$ttkeu</td><td>&degC</td>
<td><HR WIDTH=$grkeu color=$rood> </td><td>$tckeu</td><td bgcolor= $col >$tskeu</td>";

$tttin = f(160,"Temp"); $grtin = 10*floatval($tttin); $tctin = f(143,"SetPoint"); $tstin = f(193,"Status");
$col = col($tstin);
$tin = "<tr> <th> Tine </th> <td>$tttin</td><td>&degC</td>
<td><HR WIDTH=$grtin color=$rood> </td><td>$tctin</td><td bgcolor= $col >$tstin</td>";

$ttcon = f(159,"Temp"); $grcon = 10*floatval($ttcon); $tccon = f(142,"SetPoint"); $tscon = f(198,"Status");
$col = col($tscon);
$con = "<tr> <th> Con </th> <td>$ttcon</td><td>&degC</td>
<td><HR WIDTH=$grcon color=$rood> </td><td>$tccon</td><td bgcolor= $col >$tscon</td>";
?>

<form action="index.php" method="GET">

<DIV>
 <?php
  $dag=date("j"); $maand=date("m"); $uur=date("H"); $minuut=date("i");
 print <<< HERE
  <table border = "8" cellspacing="0" cellpadding="4" align="center">
  <tr>
   <td colspan="1" align=right> ruimte </td>
   <td COLSPAN="3" align=center> temperaturen vandaag $dag-$maand om $uur:$minuut </td>
   <td colspan="3" align=center> setpoints</td>
  </tr>
   <TBODY ALIGN="right">
   $tim
   $bui
   $aan
   $ret 
   $woo <td><input type="text" name="spwoo" value="" class="inputwidth2" ></td>
   $vlo <td><input type="text" name="spvlo" value="" class="inputwidth2" ></td>
   $slp <td><input type="text" name="spslp" value="" class="inputwidth2" ></td>
   $dou <td><input type="text" name="spdou" value="" class="inputwidth2" ></td>
   $bij <td><input type="text" name="spbij" value="" class="inputwidth2" ></td>
   $keu <td><input type="text" name="spkeu" value="" class="inputwidth2" ></td>
   $tin <td><input type="text" name="sptin" value="" class="inputwidth2" ></td>
   $con <td><input type="text" name="spcon" value="" class="inputwidth2" ></td>
   <tr>
   <td colspan="7" align="center"> <input type="submit"  value="Verzendknop of geef een enter" class="inputwidth"> </td>
   </tr>
   </TBODY>
HERE;
  print "</table> \n";
  ?>
 </div>

 </form>
 <?php

if ($_GET['spwoo']<>"") {   z(120,$_GET['spwoo']); }
if ($_GET['spvlo']<>"") {   z(144,$_GET['spvlo']); }
if ($_GET['spslp']<>"") {   z(140,$_GET['spslp']); }
if ($_GET['spdou']<>"") {   z(145,$_GET['spdou']); }
if ($_GET['spbij']<>"") {   z(141,$_GET['spbij']); }
if ($_GET['spkeu']<>"") {   z(146,$_GET['spkeu']); }
if ($_GET['sptin']<>"") {   z(143,$_GET['sptin']); }
if ($_GET['spcon']<>"") {   z(142,$_GET['spcon']); }


function z($id, $va){
$url = '192.168.178.25:8080/json.htm?type=command&param=udevice&idx='.$id.'&nvalue=0&svalue='.$va;
$myvars = 'myvar1=' . $myvar1 . '&myvar2=' . $myvar2;
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_POST, 1);
curl_setopt( $ch, CURLOPT_POSTFIELDS, $myvars);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt( $ch, CURLOPT_HEADER, 0);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec( $ch );

header("Refresh: .5; URL=http://192.168.178.30");
echo "<P align='center'> <font color=blue size='6pt'> Na 30 seconden worden de waarden ververst.</P>";
header("Refresh: 30; URL=http://192.168.178.30");
}
?>
 
</body>
</html>

aangepast door Con

Groet, Con. Gloeiende, gloeiende, een beetje humor moet kunnen, anders ga je maar ergens anders heen..
Sinds november 2023 glasvezel via Solcon (voor het laatst).

Internet/PC: modem/router Fritzbox en TP-Link accesspoint, switch (8), switch (4)

Intel Nuc i7 met W11, Intel Nuc i5 met Home Assistant, 17 Shelly's en 2 ESP-tjes.

Link naar reactie
Delen op andere sites

Maak een account aan of log in om te reageren

Je moet een lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!

Registreer een nieuwe account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
×
×
  • Nieuwe aanmaken...