RaspberryMatic script problem mit "&para" String

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

Moderatoren: jmaus, Co-Administratoren

Antworten
jensbab
Beiträge: 29
Registriert: 11.05.2020, 07:20
System: Alternative CCU (auf Basis OCCU)

RaspberryMatic script problem mit "&para" String

Beitrag von jensbab » 30.06.2022, 12:09

Hallo Forum,
ich habe hier ein merkwürdige Phänomen, welche ich nach dem letzten Update der Raspberrymatic habe.

Für die Überwachung einige Temperaturen, schicke ich deren Werte an ein Domoticz Server. Dazu habe ich ein skript siehe unten:


Leider formt die Rapsimatic den string in der url jetzt falsch um in:

command¶m=ude

anstatt

command&param=ude

ich kann es korrigieren, aber nach dem speichern ist es wieder kaputt. Hat jemand eine Idee? ;-)

-----------------------------------------------------------------------------------

Code: Alles auswählen

string stderr;
string stdout;

var um = dom.GetObject("HmIP-RF.00171A499D4580:0.ACTUAL_TEMPERATURE").Value();
var ol = dom.GetObject("HmIP-RF.00161A499D49D0:0.ACTUAL_TEMPERATURE").Value();
var or = dom.GetObject("HmIP-RF.00161A499D498F:0.ACTUAL_TEMPERATURE").Value();
var garten = dom.GetObject("HmIP-RF.00161D898B19D9:0.ACTUAL_TEMPERATURE").Value();
var drap = dom.GetObject("HmIP-RF.001798A99B1C15:0.ACTUAL_TEMPERATURE").Value();
var om = dom.GetObject("HmIP-RF.00161A499D4B92:0.ACTUAL_TEMPERATURE").Value();

var sued = dom.GetObject("HmIP-RF.001D5A49905848:1.ACTUAL_TEMPERATURE").Value();
var nord = dom.GetObject("HmIP-RF.001D5A49905293:1.ACTUAL_TEMPERATURE").Value();
var bad = dom.GetObject("HmIP-RF.001D5A499058A5:1.ACTUAL_TEMPERATURE").Value();
var kizi = dom.GetObject("HmIP-RF.001D5A499059B3:1.ACTUAL_TEMPERATURE").Value();



