andreas.kolbe Geschrieben October 4, 2013 at 12:21 Geschrieben October 4, 2013 at 12:21 Hallo alle zusammen, ich bin am verzweifeln, verwende die PHP.exe um unter Windows das simple Minimalbeispiel zum TemperatureBricklet zum laufen zu bekommen. Habe schon verschiedene PHP-Versionen (5.4.13, 5.4.20) unter Win2012 und Win8 ausprobiert. Die Bindings sind nicht als PEAR-Paket installiert sondern gem. Anleitung lokal kopiert (alles in einem Pfad). Der Brick und das Bricklet sind vom BrickV aus ansprechbar und auslesbar. Wenn ich dann aber das PHP-Skript von der Eingabeaufforderung mittels php.exe x.php starte, stirbt das Skript. Durch Einbau verschiedener Debug-Punkte lässt sich das auf den $ipcon->connect zurückführen. Der wirft allerdings keinen Fehler, selbst my try...catch nichts erkennbar. Hat jemand eine Idee, wo ich weitersuchen kann? Hier das Skript (kommt Euch bestimmt bekannt vor)... <?php require_once('IPConnection.php'); require_once('BrickletTemperature.php'); use Tinkerforge\IPConnection; use Tinkerforge\BrickletTemperature; $host = '192.168.0.10'; $port = 4223; $uid = '8jm'; // Change to your UID $ipcon = new IPConnection(); // Create IP connection $t = new BrickletTemperature($uid, $ipcon); // Create device object $ipcon->connect($host, $port); // Connect to brickd // Don't use device before ipcon is connected // Get current temperature (unit is °C/100) $temperature = $t->getTemperature() / 100.0; echo "Temperature: $temperature °C\n"; echo "Press key to exit\n"; fgetc(fopen('php://stdin', 'r')); $ipcon->disconnect(); ?> Viele Grüße vom frustrierten Andreas Zitieren
Strolch Geschrieben October 4, 2013 at 14:20 Geschrieben October 4, 2013 at 14:20 Moin Andreas, nur um sicher zu sein: Du sprichst das Bricklet über eine Ethernet Master Extension an, also nicht an Deinem Rechner über USB steckend, ja? Kommst Du denn auf das MasterBrick dort wenigstens (da gibt es ja auch einen Temperaturwert zum Auslesen...taugt nix, aber zeigt, ob die Config rennt)... Cu Strolch Zitieren
andreas.kolbe Geschrieben October 4, 2013 at 20:01 Autor Geschrieben October 4, 2013 at 20:01 Hallo Strolch, ja, auf TF-HW-Seite habe ich ein Master Brick mit ner Ethernet-Extension, via PoE versorgt, mit nem Temperature-Bricklet dran. Die Bindings sind V2.0.10, HW gem. Update-Check im BrickV up to date. Ich habe nun einfach mal die ExampleStackStatus.php als Grundlage genommen, die stirbt ganz genauso an der $ipcon->connect <?php require_once('IPConnection.php'); require_once('BrickMaster.php'); use Tinkerforge\IPConnection; use Tinkerforge\BrickMaster; $host = '192.168.0.10'; $port = 4223; $uid = '6xhvDs'; // Change to your UID $ipcon = new IPConnection(); // Create IP connection $master = new BrickMaster($uid, $ipcon); // Create device object $ipcon->connect($host, $port); // Connect to brickd // Don't use device before ipcon is connected // Get voltage and current from stack (in mV/mA) $voltage = $master->getStackVoltage(); $current = $master->getStackCurrent(); echo "Stack Voltage: " . $voltage / 1000.0 . " V\n"; echo "Stack Current: " . $current / 1000.0 . " A\n"; echo "Press key to exit\n"; fgetc(fopen('php://stdin', 'r')); $ipcon->disconnect(); ?> Habe schon überlegt, ob die Windows-Firewall im Weg steht? Muss ich Regeln für ausgehenden oder eingehenden Traffic einrichten? Vielen Dank für Deine Unterstützung! Gruß Andreas Zitieren
Nemo Geschrieben October 5, 2013 at 17:05 Geschrieben October 5, 2013 at 17:05 Hallo Andreas, hast du mal versucht das Stack direkt über USB anzusprechen, da du dann ja die Firewall umgehst. Gruß, Jakob Zitieren
andreas.kolbe Geschrieben October 5, 2013 at 17:17 Autor Geschrieben October 5, 2013 at 17:17 Hallo Jakob, über USB ist das alles kein Problem. Als Schnellschuss ohne viel Nachdenken habe ich auch schon Firewall-Regeln eingerichtet, incoming und outgoing für php.exe alles erlauben... und dann wieder über Ethernet probiert - hat auch nicht geholfen. Ich bin ratlos... Gruß Andreas Zitieren
Strolch Geschrieben October 5, 2013 at 18:22 Geschrieben October 5, 2013 at 18:22 Moin, ich muss noch weiter dumme Fragen stellen - was auch daran liegt, dass ich das Ethernet-Modul noch nicht habe : [*]Also lokal per USB rennt das Ding, ja? d.h. der Dienst unter Windows läuft? [*]Das Ethernet-Modul musst Du ja konfigurieren bevor Du es das erste Mal ins Ethernet hängst - da stimmen auch Gateway, Netmask usw? [*]wenn Du ein Telnet auf den Host:Port aufmachst, geht der durch oder kommt da "no answer" schnell zurück? Cu Strolch Zitieren
Nemo Geschrieben October 5, 2013 at 18:24 Geschrieben October 5, 2013 at 18:24 Hallo Andreas, eine andere Idee die ich noch hätte wäre, den Stack über USB mit Strom zu versorgen und dann das ganze nochmal zu versuchen. Ansonsten ist es mir mal passiert, dass ich die falsche IP-Adresse eingegeben habe. Ich selber lasse bei mir auch Tinkerforge über PHP laufen, allerdings nutze ich XAMPP unter Windows und da konnte ich meine WIFI-Extension allerdings ohne Probleme direkt über PHP ansprechen. Gruß, Jakob Zitieren
Nemo Geschrieben October 5, 2013 at 21:58 Geschrieben October 5, 2013 at 21:58 Hallo Andreas, ich habe gerade nochmal ein bisschen hier im Forum rungeschaut und bin durch Zufall auf einen alten Post gestoßen in dem es um eine änliche Problematik ging. http://www.tinkerunity.org/forum/index.php/topic,519.msg2830.html#msg2830 Daher kam mir jetzt einfach mal die ganz einfache Idee, schalte mal deine Firewall komplett aus und versuche es dann nochmal. In dem Beitrag ging es auch um das Freischalten von Ports unter Windows. Link zum freischalten eines Ports unter Windows: http://windows.microsoft.com/de-at/windows7/open-a-port-in-windows-firewall Zitieren
andreas.kolbe Geschrieben October 6, 2013 at 07:22 Autor Geschrieben October 6, 2013 at 07:22 Hallo Jakob, vielen Dank für Deine Arbeit... Also, netzwerkseitig erreiche ich die Ethernet-Extension (ich sehe am Switch den Port "up" mit PoE-Versorgung; ich sehe auf dem DHCP, dass der Lease geholt wurde; ich bekomme einen Ping zurück, sowohl über DNS-Auflösung als auch über IP-Adresse). Habe gerade mal die Firewall KOMPLETT ausgeschaltet - läuft auch weiterhin nicht. Vielleicht ist die Extension fehlerhaft? Das habe ich mich noch nicht gefragt, ich werde gleich mal meine zweite Ethernet-Extension auspacken... Gruß Andreas Zitieren
andreas.kolbe Geschrieben October 6, 2013 at 07:27 Autor Geschrieben October 6, 2013 at 07:27 Hallo Strolch, gibt keine Dummen Fragen... erst recht nicht, wenn Du sie stellst, um mir zu helfen!!! [*]lokal per USB rennt das Ding und der Dienst unter Windows läuft! [*]TCP/IP-Config kommt vom DHCP, mit den selben Gateway-, Netmask-, ...-Einstellungen wie mein ganzer LAN-Zoo [*]Telnet auf den Host:Port geht durch, ich bekomme kein "no answer" oder sowas - Allerdings: ich bekomme keine Meldung in Klartext, sowas wie ne MOTD oder so gibts offenbar nicht. Bin aber auch mit dem Protokoll, dass das gesprochen wird, nicht vertraut - habe angenommen, dass das okay ist (?) Gruß Andreas Zitieren
andreas.kolbe Geschrieben October 6, 2013 at 07:48 Autor Geschrieben October 6, 2013 at 07:48 Öhm, hallo nochmal allen freundlichen Mithelfern! Mir ist gerade aufgefallen, dass ich mich nun ein wenig verrannt habe. Ich habe aus den Augen verloren, dass der BrickV ja kontinuierlich OHNE PROBLEME Kontakt mit dem Brick, der Extension und dem Bricklet bekommt. Das Problem dürfte damit eigentlich nicht an Firewall, TF-Hardware, Netzwerk o.ä. liegen. Ich muss das Problem im installierten PHP und den Bindings suchen... Stimmt ihr mir da zu? - Werde mit diesem neuen Gedanken nochmal einsteigen. Gruß Andreas Zitieren
Nemo Geschrieben October 6, 2013 at 09:26 Geschrieben October 6, 2013 at 09:26 Hallo Andreas, wenn der BrickV ohne Probleme alles anzeigt und eine Verbindung hat, dann muss es an deinem Programm liegen. Was PHP angeht kann ich dir helfen, allerdings kenne ich mich mit der Windows-.exe-Geschichte nicht aus. Ich kann mal versuchen dein Programm über die WIFI-Extension laufen zu lassen, wenn ich wieder zu Hause bin. Wo bekomme ich denn diese PHP.exe her? Gruß, Jakob Zitieren
andreas.kolbe Geschrieben October 6, 2013 at 16:05 Autor Geschrieben October 6, 2013 at 16:05 Hallo Jakob, das ist sehr nett!!! Die php.exe ist Bestandteil der Windows-Distribution von PHP, wenn Du das Archiv runterlädst und in ein Verzeichnis entpackst, findest Du darin die php.exe. Von der Kommandozeile aufgerufen, kann sie ein Skript ausführen mit D:\pfad\zu\php\php.exe X:\pfad\zum\skript.php Gruß Andreas Zitieren
photron Geschrieben October 7, 2013 at 11:19 Geschrieben October 7, 2013 at 11:19 Das Problem ist, dass die Sockets Extension standardmäßig nicht aktiviert ist in der Windows-Distribution von PHP, die es auf der PHP Webseite zum herunterladen gibt. Du musst in der php.ini folgende Zeile einfügen: extension=ext/php_sockets.dll Mir war bis eben nicht bekannt, dass die Socket Funktionen eine Extension sind. Daher ist das bisher noch nicht dokumentiert, ich werde das verbessern. Zitieren
photron Geschrieben October 7, 2013 at 11:51 Geschrieben October 7, 2013 at 11:51 Die Dokumentation listet jetzt bcmath und sockets als benötigte Extensions auf und die nächste Version der PHP Bindings wird prüfen ob bcmath und sockets Extension verfügbar sind und sich ansonsten per Exception beschweren. Zitieren
andreas.kolbe Geschrieben October 7, 2013 at 16:09 Autor Geschrieben October 7, 2013 at 16:09 Juchuhhh!!! Ich muss nicht mehr an mir selbst verzweifeln... Vielen Dank für die Unterstützung - das gilt Euch allen. *strahl* LG Andreas P.S.: Soll heißen: jetzt läufts! Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.