Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Das Skript bleibt offenbar schon im Kommando @fsockopen hängen. Sonst müsste es entweder gleich eine Fehlermeldung schmeißen, oder den Erfolg mit der Meldung "Received File Pointer ..." quittieren. Dennoch habe ich die Abfrage des file pointers nochmal etwas sauberer gemacht. Damit läuft das Script durch, sofern die Ausgabe von fsockopen nicht explizit vom Typ Bool ist und den Wert false besitzt.
Bist du sicher dass der Anhang der richtige also neue ist? Ich habe da keinen Unterschied gesehen, außer, dass der Port auf 2323 steht. Musste ich natürlich ändern.
Jedenfalls passiert damit exakt das selbe.
Ja das sind nur minimale Änderungen in den Zeilen 66 und 82, die den Rückgabewert von fsockopen präziser fassen. Das Verhalten bestätigt, dass das PHP-Skript über fsockopen nicht hinaus kommt.
Um das das näher einzugrenzen bräuchte ich entweder ein Testgerät, oder wir brauchen jemanden mit php-Kenntnissen, der so ein Interface besitzt.
Gruß
Wolfram
P.S.: sorry für „2323“. Das sind Überreste meines Basis-Funktionstests.
Ich habe es gewagt und ein Firmwareupdate gemacht. War schon etwas Aufwand, weil ich erst meine alte Siemens rauskramen und wieder anschließen, dann alle KNXD und ETS Gerätschaften wieder auf die Siemens umstellen und die Enertex nach dem Update neu programmieren musste.
Hat aber geklappt und die neue Version ist jetzt 1.062. Als Bonus habe ich jetzt einen Zeitserver. Auch nicht schlecht.
Leider hat das nicht viel, geändert.
Code:
/*******************************************************************************
data
--------------------------------------------------------------------------------
Array
(
[0] => Array
(
[title] => enertex IP-Router
[text] => Connection timed out (110)
)
)
*******************************************************************************/
[{"title":"enertex IP-Router","text":"Connection timed out (110)"}]
Das kommt jetzt aber DEUTLICH schneller. So 10s anstatt 1min.
Die Vorgehensweise erstaunt mich. Einfach das Update draufbügeln, neu programieren fertig. Da brauchts keine andere Schnittstelle, und schon gar keine Umprogramierung der anderen Komponenten, wegen der 10Minuten.
Dank der Unterstützung von enerteguskonnte ich bei mir ein Testgerät in Betrieb nehmen und hatte "Glück": die smartVISU Appliance zeigte dasselbe Verhalten wie bei Sipple. Leider gibt Google für die Kombination Telnet / PHP kaum verwertbare Treffer. Glücklicherweise habe ich aber eine PHP-Klasse gefunden, auf der ich aufbauen konnte. Schlüssel zum Erfolg war dann das Anstoßen der "Verhandlungen" der Optionen - ein Unterschied, den Martin schon gefunden hatte.
Anbei eine erste Version des neuen PHP-Service. Er ist in ./lib/appliance zu kopieren und die Endung muss in '.php' geändert werden. Er wird mit alten Firmware-Versionen, die sich noch mit "ert >" als Prompt melden, nicht ohne Anpassung laufen, aber die Anpassung ist einfach. Der Service fragt jetzt alle mir interessant scheinenden Informationen ab und stellt sie als JSON zur Verfügung. Welche Infos das sind, sieht man, wenn man den Service einmal im debug-Modus aufruft. Ich dokumentiere das noch im Code und muss auch noch ein bisschen aufräumen.
Für Tester bin ich dankbar und auch für Vorschläge, welche Werte in der Appliance angezeigt werden sollen. Man könnte dies ja mit collapsible Blocks machen, um es übersichtlich zu halten.
Denkbar wäre es, über einen Taster in der Visu einen Reboot des IP-Routers auszulösen. Ist das aus Eurer Anwender-Sicht sinnvoll?
Ich teste das im Laufe des Wochenendes und geh mal in mich, was da bei der Anzeige interessant wäre.
Auf jeden Fall das, was bei den wichtigsten Kommandos raus kommt:
version (nur die Softwareversion)
stats
ifconfig
tpconfig (Achtung, wenn man den Zeitserver/Mapper auch verwendet, kommen ZWEI Device Adressen raus)
busload
tunnel (und jeweils die Details mit tunnel x, je nachdem welche Tunnel offen sind, evtl. durch ein Popup)
tunaddr
date
sntp (nur die zweite Zeile)
Einen Reset Knopf bräuchte ich selber wahrscheinlich nicht. Eventuell einen Refresh.
Was bei den Routern noch interessant wäre kann ich nicht sagen.
Interessanterweise war in der Nähe der angegebenen Stelle noch ein Fehler, den meine php8-Version reproduzierbar nicht beanstandet. Nach Beseitigung des Fehlers habe ich den Service unter php7.4 mit smartVISU v3.0.1 und mit dem aktuellen develop getestet, auch auf dem Raspberry. Unten nochmal die aktualisierte Version.
Bei Telnetverbindungen muss man sich selbst um das Timing kümmern und entsprechend Wartezeiten zwischen Lesen und Schreiben einfügen. Timing-Fehler können dann sporadisch auftreten. Es könnte sein, dass hier noch Anpassungen nötig sind. Das muss dann der Test ergeben.
So, die Fehler im error log sind weg, aber ansonsten kommt immer noch schlicht gar nix.
Ich fürchte ich müsste mal php 7.4 aufspielen. Meine Maschinen verwenden alle noch 7.3, das mit Buster kommt.
Geht das ohne Probleme? Muss das alte 7.3 erst runter und dann 7.4 drauf? Oder besser gleich php 8?
Mein Raspberry läuft mit php v7.3.29. An der php-Version sollte es also nicht liegen.
Bisher nutze ich noch das Passwort im IP-Router. Das Script wartet explizit auf die Aufforderung "Password" und sendet dieses.
Wenn Du ohne Passwort arbeitest: wie läuft die Anmeldung über Putty dann? Erscheint die Passwort-Abfrage überhaupt, oder kommt gleich das Prompt "#"?
Das Abschalten des Passworts muss ich dann noch umsetzen. Kannst Du zum Testen in Deinem Interface wieder ein Passwort setzen?
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar