php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.06.2009, 18:47  
Neuer Benutzer
 
Registriert seit: 03.06.2009
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
mikeobelo befindet sich auf einem aufstrebenden Ast
Standard Per IP mit fsockopen einen Port abfragen und Daten einlesen !?

Hallo zusammen,

ich habe folgendes Problem,
Ich mache eine nebenberufliche Ausbildung zum Techniker-IT, das bedeutet das ich auch ein Abschlußprojekt machen muss.
Mein Projekt ist das darstellen der Ertragsdaten unserer Schul-Solaranlage auf der Schulhomepage. PHP und SQL sind eigentlich nicht meine Probleme, dort habe ich durch die Schule, recht solide Grundkenntnisse (die mir hier leider auch nicht weiterhelfen!)
Der Wechselrichter ist LAN-fähig und über IP ansprechbar. Mit dem passenden Hersteller-Programm kann der WS probelmlos angesprochen und ausgelesen werden.
Wir möchten aber nicht das Programm benutzen, um den Wechselrichter dauerhaft auszulesen, sondern wollen dies von einem php-Skript, das per crowl alle 10min angestoßen wird, erledigen lassen. Sobald die Daten ausgelesen sind, werden diese dann in eine SQL eingespielt und können abgefragt werden.
Soviel zur Gesamtsituation.

