Klappt alles. Also er zeigt alles an.
Nur wird nichts auf der Seite direkt angezeigt. Oder erst sehr sehr spät. Hatte schon das es erst 2 Minuten später angezeigt wurde.
Sobald ich den Code aber wieder entferne, lädt der das in Sekunden.
Klappt alles. Also er zeigt alles an.
Nur wird nichts auf der Seite direkt angezeigt. Oder erst sehr sehr spät. Hatte schon das es erst 2 Minuten später angezeigt wurde.
Sobald ich den Code aber wieder entferne, lädt der das in Sekunden.
Daran habe ich auch gedacht.
Habe das bereits getestet. Aber da kam auch nichts.
Also. Habe jetzt erst einmal beides Werte in einer Zeile gemacht.
Habe das mal getestet. Leider funktioniert das nicht. Er zeigt die Werte nicht an. Und nicht einmal mehr current und zulauf.
Hab das so gemacht:
$sql = "SELECT high_temp, low_temp FROM water_temp";
$result = $dbv->query($sql);
$row = $result->fetch();
$values = [
'current' => $sensor1,
'einlass' => $sensor2,
'high' => $row['high_temp']
];
echo json_encode($values);
Hab es auch mal mit fetchAll probiert. Leider auch ohne Funktion.
Also ich habe eine Datenbank mit 1x "high_temperatur" und 1x "low_temperatur".
Vorher habe ich es so gemacht:
$sql = "SELECT high_temp FROM high_temperatur";
<?php foreach ($dbv->query($sql) as $row) { ?>
<h3><?php echo $row['high_temp'] ?></span>°C</h3>
<?php } ?>
Jetzt ist ja aber mein $row['high_temp'] in der $valuesVariable die in der laden.php ist.
Und das erkennt der wohl nicht.
Hey, ich bin es nochmal
Ich habe grad etwas weiter gemacht und festgestellt das das mit "max." und "min." leider nicht funktioniert.
Vermutlich weil das "foreach" fehlt. Weil er hier wohl die "$row" nicht erkennt.
$values = [
'current' => $sensor1,
'einlass' => $sensor2,
'max' => $row['high_temp'],
'max' => $row['min_temp']
];
Ich kann glaube ich schlecht eine "foreach" schleife um den Code legen oder?.
Ups
Ja gut, Tippfehler passieren mal.
Hat alles geklappt.
Ich danke dir sehr für deine Hilfe und Unterstützung
Ja, genau. Das habe ich bereits gemacht. Konnte mir das ja schon denken
Geht nur noch darum das er die Werte automatisch jede Sekunde aktualisiert.
Hab das mal so versucht:
$(document).ready(function() {
function updateData () {
$.getJSON('laden.php', function(response) {
$('#current-value').text(response.current);
$('#einlass-value').text(response.einlass);
$('#min-value').text(response.min);
$('#max-value').text(response.max);
});
}
updateData();
vat interval = setInterval(updateData, 1000);
});
Alles anzeigen
Leider zeigt er bei dem Code dann überhaupt nichts mehr an.
Hey, erstmal Danke für den Einblick.
Ich habe mal den Code ausprobiert. Muss ich da jetzt noch dann ein Intervall einbauen? Weil automatisch aktualisiert er das ja nicht. Sondern erst wenn ich die Seite neulade.
Werde mich nach der Projekt Arbeit aber auch nochmal Intensiver damit beschäftigen. Bin aktuell leider unter Zeitdruck, weshalb ich das fertig bekommen muss bis Dienstag.
Und zu deiner Frage mit den Werten.
Also ja, es gibt 2 Sensoren. Aber nur 4 Werte.
Sensor1 zeigt die Aktuelle Wasser Temperatur an.
Sensor2 zeigt an, mit welcher Temperatur das Wasser in den Pool läuft
Und der Min und Max Wert basiert auf den sensor1.
Okay, ich glaube ich bin aktuell echt zu Blöd dafür ^^.
Also mein Code ist soweit richtig?
Was genau soll ich jetzt mit "jQuery.JSON" machen?
Okay, und JSON aktualisiert die Seite ohne "Neuladen"? Und Aktualisiert dann im Sekundentakt die Werte?
Hab mit Json noch nicht gearbeitet.
Alles klar,
Habe tatsächlich es geschafft meinen Projektleiter zu überreden das ich MySQL nutzen darf.
Deswegen bräuchte ich die Unterstützung wie ich am besten die 4 Werte mit Javascript aktualisieren kann.
Moin,
ich wollte gerne mit einem Script dafür sorgen das meine Daten aus der Datenbank Neugeladen werden ohne die Seite zu aktualisieren.
Das ganze klappt soweit auch, aber nur mit einem Wert. Ich bräuchte das genau 4x.
Mein Aktueller Code:
<head> Teil mit dem Script:
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
<title>Temperatur Überwachung</title>
<link href="assets/css/bootstrap.css" rel="stylesheet" />
<link href="assets/css/font-awesome.css" rel="stylesheet" />
<link href="assets/css/style.css" rel="stylesheet" />
<link href='http://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css' />
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function(){
$("#div_refresh").load("laden.php");
setInterval(function() {
$("#div_refresh").load("laden.php");
}, 1000);
});
</script>
Alles anzeigen
Wo das ganze aufgerufen wird:
<div class="row">
<div class="col-md-3 col-sm-3 col-xs-6">
<div class="alert alert-info back-widget-set text-center">
<h3><?php echo $sensor1 ?> °C</h3>
<h4>Aktuelle Wassertemperatur</h4>
</div>
</div>
<div class="col-md-3 col-sm-3 col-xs-6">
<div class="alert alert-info back-widget-set text-center">
<div id="div_refresh"></div>
<h4>Aktuelle Einlasstemperatur</h4>
</div>
</div>
<div class="col-md-3 col-sm-3 col-xs-6">
<div class="alert alert-danger back-widget-set text-center">
<?php foreach ($dbv->query($sql) as $row) { ?>
<h3><?php echo $row['high_temp'] ?> °C</h3>
<?php } ?>
Höchster Wert / 7 Tage
</div>
</div>
<div class="col-md-3 col-sm-3 col-xs-6">
<div class="alert alert-warning back-widget-set text-center">
<?php foreach ($dbv->query($sql2) as $row) { ?>
<h3><?php echo $row['low_temp'] ?> °C</h3>
<?php } ?>
Niedrigster Wert / 7 Tage
</div>
</div>
</div>
Alles anzeigen
Meine laden.php:
<?php
$sensor1 = exec('cat /sys/bus/w1/devices/10-000801491f60/w1_slave |grep t=');
$sensor1 = explode('t=',$sensor1);
$sensor1 = $sensor1[1] / 1000;
$sensor1 = round($sensor1,1);
$sensor2 = exec('cat /sys/bus/w1/devices/10-00080149595b/w1_slave |grep t=');
$sensor2 = explode('t=',$sensor2);
$sensor2 = $sensor2[1] / 1000;
$sensor2 = round($sensor2,1);
?>
<h3><?php echo $sensor2 ?> °C</h3>
Alles anzeigen
Weiß jemand wie ich jetzt auch noch über die "laden.php" zum Beispiel die "Aktuelle Wassertemperatur", "Höchster Wert / 7 Tage" und "Niedrigster Wert / 7 Tage" updaten kann?
Schon einmal Danke im voraus.
Lieben Gruß
Ja stimmt. Das kann ich auch weg lassen.
Hat jemand dann eventuell ein Beispiel wie ich den "niedrigsten" wert, darunter schreiben kann?
Das in der ersten Zeile der höchste und darunter der niedrigste eingetragen wird?
Hey,
also es hat jetzt geklappt.
Ich habe es nun so gemacht:
$ausgabe = file("logs.txt")[1];
if($sensor > $ausgabe) {
$schreiben = fopen("logs.txt", "w");
fwrite ($schreiben, "Höchste Temperatur: \n" . $sensor1);
fclose ($schreiben);
}
Nun würde ich ganz gerne noch den Wert eintragen wenn sensor1 niedriger als Ausgabe ist.
Hat da jemand eine Idee wie ich das ganze in die Gleiche Datei eintrage?
Lieben Gruß
hey,
Ja tut mir leid, da habe ich ein wenig für Verwirrung gesorgt. Natürlich gibt "sensor1' nur die blanke Zahl aus ohne das Grad Zeichen. Gerundet wird auf die erste nach Komma Stelle.
Es wird also nur sowas wie "28.9" gespeichert.
Hat jemand eine Idee wieso der Code nicht funktioniert?
<?php
$ausgabe = file_get_contents("logs.txt");
$schreiben = fopen("logs.txt", "w");
if ($sensor1 > $ausgabe) {
fwrite ($schreiben, $sensor1);
fclose ($schreiben);}
?>
Lieben Gruß
Danke für die Antwort.
Ich hätte das auch gerne mit Datenbanken gemacht.
Leider ist dies ein Projekt welches ich erhalten habe und dort ist der Wunsch eben das ganze über Dateien zu machen.
Moin,
ich habe mal eine Frage. Ich soll mittels PHP zwei Werte in einer Datei Abspeichern.
Es handelt sich hierbei um ein Projekt, welches mit einem Raspberry Pi umgesetzt wird.
Hierbei habe ich Zwei Temperatur Sensoren, die immer die aktuelle Temperatur aus einen Pool ermitteln.
Das ganze soll über eine Internet Seite angezeigt werden. Die normale Temperatur funktioniert soweit auch.
Nun soll ich noch einen 7 Tage Wert für die Höchste Temperatur und die Niedrigste Temperatur erstellen-
Das heißt das ich meinen Sensor "Sensor1" habe. Dieser zeigt je nach Temperatur in dem Fall natürlich die aktuelle Temperatur an.
Sagen wir mal die Temperatur ist "28,9 °C" Dieser Wert soll nun in einer ".txt" Datei gespeichert werden.
Wenn die Temperatur auf "29 °C" hoch geht, soll eben dieser Wert eingetragen werden. Also immer den höchsten.
Das ganze natürlich auch bei der niedrigsten Temperatur. Wenn die sagen wir "12 °C" entspricht und runter auf "10 °C" geht. Soll eben "10 °C" eingetragen werden.
Leider funktioniert das ganze noch nicht so. Ich habe es geschafft, dass er in die Datei reinschreibt. Aber wirklich jeden Wert dafür nimmt. Also auch wenn der von "29 °C" auf "27 °C" runter geht. Aktualisiert er diesen Wert in der Datei auf "27 °C"
Bitte nehmt es mir nicht so übel. PHP ist nicht ganz mein Gebiet
Mein Code wie ich es aktuell umgesetzt habe:
<?php
$sensor1 = exec('cat /sys/bus/w1/devices/10-000801491f60/w1_slave |grep t=');
$sensor1 = explode('t=',$sensor1);
$sensor1 = $sensor1[1] / 1000;
$sensor1 = round($sensor1,1);
$sensor2 = exec('cat /sys/bus/w1/devices/10-00080149595b/w1_slave |grep t=');
$sensor2 = explode('t=',$sensor2);
$sensor2 = $sensor2[1] / 1000;
$sensor2 = round($sensor2,1);
?>
<?php
$ausgabe = file_get_contents("logs.txt");
$schreiben = fopen("logs.txt", "w");
if ($sensor1 > $ausgabe) {
fwrite ($schreiben, $sensor1);
fclose ($schreiben);
}
?>
Alles anzeigen
Dann noch eine andere kleine Frage.
Der ich wollte gerne machen, das die 7 Tage Werte jeden Sonntag angezeigt werden.
Also wenn von Montag bis Sonntag der höchste Wert "31 °C" war. Soll der dies anzeigen. Und eine neue Datei erstellen.
Am nächsten Sonntag wird dann die Datei mit den "31 °C" gelöscht. Und wieder eine neue erstellt.
Also immer das Zwei Dateien vorhanden sind. Einmal die von der vorherigen Woche und eine Neue für die kommende Woche.
Wäre sehr dankbar wenn mir jemand weiterhelfen könnte.
Lieben Gruß
HTML-Seminar.de - mit Videos zum schnellen Lernen, wie man eine Website selbst erstellt.