Zitat von mac29
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
Dreambox Message senden
Einklappen
X
-
Mach doch mal einen Versuch mit Wireshark: Was geht den vom PC raus, wenn der kommuniziert? In diesem Fall das Protokoll mit dem EibPC gleich aufbauen. Wie schaut denn Dein Code aus?offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
Enertex Produkte kaufen
-
Bitte mal so probieren:
[highlight=epc]
sendtcp(80u16,192.168.1.2,$GET /cgi-bin/message?DieseNachrichtisteinTest HTTP/1.1$,0x0Du08,0x0Au08,0x0Du08,0x0Au08)
[/highlight]
Das CR LF muss als Zahl übertragen werden und keinesfalls als $\r\n$. Außerdem muss es doppelt gesendet werden. Das erste mal als Abschluss des GET-Kommandos, das zweite ist der Abschluss der HTTP-Anfrage.
Kommentar
-
HoiZitat von SnowMaKeR Beitrag anzeigenWenn ich mich recht erinnere, dann wurde im E2 das "cgi-bin" durch "web" ersetzt...
Versuch mal: [highlight=epc]
sendtcp(80u16, 192.168.1.2, $/web/message?text=DieseNachrichtisteinTest&type=1&timeo ut=60$);
[/highlight]
[highlight=epc]
sendtcp(DreamPort, DreamIP, $GET /web/message?text=DieseNachrichtisteinTest&type=1&a mp;timeout=60 HTTP/1.1$,0x0Du08,0x0Au08,0x0Du08,0x0Au08);
[/highlight]
Edit: ging auch nicht.Grüsse Bodo
Fragen gehören ins Forum, und nicht in mein Postfach;
EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;
Kommentar
-
Also ich habe mit Wireshark aufgezeichnet, was weggeht, wenn ich eine Message über den Browser an die Box sende. Die funktioniert so problemlos (der Pfad von Bodo ist auch richtig).
Meine Frage: Braucht es einen Connecttcp zu Beginn oder reicht direkt ein sendtcp?
Falls connecttcp erforderlich, folgt dann ja ein readtcp und erst dann kann ich den sendtcp machen.
Ich habe beides versucht, kein Ergebnis.
Code1:
(Der write Befehl ist nur dazu da, dass ich sicher weiss, dass er in die if-Abfrage geht :-))Code:if change("EG Essen Esstischlampe E/A-1/2/10") then { write ("EG Wohnzimmer Deckenlampen hinten Sofa E/A-1/2/13",EIN); sendtcp(80u16,192.168.1.40,$GET /web/message?text=dies%20ist%20ein%20test&type=2&timeout=5 HTTP/1.1$,0x0Du08,0x0Au08,0x0Du08,0x0Au08) }endif
Code2:
Ich muss nun mal schauen, was wirklich an der Box ankommt. Da ich aber ein geswichtes Netzwerk habe, muss ich da etwas verkabeln.Code:if change("EG Essen Esstischlampe E/A-1/2/10") then connecttcp(80u16,192.168.1.40) endif if event(readtcp(Port,IP,IR_command)) then { sendtcp(80u16,192.168.1.40,$GET /web/message?text=dies%20ist%20ein%20test&type=2&timeout=5 HTTP/1.1$,0x0Du08,0x0Au08,0x0Du08,0x0Au08) }endif
Vielleicht sieht ja jemand gerade einen Fehler.Angehängte Dateien
Kommentar
-
Ja, erst ein connecttcp machen. Ein readtcp brauchst du nicht.Zitat von mac29 Beitrag anzeigenMeine Frage: Braucht es einen Connecttcp zu Beginn oder reicht direkt ein sendtcp?
Falls connecttcp erforderlich, folgt dann ja ein readtcp und erst dann kann ich den sendtcp machen.
Kommentar
-
So, jetzt funktioniert es bereits teilweise. Wenn ich das erste Mal die Esszimmerlampe einschalte (Auslöser für die Message) macht er den Connect.
Wenn ich das zweite mal den Schalter betätige, dann wird die Meldung angezeigt.
Braucht es zwischen Connect und senttcp einen gewisse Wartezeit?
Grüsse Mac29
Code:if change("EG Essen Esstischlampe E/A-1/2/10") then { connecttcp(80u16,192.168.1.40); write ("EG Wohnzimmer Deckenlampen hinten Sofa E/A-1/2/13",EIN); sendtcp(80u16,192.168.1.40,$GET /web/message?text=dies%20ist%20ein%20test&type=2&timeout=5 HTTP/1.1$,0x0Du08,0x0Au08,0x0Du08,0x0Au08); closetcp(80u16,192.168.1.40) }endif
Kommentar
-
So, es ist vollbracht, eine Timeout von 1 Sekunde, und alles funktionert bei mir:
Grüsse Mac29Code:if change("EG Essen Esstischlampe E/A-1/2/10") then { connecttcp(80u16,192.168.1.40) }endif if (after("EG Essen Esstischlampe E/A-1/2/10"==EIN,1000u64)) then{ write ("EG Wohnzimmer Deckenlampen hinten Sofa E/A-1/2/13",EIN); sendtcp(80u16,192.168.1.40,$GET /web/message?text=dies%20ist%20ein%20test&type=2&timeout=5 HTTP/1.1$,0x0Du08,0x0Au08,0x0Du08,0x0Au08); closetcp(80u16,192.168.1.40) }endif
Kommentar
-
Ja. Das connecttcp baut die Verbindung auf und das wird im LAN für gewähnlich ein paar ms dauern. Ne halbe Sekunde Wartezeit sollte völlig ausreichen.Zitat von mac29 Beitrag anzeigenBraucht es zwischen Connect und senttcp einen gewisse Wartezeit?
Kommentar
-
Hoi
Naja ich hab's versucht. Klappt aber leider nicht.
[highlight=epc]
// Dreambox
if ("Deckenlicht Zimmer 1-1/0/19" == EIN) then connecttcp(80u16,10.0.1.6) endif
if (after("Deckenlicht Zimmer 1-1/0/19" == EIN,1000u64)) then {
sendtcp(80u16,10.0.1.6,$GET /web/message?text=Diese%20Nachricht%20ist%20ein%20Test& type=2&timeout=30 HTTP/1.1$,0x0Du08,0x0Au08,0x0Du08,0x0Au08)
}endif
[/highlight]Grüsse Bodo
Fragen gehören ins Forum, und nicht in mein Postfach;
EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;
Kommentar
-
Kannst Du mal den Wireshark aufklappen, sodass man die "Rohdaten" sieht?Zitat von mac29 Beitrag anzeigenAlso ich habe mit Wireshark aufgezeichnet, was weggeht, wenn ich eine Message über den Browser an die Box sende.offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
Enertex Produkte kaufen
Kommentar


Ist ja sonst kein HTTP-Request mehr.
Kommentar