Url im Hintergrund öffnen und wieder schließen

  • Hallo zusammen,

    ich bin komplett neu im Thema Autoit. Google konnte mir bislang leider nicht bei meinem Problem weiterhelfen.

    Und zwar würde ich gern ein Relais durch das aufrufen einer URL Seite ansteuern. Nur soll dies im Hintergrund passieren und das Browser Fenster sich auch direkt wieder schließen.

    Im Vordergrund bekomme ich es mit diesem Code hin. Wie ist dies nun im Hintergrund möglich ? Da kann ich ja nicht einfach Control w zum schließen des Fensters senden.

    ShellExecute("chrome.exe", "http://192.168.0.3/?Rly3=1 --new-window")

    Sleep(3000)

    Send("^w")

    Vielen Dank vorab

    Grüße Patrick

  • Ich würde das so irgendwie machen:

    Code
    Global $remIP = "192.168.0.3"
    Global $remPort = 80
    
    TCPStartup()
    Global $ConnectedSocket = TCPConnect($remIP, $remPort)
    TCPSend($ConnectedSocket,"GET /?Rly3=1 " & @CRLF & @CRLF)
    Global $recv = TCPRecv($ConnectedSocket, 4096)
    TCPCloseSocket($ConnectedSocket)
    TCPShutdown()

    Ungetestet

  • Und zwar würde ich gern ein Relais durch das aufrufen einer URL Seite ansteuern.

    Wenn du uns sagst, was genau das für ein Relais ist, könnten wir dir sicher besser helfen... habe auch ein paar IO-Module (ETH484 - 4 x 16A ethernet relay) mit Relais und die steuere ich "in etwa" so an, wie funkey es gezeigt hat. TCPRecv macht nur Sinn, wenn du die Antwort auch auswertest.

  • Vielen Dank euch für die raschen Antworten und Hilfestellungen. Das ist ja Wahnsinn.

    Das Relais habe ich tatsächlich noch nicht, werde es aber nächste Woche erhalten. Ich wollte nur schon einmal klären, wie es denn überhaupt möglich ist.

    Eigentlich würde ich es gern direkt aus Excel steuern, aber das scheint mir noch so weiteres möglich.


    funkey Danke. Der Code gibt mir noch folgende Fehlermeldung:

    autoit.de/wcf/attachment/89439/

    AspirinJunkie Danke. Werde ich auch testen, sobald ich das Relais habe.


    Bitnugger Danke. Folgendes Relais habe ich mir bestellt: https://de.reichel-versand.de/DEV-ESP32LR42.shtml

    Die Antwort muss ich nicht auswerten, will nur steuern.

  • Im Handbuch steht es sehr gut beschrieben... anstelle PuTTY geht das dann auch mit AutoIt via TCPSend.

    SR Set Relay


    TCP/IP Commands.

    The ESP32LR42 has a built in TCP/IP command set which allows you to control the module

    remotely.

    All commands are sent using plain ASCII text. PuTTY is a good cross platform terminal program to

    use for testing. The TCP/IP port is the one you set-up with the PA command during USB

    configuration. Do not use port 80 as that is reserved for the HTML commands and Webpage.

    SR Set Relay.

    This is used to turn a relay on or off

    To turn Relay 1 on:

    SR 1 1

    The first number is the relay number from 1 to 8.

    The second number is 1 or 0, on or off.

    So turn turn relay 1 off again:

    SR 1 0

    The command will respond with ok or fail.

    SR 1 1

    ok

    SR 1 6

    fail < 6 is not valid, only 1 or 0 for on/off

    SR 9 1

    fail < relay 9 does not exist.

    Dann sollte das etwa so funktionieren:

    Einmal editiert, zuletzt von Bitnugger (24. September 2021 um 14:41)

  • Bitnugger

    Folgendes ging privat zwischen Bitnugger und mir, aber ich gebe Bitnugger Recht, dass kann ruhig alles in den Ursprungspost. Kann ja noch eine gute Hilfestellung für andere User sein :thumbup:

    Frage:

    Hi Bitnugger,

    vielen Dank noch einmal für deine super schnelle und ausführliche Unterstützung, bzw. Zusendung des Codes. Nun ist das Relais eingetroffen und ich scheitere nun schon am konfigurieren. Da war ich wohl etwas blauäugig. :Face:

    Ich kann nicht die IP-Adresse einstellen bzw. mich mit dem Relais im WLan einloggen um die übrigen Einstellungen durchzuführen.

    Ich schreibe dir das hier, weil es dann ja doch schon Off Topic ist und du ja wohl Erfahrung mit WLAN Relais hast. Wenn dir das hier zu weit geht, habe ich auch Verständnis dafür. Ansonsten wäre ich dir dankbar wenn du einen Blick auf das Bild werfen könntest und vielleicht eine schlaue Idee hast, wie ich weiter verfahren müsste.

    Wenn ich das richtig sehe, will sich das Board in das WLAN Netz "Workshop" einloggen. Kein Plan wo das sein soll, finde es nicht über die Netzwerkumgebung bei meinem PC. Oder sehe ich das falsch ?

    PS: Router ist die Connect Box von Unitymedia

    Vielen Dank vorab

    Grüße Buscape23


    Antwort:

    Ich wüßte nicht, was an deinen Fragen Off Topic sein sollte... wenn andere User sich auch dieses Modul kaufen, werden sie wohl auch die Probleme haben... und wenn ich dir privat darauf antworte, bekommen sie das ja nicht mit - dann muss ich (oder andere User) das nochmal erklären... oder du/ich schreiben die Antworten zusätzlich in deinen ursprünglichen Thread... was aber dann doppelte Arbeit ist.

    Ein WLAN-Modul (Rleay) hatte ich noch nicht, will mir aber ein paar kaufen, wenn ich mal wieder zu Geld komme... das Problem hättest du aber sicher auch mit einem LAN-Modul.

    Bei mir lag es daran, dass das LAN-Modul nur mit 10 Mbit/s übertragen kann, mein Router (FritzBox 7590) unterstützt aber nur 100 Mbit/s und 1000 Mbit/s!

    In der Anleitung zu meinem Modul war von 10 Mbit/s allerdings nichts zu lesen und der Hersteller hatte leider auch keine Idee, woran es liegen könnte.

    Ich hatte in der Tat eine "schlaue Idee"... denn ich bin dann selbst drauf gekommen, dass es evtl. an der Übertragungsgeschwindigkeit liegen könnte... habe mir dann einen alten Switch genommen, der mit 10 Mbit/s und 100 Mbit/s arbeiten kann und habe das Modul dann daran angeschlossen: Modul <=> Switch <=> Router.

    Zitat
    Zitat von Buscape23 Wenn ich das richtig sehe, will sich das Board in das WLAN Netz "Workshop" einloggen.

    Richtig... kannst du weiter oben im Bild ja auch sehen... SSID: Workshop... die es dann sicher in der Testumgebung des Herstellers gibt, um die Module zu testen, bevor sie versendet werden. Die muss du

    dann natürlich an deine Umgebung anpassen.

    Zitat von ESP32LR42 - 4 x 16A WIFI Relais-Modul - Konfiguration Das ESP32LR42 wird über USB mit einem Terminalprogramm an einem PC eingerichtet. Gut geeignet ist beispielsweise

    Zitat

    PuTTY. Der Serialport sollte auf 115200 baud, 8 bit, 1 stop, no parity, no flow control gesetzt sein.

    Die SSID und das WIFI-Passwort musst du auf jeden Fall erst auf dem Modul konfigurieren, bevor du eine Verbindung herstellen kannst.

    Code

    Code
    SS    This sets the SSID.
    Bsp.: SS "FRITZ!Box 7590 RS 5G"
    
    PW    Sets your networks WIFI password.
    Bsp.: PW "Geheim0815!"

    Daran, dass du bei IP: 0.0.0.0 stehen hast und kein DHCP-Server angegeben ist, kannst du ableiten, dass dein Modul keine Verbindung im Netzwerk herstellen konnte. Die IP 0.0.0.0 bedeutet, dass dein Modul keine IP bekommen hat, weil kein DHCP-Server konfiguriert wurde... oder weil andere Fehler (10 Mbit/s wird nicht unterstützt) aufgetreten sind... und ohne IP geht ja mal eben gar nichts!

    Fazit:

    Schaue in die Anleitung deines Moduls oder frage beim Hersteller nach, ob das Modul mit 100 Mbit/s oder nur 10 Mbit/s übertragen kann.

    Wenn das Modul nur 10 Mbit/s kann, musst du dir einen Switch besorgen, der mit 10 Mbit/s und 100 Mbit/s arbeiten kann, denn ich bin mir ziemlich sicher, dass die Connect Box von Unitymedia das nicht kann... solltest du aber sicherheitshalber selbst überprüfen.

    MQTT Server

    So... denkst du nicht auch, dass andere User, die sich das Modul gekauft haben, meine Antworten hier sicher auch gerne lesen würden?

    Gruß Bitnugger

  • Bitnugger

    Ich habe nun eine technische Frage beim Lieferanten bzgl. der Übertragungsgeschwindigkeit gestellt.

    Laut den Unterlagen von der Connect Box kann sie aber sowohl 10mbit/s als auch 100mbit/s, wenn ich das richtig deute ?! Siehe Anhang.

    DHCP Server ist freigegeben.

    Der Serialport ist auf 115200 baud, 8 bit, 1 stop, no parity, no flow control.

    Wenn ich "SS" zum setzen der SSID eingebe, dann kommt String not found.

    Mal schauen was der Lieferant dazu schreibt. Noch bin ich zuversichtlich :S

  • Das war der falsche Anhang.

    Nun dann, aus dem Handbuch der Connect Box:

    "Mit den 10/100/1000 Mbit/s Ethernet-Anschlüssen können Sie

    Ihre Computer und Endgeräte nicht nur mit dem Internet sondern

    auch untereinander vernetzen. Verbinden Sie bis zu 253 Geräte

    mit der Connect Box – z.B. Computer, Laptops, Tablets, Smart-

    phones, Drucker und andere Multimedia-Geräte."

  • Mit den 10/100/1000 Mbit/s Ethernet-Anschlüssen

    Ok, am Router sollte es demnach also nicht liegen... dann liegt es wohl daran, dass du dein Modul mit Putty (via USB) nicht richtig konfiguriert hast. Hast du die Einstellungen (SSID und PW) überprüft? Dann zeige mal die Ausgabe...

  • Bitnugger

    Die Konfig ist das Problem. Ich kann zum Modul nur die Befehle "ST" für Statusabfrage und "RB" für Reboot senden.

    Bei den anderen Befehlen "SS", "PW" usw. kommt "SSID string not found" oder "Unknown Command" zurück.

    Beim Lieferanten habe ich dbzgl. gestern schon nachgefragt. Noch ohne Antwort.

    Anbei noch meine Einstellungen von Putty. Da sollte ja eigentlich alles richtig sein, sonst würde ich ja auch keine Statusabfrage bekommen bzw. Reboot senden können ?!

  • Ja, deine Einstellungen für Putty sind richtig, da du ja den Status ermitteln kannst.

    "SSID string not found"

    Hm, dann wurde der Befehl ja ausgeführt... aber eben die SID nicht gefunden... bist du sicher, dass die richtig ist?

    Hast du das so gemacht?

    SS "<Meine SSID>"

    Bei mir wäre das dann so:

    SS "FRITZ!Box 7590 RS 5G"

    PW "Geheim0815!"

    Ich schaue aber noch mal in die Anleitung, ob ich da was falsch interpretiert habe... bin gespannt, was der der Lieferant antwortet.

  • OMG. Ich habe mich selten dämlich angestellt. Man lernt halt nie aus. :Face::rofl:

    Es funktioniert einwandfrei. Kann die Relais aus Excel ansteuern.

    Ich habe einfach nur das "SS" gesendet und bin davon ausgegangen, dass er mir eine Liste der verfügbaren WLAN Netzwerke ausgibt. Nun wo ich es dann endlich mal begriffen habe, ging es relativ easy und hat sich dann in mein Netz eingeloggt.

    Mit folgendem Code arbeite ich nun: tRead('http://192.168.0.3/?Rly3=1')

    Bitnugger

    Vielen Dank für die Zeit und Energie die du da rein gesteckt hast.

    AspirinJunkie
    Vielen Dank für den Code, Funktioniert einwandfrei.

    Tolle Leute hier :klatschen:

    PS: Werde mich bestimmt noch einmal bzgl. einer Spotify Geschichte melden.