String Formatieren - Sonderzeichen
Verfasst: 22. Jan 2023 11:24
Hallo Zusammen,
ich habe eine Regel erstellt, die mehrere Items zusammen fasst und als einen String über MQTT ausgibt, aber ich beiße mir grade die Zähne an der Formatierung des Strings aus, ansonsten funktioniert alles wie gewünscht.
Erstmal die Regel selbst:
Entscheidend ist die entstehung des Strings, der an der folgenden Stelle zusammengesetzt wird:
var String Ausgabe = String::format ("{Woche : %.0f , Nährlösung_1 : %.1f , Nährlösung_2 : %.1f , Nährlösung_3 : %.1f}", w1, l1, l2, l3 )
Ich möchte gerne erreichen, das die Ausgabe über MQTT dann so aussieht:
{"Woche":"1","Nährlösung_1":"2.5","Nährlösung_2":"2.5","Nährlösung_3":"2.5",}
Doch ich komme einfach nicht darauf, wie ich die Sonderzeichen in einem String setzen muss, gibt es da eine Möglichkeit / Übersicht ?
Ich habe mich dabei an die MQTT Ausgabe Formatierung von Tasmota orientiert, daher der Wunsch.
Vielen Dank für die Mühe
Viele Grüße
Cali
ich habe eine Regel erstellt, die mehrere Items zusammen fasst und als einen String über MQTT ausgibt, aber ich beiße mir grade die Zähne an der Formatierung des Strings aus, ansonsten funktioniert alles wie gewünscht.
Erstmal die Regel selbst:
Code: Alles auswählen
rule "Summary_Naehrloesung"
when
Item Hydroponik_01_Send_Summary_Naehrloesung changed from 0 to 1
then
var Number w1 = (Hydroponik_01_Set_Woche.state as DecimalType).floatValue
var Number l1 = (Hydroponik_01_Set_Naehrloesung_01.state as Number).floatValue
var Number l2 = (Hydroponik_01_Set_Naehrloesung_02.state as Number).floatValue
var Number l3 = (Hydroponik_01_Set_Naehrloesung_03.state as Number).floatValue
var String Ausgabe = String::format ("{Woche : %.0f , Nährlösung 1 : %.1f , Nährlösung 2 : %.1f , Nährlösung 3 : %.1f}", w1, l1, l2, l3 )
Hydroponik_01_Summary_Naehrloesung.postUpdate(Ausgabe)
logInfo('rules', 'Ausgabe' + Hydroponik_01_Summary_Naehrloesung)
sendCommand(Hydroponik_01_Send_Summary_Naehrloesung, 0 )
sendCommand(Hydroponik_01_Send_Summary_Naehrloesung_AnzeigeInSitemap, 0 )
val mqttActions = getActions("mqtt","mqtt:broker:MyBroker")
mqttActions.publishMQTT("Hydroponik_01/Summary_Naehrloesung", Hydroponik_01_Summary_Naehrloesung.state.toString, true)
end
var String Ausgabe = String::format ("{Woche : %.0f , Nährlösung_1 : %.1f , Nährlösung_2 : %.1f , Nährlösung_3 : %.1f}", w1, l1, l2, l3 )
Ich möchte gerne erreichen, das die Ausgabe über MQTT dann so aussieht:
{"Woche":"1","Nährlösung_1":"2.5","Nährlösung_2":"2.5","Nährlösung_3":"2.5",}
Doch ich komme einfach nicht darauf, wie ich die Sonderzeichen in einem String setzen muss, gibt es da eine Möglichkeit / Übersicht ?
Ich habe mich dabei an die MQTT Ausgabe Formatierung von Tasmota orientiert, daher der Wunsch.
Vielen Dank für die Mühe
Viele Grüße
Cali