[GELÖST] LaMetric Homematic Skript, welches über CURL seit Jahren eine Notifikation versendet - geht nicht mehr
Moderatoren: jmaus, Co-Administratoren
-
- Beiträge: 58
- Registriert: 01.06.2013, 21:16
- Hat sich bedankt: 3 Mal
[GELÖST] LaMetric Homematic Skript, welches über CURL seit Jahren eine Notifikation versendet - geht nicht mehr
Hallo,
ich habe ein LaMetric Homematic Skript, welches über CURL seit Jahren eine Notifikation versendet. Dies erfolgt über Post und vielen Parameter.
Gab es beim Update hier irgendwas, was die Welt verändert hat?
Einmal wirft er jetzt plötzlich einen Skriptfehler aus, wenn es mit einer alten Version vergleicht ist statt \" nun \\" im Skript drin.
Auch die alte Version des Skriptes läuft nicht. Reboot brachte auch nichts.
Hat jemand ein ähnliches Problem?
ich habe ein LaMetric Homematic Skript, welches über CURL seit Jahren eine Notifikation versendet. Dies erfolgt über Post und vielen Parameter.
Gab es beim Update hier irgendwas, was die Welt verändert hat?
Einmal wirft er jetzt plötzlich einen Skriptfehler aus, wenn es mit einer alten Version vergleicht ist statt \" nun \\" im Skript drin.
Auch die alte Version des Skriptes läuft nicht. Reboot brachte auch nichts.
Hat jemand ein ähnliches Problem?
Zuletzt geändert von steffen1234 am 03.07.2020, 17:59, insgesamt 2-mal geändert.
-
- Beiträge: 1200
- Registriert: 03.02.2016, 14:44
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: irgendwo aus Süd BaWü
- Hat sich bedankt: 140 Mal
- Danksagung erhalten: 85 Mal
Re: LaMetric Homematic Skript, welches über CURL seit Jahren eine Notifikation versendet - geht nicht mehr
Hi,
sollest Du die letzte Rasperrymatic Version installiert haben, bist Du auf diese Änderung aufgelaufen:
Grüße,
Slice
sollest Du die letzte Rasperrymatic Version installiert haben, bist Du auf diese Änderung aufgelaufen:
Den Rest solltest Du auch so hinkriegen..jmaus hat geschrieben: ↑21.06.2020, 10:33[*] Integration einer neuen/aktualisierten ReGaHss Logikengine R1.00.0388.0219 (Jun 19 2020) Version mit folgenden Änderungen:
- Die in der letzten Version integrierte Funktionalität innerhalb eines Raw/Super Strings (^) auch ein ^ Zeichen direkt mittels backslash escaping nutzen zu können wurde wieder zurückgenommen da es damit zu anderen negativen Effekten gekommen ist. Stattdessen wurde das backslash escaping in normalen Strings dahin korrigiert, das man nun auch Strings wie "\\\\" nutzen kann ohne das es zu Syntax Fehlern kommt (#225).
Bitte beachten: Durch diesen Bugfix können mitunter existierende Backslash Escape Nutzungen die in Nutzerskripten bisher vermeintlich korrekt funktioniert haben nun als Syntax Fehler erkannt werden. So konnte man z.B. bisher den String \" durch die falsche Nutzung von \\" erzeugen lassen obwohl die dafür richtige Definition drei (3) backslashes beinhalten muss: \\\" da jedes backslash für sich selbst korrekterweise escapt werden muss. Alternativ kann für eine korrekte und auch rückwärtskompatible Art&Weise nun jedoch stattdessen auch ein raw/super string wie ^\"^ genutzt werden.
Grüße,
Slice
----------------------------------------------------------------------------------------
Raspi3B+ Bullseye mit HB-RF-ETH und RPI-RF-MOD auf piVCCU-FW 3.75.7 / Addons: CuxD v2.11 - E-Mail v1.7.6 - Patcher v1.0.0 - Philips Hue v3.2.5 - Programme drucken v2.6 - Scriptparser v1.11 - XML-API v2.3
Geräte: 141 / Kanäle: 791 / Datenpunkte: 6080 / SysVars: 275 / Programme: 161 / Regadom IDs: 14010 / 48 CUxD-Kanäle in 3 CUxD-Geräten
Intel NUC i3-5010U @ 2,1 GHz mit 16 GB RAM & 512 GB SSD für Proxmox mit ioBroker VM und CCU-Historian/InfluxDB/Grafana VM
----------------------------------------------------------------------------------------
Projekte im Forum: HomeHub v4.1 / Fritzbox-Anruferliste für HomeHub
----------------------------------------------------------------------------------------
Raspi3B+ Bullseye mit HB-RF-ETH und RPI-RF-MOD auf piVCCU-FW 3.75.7 / Addons: CuxD v2.11 - E-Mail v1.7.6 - Patcher v1.0.0 - Philips Hue v3.2.5 - Programme drucken v2.6 - Scriptparser v1.11 - XML-API v2.3
Geräte: 141 / Kanäle: 791 / Datenpunkte: 6080 / SysVars: 275 / Programme: 161 / Regadom IDs: 14010 / 48 CUxD-Kanäle in 3 CUxD-Geräten
Intel NUC i3-5010U @ 2,1 GHz mit 16 GB RAM & 512 GB SSD für Proxmox mit ioBroker VM und CCU-Historian/InfluxDB/Grafana VM
----------------------------------------------------------------------------------------
Projekte im Forum: HomeHub v4.1 / Fritzbox-Anruferliste für HomeHub
----------------------------------------------------------------------------------------
-
- Beiträge: 58
- Registriert: 01.06.2013, 21:16
- Hat sich bedankt: 3 Mal
Re: LaMetric Homematic Skript, welches über CURL seit Jahren eine Notifikation versendet - geht nicht mehr
Ja, könnte sein ... ich habe Parameter, die per "...." CURL übergeben werden, aber einer Variable zuerst zugewiesen sind.
Das \ Zeichen diente eigentlich dazu, die " Zeichen nicht als solche zu interpretieren.
Ich habe es 3x durchgelesen, sehr kompliziert geschrieben. Was muss jetzt anders gemacht werden???
Mein Code, der bisher als Skript ging:
Die Fehlermeldung ist:
Das \ Zeichen diente eigentlich dazu, die " Zeichen nicht als solche zu interpretieren.
Ich habe es 3x durchgelesen, sehr kompliziert geschrieben. Was muss jetzt anders gemacht werden???
Mein Code, der bisher als Skript ging:
Code: Alles auswählen
string text = "Text";
string icon = "i259";
string varX = "-X POST -u \"dev:xxxxxx\" -H \"Content-Type: application/json\" -d \"
{ \\"model\\": { \\"frames\\": [ { \\"icon\\":\\"" # icon # "\\", \\"text\\":\\"" # text # "\\"}], \\"sound\\":{ \\"category\\":\\"notifications\\",\\"id\\":\\"notification\\",\\"repeat\\":1}}}
\" http://IP-Adresse:8080/api/v2/device/notifications";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("extra/curl " # varX);
Code: Alles auswählen
Error 1 at row 3 col 160 near ^\\": { \\"frames\\": [ { \\"icon\\":\\"" # icon # "\\", \\"text\\":\\"" # text #
Parse following code failed:
<dann folgt der Code>
-
- Beiträge: 9677
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 700 Mal
- Danksagung erhalten: 1625 Mal
Re: LaMetric Homematic Skript, welches über CURL seit Jahren eine Notifikation versendet - geht nicht mehr
Aus \\" mach \\\"
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
- Black
- Beiträge: 5480
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 424 Mal
- Danksagung erhalten: 1074 Mal
- Kontaktdaten:
Re: LaMetric Homematic Skript, welches über CURL seit Jahren eine Notifikation versendet - geht nicht mehr
Ich hatte schon am Tag des Releases auf das bäng potential hingewiesen.
Black
Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
-
- Beiträge: 58
- Registriert: 01.06.2013, 21:16
- Hat sich bedankt: 3 Mal
Re: LaMetric Homematic Skript, welches über CURL seit Jahren eine Notifikation versendet - geht nicht mehr
Danke erst mal für das Feedback.
Auf die Schnelle probiert, gibt es noch immer ein Fehlercode und es geht immer noch nicht. Muss ich mir noch mal genauer ansehen.
Hm, schade. Wollte diese Funktionen eigentlich auf der Homematic lassen.
Kommen diese Änderungen vom EQ-3 oder sind sie nur auf dem Raspberrymatic so?
Auf die Schnelle probiert, gibt es noch immer ein Fehlercode und es geht immer noch nicht. Muss ich mir noch mal genauer ansehen.
Hm, schade. Wollte diese Funktionen eigentlich auf der Homematic lassen.
Code: Alles auswählen
Error 1 at row 3 col 169 near ^: { \\\"frames\\\": [ { \\\"icon\\":\\\"" # icon # "\\\", \\\"text\\\":\\\"" # t
Parse following code failed
- jmaus
- Beiträge: 9862
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 464 Mal
- Danksagung erhalten: 1880 Mal
- Kontaktdaten:
Re: LaMetric Homematic Skript, welches über CURL seit Jahren eine Notifikation versendet - geht nicht mehr
Dann schreib sie doch gleich so dann bekommst du beim lesen auch keine Kopfschmerzen, reduzierst sogar gleich noch die Anzahl der Backslashes und es bleibt rückwärtskompatibel:steffen1234 hat geschrieben: ↑03.07.2020, 06:44Danke erst mal für das Feedback.
Auf die Schnelle probiert, gibt es noch immer ein Fehlercode und es geht immer noch nicht. Muss ich mir noch mal genauer ansehen.
Hm, schade. Wollte diese Funktionen eigentlich auf der Homematic lassen.
Code: Alles auswählen
Error 1 at row 3 col 169 near ^: { \\\"frames\\\": [ { \\\"icon\\":\\\"" # icon # "\\\", \\\"text\\\":\\\"" # t Parse following code failed
Code: Alles auswählen
string text = "Text";
string icon = "i259";
string varX = '-X POST -u "dev:xxxxxx" -H "Content-Type: application/json" -d "{ \\"model\\": { \\"frames\\": [ { \\"icon\\":\\"" # icon # "\\", \\"text\\":\\"" # text # "\\"}], \\"sound\\":{ \\"category\\":\\"notifications\\",\\"id\\":\\"notification\\",\\"repeat\\":1}}}" http://IP-Adresse:8080/api/v2/device/notifications';
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("extra/curl " # varX);
Sie sind zur Zeit nur in RaspberryMatic integriert, werden aber in einer der nächsten CCU Firmware-Updates auch mit aufgenommen werden.steffen1234 hat geschrieben: ↑03.07.2020, 06:44Kommen diese Änderungen vom EQ-3 oder sind sie nur auf dem Raspberrymatic so?
RaspberryMatic 3.75.7.20240420 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal /
-
- Beiträge: 9677
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 700 Mal
- Danksagung erhalten: 1625 Mal
Re: LaMetric Homematic Skript, welches über CURL seit Jahren eine Notifikation versendet - geht nicht mehr
\\"icon\\":
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
- jmaus
- Beiträge: 9862
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 464 Mal
- Danksagung erhalten: 1880 Mal
- Kontaktdaten:
Re: LaMetric Homematic Skript, welches über CURL seit Jahren eine Notifikation versendet - geht nicht mehr
Wie gesagt, die oftmals bessere Wahl, statt einfach \\" mit \\\" zu ersetzen ist, als äußeres Quotation Zeichen statt " dann ' zu verwenden, dann kann im inneren Bereich zwischen den äußeren 'XXX' das \\" bleiben. Dann bleibt die Stringdefinition auch rückwärtskompatibel und weiterhin halbwegs lesbar
RaspberryMatic 3.75.7.20240420 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal /
-
- Beiträge: 58
- Registriert: 01.06.2013, 21:16
- Hat sich bedankt: 3 Mal
Re: LaMetric Homematic Skript, welches über CURL seit Jahren eine Notifikation versendet - geht nicht mehr
Hallo,
also der Tipp mit dem ' funktioniert, dass es keine Fehlermeldung gibt. Man muss auch nicht \\\" machen, einfach vorne und hinter ' setzen.
ABER: Die Ausführung geht immer noch nicht (mehr). Den Ordner extra gibt es denn überhaupt noch? Mit der SSH Konsole auf Homematic kann man aber curl --help aufrufen.
Unter CUxD kommt das auch an.
also der Tipp mit dem ' funktioniert, dass es keine Fehlermeldung gibt. Man muss auch nicht \\\" machen, einfach vorne und hinter ' setzen.
ABER: Die Ausführung geht immer noch nicht (mehr). Den Ordner extra gibt es denn überhaupt noch? Mit der SSH Konsole auf Homematic kann man aber curl --help aufrufen.
Code: Alles auswählen
string text = "Text";
string icon = "i259";
string varX = '-X POST -u \"dev:xxxxx\" -H \"Content-Type: application/json\" -d \"
{ \\"model\\": { \\"frames\\": [ { \\"icon\\":\\"" # icon # "\\", \\"text\\":\\"" # text # "\\"}], \\"sound\\":{ \\"category\\":\\"notifications\\",\\"id\\":\\"notification\\",\\"repeat\\":1}}}
\" http://1IP-Adresse:8080/api/v2/device/notifications';
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("extra/curl " # varX);
Code: Alles auswählen
Kein Fehler
Code: Alles auswählen
Jul 3 08:21:01 homematic daemon.info cuxd[31666]: system(extra/curl -X POST -u "dev:xxxxx" -H "Content-Type: application/json" -d " { \"model\": { \"frames\": [ { \"icon\":\"" # icon # "\", \"text\":\"" # text # "\"}], \"sound\":{ \"category\":\"notifications\",\"id\":\"notification\",\"repeat\":1}}} " http://IP-Adresse:8080/api/v2/device/notifications) exit(2) 0s