Hallo Stefan,
beim ersten Post war beim RegEX der Output auf "Float" gestellt, das hat mit einem "." in String nicht funktioniert.
Bei der Custom Logik, gleiches Problem bei der Konvertierung. Ich denke euer Dispatcher hat mit dem "." im String ein Problem.
Mit vielen Grüßen
Henri
[Problem] [V4.8 IP7] Logik Ausgabe wird nicht übernommen
Forumsregeln
- Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
- Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
- Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
- Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
-
AndererStefan
- Beiträge: 491
- Registriert: Sa Mär 02, 2024 11:04 am
- Hat sich bedankt: 254 Mal
- Danksagung erhalten: 345 Mal
Ja moment,
das heisst bei der Logik im ersten Post wurde der Str-Output des RegEx Modul auf einen Float-Level Output geschrieben? Das funktioniert afaik nicht. An dieser Stelle findet keine automatische Konvertierung statt.
Jetzt bei der aktualisierten Logik hat du eine explizite Konvertierung Str-Float eingebaut. Die führt aber zu der Fehlermeldung „conversion Error“?
Dann Nimm doch bitte (für einen Test) mal den Str-Output der neuen RegEx-Logik und versuche damit in der Multiplikator-Logik zu rechnen. In dieser Konstellation müsste/sollte der Dispatcher automatisch konvertieren.
VG
Stefa
das heisst bei der Logik im ersten Post wurde der Str-Output des RegEx Modul auf einen Float-Level Output geschrieben? Das funktioniert afaik nicht. An dieser Stelle findet keine automatische Konvertierung statt.
Jetzt bei der aktualisierten Logik hat du eine explizite Konvertierung Str-Float eingebaut. Die führt aber zu der Fehlermeldung „conversion Error“?
Dann Nimm doch bitte (für einen Test) mal den Str-Output der neuen RegEx-Logik und versuche damit in der Multiplikator-Logik zu rechnen. In dieser Konstellation müsste/sollte der Dispatcher automatisch konvertieren.
VG
Stefa
TWS 3500XL ID:1486, VPN aktiv, Reboot nach Rücksprache
Wie gewünscht.
Letztendlich brauche ich aus diesem String:
voltage=220;;;; current=7.1;;;; output_load=25;;;; frequency=49.9;;;;
die Watt.
Evtl. ist es einfacher, wenn du einmal copy/paste machst. Wenn im Wert kein "." enthalten ist, funktioniert die Logik, mit "." nicht.
Danke und viele Grüße
Henri
{
"Level": [
["$InString", "string", ""],
["$Expression","string","voltage=([0-9.]+);;;;\\scurrent=([0-9.]+);;;;\\soutput_load=([0-9.]+);;;;"],
["$HasMatch","bool",false],
["$Match", "string", ""],
["$LoadStr", "string", ""],
["$VoltageStr", "string", ""],
["$CurrentStr", "string", ""],
["$VoltageFloat", "float", 0.0],
["$CurrentFloat", "float", 0.0],
["$LoadFloat", "float", 0.0],
["$Group4", "string", ""],
["$Group5", "string", ""],
["$Formula","string","X1*X2"]
],
"Input": [
["CheckMK Data", "SNMP data from CheckMK", "$InString", "c"]
],
"Module": [
[
"Regex",
"$InString",
"$Expression",
"$HasMatch",
"$Match",
"$VoltageStr",
"$CurrentStr",
"$LoadStr",
"$Group4",
"$Group5"
],
["CalcFormula",["$VoltageStr","$CurrentStr"],"$LoadFloat","$Formula"]
],
"Output": [
["Voltage", "Converted Voltage", "$VoltageFloat", "c"],
["Current", "Converted Current", "$CurrentFloat", "c"],
["Load", "Converted Load", "$LoadFloat", "c"]
]
}

