[GELÖST] LaMetric Homematic Skript, welches über CURL seit Jahren eine Notifikation versendet - geht nicht mehr

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

cbletzer
Beiträge: 78
Registriert: 29.04.2013, 08:56

Re: [GELÖST] LaMetric Homematic Skript, welches über CURL seit Jahren eine Notifikation versendet - geht nicht mehr

Beitrag von cbletzer » 01.07.2021, 06:52

Hallo,

erst mal danke für Deine Antwort. Nur leider bin ich Skript mäßig ein absoluter Neuling.
Meinst Du, Du könntest es mir lauffähig machen?

Benutzeravatar
jmaus
Beiträge: 9839
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 461 Mal
Danksagung erhalten: 1863 Mal
Kontaktdaten:

Re: [GELÖST] LaMetric Homematic Skript, welches über CURL seit Jahren eine Notifikation versendet - geht nicht mehr

Beitrag von jmaus » 01.07.2021, 08:25

cbletzer hat geschrieben:
01.07.2021, 06:52
Meinst Du, Du könntest es mir lauffähig machen?
Probier mal deine Zeile mit dem "varX":

Code: Alles auswählen

string varX = '-X POST -u \"dev:<MeinCode>"\ -H \"Content-Type: application/json"\ -d \" { \\\"model\\\": { \\\"frames\\\": [ { \\\"text\\\":\\\"" # text # "\\\", \\\"icon\\\":\\\"" # icon # "\\\", \\\"index\\\":\\\"" # index # "\\\"} ] } }\" http://192.168.1.197:8080/api/v1/dev/widget/update/com.lametric.f40567654687d79198046a7827da03a/1';
gegen folgende zu tauschen:

Code: Alles auswählen

string varX = '-X POST -u "dev:<MeinCode>" -H "Content-Type: application/json" -d "{ model: { frames: [ { text: \\"' # text # '\\", icon: \\"' # icon # '\\", index: \\"' # index # '\\"} ] } }" http://192.168.1.197:8080/api/v1/dev/widget/update/com.lametric.f40567654687d79198046a7827da03a/1';
Diese sollte nicht nur dann funktionieren und korrekt sein, sie sollte auch weniger Augenschmerzen verursachen :mrgreen:
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

cbletzer
Beiträge: 78
Registriert: 29.04.2013, 08:56

Re: [GELÖST] LaMetric Homematic Skript, welches über CURL seit Jahren eine Notifikation versendet - geht nicht mehr

Beitrag von cbletzer » 01.07.2021, 08:44

habe es getestet. leider ohne Erfolg

edit:

so sieht momentan das komplette Skript meines Programms aus

Code: Alles auswählen

string text = "Text";
string icon = "1430";
string index = "0";
string varX = '-X POST -u "dev:fmEyYTasdfasdfasdfdswOWY2N2Q3MjdfgXXXXXXXXXXXXXXXXXXOWNkNjUxMDVlMWEwZWRhNw==" -H "Content-Type: application/json" -d "{ model: { frames: [ { text: \\"' # text # '\\", icon: \\"' # icon # '\\", index: \\"' # index # '\\"} ] } }" https://192.168.1.197:4343/api/v1/dev/widget/update/com.lametric.f40567ec683bad79198sfs6a7827da03a/1';
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("extra/curl " # varX);

Benutzeravatar
jmaus
Beiträge: 9839
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 461 Mal
Danksagung erhalten: 1863 Mal
Kontaktdaten:

Re: [GELÖST] LaMetric Homematic Skript, welches über CURL seit Jahren eine Notifikation versendet - geht nicht mehr

Beitrag von jmaus » 01.07.2021, 10:21

cbletzer hat geschrieben:
01.07.2021, 08:44
habe es getestet. leider ohne Erfolg
Nun, was kommt denn für ein Fehler? Hast du es mal unter "Skript testen" probiert? kommt da ein Syntax-Fehler?

Und versuch doch mal folgendes Programm zu debug-zwecken:

Code: Alles auswählen

string text = "Text";
string icon = "1430";
string index = "0";
string varX = '-X POST -u "dev:fmEyYTasdfasdfasdfdswOWY2N2Q3MjdfgXXXXXXXXXXXXXXXXXXOWNkNjUxMDVlMWEwZWRhNw==" -H "Content-Type: application/json" -d "{ model: { frames: [ { text: \\"' # text # '\\", icon: \\"' # icon # '\\", index: \\"' # index # '\\"} ] } }" https://192.168.1.197:4343/api/v1/dev/widget/update/com.lametric.f40567ec683bad79198sfs6a7827da03a/1';
string stdout;
string stderr;
system.Exec("curl " # varX, &stdout, &stderr);
WriteLine(stdout);
WriteLine(stderr);
Und was wird dann ausgegeben unter "Skript testen"?
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

cbletzer
Beiträge: 78
Registriert: 29.04.2013, 08:56

Re: [GELÖST] LaMetric Homematic Skript, welches über CURL seit Jahren eine Notifikation versendet - geht nicht mehr

Beitrag von cbletzer » 01.07.2021, 10:27

Fm:

Falscher API key. Habe ihn aber nochmal geprüft. er stimmt. Hat es vllt mit den " " zu tun?

Benutzeravatar
jmaus
Beiträge: 9839
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 461 Mal
Danksagung erhalten: 1863 Mal
Kontaktdaten:

Re: [GELÖST] LaMetric Homematic Skript, welches über CURL seit Jahren eine Notifikation versendet - geht nicht mehr

Beitrag von jmaus » 01.07.2021, 10:42

cbletzer hat geschrieben:
01.07.2021, 10:27
Falscher API key. Habe ihn aber nochmal geprüft. er stimmt. Hat es vllt mit den " " zu tun?
Ersetze doch mal die System.Exec() zeile durch folgende:

Code: Alles auswählen

system.Exec("set -x; curl -vvv " # varX, &stdout, &stderr);
Dann sollte er das konkret aufgerufene Kommando mit hoffentlich richtigem quoting als erste zeile ausgeben und dann auch noch detailinfos zum curl aufruf. Dann kannst du den curl aufruf Copy&Paste in einer SSH Sitzung einfach mal so eingeben und schauen wo das Problem ist. Für mich sieht soweit alles korrekt aus. Aber ob deine Applikation und der API key stimmt usw. kann ich natürlich nicht sagen.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

cbletzer
Beiträge: 78
Registriert: 29.04.2013, 08:56

Re: [GELÖST] LaMetric Homematic Skript, welches über CURL seit Jahren eine Notifikation versendet - geht nicht mehr

Beitrag von cbletzer » 01.07.2021, 10:45

Code: Alles auswählen

{ "errors" : [ { "message" : "Wrong api key" } ] }
+ curl -m 2 -vvv -X POST -u 'dev:MmXXXXXXXXXXXXX2Q3MjRlYTNkODI5ZTcyNWZmM2Q2ODNiNzlkZDIwOWNkNjUxMDVlMWEwZWRhNw==' -H 'Content-Type: application/json' -d '{ model: { frames: [ { text: "Text", icon: "1430", index: "0"} ] } }' http://192.168.1.197:8080/api/v1/dev/widget/update/com.lametric.f564567e56465469198046a7827da03a/
Note: Unnecessary use of -X or --request, POST is already inferred.
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0> POST /api/v1/dev/widget/update/com.lametric.f4fg7ec6sdfgd79198046a7827da03a/ HTTP/1.1
> Host: 192.168.1.197:8080
> Authorization: Basic ZGV2Ok1tRXlZVGMyWkdVeE5qQTNORGXXXXXXXXXXXldabU0yUTJPRE5pTnpsa1pESXdPV05rTmpVeE1EVmxNV0V3WldSaE53PT0=
> User-Agent: curl/7.61.1
> Accept: */*
> Content-Type: application/json
> Content-Length: 68
> 
} [68 bytes data]
< HTTP/1.1 401 Unauthorized
< CONTENT-TYPE: application/json;charset=UTF8
< Access-Control-Allow-Origin: *
< Transfer-Encoding: chunked
< Date: Thu, 01 Jul 2021 08:43:56 GMT
< Server: lighttpd/1.4.35
< 
{ [56 bytes data]

100   118    0    50  100    68   1515   2060 --:--:-- --:--:-- --:--:--  3687

Benutzeravatar
jmaus
Beiträge: 9839
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 461 Mal
Danksagung erhalten: 1863 Mal
Kontaktdaten:

Re: [GELÖST] LaMetric Homematic Skript, welches über CURL seit Jahren eine Notifikation versendet - geht nicht mehr

Beitrag von jmaus » 01.07.2021, 10:53

cbletzer hat geschrieben:
01.07.2021, 10:45

Code: Alles auswählen

{ "errors" : [ { "message" : "Wrong api key" } ] }
+ curl -m 2 -vvv -X POST -u 'dev:MmXXXXXXXXXXXXX2Q3MjRlYTNkODI5ZTcyNWZmM2Q2ODNiNzlkZDIwOWNkNjUxMDVlMWEwZWRhNw==' -H 'Content-Type: application/json' -d '{ model: { frames: [ { text: "Text", icon: "1430", index: "0"} ] } }' http://192.168.1.197:8080/api/v1/dev/widget/update/com.lametric.f564567e56465469198046a7827da03a/
Nun, der Aufruf sieht für mich soweit nun i.O. aus und hat wohl auch ein korrektes Quoting und ein valides JSON im POST. Nun bist allerdings du an der Reihe, denn nur du hast die Applikationen vor Ort und kannst testen warum diese anscheinend der Meinung ist "Wrong api key" zu sagen. Schau mal deinen Ursprungsbeitrag an (viewtopic.php?f=65&t=59656&start=10#p669365) dort hast du ja anscheinend einen lauffähigen curl aufruf aufgezeigt. Nun musst du das natrülich entsrpechend abgleichen damit. Sehen kann ich z.B. schon das du hier kein "X-Access-Token" mitlieferst wie in dem von dir gezeigten lauffähigen aufruf anscheinend.

Eins sollte nun allerdings klar sein, wenn du die "varX" Zeile korrekt machst wie auch den kommandozeilen aufruf von curl, dann solltest du danach den Skript wie folgt aussehen lassen (nachdem du bei XXXXX eben die richtigen/lauffähigen curl Optionen hinzugefügt hast).

Code: Alles auswählen

string text = "Text";
string icon = "1430";
string index = "0";
string varX = XXXXX;
system.Exec("timeout 10 curl -m 10 " # varX # " &");
Weil dann brauchst du auch kein CUxD dafür, was man eigentlich für solch einfache curl/wget aufrufe in 99,9% der fälle eh nie braucht.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

cbletzer
Beiträge: 78
Registriert: 29.04.2013, 08:56

Re: [GELÖST] LaMetric Homematic Skript, welches über CURL seit Jahren eine Notifikation versendet - geht nicht mehr

Beitrag von cbletzer » 01.07.2021, 11:04

Das Access Token steh doch bei mir direkt nach dev:
oder hab ich da generell einen Denkfehler?

Benutzeravatar
jmaus
Beiträge: 9839
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 461 Mal
Danksagung erhalten: 1863 Mal
Kontaktdaten:

Re: [GELÖST] LaMetric Homematic Skript, welches über CURL seit Jahren eine Notifikation versendet - geht nicht mehr

Beitrag von jmaus » 01.07.2021, 11:08

Das kannst wie gesagt nur du selbst beantworten denn ich habe und kenne dieses „LaMetric“ zeug nicht. Schau einfach mal die Optionen des curl aufrufes an der angeblicht geht und vergleiche die optionen mit denen des varX inhaltes und dann müsstest du ja unterschiede sehen. Und die musst du dann eben ausräumen. Oder zeig welcher konkrete curl ssh aufruf deiner meinung nach geht und ich bilde dir das hier kurz nach.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Antworten

Zurück zu „RaspberryMatic“