Mein Problem ist jetzt folgendes,
Ich habe per wireshark die Kommunikation zwischen WS und Software mitgelauscht und festgestellt, das immer nur der ein und selbe String an den WS geschickt wird damit er uns die entsprechenden Daten liefert.
PHP-Code:
{FB;05;36|64PAC;UDC;TKK;KDY;KT0;KYR;PRL;SYS;SAL|0D54
Wenn dieser String gesendet wird antwortet der Wechselrichter prompt mit den entsprechenden Daten.
PHP-Code:
{05;FB;57|64:PAC=1D6;UDC=831;TKK=28;KDY=3D;KT0=332;KYR=2DE;PRL=A;SYS=4E24,0;SAL=0|14A3
Ich möchte mit fsockopen eine Verbindung aufbauen (habe das Bsp-Skript von php.net genommen und angepasst) den Befehl an den WS senden, die Daten abwarten und in eine Variable einlesen. Dies kann ich mir dann später per String so zurecht schneiden wie ich es brauche.
Hier das Skript,
PHP-Code:
<?php
    $fp 
fsockopen("172.16.230.41","12345",$errno,$errstr,"10");
    if (!
$fp)
    {
        echo 
"$errstr ($errno)\n";
    }
    else
    {
        
$out  "GET / HTTP/1.1\r\n";
        
$out .= "Host: Wechselrichter\r\n";
        
$out .= "Connection: Close\r\n\r\n";

        
fwrite($fp_data,$fp);
        while (!
feof($fp))
        {
            echo 
fgets($fp128);
        }
        
fclose($fp);
    }
?>
Ich scheitere aber schon an fsockopen.
IP-Adresse und der Port am Wechselrichter stimmen.

Der Browser zeigt mit folgendes an,
PHP-Code:
Warningfsockopen() [function.fsockopen]: unable to connect to 172.16.230.41:12345 (Connection timed outin /home/www/de/biz-worms/schueler/fsit05/krapp/energie/solar/ws.php on line 11
Connection timed out 
(110
Und ich habe jetzt keinen Plan mehr wie ich mich der Lösung nähere....

Kann mir jemand weiterhelfen !?

Vorab vielen Dank für eure Mühen !

Gruß
mikeobelo
mikeobelo ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 04.06.2009, 19:10  
Erfahrener Benutzer
 
Registriert seit: 17.02.2009
Beiträge: 120
PHP-Kenntnisse:
Fortgeschritten
donald123 befindet sich auf einem aufstrebenden Ast
Standard

ich würde an deiner stelle erstmal rausfinden auf welchem port der WS lauscht (12345 scheint mir nicht plausibel), dann würde ich das ganze mit telnet testen und gucken ob deine eingabe das entsprechende resultat liefert und wenn du das hast, kannst du mit php weiter machen (wobei wenn du linux hast, würde ich das holen der daten eher per bash machen und via php nur das ergebnis in deine db eintragen)
donald123 ist offline  
Alt 04.06.2009, 20:34  
Neuer Benutzer
 
Registriert seit: 03.06.2009
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
mikeobelo befindet sich auf einem aufstrebenden Ast
Standard

Da ist was wahres dran mit der Bash, ich glaube aber es läuft ein Windows-Server, werde mich da morgen schlau machen.
Wobei es dann doch egal sein sollte, ob ich eine bash/batch oder ein php skript alle 10min laufen lasse.
Vorteil bei php ich würde nicht auf dem Schulserver rumpfuschen, was mir und den Lehreren mit Sicherheit lieber wäre.....

Der Port stimmt definitv, diesen habe ich auch selbst im WS eingestellt.
Und im Hersteller-Programm gepflegt.....
Über den WS können bis zu 250 weitere WS angeschlossen werden (per RS485-Bus) und ich habe dem WS die Adresse 5 gegeben. Dies musste ich dem Hersteller-Programm ebenfalls mitteilen damit es klappt....
Ich vermute mal das es was mit der Adresse des WS im eigenen Bus zu tuen hat (also der 05), denn mit telnet bekomme ich keine Port-Freigabe bestätigt.

Ich werde mich mit dem Hersteller morgen früh auseinandersetzen....

ABer um nochmal auf das Skript zurück zu kommen, das sollte funzen und die Verbindung aufbauen, damit ich dann im Anschluss meinen String rüberjagen kann....!?
mikeobelo ist offline  
Alt 29.06.2009, 18:26  
Neuer Benutzer
 
Registriert seit: 03.06.2009
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
mikeobelo befindet sich auf einem aufstrebenden Ast
Standard

Hallo zusammen,

ich bin mittlerweile schon etwas weiter und benötige eure Hilfe !

Ich glaube das Problem erkannt zu haben, warum mir der WS nicht antwortet.
Das Hersteller-Programm sendet dem WS eine ganze Zeichenkette...wenn ich über telnet oder putty diese Zeichenkette senden will, sendet er mir jedes Zeichen einzeln.
Somit ist dies warscheinlich nicht für den WS interpretierbar.....gibt es eine Funktion die mir diese Zeichen am Stück sendet !?

PHP-Code:
{FB;05;36|64PAC;UDC;TKK;KDY;KT0;KYR;PRL;SYS;SAL|0D54
//soll am Stück gesendet werden

PHP-Code:
{05;FB;57|64:PAC=1D6;UDC=831;TKK=28;KDY=3D;KT0=332;KYR=2DE;PRL=A;SYS=4E24,0;SAL=0|14A3
//Die erwartete Antwort

Vorab vielen Dank !
mikeobelo ist offline  
Alt 30.06.2009, 20:31  
erc
Erfahrener Benutzer
 
Registriert seit: 02.01.2009
Beiträge: 730
PHP-Kenntnisse:
Fortgeschritten
erc wird schon bald berühmt werden
Standard

Kann es sein das der Wechselrichter mit UDP kommuniziert? (sieht man mit Wireshark)
erc ist offline  
Alt 01.07.2009, 14:44  
Erfahrener Benutzer
 
Registriert seit: 19.06.2009
Beiträge: 837
PHP-Kenntnisse:
Fortgeschritten
Jens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nettJens Clasen ist einfach richtig nett
Standard

Die Dinger sind grad ziemlich in Mode, oder? In einem anderen Forum haben wir mal genau so eine Lösung gebastelt. Dort ist auch noch die Schnittstellenbeschreibung verlinkt...

Wobei Du wahrscheinlich erst mal schauen solltest, ob das mit Deinem Routing alles so passt. TCP und 12345 ist nämlich soweit richtig. Geht denn ein Ping vom Server zum Wechselrichter?

Gruß Jens
Jens Clasen ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
htaccess Daten abfragen PHP Tipps 2004 3 04.06.2009 20:43
[Erledigt] Fsockopen() Frage Auslesen von Daten Quedepi PHP Tipps 2008 9 23.05.2008 11:24
[Erledigt] Wie Daten aus csv-Datei in DB einlesen? Datenbanken 2 12.09.2005 13:00
daten von bildern auf einem anderen server abfragen netti PHP Tipps 2005-2 3 05.08.2005 14:27
Per Webbrowser-Login eingegebene Daten abfragen. PHP Tipps 2005-2 3 03.08.2005 10:31
daten mit positionsangabe einlesen PHP Tipps 2005-2 3 20.07.2005 16:45
[Erledigt] Daten via SSL abfragen? PHP-Fortgeschrittene 6 08.07.2005 18:20
Daten in Datenbank ändern PHP Tipps 2005 3 27.01.2005 14:40
[Erledigt] Wie Daten richtig abfragen ? Datenbanken 9 22.12.2004 20:56
Abfragen und Auswerten von Daten verschiedener Tabellen duerov Datenbanken 1 24.09.2004 11:20
Abfragen und Auswerten von Daten verschiedener Tabellen duerov PHP Tipps 2004 3 24.09.2004 10:12
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05
[Erledigt] Daten in Datenbank einlesen Datenbanken 2 08.08.2004 13:31
Daten aus Html-Formular in eine php-Datei einlesen PHP Tipps 2004 9 09.07.2004 20:02
[Erledigt] mysql Daten abfragen und sortieren von b Datenbanken 2 11.06.2004 09:15

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
port abfragen, php port abfragen, fsockopen telnet, linux port abfragen, ports abfragen, linux ports abfragen, php port abfrage, fsockopen port, fsockopen ip, udp port einlesen php, ip port auslesen, port abfrage script, port abfrage, udp port abfragen, fsockopen ip adresse, http://www.php.de/php-einsteiger/55766-per-ip-mit-fsockopen-einen-port-abfragen-und-daten-einlesen.html, fsockopen ip-adresse, php ip port, telnet abfrage php, php ip port auslesen

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:10 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum