UPGRADE IP 9 verfügbar!
Timberwolf VISU jetzt mit NEUEM Layout Editor
Freie Anordnung, Reihenfolge und Größe der Widgets - viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/06SeuHRJ

NEU! Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Damit kann nun jeder das Upgrade vornehmen und VISU & IFTTT testen. Alle Info hier: viewtopic.php?f=8&t=5074

[DISKUSSION] String-Funktionen

Hier bitte Eure Diskussionen und Feature Requests zu neuen Logikmodulen und Funktionen des Logik-Editors
Antworten

Ersteller
KFloo
Reactions:
Beiträge: 82
Registriert: Di Jan 04, 2022 10:14 pm
Hat sich bedankt: 49 Mal
Danksagung erhalten: 49 Mal

String-Funktionen

#1

Beitrag von KFloo »

Hallo zusammen,

ich bin neu hier und erkunde die Möglichkeiten.

Bzgl. der Logikbausteine fehlen mir String-Funktionen sehr!
(Ich könnte mir auch vorstellen, statt in Logikbausteinen, solche Anpassungen/Zerlegungen auch als Nachverarbeitung im Objektmanager anzubieten (vor der Zuführung zu Zielen wie KNX oder Logiken).)

Ich bitte um Nachsicht, wenn einige Bezeichnungen von mir nicht ganz getroffen sind - ich habe den Timberwolf erst seit kurzem im Einsatz.

Hier ganz kontrete Anwendungsbeispiele:

1) Abruf der aktuellen Raumtemperaturen via REST (Steuerung, die noch zwecks Heizung verwendet wird)
- Rückgabewert ist ein CSV-String in den JSON-Elementen: Temperatur IST;Temperatur SOLL;Ventilöffnung;Betriebsmodus;Korrektur
- Hier müsste ich den String bei den Semikolons zerteilen und dann die einzelnen Werte weiterverarbeiten
- Den Wert zum Betriebsmodus würde ich gerne zusätzlich umwandeln in einen sprechenden Text: "Komfortbetrieb", "Absenkbetrieb",..

2) Abruf der aktuellen Werte meiner KWL (Pluggit) via ModbusTCP
- Der Betriebsmodus kommt als UINT. Würde sie gerne in einen sprechenden Text umwandeln und auf den KNX-Bus schicken, zB: "Bedarfsmodus", "Wochenmodus",...

Zusatzfrage: Können nach Senden eines Wertes alle Werte erneut abgerufen werden (ein kompletter Trigger durch Objektänderung, zusätzlich zum periodischem Abruf, vgl. HTTP-API)?
- Hintergrund: Durch Setzen eines Betriebsmodus können sich auch andere Werte als nur der Betriebsmodus ändern (Bypass, RPM,..)

3) Einlesen der aktuellen Werte meiner Enthärtungsanlage (Grünbeck) via MQTT:
- Der Wert des MQTT-Topics zum Salzverbrauch ist ein JSON-String (mit mehreren Details darin) - diesen würde ich gerne einem (weiteren) Logikbaustein zuführen und weiterverarbeiten.

4) Verbinden von mehreren Strings
- Mischung aus variablen Eingangswerten und vorgegebenen Strings

Viele Grüße,
Florian
Vg, Florian. (TWS 3500M #708, VPN geschlossen)

StefanW
Elaborated Networks
Reactions:
Beiträge: 9689
Registriert: So Aug 12, 2018 9:27 am
Wohnort: Frauenneuharting
Hat sich bedankt: 4831 Mal
Danksagung erhalten: 7633 Mal
Kontaktdaten:

#2

Beitrag von StefanW »

Hallo Florian,
KFloo hat geschrieben: Mo Jan 24, 2022 3:48 pmBzgl. der Logikbausteine fehlen mir String-Funktionen sehr!
Ja, mit den neuen Möglichkeiten über Modbus, MQTT und Rest-API kommt hier Bedarf auf, wir arbeiten auch daran.

KFloo hat geschrieben: Mo Jan 24, 2022 3:48 pmIch könnte mir auch vorstellen, statt in Logikbausteinen, solche Anpassungen/Zerlegungen auch als Nachverarbeitung im Objektmanager anzubieten (vor der Zuführung zu Zielen wie KNX oder Logiken).)
Ja, der Timberwolf Server ist dahingehend ausgelegt, dass man möglichst wenig von der Logik in Anspruch nehmen muss, weil die meisten Dinge entweder automatisch funktionieren oder in den Subsystemen gelöst sind.

KFloo hat geschrieben: Mo Jan 24, 2022 3:48 pm- Rückgabewert ist ein CSV-String in den JSON-Elementen: Temperatur IST;Temperatur SOLL;Ventilöffnung;Betriebsmodus;Korrektur
Ja, es steht auf unserer ToDo Liste, dass wir Arrays in JSON noch unterstützen wollen bei Zerlegung (und auch beim Schreiben)

==> Konkrete Beispiele helfen uns, also bitte mal das ganze JSON posten bitte

KFloo hat geschrieben: Mo Jan 24, 2022 3:48 pm- Den Wert zum Betriebsmodus würde ich gerne zusätzlich umwandeln in einen sprechenden Text: "Komfortbetrieb", "Absenkbetrieb",..
Ja, verstanden, ein Mapping-Feature haben wir auch auf der Liste, sollte aber mit der Logik bereits funktionieren

