Seite 1 von 1

String formatieren in ECMA Script

Verfasst: 4. Feb 2022 16:08
von der_micha
Hallo zusammen,

kann mir jemand helfen folgenden String in einem ECMA Script so umzubauen, dass nur noch die 23 übrig bleibt?
Ich habe das mit .replace versucht, aber leider hinbekommen.

{„NSPanel“:{„ATCMode“:0,“ATCExpect0″:23}}

LG Micha

Re: String formatieren in ECMA Script

Verfasst: 4. Feb 2022 18:54
von Harka
Versuchs mal mit JSON.parse()
Geht bei mir aber nur unter ECMA 5.1

Code: Alles auswählen

var text = '{"NSPanel":{"ATCMode":0,"ATCExpect0":23}}';
var obj = JSON.parse(text);
 
var ziel = obj.NSPanel.ATCExpect0;

Re: String formatieren in ECMA Script

Verfasst: 4. Feb 2022 21:08
von der_micha
Vielen Dank für den Tipp!
Ich glaube ich bin total auf dem Holzweg. So sieht das im Script aus, ich glaube hier kann man das gar nicht so umbauen wie ich das vor habe.

Code: Alles auswählen

events.sendCommand("InnogyHeizungPartykeller_Solltemperatur",
itemRegistry.getItem("NSPanel1_NSPanel1Thermostat_Setpoint").getState());
Bin gerade etwas ratlos, ich glaube ich muss noch ein paar Grundlagen pauken...

Re: String formatieren in ECMA Script

Verfasst: 4. Feb 2022 23:12
von Harka
sollte schon gehen - ziel hat danach den Wert 23

Code: Alles auswählen

var text = itemRegistry.getItem("NSPanel1_NSPanel1Thermostat_Setpoint").getState());
var obj = JSON.parse(text);
 
var ziel = obj.NSPanel.ATCExpect0;
jetzt aber das große ABER
die bessere Lösung dürfte sein das ganze über die Konfiguration des Things NSPanel1 zu erledigen in dem Du diesem ein extra Channel für ATCExpect0 zuweist. Damit kannst Du den Wert in OpenHAB leichter weiter verarbeiten. Schau Dich hier mal im Bereich Hardware/Sonoff ein wenig um.

Re: String formatieren in ECMA Script

Verfasst: 5. Feb 2022 16:22
von der_micha
Das hat funktioniert - vielen Dank!!!

Aber wenn ich ehrlich bin, verstehe ich nicht so ganz wie...

Re: String formatieren in ECMA Script

Verfasst: 5. Feb 2022 17:13
von Harka
bin auch nur Laie - wenn ich hier totalen Blödsinn schreibe möge hier jemand einschreiten ;)

Du hattest dort eine Ausgabe im JSON-Format. Siehe auch http://format.gbv.de/json
Diese liest Du in das JavaScript-Objekt "obj" mittels JSON.parse() ein.
obj hat eine Variable NSPanel die wiederum 2 "Töchter" {in extra geschweifter Klammer} ATCMode und ATCExpect0 hat.
Mir "var ziel = obj.NSPanel.ATCExpect0;" hangelst Du Dich durch die 2 Ebenen um ziel den Wert von ATCExpect0 zuzuweisen.

Re: String formatieren in ECMA Script

Verfasst: 5. Feb 2022 21:33
von der_micha
Also wenn Du Laie bist, dann möchte ich ab heute bitte alles nur noch von Laien erklärt bekommen. ;)
Wirklich spitze erklärt - vielen Dank dafür!!!

LG Micha