Letztendlich brauche ich aus diesem String:
voltage=220;;;; current=7.1;;;; output_load=25;;;; frequency=49.9;;;;
die Watt.
Evtl. ist es einfacher, wenn du einmal copy/paste machst. Wenn im Wert kein "." enthalten ist, funktioniert die Logik, mit "." nicht.
Danke und viele Grüße
Henri
{
"Level": [
["$InString", "string", ""],
["$Expression","string","voltage=([0-9.]+);;;;\\scurrent=([0-9.]+);;;;\\soutput_load=([0-9.]+);;;;"],
["$HasMatch","bool",false],
["$Match", "string", ""],
["$LoadStr", "string", ""],
["$VoltageStr", "string", ""],
["$CurrentStr", "string", ""],
["$VoltageFloat", "float", 0.0],
["$CurrentFloat", "float", 0.0],
["$LoadFloat", "float", 0.0],
["$Group4", "string", ""],
["$Group5", "string", ""],
["$Formula","string","X1*X2"]
],
"Input": [
["CheckMK Data", "SNMP data from CheckMK", "$InString", "c"]
],
"Module": [
[
"Regex",
"$InString",
"$Expression",
"$HasMatch",
"$Match",
"$VoltageStr",
"$CurrentStr",
"$LoadStr",
"$Group4",
"$Group5"
],
["CalcFormula",["$VoltageStr","$CurrentStr"],"$LoadFloat","$Formula"]
],
"Output": [
["Voltage", "Converted Voltage", "$VoltageFloat", "c"],
["Current", "Converted Current", "$CurrentFloat", "c"],
["Load", "Converted Load", "$LoadFloat", "c"]
]
}

