Wie muss ich das Bash-Skript interpretieren? Wie eine Batch-Datei im Windows? Mir kommen die echo und if-Anweisungen bekannt vor.
Dann könnte ich dein Skript ja mal einfach in eine Textdatei kopieren, dann hätte ich das schonmal auf dem PI.
Wie muss ich dann damit bzw. mit dem Code umgehen? Gibt's da eine spezielle Dateiendung damit das ausgeführt wird und wie mache ich einen Autostart dafür, das ich es ohne eingeloggten Benutzer ausführen kann?
Für das ich damit wirklich noch nie etwas gemacht habe finde ich die Übersicht an sich im Linux ganz komfortabel, gerade weil die Geräte alle einzeln in Ordnern abgelegt sind. Wenn ich mal dahinter bin gibt es kein halten mehr, habe so viele Ideen, weiss aber noch nicht wie ich es umsetzen kann
Schön wäre es wenn Windows das auch so bissl hätte, dann wäre alles einfacher zu verstehen. Aber da darf man ja sowieso an nichts rumpfuschen^^
Bash-Scripte unter Linux sind quasi das Gegenstück zu Batch unter Windows.
Du kannst das Script in eine leere Datei kopieren; die Datei-Endung ist egal. Die erste Zeile ist dagegen sehr wichtig und wird als Shebang bezeichnet. Diese Zeile gibt an, mit welchem "Interpreter" die Datei ausgeführt wird. (Im Beispiel mit /bin/bash).
Wichtig ist auch, dass du der Bash-Datei nach dem Erstellen noch Ausführrechte geben musst:
Den "Autostart" würde ich über Cronjobs realisieren. Das ist ähnlich zu den "geplanten Aufgaben (Scheduled Tasks)" unter Windows. Wie du da ein Script hinterlegst sagt dir zum Beispiel diese Seite.
Dann erstelle ich eine *.php-Datei und schiebe den oberen Code da rein, kommt der untere dann einfach auch mit in die gleiche Datei oder wird das von einer anderen abgefragt? Das ganze dann in den wwwroot...
Brauche ich dafür noch eine Datenbank?
Gibt er mir dann alle Sensoren aus *cat /sys/bus/w1/devices/$sensor/* aus oder nur den ersten bzw. den mit der eindeutigen Kennung?
Der obere Code ist nur die Funktion in PHP. Wenn du diesen Code alleine in eine Datei kopierst, wird dieser nicht ausgeführt werden. Erst der untere Code ruft die Funktion auf und führt somit den Code aus.
Du kannst beides in eine Datei packen. Ist für dich für den Anfang am einfachsten.
Eine Datenbank brauchst du nicht mehr. Die ganzen Daten werden in "/tmp/temperature.json" gespeichert.
Der Code gibt immer nur einen Sensor aus; und zwar den, den du der Funktion übergibst. Im Beispiel wäre das "28-12345678".
Du würdest also für jeden Sensor die Zeile
echo get_temperature("28-12345678")
benötigen.
Die ganze PHP-Datei könnte dann so aussehen (die Sensor-ID's sind anzupassen!):
<?php
//$sensor entspricht der Sensor-ID
function get_temperature($sensor){
$file = json_decode(file_get_contents('/tmp/temperature.json'), true);
$temperatur = round($file[$sensor], 1);
return $temperatur."°C";
}
echo get_temperature("28-12345678");
echo get_temperature("12-77567332");
echo get_temperature("13-75685893");
?>
Alles anzeigen