NEWS
[Erledigt] Anführungszeichen (Gänsefüßchen) in String
-
Hallo zusammen,
wie kann ich in einen String Anführungszeichen mit einbauen?
Ich stelle über ein Blockly für einen SendTo-Block Variablen zusammen. Ziel ist der Adapter hm-rpc.1.
Gesendet werden soll der Befehl putParamset.
Die notwendige ID wird über eine Variable geliefert, das klappt auch.
Der paramType ist MASTER und ändert sich nicht, ist dementsprechend fest angegeben.
Der Parameter-String params ist das, was mir Probleme macht.Benötigt wird ein String im Format:
{"P1_ENDTIME_FRIDAY_1":240,"P1_TEMPERATURE_FRIDAY_1":16,"P1_ENDTIME_MONDAY_1":360,"P1_TEMPERATURE_MONDAY_1":16}Wenn ich beim zusammensetzen des Strings versuche, die Anführungszeichen über einen Textblock mit Inhalt " zu bekommen, bekomme ich im Debug-Log folgendes angezeigt:
{"P1_ENDTIME_FRIDAY_1":240,"P1_TEMPERATURE_FRIDAY_1":16,"P1_ENDTIME_MONDAY_1":360,"P1_TEMPERATURE_MONDAY_1":16}Funktioniert nicht, da die Anführungszeichen von Blockly mit \ versehen werden.
Wenn ich versuche, im Textblock folgendes anzugeben: "
dann bekomme ich als Ergebnis:
{\"P1_ENDTIME_FRIDAY_1\":240,\"P1_TEMPERATURE_FRIDAY_1\":16,\"P1_ENDTIME_MONDAY_1\":360,\"P1_TEMPERATURE_MONDAY_1\":16}Wie bekomme ich also die Anführungszeichen in einen String in Blockly?
Vielen Dank schonmal im voraus für eure Zeit und Mühe.
Edit:
Ich habe schon versucht, sowohl über die Suche hier als auch über Google eine Lösung zu finden, habe aber nichts gefunden. -
versuche am Anfang und Ende ein '
und in der Mitte wenn benötigt dann "'SELECT id FROM datapoints WHERE name="javascript.0.Sonstige.Summen.ABC"'
P.S.
und Füßchen müsste man mit ß schreiben -
@christophh sagte in Anführungszeichen (Gänsefüsschen) in String:
{"P1_ENDTIME_FRIDAY_1":240,"P1_TEMPERATURE_FRIDAY_1":16,"P1_ENDTIME_MONDAY_1":360,"P1_TEMPERATURE_MONDAY_1":16}
Na ja ich würde Dir empfehlen NodeRed zu nutzen, wenn Du richtig mit Objekten zu arbeiten - Blockly kann das einfach nicht. Erstelle eine Liste/Array mit den Werten, die Du aktualisieren willst. Dann erstellst Du dein Objekt als JSONATA Ausdruck und weist den Eigenschaften des Objektes die Teile des Arrays/der Liste zu, die Du benötigst.
Wenn Du das dann wieder als String benötigst dann konvertierst Du es zum Schluss wieder in einen String.
-
Vielen Dank für eure Hilfe und eure Antworten.
Inzwischen habe ich herausgefunden wo der Fehler auf meiner Seite lag
Der SendTo-Block erwartet bei Sendung an die hm-rpc-Instanzen die zu sendenden Parameter nicht als String sondern als Objekt.
Ich wandele also den entsprechend erstellten String mit "JSON nach Objekt" in ein Objekt um, übergebe dieses Objekt entsprechend an den SendTo-Block und schon funktioniert esDamit ist das Thema erledigt.
Edit:
Mit NodeRed werde ich mich irgendwann auch noch beschäftigen. Da brauche ich aber mehr Zeit, als ich im Moment habe.