URL senden geht aber nicht

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Benutzeravatar
blackhole
Beiträge: 3730
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 587 Mal

Re: URL senden geht aber nicht

Beitrag von blackhole » 23.06.2019, 16:30

alchy hat geschrieben:
23.06.2019, 12:22
Cookies sind generell kein Problem ...
Das sehe ich ein bisschen anders, vermutlich habe ich in der Beziehung andere Erfahrungen gemacht als du.
Selbst mit gleich gesetztem User-Agent (bei wget und cURL) habe ich unterschiedliche Ergebnisse festgestellt (aka geht/geht nicht).
alchy hat geschrieben:
23.06.2019, 12:22
... mein Hinweis bezieht sich auf Browser vs. Curl/wget
Auch das sehe ich etwas differenzierter. Mit cURL kannst du das Verhalten bestimmter Browser sehr gut nachbauen.
Mit wget ist das (für mich) kaum machbar, vielmehr als ein gefakter User-Agent geht da m.E. nicht.
Das soll aber keinesfalls bedeuten, dass das Problem hier nicht mit wget zu lösen ist.

Ich möchte jetzt hier auch nicht weiter stören, meine Beiträge waren ja auch nur Hinweise am Rande, ohne konkret geworden zu sein.
Diese basieren auf meinen persönlichen Erfahrungen bei anderen Geschichten. Gleiches gilt übrigens auch für Let's Encrypt, deren CA/Zertifikate und wie damit umgegangen wird.

sdk-home
Beiträge: 82
Registriert: 07.11.2012, 22:21
Hat sich bedankt: 4 Mal

Re: URL senden geht aber nicht

Beitrag von sdk-home » 25.06.2019, 17:46

hi

also keine Ahnung was du getestet hast, ich komme Imme rnoch nicht wirklich weiter:

Code: Alles auswählen