KFloo hat geschrieben: Mo Jan 24, 2022 3:48 pm- Der Betriebsmodus kommt als UINT. Würde sie gerne in einen sprechenden Text umwandeln und auf den KNX-Bus schicken, zB: "Bedarfsmodus", "Wochenmodus",...
Ja, das gleiche Thema, steht auch auf der Liste. Software wird eben nie fertig

KFloo hat geschrieben: Mo Jan 24, 2022 3:48 pmZusatzfrage: Können nach Senden eines Wertes alle Werte erneut abgerufen werden (ein kompletter Trigger durch Objektänderung, zusätzlich zum periodischem Abruf, vgl. HTTP-API)?
Schreiben per Trigger geht schon, Lesen auf Trigger steht auf der Liste

KFloo hat geschrieben: Mo Jan 24, 2022 3:48 pm3) Einlesen der aktuellen Werte meiner Enthärtungsanlage (Grünbeck) via MQTT:
- Der Wert des MQTT-Topics zum Salzverbrauch ist ein JSON-String (mit mehreren Details darin) - diesen würde ich gerne einem (weiteren) Logikbaustein zuführen und weiterverarbeiten.
Ist das Thema Array

KFloo hat geschrieben: Mo Jan 24, 2022 3:48 pm Verbinden von mehreren Strings; Mischung aus variablen Eingangswerten und vorgegebenen Strings
Ist bereits in Entwicklung

lg

Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de

Link zu Impressum und Datenschutzerklärung oben.

Ersteller
KFloo
Reactions:
Beiträge: 82
Registriert: Di Jan 04, 2022 10:14 pm
Hat sich bedankt: 49 Mal
Danksagung erhalten: 49 Mal

#3

Beitrag von KFloo »

Vorweg: Das mit dem MQTT/Grünbeck möchste ich etwas relativieren. Es ist vom Hersteller geplant, Anlagen direkt via MQTT einbinden zu können. Aktuell läuft das indirekt via iobroker und MQTT.


Hallo Stefan,

vielen Dank für deine Antwort - das hört sich ja ganz großartig an!

Ich finde es wirklich toll, dass Nutzer sich direkt mit dem Hersteller austauschen können.

Hier zwei JSON-Strings:

Raumtemperaturen:
(Temperatur IST;Temperatur SOLL;Ventilöffnung;Betriebsmodus;Korrektur)
{
	"item0":	{
		"sumstate":	{
			"value":	"22.20000076293945;22.00;41.44;8;1;0.00;0;"
		}
	},
	"item1":	{
		"sumstate":	{
			"value":	"23.10000038146973;18.00;0.00;16;1;1.50;0;"
		}
	},
	"item2":	{
		"sumstate":	{
			"value":	"21.60000038146973;21.00;1.72;8;1;-1.00;0;"
		}
(gekürzt - sind noch weitere items)
}

Energiekosten:
(Act.power;Energy today;Energy month;Energy sum;Power max.;Unit energy;Unit power;Energy today 0-6;6-12;12-18;18-24;Energy yesterd. 0-6;6-12;12-18;18-24;1=Act.Power available)
{
	"item0":	{
		"sumstate":	{
			"value":	"0.48;5.10;419.31;27879.24;10.00;kWh;kW;2233;2869;0;0;2066;6875;10065;3630;1;"
		}
	},
	"item1":	{
		"sumstate":	{
			"value":	"13.70;39.00;1206.00;57008.00;25.00;kWh;kW;11000;28000;0;0;7000;27000;18000;11000;1;"
		}
	}
}

Ich kann mir vorstellen, dass der Hersteller das einfach unschön implementiert hat.
Aber ich denke, es kommt durchaus vor, dass manchmal mehrere Stringverarbeitungen hintereinander durchgeführt werden müssen, zB. CSV in JSON oder JSON in MQTT.

Viele Grüße,
Florian
Vg, Florian. (TWS 3500M #708, VPN geschlossen)

adimaster
Reactions:
Beiträge: 375
Registriert: So Apr 14, 2019 11:12 am
Hat sich bedankt: 203 Mal
Danksagung erhalten: 198 Mal

#4

Beitrag von adimaster »

StefanW hat geschrieben: Mo Jan 24, 2022 5:24 pm
KFloo hat geschrieben: Mo Jan 24, 2022 3:48 pm Verbinden von mehreren Strings; Mischung aus variablen Eingangswerten und vorgegebenen Strings
Ist bereits in Entwicklung
Wenn ich das richtig verstehe, dann würde mir dieses Feature helfen.
Denn ich finde gerade keine Möglichkeit, wie ich mit dem Uhr-Zeit-Modul ein Datum in ein bestimmtes Format bringen kann (für einen HTTP-API-Request --> Abfrage, ob heute Feiertag ist oder nicht).

So würde ich mir das vorstellen (nur exemplarisch; sOutDate ist festgeschrieben, weil ich leider keine Möglichkeit kenne).
Bild

Frage: Muss ich hierzu auf obiges Modul warten oder gibt es bereits heute schon andere Möglichkeiten über den TWS?
Mir würde höchstens noch einfallen, über eine Rule in OpenHAB etwas zu erstellen; würde ich aber gerne vermeiden wollen :snooty: .
Grüße, Adi
TWS 2600 ID: 331, VPN geschlossen, Reboot nach Rücksprache
Antworten

Zurück zu „Feature Requests & Diskussionen Timberwolf Logik (Module & Editor)“