Um dir ein optimales Erlebnis zu bieten, verwenden wir Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wenn du diesen Technologien zustimmst, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn du deine Zustimmung nicht erteilst oder zurückziehst, können bestimmte Merkmale und Funktionen beeinträchtigt werden.
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt.
Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Hallo,
bei mir existiert die daten.html (http://IP-des-AVR/daten.html) nicht!
muss ich eine bestimmte software im net io einspielen?
LG Tom
Hi Christian,
kann es sein das ich die webpage-netio.h noch anpassen muss, so wie du in den folgenden Betrag beschrieben hast.
http://son.ffdf-clan.de/?path=forumsthread&threadid=59
ich habe etwas änliches gemacht!
Ich gebe alle Werte, die ich logen will, in der daten.html aus, aber etwas anders, so:
Wert=Value
Das sieht im Quellcode der webpage.h so aus:
view sourceprint?
1 „OW1Akt=%OW@00 °Crn“
2 „OW1Min=%OW@08 °Crn“
3 „OW1Max=%OW@16 °Crn“
4 „ADC4=%VA@04rn“
5 „Temp=%VA@00 °Crn“
6 „Humi=%VA@01 %rHrn“
7 „Taup=%VA@02 °Crn“
Wenn ja, wo muss ich was in die webpage-netio.h einfügen?
webpage-netio.h
//—————————————————————————-
// Daten Seite
#if HTTP_CSVDATEN
PROGMEM char Page2[] = {
// Ausgabe erfolt im CSV-Format mit Semicolon (;) als Feldtrenner
// 1. Zeile Feldbezeichnung
// 2. Zeile Werte
// Feldbezeichnungen
Eing_A0″;“
Eing_A1″;“
Eing_A2″;“
Eing_A3″;“
Eing_A4″;“
Eing_A5″;“
Eing_A6″;“
Eing_A7
#if USE_PORTD_6IN
„;“
Eing_D2″;“
Eing_D3″;“
Eing_D4″;“
Eing_D5″;“
Eing_D6″;“
Eing_D7
#endif
#if USE_OW
„;“
T00″;“
T01″;“
T02″;“
T03″;“
T04″;“
T05″;“
T06″;“
T07″\r\n“
#else
„\r\n“
#endif
// Werte
„%VA@00;“
„%VA@01;“
„%VA@02;“
„%VA@03;“
„%VA@04;“
„%VA@05;“
„%VA@06;“
„%VA@07“
#if USE_OW
„;“
„%OW@00;“
„%OW@01;“
„%OW@02;“
„%OW@03;“
„%OW@04;“
„%OW@05;“
„%OW@06;“
„%OW@07\r\n“
#else
„\r\n“
#endif
„%END“};
#endif
Gruß Christof
Hallo Christof,
so wie Deine Seite aus sieht, schreibst Du ja alle Werte mit ; hintereinander weg.
Du musst aber Wert=Value ausgeben, sonst erkennt die update.php keine Werte!
Meine daten.htm z.B. sieht so aus:
Viele Grüße
Christian
Hi Christof,
naja, die Ausgabe des Query bestätigt, das KEIEN Werte in die Datenbank geschrieben werden, da diese offenwichtlich nicht aus der daten.html Seite des AVR-NET-IO gelesen werden konnten.
Wie ist denn der Inhalt der daten.html Seite?
Steht da wirklich z.B.:
$AT_Akt = 18,5
$AT_Min = 12,3
$AT_Max = 22,9
Wie sieht die Ausgabe aus, wenn Du die Datei direkt im Browser aufrufst?
Gruß
Christian
Hi Christian
ich habe eine bisschen im I-Net geforscht und habe eine Ausgabe an folgender Stelle eingefügt. Siehe fett gedruckter Text. Das Ergebnis (gekürzt) aus dem DOS Fenster nach dem Ausführen des Scripts siehst du unten. Dein Vorschlag zur Ausgabe über Echo siehst am Ende der Ausgabe.
function getAVRNetIOValue($id) {
$value = NULL;
error_reporting(0);
$avr_net_io = fopen(„http://172.21.47.230/daten.html“, „r“) or die(„Die Werte des AVR-NET-IO konnten nicht ermittelt werden!
<BR>Der AVR-NET-IO ist offline!“);
if ($avr_net_io!=false) {
while ( ($data = fgetcsv($avr_net_io, 1000, „=“)) !== FALSE ) {
$num = count($data);
print „<p> $num fields in line $row: <br>\n“;
$row++;
for ($c=0; $c < $num; $c++) { // FOR-Schleife, um Felder
print $data[$c] . „<br>\n“;
}
if ($data[0] == $id) {
$value = $data[1];
}
}
fclose($avr_net_io);
}
return $value;
}
Ergebniss
width:220px;>Digital</td><td style<br>
width:80px;>auf/zu</td><td style<br>
width:220px;>Digital</td><td style<br>
width:80px;>auf/zu</td></tr><br>
<p> 3 fields in line 25: <br>
<tr><td>D2_</td><td class<br>
grn></td><td>D5_</td><td class<br>
grn></td></tr><br>
<p> 3 fields in line 26: <br>
<tr><td>D3_</td><td class<br>
grn></td><td>D6_</td><td class<br>
grn></td></tr><br>
<p> 3 fields in line 27: <br>
<tr><td>D4_</td><td class<br>
grn></td><td>D7_</td><td class<br>
grn></td></tr><br>
<p> 1 fields in line 28: <br>
</table><br>
<p> 1 fields in line 29: <br>
<br><br>
<p> 3 fields in line 30: <br>
<table class<br>
tbl border<br>
1><br>
<p> 6 fields in line 31: <br>
<tr><th colspan<br>
5>Temperatursensoren</th></tr><tr><td width<br>
200px>1-Wire</td><td width<br>
200px>Ort</td><td align<br>
right>Wert</td><td align<br>
left> </td><td>Min/Max(Tag)</td></tr><br>
<p> 2 fields in line 32: <br>
<tr><td>Sensor 0</td><td>Aussen</td><td align<br>
right>20,7</td><td>°C</td><td>20,7 / 22,1</td></tr><br>
<p> 2 fields in line 33: <br>
<tr><td>Sensor 1</td><td>Innen</td><td align<br>
right>20,9</td><td>°C</td><td>20,9 / 22,1</td></tr><br>
<p> 1 fields in line 34: <br>
</table><br>
<p> 1 fields in line 35: <br>
</div><br>
<p> 2 fields in line 36: <br>
<br><div id<br>
tail>94 Besucher seit Start des Webservers<br>Version V1.0.18 – Basiert auf
Ulrich Radig’s ETH_M32_EX V1.2.5 und diversen Erweiterungen<br>
<p> 1 fields in line 37: <br>
</div><br>
<p> 1 fields in line 38: <br>
</body></html><br>
Auslesen der AVR Werte erfolgreich
temp=Verbindung zum Datenbankserver erfolgreich
Gewaechshaus Werte in Datenbank geschrieben
Verbindung zum Datenbankserver abgebaut
INSERT INTO avr (Sensor0, Sensor0_min, Sensor0_max) values (“, “, “)
Gruß Christof
Hallo Christian,
folgendes wird nach dem Ausführen des Script angezeigt.
C:\Programme\PHP5\php-cgi.exe C:\script\update.txt
X-Powered-By: PHP/5.2.8
Content-type: text/html
Auslesen der AVR Werte erfolgreich
Verbindung zum Datenbankserver erfolgreich
Gewaechshaus Werte in Datenbank geschrieben
Verbindung zum Datenbankserver abgebaut
Guß Christof
Hallo Christof,
hmm, OK.
Dann gib die Werte doch mal über echo aus, also:
echo $AT_Akt;
echo $AT_Min;
echo $AT_Max;
und den Query:
echo $query;
am besten am Ende des Script’s!
Dann siehst Du, was (oder was nicht) in die Datenbank geschrieben wurde.
Gruß
Christian
Hallo Christof,
was zeigt Dir die Komandozeile als Ausgabe an, wenn Du das Skript aufrufst?
Gruß
Christian
Hallo Christian,
Hier meine angepasste update.php. Ich rufe das script über:
C:\Programme\PHP5\php-cgi.exe C:\script\update.txt auf.
Der Aufruf der Datenseite im Browser funktioniert und liefert mir die entsprechenden Werte, auch das Schalten der Ausgänge über die Website funktioniert.
<?php
# —————————————————–
# Datei: update.php
# —————————————————–
# Beschreibung:
# Holt AVR-Werte und schreibt sie in eine Datenbank
# —————————————————–
# Autor: Christian Haeussler
# geändert am: 05.05.2009
# —————————————————–
/* Ausgabe vom AVR-NET-IO: webpage.h -> daten.html
// 1-Wire Sensor-Werte
„AT_Akt=%OW@00\r\n“
„AT_Min=%OW@08\r\n“
„AT_Max=%OW@16\r\n“
*/
function getAVRNetIOValue($id) {
$value = NULL;
error_reporting(0);
$avr_net_io = fopen(„http://IP Adresse NET IO/daten.html“, „r“) or die(„Die Werte des AVR-NET-IO konnten nicht ermittelt werden!<BR>Der AVR-NET-IO ist offline!“);
if ($avr_net_io!=false) {
while ( ($data = fgetcsv($avr_net_io, 1000, „=“)) !== FALSE ) {
$num = count($data);
$row++;
if ($data[0] == $id) {
$value = $data[1];
}
}
fclose($avr_net_io);
}
return $value;
}
/* AVR Werte auslsen */
$AT_Akt = getAVRNetIOValue(„AT_Akt“);
$AT_Min = getAVRNetIOValue(„AT_Min“);
$AT_Max = getAVRNetIOValue(„AT_Max“);
echo „Auslesen der AVR Werte erfolgreich\n“;
/* Verbindung zu mySQL aufbauen, auswählen einer Datenbank */
$link = mysql_connect(„localhost“, „root“, „password“)
or die(„Keine Verbindung möglich: “ . mysql_error() . „\n“);
echo „Verbindung zum Datenbankserver erfolgreich\n“;
mysql_select_db(„avr_db“) or die(„Auswahl der Datenbank fehlgeschlagen\n“);
/* aufbau der SQL Anfrage */
$query = „INSERT INTO avr (Sensor0, Sensor0_min, Sensor0_max,) values „;
$query = $query . „(‚$AT_Akt‘, ‚$AT_Min‘, ‚$AT_Max‘)“;
/* ausführen der SQL Anfrage */
$result = mysql_query($query) or die(„Anfrage:\n\n$query\n\nfehlgeschlagen: “ . mysql_error() . „\n“);
echo „Gewaechshaus Werte in Datenbank geschrieben\n“;
/* schliessen der mySQL Verbinung */
mysql_close($link);
echo „Verbindung zum Datenbankserver abgebaut\n“;
?>
In der Tabelle des SQL Server gibt es jetzt noch folgende Datenfelder:
Feld Typ Kollation
id int(10)
ts timestamp
Sensor0 text utf8_general_ci
Sensor0_max text utf8_general_ci
Sensor0_min text utf8_general_ci
Besten Dank für deine Hilfe
Guß Christof
Hi,
ich habe deine update.php auf 3 Werte die ich aus meinem Pollin Board (Webserber eth_m32_ex_avr-net-io_1_0_18) lesen möchte reduziert. DAs sind „AT_Akt=%OW@00\r\n“
„AT_Min=%OW@08\r\n“
„AT_Max=%OW@16\r\n“
Leider wird in meinen SQL Server nur der Timestamp und die ID geschrieben. Die anderen 3 Felder sind leer. Was mache ich falsch? Kannst du mir helfen?
Gruß Christof
Hallo Christof,
schick mir doch mal Deine update.php evtl. ist da ein Fehler drin.
Oder ruf doch mal die Daten-Seite Deines Net-IO manuell im Browser auf, kommen da Werte?
Viele Grüße,
Christian
Hi,
kann das avr-net-IO-Board auch das Script ausführen? Ich suche eine Lösung die Daten einer CSV-Datei in eine Datenbank im Internet zu übermitteln. Da hilft mir der Aufruf des Boards im home-netzwerk leider nicht weiter. Kann man die Daten automatisiert an eine sql schicken?
Hallo Tobias,
das geht schon, Du müsstest Dir dann im Internet einen Web-Space besorgen mit einer MySQL Datenbank. Hier müsstest Du dann ein PHP-Script hochladen, das Daten anhand der in einer URL übergebenen Werte in die MySQL-DB schreibt. Der AVR-NET-IO müsste dann aus Deinem Heimnetz nur dieses PHP-Script aufrufen und die Werte mit übergeben.
Gruß
Christian
Pingback: AVR-NET-IO als Gewächshaussteuerung | Christian´s Hobby Blog