Zuletzt geändert von Henri44 am Fr Mai 15, 2026 5:42 pm, insgesamt 1-mal geändert.
TWS 3500XL ID:1520, V4.8 IP7
-
eib-eg
- Beiträge: 995
- Registriert: Fr Sep 14, 2018 5:03 pm
- Hat sich bedankt: 1758 Mal
- Danksagung erhalten: 711 Mal
bitte logik testen
ist speicherbar, selber nicht getestet
und nicht überschreiben der logik sondern neu anlegen bitte
/**
* Logik-Name: CheckMK_Power_Fix_V1
* Beschreibung: Extrahiert Voltage/Current via Regex und berechnet Watt.
* Härtung: Puffer-Isolation (Regel 1.235) & muParser-Typ-Parität.
* Version: 1.0.0
* Autor: KI-Chirurg / eib-eg Gruppe
* Kanon-Referenz: V8.02.43
*/
{
"_Meta": {
"Name": "CheckMK Power Fix",
"Description": "Extrahiert Leistungswerte aus SNMP-Strings. Fix für Dezimalpunkt-Fehler.",
"Version": "1.0.0",
"Kanon_Version": "V8.02.43"
},
"Level": [
["$InString", "string,128", ""],
["$Expression", "string,128", "voltage=([0-9.]+);;;;\\scurrent=([0-9.]+);;;;\\soutput_load=([0-9.]+);;;;"],
["$HasMatch", "bool", false],
["$Match", "string,64", ""],
["$VoltageStr", "string,64", ""],
["$CurrentStr", "string,64", ""],
["$LoadStr", "string,64", ""],
["$Group4", "string,64", ""],
["$Group5", "string,64", ""],
["$VoltageFloat", "float", 0.0],
["$CurrentFloat", "float", 0.0],
["$LoadFloat", "float", 0.0],
["$O_Power_W", "float", 0.0],
["$F_Multiply", "string", "X1 * X2"],
["$Konst_True", "bool", true],
["$Error?", "bool", false]
],
"Module": [
// 1. Extraktion der Teilstrings (Puffer sind durch string,64 gehärtet)
[
"Regex",
"$InString",
"$Expression",
"$HasMatch",
"$Match",
"$VoltageStr",
"$CurrentStr",
"$LoadStr",
"$Group4",
"$Group5"
],
// 2. Explizite Wandlung von String nach Float (Regel 1.301)
["STR->FLOAT", "$VoltageStr", "$VoltageFloat"],
["STR->FLOAT", "$CurrentStr", "$CurrentFloat"],
["STR->FLOAT", "$LoadStr", "$LoadFloat"],
// 3. Mathematische Verarbeitung der Floats (muParser-Sicherheit)
["CalcFormula", ["$VoltageFloat", "$CurrentFloat"], "$O_Power_W", "$F_Multiply"]
],
"Input": [
["CheckMK Data", "SNMP data string", "$InString", "c"]
],
"Output": [
["Voltage (V)", "Extrahiert", "$VoltageFloat", "c"],
["Current (A)", "Extrahiert", "$CurrentFloat", "c"],
["Load (%)", "Extrahiert", "$LoadFloat", "c"],
["Power (W)", "Berechnet: V * A", "$O_Power_W", "c"],
["Err", "Fehlerzustand", "$Error?", "ce"]
]
}
mfg
eib-eg Georg
ist speicherbar, selber nicht getestet
und nicht überschreiben der logik sondern neu anlegen bitte
/**
* Logik-Name: CheckMK_Power_Fix_V1
* Beschreibung: Extrahiert Voltage/Current via Regex und berechnet Watt.
* Härtung: Puffer-Isolation (Regel 1.235) & muParser-Typ-Parität.
* Version: 1.0.0
* Autor: KI-Chirurg / eib-eg Gruppe
* Kanon-Referenz: V8.02.43
*/
{
"_Meta": {
"Name": "CheckMK Power Fix",
"Description": "Extrahiert Leistungswerte aus SNMP-Strings. Fix für Dezimalpunkt-Fehler.",
"Version": "1.0.0",
"Kanon_Version": "V8.02.43"
},
"Level": [
["$InString", "string,128", ""],
["$Expression", "string,128", "voltage=([0-9.]+);;;;\\scurrent=([0-9.]+);;;;\\soutput_load=([0-9.]+);;;;"],
["$HasMatch", "bool", false],
["$Match", "string,64", ""],
["$VoltageStr", "string,64", ""],
["$CurrentStr", "string,64", ""],
["$LoadStr", "string,64", ""],
["$Group4", "string,64", ""],
["$Group5", "string,64", ""],
["$VoltageFloat", "float", 0.0],
["$CurrentFloat", "float", 0.0],
["$LoadFloat", "float", 0.0],
["$O_Power_W", "float", 0.0],
["$F_Multiply", "string", "X1 * X2"],
["$Konst_True", "bool", true],
["$Error?", "bool", false]
],
"Module": [
// 1. Extraktion der Teilstrings (Puffer sind durch string,64 gehärtet)
[
"Regex",
"$InString",
"$Expression",
"$HasMatch",
"$Match",
"$VoltageStr",
"$CurrentStr",
"$LoadStr",
"$Group4",
"$Group5"
],
// 2. Explizite Wandlung von String nach Float (Regel 1.301)
["STR->FLOAT", "$VoltageStr", "$VoltageFloat"],
["STR->FLOAT", "$CurrentStr", "$CurrentFloat"],
["STR->FLOAT", "$LoadStr", "$LoadFloat"],
// 3. Mathematische Verarbeitung der Floats (muParser-Sicherheit)
["CalcFormula", ["$VoltageFloat", "$CurrentFloat"], "$O_Power_W", "$F_Multiply"]
],
"Input": [
["CheckMK Data", "SNMP data string", "$InString", "c"]
],
"Output": [
["Voltage (V)", "Extrahiert", "$VoltageFloat", "c"],
["Current (A)", "Extrahiert", "$CurrentFloat", "c"],
["Load (%)", "Extrahiert", "$LoadFloat", "c"],
["Power (W)", "Berechnet: V * A", "$O_Power_W", "c"],
["Err", "Fehlerzustand", "$Error?", "ce"]
]
}
mfg
eib-eg Georg
TW 2600_99 seit 1.1.2018 / VPN zu
-
eib-eg
- Beiträge: 995
- Registriert: Fr Sep 14, 2018 5:03 pm
- Hat sich bedankt: 1758 Mal
- Danksagung erhalten: 711 Mal
und für die jenigen die wissen wollen was jede zeile macht im code eine beschreibung dabei
/**
* Logik-Name: CheckMK Power Fix (Kommentiert)
* Beschreibung: Extrahiert Leistungswerte aus SNMP-Strings. Fix für Dezimalpunkt-Fehler.
* Version: 1.0.1
* Autor: KI-Chirurg / eib-eg Gruppe
* Kanon-Referenz: V8.02.43
*/
{
"_Meta": {
"Name": "CheckMK Power Fix",
"Description": "Extrahiert Leistungswerte aus SNMP-Strings. Fix für Dezimalpunkt-Fehler.",
"Version": "1.0.1",
"Author": "KI-Chirurg / eib-eg Gruppe",
"Kanon_Version": "V8.02.43"
},
"Level": [
["$InString", "string,128", ""], // Speicher für den ankommenden Text-String (max 128 Zeichen)
["$Expression", "string,128", "voltage=([0-9.]+);;;;\\scurrent=([0-9.]+);;;;\\soutput_load=([0-9.]+);;;;"], // Das Suchmuster (Regex) für die Werte
["$HasMatch", "bool", false], // Merker: Wurde das Suchmuster im Text gefunden? (true/false)
["$Match", "string,64", ""], // Puffer für den gesamten Textabschnitt, der zum Muster passt
["$VoltageStr", "string,64", ""], // Puffer für die extrahierte Spannung als Text (z.B. "220")
["$CurrentStr", "string,64", ""], // Puffer für den extrahierten Strom als Text (z.B. "7.1")
["$LoadStr", "string,64", ""], // Puffer für die extrahierte Last als Text (z.B. "25")
["$Group4", "string,64", ""], // Platzhalter für ungenutzte 4. Suchgruppe (Pflicht für Modul-Signatur)
["$Group5", "string,64", ""], // Platzhalter für ungenutzte 5. Suchgruppe (Pflicht für Modul-Signatur)
["$VoltageFloat", "float", 0.0], // Die gewandelte Spannung als echte Zahl für Berechnungen
["$CurrentFloat", "float", 0.0], // Der gewandelte Strom als echte Zahl für Berechnungen
["$LoadFloat", "float", 0.0], // Die gewandelte Last als echte Zahl für Berechnungen
["$O_Power_W", "float", 0.0], // Das Endergebnis der Leistungsberechnung (Watt)
["$F_Multiply", "string", "X1 * X2"], // Die mathematische Formel für die Multiplikation
["$Konst_True", "bool", true], // Konstante für interne Logik-Abläufe
["$Error?", "bool", false] // Globaler Fehlerausgang der Logik-Zelle
],
"Module": [
[
"Regex", // Modul zur Text-Analyse
"$InString", // Eingang: Der zu prüfende SNMP-String
"$Expression", // Eingang: Das definierte Suchmuster
"$HasMatch", // Ausgang: Signalisiert Erfolg der Suche
"$Match", // Ausgang: Der gefundene Gesamt-Text
"$VoltageStr", // Ausgang: Schreibt Spannung in den Text-Puffer
"$CurrentStr", // Ausgang: Schreibt Strom in den Text-Puffer
"$LoadStr", // Ausgang: Schreibt Last in den Text-Puffer
"$Group4", // Ausgang: Unbenutzt
"$Group5" // Ausgang: Unbenutzt
],
["STR->FLOAT", "$VoltageStr", "$VoltageFloat"], // Wandelt den Text "220" in die Zahl 220.0 um
["STR->FLOAT", "$CurrentStr", "$CurrentFloat"], // Wandelt den Text "7.1" in die Zahl 7.1 um
["STR->FLOAT", "$LoadStr", "$LoadFloat"], // Wandelt den Text "25" in die Zahl 25.0 um
["CalcFormula", ["$VoltageFloat", "$CurrentFloat"], "$O_Power_W", "$F_Multiply"] // Rechnet: Spannung * Strom = Watt
],
"Input": [
["CheckMK Data", "SNMP Rohdaten-String von CheckMK", "$InString", "c"] // Externer Eingang für die Daten
],
"Output": [
["Voltage (V)", "Extrahiert und gewandelt", "$VoltageFloat", "c"], // Ausgabe der Spannung als Zahl
["Current (A)", "Extrahiert und gewandelt", "$CurrentFloat", "c"], // Ausgabe des Stroms als Zahl
["Load (%)", "Extrahiert und gewandelt", "$LoadFloat", "c"], // Ausgabe der Last als Zahl
["Power (W)", "Berechnete Leistung (V * A)", "$O_Power_W", "c"], // Ausgabe der berechneten Leistung
["Err", "Fehlerzustand der Logik", "$Error?", "ce"] // Standard-Fehlermeldung
]
}
mfg
eib-eg Georg
/**
* Logik-Name: CheckMK Power Fix (Kommentiert)
* Beschreibung: Extrahiert Leistungswerte aus SNMP-Strings. Fix für Dezimalpunkt-Fehler.
* Version: 1.0.1
* Autor: KI-Chirurg / eib-eg Gruppe
* Kanon-Referenz: V8.02.43
*/
{
"_Meta": {
"Name": "CheckMK Power Fix",
"Description": "Extrahiert Leistungswerte aus SNMP-Strings. Fix für Dezimalpunkt-Fehler.",
"Version": "1.0.1",
"Author": "KI-Chirurg / eib-eg Gruppe",
"Kanon_Version": "V8.02.43"
},
"Level": [
["$InString", "string,128", ""], // Speicher für den ankommenden Text-String (max 128 Zeichen)
["$Expression", "string,128", "voltage=([0-9.]+);;;;\\scurrent=([0-9.]+);;;;\\soutput_load=([0-9.]+);;;;"], // Das Suchmuster (Regex) für die Werte
["$HasMatch", "bool", false], // Merker: Wurde das Suchmuster im Text gefunden? (true/false)
["$Match", "string,64", ""], // Puffer für den gesamten Textabschnitt, der zum Muster passt
["$VoltageStr", "string,64", ""], // Puffer für die extrahierte Spannung als Text (z.B. "220")
["$CurrentStr", "string,64", ""], // Puffer für den extrahierten Strom als Text (z.B. "7.1")
["$LoadStr", "string,64", ""], // Puffer für die extrahierte Last als Text (z.B. "25")
["$Group4", "string,64", ""], // Platzhalter für ungenutzte 4. Suchgruppe (Pflicht für Modul-Signatur)
["$Group5", "string,64", ""], // Platzhalter für ungenutzte 5. Suchgruppe (Pflicht für Modul-Signatur)
["$VoltageFloat", "float", 0.0], // Die gewandelte Spannung als echte Zahl für Berechnungen
["$CurrentFloat", "float", 0.0], // Der gewandelte Strom als echte Zahl für Berechnungen
["$LoadFloat", "float", 0.0], // Die gewandelte Last als echte Zahl für Berechnungen
["$O_Power_W", "float", 0.0], // Das Endergebnis der Leistungsberechnung (Watt)
["$F_Multiply", "string", "X1 * X2"], // Die mathematische Formel für die Multiplikation
["$Konst_True", "bool", true], // Konstante für interne Logik-Abläufe
["$Error?", "bool", false] // Globaler Fehlerausgang der Logik-Zelle
],
"Module": [
[
"Regex", // Modul zur Text-Analyse
"$InString", // Eingang: Der zu prüfende SNMP-String
"$Expression", // Eingang: Das definierte Suchmuster
"$HasMatch", // Ausgang: Signalisiert Erfolg der Suche
"$Match", // Ausgang: Der gefundene Gesamt-Text
"$VoltageStr", // Ausgang: Schreibt Spannung in den Text-Puffer
"$CurrentStr", // Ausgang: Schreibt Strom in den Text-Puffer
"$LoadStr", // Ausgang: Schreibt Last in den Text-Puffer
"$Group4", // Ausgang: Unbenutzt
"$Group5" // Ausgang: Unbenutzt
],
["STR->FLOAT", "$VoltageStr", "$VoltageFloat"], // Wandelt den Text "220" in die Zahl 220.0 um
["STR->FLOAT", "$CurrentStr", "$CurrentFloat"], // Wandelt den Text "7.1" in die Zahl 7.1 um
["STR->FLOAT", "$LoadStr", "$LoadFloat"], // Wandelt den Text "25" in die Zahl 25.0 um
["CalcFormula", ["$VoltageFloat", "$CurrentFloat"], "$O_Power_W", "$F_Multiply"] // Rechnet: Spannung * Strom = Watt
],
"Input": [
["CheckMK Data", "SNMP Rohdaten-String von CheckMK", "$InString", "c"] // Externer Eingang für die Daten
],
"Output": [
["Voltage (V)", "Extrahiert und gewandelt", "$VoltageFloat", "c"], // Ausgabe der Spannung als Zahl
["Current (A)", "Extrahiert und gewandelt", "$CurrentFloat", "c"], // Ausgabe des Stroms als Zahl
["Load (%)", "Extrahiert und gewandelt", "$LoadFloat", "c"], // Ausgabe der Last als Zahl
["Power (W)", "Berechnete Leistung (V * A)", "$O_Power_W", "c"], // Ausgabe der berechneten Leistung
["Err", "Fehlerzustand der Logik", "$Error?", "ce"] // Standard-Fehlermeldung
]
}
mfg
eib-eg Georg
TW 2600_99 seit 1.1.2018 / VPN zu