string stderr;string stdout;
string url="'https://soerendaniel.dscloud.me:5001/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=bla&payload={\"text\":\"Nachricht \"}'";
system.Exec("wget --no-check-certificate --debug -v -N -O - '"#url#"'" , &stdout, &stderr);
WriteLine(stdout);
WriteLine(stderr);
aber es geht nicht.
die URL so geht im browser auch nicht:

Code: Alles auswählen

https://soerendaniel.dscloud.me:5001/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=bla&payload={\"text\":\"Nachricht \"}
aber so halt schon:

Code: Alles auswählen

https://soerendaniel.dscloud.me:5001/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=bla&payload={"text":"Nachricht"}
nur so geht sie im script nicht *ARGGGgggg*

sdk-home
Beiträge: 82
Registriert: 07.11.2012, 22:21
Hat sich bedankt: 4 Mal

Re: URL senden geht aber nicht

Beitrag von sdk-home » 25.06.2019, 18:40

SO

vereinfacht (erstmal)
ich habe nun ein PHP-Script gemacht, was funktioniert und auch die Bestätigung ausgibt. das habe ich jetzt in das homematicscript eingebaut und Formatierung-Fehler auszuschließen - geht trotzdem nicht:

Code: Alles auswählen

string message = "Klingel - Es ist jemand am Eingang!";
string stderr;
string stdout;
string url="https://soerendaniel.de/eingang.php";
system.Exec("wget --no-check-certificate -q -O - "#url, &stdout, &stderr);

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: URL senden geht aber nicht

Beitrag von alchy » 25.06.2019, 19:49

sdk-home hat geschrieben:
25.06.2019, 17:46
aber so halt schon:

Code: Alles auswählen

https://soerendaniel.dscloud.me:5001/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=bla&payload={"text":"Nachricht"}
nur so geht sie im script nicht *ARGGGgggg*
Das ist die Codierung, welche ich schon im ersten Post angemerkt hatte. Die Rega mag keine " innerhalb eines Strings. Das wurde umgebastelt oder war schon immer so.

Aber

Wie schwer ist es für dich Beiträge zu lesen und Fragen zu beantworten?

Code: Alles auswählen

string stderr;string stdout;
string url="https://soerendaniel.dscloud.me:5001/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=bla&payload={\"text\":\"Nachricht \"}";
system.Exec("wget --no-check-certificate --debug -v -N -O - '"#url#"'" , &stdout, &stderr);
WriteLine(stdout);
WriteLine(stderr);
Das ist das Script welches du mit korrektem Token gepostet hattest. Das hatte ich ausgeführt und einen korrekten Ablauf erhalten, soweit ich mich erinnere.


Jetzt erhalte ich natürlich

Code: Alles auswählen

{"error":{"code":404,"errors":"invalid token"},"success":false}
...
Einfach mal:
  • mit dem passenden Token
  • dieses Script ausführen
  • im Chat nachschauen
  • Rückgabe posten
wäre ein Anfang.
So, hab ich keinen Bock dir zu helfen.
Aber trotzdem viel Spass noch.



Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

sdk-home
Beiträge: 82
Registriert: 07.11.2012, 22:21
Hat sich bedankt: 4 Mal

Re: URL senden geht aber nicht

Beitrag von sdk-home » 25.06.2019, 20:07

Hallo
Ich schätze sehr wie du dich einsetzt und mir hilfst, aber es verletzt mich etwas wenn "heutzutage" jeder gleich "aggressiv" wird. Ich habe das natürlich getestet und das script mit richtigem token probiert und auch gepostet dass es nicht funktioniert...
nun hier die ausgäbe ich ich erhalte wenn ich deine version mit dem richtigen token übernehme - danke vorab:

Code: Alles auswählen

Setting --verbose (verbose) to 1
Setting --timestamping (timestamping) to 1
Setting --output-document (outputdocument) to -
WARNING: timestamping does nothing in combination with -O. See the manual
for details.

DEBUG output created by Wget 1.13.4 on linux-gnueabi.

--2019-06-25 20:04:27--  https://soerendaniel.dscloud.me:5001/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=%22n973mV2ErOUWVevGTvjzXZhVk5W8gBqr78yYbn8yt8x4CEpVedijfAwWYQFApio5%22&payload=%7B%22text%22:%22Nachricht%20%22%7D
Resolving soerendaniel.dscloud.me... 93.200.23.155
Caching soerendaniel.dscloud.me => 93.200.23.155
Connecting to soerendaniel.dscloud.me|93.200.23.155|:5001... connected.
Created socket 5.
Releasing 0x00bf2e68 (new refcount 1).
Initiating SSL handshake.
SSL handshake failed.
Closed fd 5
Unable to establish SSL connection.


alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: URL senden geht aber nicht

Beitrag von alchy » 25.06.2019, 21:01

sdk-home hat geschrieben:
25.06.2019, 20:07
, aber es verletzt mich etwas wenn "heutzutage" jeder gleich "aggressiv" wird. Ich habe das natürlich getestet und das script mit richtigem token probiert und auch gepostet dass es nicht funktioniert...
Glaub mir, es interessiert mich herzlichst wenig. Jammern hilft in der heutigen Welt niemanden.
Du brauchst Hilfe, stellst Fragen und hoffst, das dir wer hilft.
Ich versuche dir zu helfen weil bisher nicht wirklich etwas zielführendes kam.
Ich stelle dafür Fragen und im Gegensatz zu dir ERWARTE ich das meine Fragen beantwortet werden oder im Zweifelsfall noch mal nachgefragt wird wie, was geschehen soll. Das hat überhaupt nichts mit Aggressivität zu tun oder verletzen. Krieg ich die Antworten nicht, helfe ich dem Nächsten oder gar keinen - was auch immer meine Entscheidung. :roll:

Wenn du die Entscheidung triffst mir eben nicht die Rückgabe zu posten weil es ja reicht, das du schreibst "es geht nicht", dann tut es mir einfach leid. Die Rückgabe ist dafür da etwas mehr zu erfahren wie "geht nicht" Wie z.B. das du kein Handshake erhältst.

Code: Alles auswählen

SSL handshake failed.
Closed fd 5
Unable to establish SSL connection.
Abgesehen davon vermisse ich die erste Zeile deiner Rückgabe oder eigentlich sollte es noch eine 1. Zeile geben.


Schon lustig, das du zu deiner eigenen Maschine kein Handshake bekommst, ich aber schon.


Meine Rückgabe des Scriptes

Code: Alles auswählen

{"success":true}
Setting --verbose (verbose) to 1
Setting --verbose (verbose) to 1
Setting --timestamping (timestamping) to 1
Setting --timestamping (timestamping) to 1
Setting --output-document (outputdocument) to -
Setting --output-document (outputdocument) to -
WARNING: timestamping does nothing in combination with -O. See the manual
for details.

DEBUG output created by Wget 1.19.5 on linux-gnueabihf.

Reading HSTS entries from //.wget-hsts
--2019-06-25 20:21:01--  https://soerendaniel.dscloud.me:5001/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=XXXXXXXXXXX&payload=%7B%22text%22:%22Nachricht%20%22%7D
Resolving soerendaniel.dscloud.me... 2003:f8:93d1:a600:211:32ff:fe99:c709, 93.200.23.155
Caching soerendaniel.dscloud.me => 2003:f8:93d1:a600:211:32ff:fe99:c709 93.200.23.155
Connecting to soerendaniel.dscloud.me|2003:f8:93d1:a600:211:32ff:fe99:c709|:5001... Closed fd 5
failed: Permission denied.
Connecting to soerendaniel.dscloud.me|93.200.23.155|:5001... connected.
Created socket 5.
Releasing 0x01070ce0 (new refcount 1).
Initiating SSL handshake.
Handshake successful; connected socket 5 to SSL handle 0x01070da8
certificate:
  subject: CN=soerendaniel.dscloud.me
  issuer:  CN=Let's Encrypt Authority X3,O=Let's Encrypt,C=US
X509 certificate successfully verified and matches host soerendaniel.dscloud.me

---request begin---
GET /webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=XXXXXXX&payload=%7B%22text%22:%22Nachricht%20%22%7D HTTP/1.1
User-Agent: Wget/1.19.5 (linux-gnueabihf)
Accept: */*
Accept-Encoding: identity
Host: soerendaniel.dscloud.me:5001
Connection: Keep-Alive

---request end---
HTTP request sent, awaiting response... 
---response begin---
HTTP/1.1 200 OK
Server: nginx
Date: Tue, 25 Jun 2019 18:21:02 GMT
Content-Type: application/json; charset="UTF-8"
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=20
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: max-age=0, no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0

---response end---
200 OK
Registered socket 5 for persistent reuse.
Length: unspecified [application/json]
Saving to: 'STDOUT'
Failed to set xattr 'user.xdg.origin.url'.

     0K                                                         366K=0s

2019-06-25 20:21:02 (366 KB/s) - written to stdout [16]
Ich sehe jetzt auf dem Handy keinen Fehler in der Rückgabe meines Versuchs, welcher eine Ausführung verhindert. Mag mich aber auch irren, da ich nicht alles weiß. Da kann ja ein Crack antworten.
Tante G sollte dir zu wget SSL handshake failed das ein oder andere bringen. Ich kriege eines zu deiner Syno :shock:

Alchy

PS: und wenn du dich jetzt wunderst, du hast in einem deiner Posts den Token drin gelassen ( Hab ich für dich weg gemacht)
Den habe ich gefunden und das Script 20:21 noch mal gestartet, was mich zu der Frage bringt wo deine Syno steht bei den Zeitstempeln :mrgreen:

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

sdk-home
Beiträge: 82
Registriert: 07.11.2012, 22:21
Hat sich bedankt: 4 Mal

Re: URL senden geht aber nicht

Beitrag von sdk-home » 25.06.2019, 21:15

wie gesagt ich hatte eine Rückantwort gegeben: Beitrag von sdk-home » 21.06.2019, 23:55 - da hatte ich noch nicht alles Optionen dabei, die umfangreichere Ausgaben darstellen - aber egal jetzt - ich bekomme den handshakle eh nicht gebacken und hab das ganze jetzt neu gemacht, mit einem neuen Token, den anderen lasse ich noch zu Testzwecken. Der Neue geht dann nur intern über eine IP, da brauch ich kein SSL und so geht es erstmal. Jetzt bin ich etwas entspannter und kann mich irgendwann mit dem SSL in Ruhe beschäftigen. hab bei der Synology Zeitzone usw geprüft - nur der dynDNS der Synode geht über sonst wo, deshalb gibts evtl Probleme ... na mal schauen ... danke soweit für die Anregungen.

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: URL senden geht aber nicht

Beitrag von alchy » 25.06.2019, 21:29

sdk-home hat geschrieben:
25.06.2019, 21:15
wie gesagt ich hatte eine Rückantwort gegeben: Beitrag von sdk-home » 21.06.2019, 23:55
Und daraufhin habe ich dir ein Version gepostet, welche gesprächiger ist mit erweiterten Parametern und später auch noch mal nach der Rückgabe des Scriptes gefragt. Darf doch nicht wahr sein. :twisted:

viel Spaß noch

Alchy

/*ignore on

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

sdk-home
Beiträge: 82
Registriert: 07.11.2012, 22:21
Hat sich bedankt: 4 Mal

Re: URL senden geht aber nicht

Beitrag von sdk-home » 25.06.2019, 21:38

Ja und dafür bin ich dankbar. Das habe ich später nun auch hinbekommen und gepostet - wir sollten alle mal wieder etwas runter fahren - also ich bin keine Maschine und ich finde es eine ungute Richtung dass ERWARTET wird und RÜCKMELDUNG gewünscht ist. Bei alles Technik ist Mensch eben Mensch und ich möchten nicht behandelt werden als Teil eines Scripts. Das führt genau dahin, dass eigentlich keiner mehr Fehler machen darf, keine mehr normal Rückfrage und die Möglichkeit in Betracht zeiht dass man sich nd auch andere mal irren können. Zitat:"Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen."

Also es geht - intern und ohne SSL. Ich "VERMUTE", dass das mit SSL nicht geht hat im entferntesten mit meiner selben IP des Hausanschlusses zu tun, denn wenn man es von ganz extern macht wie du, dann geht es.

Wenn Ichs rausbekommen habe, woran es genau hängt gebe ich bescheid, für heute ist Feierabend.
Danke

Bullson
Beiträge: 140
Registriert: 10.11.2011, 10:53
Hat sich bedankt: 18 Mal
Danksagung erhalten: 2 Mal

Re: URL senden geht aber nicht

Beitrag von Bullson » 11.10.2019, 09:53

Servus zusammen.
Muss hier grad einiges auf IPV6 umstellen.
In meinem alten Script lief es so wie oben:

Code: Alles auswählen

string url="http://www.ipv4seite.de/anwstatus.php?anw=Ich&temp=10.200000&humi=82&schieber=auf&lich1=aus&lich2=aus&rol=auf&n=&auli=aus&stu=zu&templ=11.100000&humil=76"}";
system.Exec("wget --no-check-certificate --debug -v -N -O - '"#url#"'" , &stdout, &stderr);
Nun mit IPV6 müsste der URL aussehen:

Code: Alles auswählen

string url="http://[2001:1234:baab:0:bba1:12ff:fef3:3f6e]/anwstatus.php?anw=Ich&temp=10.200000&humi=82&schieber=auf&lich1=aus&lich2=aus&rol=auf&n=&auli=aus&stu=zu&templ=11.100000&humil=76"}";
Im Browser funktioniert das auch. D.h. Die Werte werden in der DB eingetragen.
Aber mit wget oder auch wget -6 auf der Homematic gehts nicht. Auch unter debian nicht mit wget.

Jemand eine Idee wie ich das löse?

Antworten

Zurück zu „HomeMatic allgemein“