Logga temperaturer med php

Moderator: Telldus

Post Reply
jon
Posts: 3
Joined: Fri Mar 17, 2023 9:45 am

Logga temperaturer med php

Post by jon »

Hej
Baserat på ett tidigare forum inlägg jag såg så har jag skrivit detta script som samlar in information från en temp sensor.
Tyvärr hittar jag inte det tidigare forum inlägget så jag kan inte referera till det.
Bakgrund:
Jag använder HomeAutomation på en debian burk och saknade ett sätt att logga ute temperaturen, homeautomation hade inget färdigbygt så jag knåpade ihop det här scriptet
php code:
-----------------------
<?php
date_default_timezone_set('Europe/Stockholm');
mysql_connect ("localhost","ha","home") or die ('Error: ' .mysql_error());
mysql_select_db ("HomeAutomation");

$s = stream_socket_client('unix:///tmp/TelldusEvents');
while(1){
$str = str_replace("i",":",stream_socket_recvfrom($s,1024));
if (substr($str,0,2) == 13) {
$len = strlen($str) - 19;
$str = substr($str,18,$len);
$arr=explode(":", $str, 30);
$tid = date('Y-m-d H:i:s');
mysql_query ("INSERT INTO temps (sensor_serial, temp_c, date) VALUES ('$arr[2]','$arr[4]','$tid')") or die ('Error: ' .mysql_error());
}
}

?>
-------------------------------------
Spara det i en text fil och starta det med:
php5 filnamn
Det förutsätter att du använder HomeAutomation webgränsnittet annars så får du ändra kontakten med databasen
--------------
mysql_connect ("localhost","ha","home") or die ('Error: ' .mysql_error());
mysql_select_db ("HomeAutomation");
mysql_query ("INSERT INTO temps (sensor_serial, temp_c, date) VALUES ('$arr[2]','$arr[4]','$tid')") or die ('Error: ' .mysql_error());
----------------
Förklaringar till loggningen till mysql
Raden som börjar med: mysql_connect ("Namn på mysqlserver","Användarnamn","lösenord") or die ('Error: ' .mysql_error());
Raden som börjar med : mysql_select_db ("namn på databasen");
Raden som börjar med :mysql_query (Insert into tabelnamn (kolumnnamn,kolumnnamn,kolumnnamn) värden ('ta 3dje delen av strängen', ' 5the delen', ' stoppa in klockslaget från datorn') blir det fel så hoppa ur och visa felmeddelandet
----------------
om du startar med:
php5 filnamn &
så kommer scriptet att köras i bakgrunden och du får tillbaka kontrollen till "kommando tolken" igen det vill säga du kan avsluta fönstret och scriptet fortsätter köras ändå.

Detta script hämtar in information från en temp givare från Clas ohlson
Det kanske funkar rakt av med andra oxså med det finns det inga garantier för, men det kanske är till hjälp för någon.

/jon
Post Reply