Hallo an alle die mit dem NET-IO arbeiten Ich habe ein Net-IO Board unter www.joseffranz.dyndns-remote.com am laufen. Da läuft die Radig Software drauf ,etwas abgewandelt. Man kann die analogen Daten per PHP Sript irgendwie abhohlen. Ich habe auf einen externen Rechner PERL installiert. habe aber keine ahnung von PHP . Ziel ist es die analogen werte vom NET-IO zu loggen. Bitte um Hilfe. wenn ich "perl func.php" aufrufe kommt eine Fehlermaeldung auf Zeile 1. Ist sicherlich nur eine function ?? <? php # ------------------------------------------------ # Datei: func.php # ------------------------------------------------ # Beschreibung: # Stellt zentrale Funktionen zur Verfuegung: # - getAVRNetIOValue() # ------------------------------------------------ # Autor: Christian Haeussler # geändert am: 19.01.2009 # ------------------------------------------------ function getAVRNetIOValue($id) { $value = NULL; $handle = fopen("http://joseffranz.dyndns-remote.com/daten.html", "r") or die("Die Werte des AVR-Net-IO konnten nicht abgerufen werden!"); while ( ($data = fgetcsv($handle, 1000, "=")) !== FALSE ) { $num = count($data); $row++; if ($data[0] == $id) { $value = $data[1]; } } fclose($handle); return $value; } ?>
<?PHP sollte es heißen, weis aber nicht ob das auch die Lösung ist..
Juppo Nini schrieb: > wenn ich "perl func.php" aufrufe kommt eine Fehlermaeldung auf Zeile 1. > Ist sicherlich nur eine function ?? also php muss man mit php und nicht mit perl starten. Perl hat nichts mit php zu tun. Es sind 2 getrennte spachen und es gibt 2 verschienden interpreter dafür.
Einen, der sich damit auskennt. Der kann Dir auch gleich die Rechtschreibpruefung einschalten. citb
Juppo Nini schrieb: > was muss ich für windows nehmen ? was du willst, es ist nur eine ganze einfach webanfrage. Dafür kann man so ziehmlich jeden Programmiersprache verwenden. Was willst du später damit machen, welche Sprache kannst du? Unter windows kann man es mit batch und wget perl windows scripting host c# c++ usw machen.
raketenfred schrieb: > schnapp dir mal xampp > das ist für anfänger sehr gut geeignet und was soll er damit? Er will irgendwie werte loggen. Dafür braucht er keinen webserver sondern ein webclient.
hallo nochmal ich möchte die analogen werte des net-io in einen einstellbaren zeitfenster auf den windows rechner loggen. verbindung über dyndns geht das auch mit get und post ?? Wie muss dann das html sript auf dem net-io aussehen ? das php hatte ich gefunden. man schreibt das könnte dann auf dem ftp-server laufen und per cron jop zyklisch aufrufen. Gruß Juppo
Juppo Nini schrieb: > hallo nochmal > > ich möchte die analogen werte des net-io in einen einstellbaren > zeitfenster auf den windows rechner loggen. gut > verbindung über dyndns ist egal aber gut zu wissen > geht das auch mit get und post ?? ich kenne zwar das NET-IO nicht aber ich vermute mal get > Wie muss dann das html sript auf dem net-io aussehen ? es gibt kein html script. Wenn du mit dem browser das richtige sieht wird es wohl schon stimmen. > das php hatte ich gefunden. > man schreibt das könnte dann auf dem ftp-server laufen und per cron jop > zyklisch aufrufen. wozu den aufwand kann der windows rechner nicht direkt as netio abfrage? lade dir mal wget für windows runter und spiele damit rum wget http://joseffranz.dyndns-remote.com/daten.html
Hallo der controller hat keine fat ,sonder er arbeitet im ram. deshalb ist "daten" auch nicht verhanden. Gruß juppo
juppo schrieb: > deshalb ist "daten" auch nicht verhanden. > > Gruß juppo Und wieso ist dann da was zu sehen? citb
ob /daten oder /main ist irgend wie egal. überlegung ist ob ich mit wget an den variablen von net-io komme. juppo
auf deinem NET-IO liegt die Datei 'data.json', die u.a. die aktuellen Werte enthält, und vom Browser alle 500ms geladen wird. Um es möglichst einfach zu machen lege dir auf dem NET-IO eine Datei an, die <b>nur</b> die Messwerte enthält, die du brauchst. Die Datei lädst du zyklich z.B. mit AutoIt (ist rech einfach) und liest die Werte aus der Datei aus. Sascha
Moin So dann bekomme ich meine Werte im Browser zu sehen. Wie kan ich diese in einer Datei ablegen ?
Hallo und Guten morgen Ich bin ein Stück weiter mit mein Projekt. Möchte Daten vom NET-IO Board auslesen. Das PHP Sript läuft super mit der Orginalsoftware. Es wird getadc 1 aufgerufen und die Daten werden in einer Datei mit Time Stempel gespeichert. Nun versuche ich die funktion "getadc" oder andere "fwrite($sock,"IP \r\n");" aufzurufen und auch in einer Datei zu speichern. Leider bekomme ich nur "0" zurück. Wie macht die Orginalsoftware von POLLIN das ? oder wie muss ich die bei der function zurückgeben ? zb: void command_ip (void) { write_eeprom_ip(IP_EEPROM_STORE); (*((unsigned long*)&myip[0])) = get_eeprom_value(IP_EEPROM_STORE,MYIP); usart_write("My IP: %1i.%1i.%1i.%1i\r\n",myip[0],myip[1],myip[2],myip[3]); }
1 | <?php
|
2 | |
3 | /*
|
4 | Programm "avr_poll.php" wird jede Minute über "Geplante Tasks" aufgerufen:
|
5 | "c:\php\php-win.exe avr_poll.php"
|
6 | |
7 | Parameter:
|
8 | Rv=2210 Ohm
|
9 | UFühler=4,98V
|
10 | Uref=3,42V
|
11 | |
12 | -> Temp=(Digit-401)/2,5
|
13 | |
14 | */
|
15 | |
16 | |
17 | $path=".\\"; |
18 | //$path="c:\xampp\php";
|
19 | $avr_adresse="192.168.0.91"; |
20 | $avr_port="23"; |
21 | |
22 | function make_filename() { |
23 | global $path; |
24 | // $fname=$path.'Heizung_'.date('m_Y').'.csv';
|
25 | $fname=$path.'TEST_NETIO'.date('m_Y').'.txt'; |
26 | if (!file_exists($fname)) { |
27 | $hd=fopen($fname,"w"); // Überschrift, wenn Datei neu |
28 | fwrite($hd,"Datum / Zeit;Taußen;Tvor;Trück;Brenner\r\n"); |
29 | fclose($hd); |
30 | }
|
31 | return($fname); // ".\Heizung_09_2010.csv" |
32 | }
|
33 | |
34 | |
35 | |
36 | // ---------------------- Main() ------------------------
|
37 | |
38 | |
39 | |
40 | $sock = @fsockopen($avr_adresse, $avr_port, $errno, $errstr, 15); |
41 | if ($sock===FALSE) |
42 | exit; // raus, wenn offline (nach 15 Sek.) |
43 | fwrite($sock,"initlcd\r\n"); // zu Beginn das LCD initialisieren |
44 | fread($sock,128); // void: response !immer! abholen! |
45 | fclose($sock); |
46 | |
47 | // ------------------------------------------------------
|
48 | |
49 | $sock = @fsockopen($avr_adresse, $avr_port, $errno, $errstr, 15); |
50 | fwrite($sock,"IP \r\n"); |
51 | //$ret1=trim(fread($sock,128)); // Aussentemperatur
|
52 | $ret1=fread($sock,128); // Aussentemperatur |
53 | usleep(1000); |
54 | /*
|
55 | fwrite($sock,"getadc 2\r\n");
|
56 | $ret2=trim(fread($sock,128)); // Vorlauftemperatur
|
57 | usleep(1000);
|
58 | |
59 | fwrite($sock,"getadc 3\r\n");
|
60 | $ret3=trim(fread($sock,128)); // Rücklauftemperatur
|
61 | usleep(1000);
|
62 | */
|
63 | fwrite($sock,"getadc 4\r\n"); |
64 | $ret4=trim(fread($sock,128)); // indiktiver Magnetventil-Sensor |
65 | |
66 | // ------------------------------------------------------
|
67 | |
68 | $datetime=date("d.m.Y H:i"); |
69 | $lcd1="writelcd 1.$datetime\r\n"; |
70 | |
71 | //$taussen=($ret1-401)/2.50; // lt. Excel s.o.
|
72 | $taussen=($ret1); // lt. Excel s.o. |
73 | $tvor=($ret2); |
74 | $trueck=($ret3); |
75 | |
76 | if ($ret4>50) { // muss Schwelle überschreiten |
77 | $brenner="1"; |
78 | $brenner_sternchen="*"; |
79 | } else { |
80 | $brenner="0"; |
81 | $brenner_sternchen=" "; |
82 | }
|
83 | |
84 | $lcd2="writelcd 2.".sprintf("Ta%3d Tv%2d Tr%2d%1s\r\n",round($taussen),round($tvor),round($trueck),$brenner_sternchen); |
85 | |
86 | |
87 | fwrite($sock,$lcd1); // "13.09.2010 17:46" |
88 | fread($sock,128); |
89 | |
90 | fwrite($sock,$lcd2); // "Ta-10 Tv55 Tr35*" |
91 | fread($sock,128); |
92 | |
93 | fclose($sock); // fertig beim AVR-Board |
94 | |
95 | // ------------------------------------------------------
|
96 | |
97 | $temps=sprintf("%.1f;%.1f;%.1f",$taussen,$tvor,$trueck); |
98 | $temps=str_replace(".",",",$temps); // deutsches Format: Fließzahl mit "," |
99 | $zeile=sprintf("%s;%s;%s\r\n",$datetime,$temps,$brenner); |
100 | // "13.09.2010 21:13;5,7;45,3;35,0;1"
|
101 | |
102 | $fname=make_filename(); // Datei ggf. neu anlegen |
103 | $hd=fopen($fname,"a"); |
104 | fwrite($hd,$zeile); // Zeile wegschreiben |
105 | fclose($hd); |
106 | |
107 | |
108 | ?>
|
Juppo Nini schrieb: > Nun versuche ich die funktion Zumindest für das testen wäre es sicher ungemein hilfreich bei fsockopen nicht alle Fehler mittels des vorrangestelltem @ zu unterdrücken ;) Ansosnten scheint mir das alles doch recht optimistisch programmiert zu sein, hast du es den schonmal mit einem minimalistischem Programm und ein paar Debugausgaben probiert?
Hallo Wie schon geschrieben läuft es mit der Orginal Pollin Software. Git es dazu die Sourcen ? Bin auch soweit das mit der Radig software ich die funktionen über realterm telnet (192.169...) ansprechen kann und die ausgeführt werden. "ad CRLF" es werden die werte c1,c2,c3 zurückgesendet. zb. in cmd.c von AVR void command_ad (void) { unsigned char c1 = 101; unsigned char c2 = 102; unsigned char c3 = 103; usart_write ("%2i%2i%2i\r\n",c1,c2,c3); lcd_print(1,0,"%s","command_ad"); // return(c1); // usart_write ("%i",193); } dann hab ich mir gedacht das das PHP Sript die funktion "ad" auch aufruft. aber dem ist nicht so ,sehe ich an der lcd ausgabe. $sock = @fsockopen($avr_adresse, $avr_port, $errno, $errstr, 15); fwrite($sock,"ad \r\n"); //$ret1=trim(fread($sock,128)); // Aussentemperatur $ret1=fread($sock,128); // Aussentemperatur usleep(1000); das PHP Sript habe ich nicht selber geschrieben sonder irgendwo gefunden. Macht aber genau das was ich möchte. Gruß Juppo
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.