Hallo und einen schönen Tag an alle.
Zuerst einmal bin ich was Python angeht ein absoluter Neuling.
Aber zu meinem Problem.
Ich habe ein ESP8266 mit Relais so programiert das ich es über WLAN ansteuern kann.
"xxx.xxx.xxx.xxx"/H schaltet das relais ein und gibt H als Wert zurück
"xxx.xxx.xxx.xxx"/L schaltet das Relais aus und gibt L als Wert zurück.
Nun möchte ich das ganze über einen Raspberry per Python Script steuern.
Das Script sieht folgendermassen aus.
-----------------------------------------------------------
import socket
TCP_IP = 'xxx.xxx.xxx.xxx'
TCP_PORT = 80
BUFFER_SIZE = 1024
MESSAGE = "H"
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
s.send(MESSAGE)
data = s.recv(BUFFER_SIZE)
s.close()
------------------------------------------------------------
Beim ausführen des Scriptes über Windows Python 3.9 bekomme ich folgende Fehlermeldung:
-----------------------------------------------------------
============================= RESTART: D:/TEST_2.py ============================
Traceback (most recent call last):
File "D:/TEST_2.py", line 7, in <module>
s.connect((TCP_IP, TCP_PORT))
ConnectionRefusedError: [WinError 10061] Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte
>>>
----------------------------------------------------------
Was mache ich da falsch ?
Python mit ESP8266 Relais
Falsche IP, oder falscher Port, oder unerreichbar. Viel mehr man da nicht sagen.
Der nächste Fehler lauert aber schon: Port 80 und deine Beschreibung legen nahe, dass du deinen ESP per HTTP ansprechen musst. Machst du aber nicht. Du kannst das für sowas simples auch direkt über einen socket machen, aber da Python schon direkt mit der urllib kommt, würde ich die benutzen.
Der nächste Fehler lauert aber schon: Port 80 und deine Beschreibung legen nahe, dass du deinen ESP per HTTP ansprechen musst. Machst du aber nicht. Du kannst das für sowas simples auch direkt über einen socket machen, aber da Python schon direkt mit der urllib kommt, würde ich die benutzen.