string url="\"http://kellerpi:8080/json.htm?type=command&param=udevice&idx=24&nvalue=0&svalue="#drap#" \"";
system.Exec("wget --no-check-certificate -q -O - "#url, &stdout, &stderr);

string url="\"http://kellerpi:8080/json.htm?type=command&param=udevice&idx=25&nvalue=0&svalue="#ol#" \"";
system.Exec("wget --no-check-certificate -q -O - "#url, &stdout, &stderr);

string url="\"http://kellerpi:8080/json.htm?type=command&param=udevice&idx=26&nvalue=0&svalue="#om#" \"";
system.Exec("wget --no-check-certificate -q -O - "#url, &stdout, &stderr);

string url="\"http://kellerpi:8080/json.htm?type=command&param=udevice&idx=27&nvalue=0&svalue="#um#" \"";
system.Exec("wget --no-check-certificate -q -O - "#url, &stdout, &stderr);

string url="\"http://kellerpi:8080/json.htm?type=command&param=udevice&idx=28&nvalue=0&svalue="#or#" \"";
system.Exec("wget --no-check-certificate -q -O - "#url, &stdout, &stderr);

string url="\"http://kellerpi:8080/json.htm?type=command&param=udevice&idx=29&nvalue=0&svalue="#garten#" \"";
system.Exec("wget --no-check-certificate -q -O - "#url, &stdout, &stderr);

string url="\"http://kellerpi:8080/json.htm?type=command&param=udevice&idx=31&nvalue=0&svalue="#sued#" \"";
system.Exec("wget --no-check-certificate -q -O - "#url, &stdout, &stderr);

string url="\"http://kellerpi:8080/json.htm?type=command&param=udevice&idx=32&nvalue=0&svalue="#nord#" \"";
system.Exec("wget --no-check-certificate -q -O - "#url, &stdout, &stderr);

string url="\"http://kellerpi:8080/json.htm?type=command&param=udevice&idx=33&nvalue=0&svalue="#bad#" \"";
system.Exec("wget --no-check-certificate -q -O - "#url, &stdout, &stderr);

string url="\"http://kellerpi:8080/json.htm?type=command&param=udevice&idx=34&nvalue=0&svalue="#kizi#" \"";
system.Exec("wget --no-check-certificate -q -O - "#url, &stdout, &stderr);

-------------------------------------------------------------------------------------------
Zuletzt geändert von alchy am 30.06.2022, 12:43, insgesamt 1-mal geändert.

MichaelN
Beiträge: 9679
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: RaspberryMatic script problem

Beitrag von MichaelN » 30.06.2022, 12:24

D.h. Wenn Du mit dem Skript Editor der RM ein "&" speicherst, ist es nach dem Wiederaufrufen des Skript kein "&" mehr?

Jens hat ziemlich viel an der Umalutkonvertierung gebastelt. Am besten mal in dem Thread zur RM Version melden, dann können das andere mal verifizieren und dann kann Jens das Problem lösen. Unter "HM allgemein" ist der Thread auf jeden Fall denkbar ungünstig.

UND: es ist hilfreich genau die verwendete Version anzugeben, da "nach dem letzten Update" bereits in 4 Wochen einen vollkommen anderen Kontext hat.
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 +++

Benutzeravatar
Baxxy
Beiträge: 10826
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 607 Mal
Danksagung erhalten: 2225 Mal

Re: RaspberryMatic script problem

Beitrag von Baxxy » 30.06.2022, 22:56

Also wenn ich das richtig getestet habe wird der String...

Code: Alles auswählen

string x = "&para";
korrekt im Script gespeichert.
Wenn ich das Script mit dem SDV öffne passt alles.

Öffne ich aber das Script über die WebUI wird der String wohl als HTML Code interpretiert. Das sieht man auch schon an der Vorschau.

Code: Alles auswählen

string x = "¶";
Wenn ich nun wieder ok drücke wird das Sonderzeichen gespeichert und das Script ist kaputt.

Benutzeravatar
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: RaspberryMatic script problem

Beitrag von jmaus » 01.07.2022, 06:20

Das ist eine schon sehr lange bekannte Limitation der WebUI. Siehe:

https://github.com/jens-maus/RaspberryMatic/issues/233
RaspberryMatic 3.75.7.20240420 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

MichaelN
Beiträge: 9679
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: RaspberryMatic script problem

Beitrag von MichaelN » 01.07.2022, 08:42

jmaus hat geschrieben:
01.07.2022, 06:20
Das ist eine schon sehr lange bekannte Limitation der WebUI.
So einfach scheint das nicht zu sein.
Gerade mit der älteren RM 3.61.7.20220115 getestet.

Erstmal habe ich einfach ein ! & in den Skript editor geschrieben, gespeichert, wieder geöffnet und das & war noch da.
Dann habe ich gedaxcht, OK, das passiert nur mit & im String also " & " gespeichert, geöffnet und das & ist immer noch da.

Dann habe ich einen Teil aus dem geposteten Skript eingefügt, gespeichert, geöffnet und siehe da - das & ist "kaputt"
Dann habe ich das kaputte & gelöscht und wieder durch ein & ersetzt - gespeichert, geöffnet und es bleibt ein &

Ich vermute mal, das dieses & im geposteten Skript kein & ist. Mir ist nämlich noch nie aufgefallen, das es beim Skripten Problem mit dem & gibt.

Hier nochmal als Screenshot: VOR dem Speichern - der erste Codeblock war schonmal gespeichert und wurde von mir händisch korrigiert, der 2. wurde gerade frisch mit Copy&Paste eingefügt.
vorher.JPG
Und jetzt nochmal nach dem Speichern geöffnet:
nachher.JPG
EDIT: und mir ist jetzt erst aufgefallen, das mit dem & auch noch ein paar Zeichen mehr verschwinden.
EDIT2: kann es sein, das es nur bei bestimmten Kombinaten aus & und nachfolgenden Zeichen passiert, die dann als Unicode interpretiert werden?
EDIT3: jetzt verstehe ich das mit dem &para erst :roll:

EDIT4: Workaround:

Code: Alles auswählen

string url="\"http://kellerpi:8080/json.htm?type=command&pa" # "ram=udevice&idx=28&nvalue=0&svalue="#or#" \"";
Zuletzt geändert von MichaelN am 01.07.2022, 08:51, insgesamt 1-mal geändert.
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 +++

Benutzeravatar
Baxxy
Beiträge: 10826
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 607 Mal
Danksagung erhalten: 2225 Mal

Re: RaspberryMatic script problem

Beitrag von Baxxy » 01.07.2022, 08:51

Es ist ja nicht das... für sich alleine.

Es betrifft nur den Gesamtstring...

Code: Alles auswählen

&para
Macht man testweise... draus, passiert nichts weil es nicht als Sonderzeichen interpretiert wird.

Grüße, Baxxy

Benutzeravatar
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: RaspberryMatic script problem

Beitrag von jmaus » 01.07.2022, 09:24

Ja, das ist leider eine recht kleine aber mitunter nervige Limitation der WebUI für die ich aber noch keine Lösung gefunden habe, leider…
RaspberryMatic 3.75.7.20240420 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

RolandT
Beiträge: 77
Registriert: 24.07.2020, 10:48
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 36 Mal
Danksagung erhalten: 41 Mal

Re: RaspberryMatic script problem mit "&para" String

Beitrag von RolandT » 01.07.2022, 09:59

Und aus diesem Grund schätze ich Editoren wie den SDV, die mit solchen Unzulänglichkeiten keine Probleme haben.
(und nebenbei auch Strings und Kommentare auch richtig anzeigen)

Gruss, Roland

Antworten

Zurück zu „RaspberryMatic“