# String format

Verarbeitung
String format
P
1
2
3
4
T

# Eingänge

IDKürzelNameTypStandardBeschreibung
patternPpatternSTRING
v11v1STRING
v22v2STRING
v33v3STRING
v44v4STRING

# Ausgänge

IDKürzelNameTypStandardBeschreibung
textTtextSTRING

# Konfiguration

IDNameTypStandardEinheitBeschreibung
trigger_on_patterntrigger_on_patternBOOLEANfalse
trigger_on_v1trigger_on_v1BOOLEANtrue
trigger_on_v2trigger_on_v2BOOLEANtrue
trigger_on_v3trigger_on_v3BOOLEANtrue
trigger_on_v4trigger_on_v4BOOLEANtrue

# Zustand

IDNameTypStandardEinheitBeschreibung
has_patternhas_patternBOOLEANfalse
has_v1has_v1BOOLEANfalse
has_v2has_v2BOOLEANfalse
has_v3has_v3BOOLEANfalse
has_v4has_v4BOOLEANfalse

# Quellcode

Volang-Quellcode anzeigen
channel = input::channel()

if (channel == "pattern") {
    state::set("has_pattern", true)
}
if (channel == "v1") {
    state::set("has_v1", true)
}
if (channel == "v2") {
    state::set("has_v2", true)
}
if (channel == "v3") {
    state::set("has_v3", true)
}
if (channel == "v4") {
    state::set("has_v4", true)
}

if (!state::get("has_pattern")) {
    return
}

trigger = false
if (channel == "pattern" and config::get("trigger_on_pattern")) {
    trigger = true
}
if (channel == "v1" and config::get("trigger_on_v1")) {
    trigger = true
}
if (channel == "v2" and config::get("trigger_on_v2")) {
    trigger = true
}
if (channel == "v3" and config::get("trigger_on_v3")) {
    trigger = true
}
if (channel == "v4" and config::get("trigger_on_v4")) {
    trigger = true
}

if (!trigger) {
    return
}

pattern = input::get("pattern")
v1 = input::get("v1")
v2 = input::get("v2")
v3 = input::get("v3")
v4 = input::get("v4")

count = str::count(pattern, "{}")

if (count >= 1 and !state::get("has_v1")) {
    return
}
if (count >= 2 and !state::get("has_v2")) {
    return
}
if (count >= 3 and !state::get("has_v3")) {
    return
}
if (count >= 4 and !state::get("has_v4")) {
    return
}

if (count == 0) {
    output::set("text", pattern)
} else if (count == 1) {
    output::set("text", str::fmt(pattern, v1))
} else if (count == 2) {
    output::set("text", str::fmt(pattern, v1, v2))
} else if (count == 3) {
    output::set("text", str::fmt(pattern, v1, v2, v3))
} else {
    output::set("text", str::fmt(pattern, v1, v2, v3, v4))
}
Erfahren Sie, wie der Logikbaustein String format funktioniert, wann Sie ihn einsetzen und wie Sie ihn in Ihrer Voldeno Smart-Home-Automatisierung konfigurieren.