KNX Data Secure Unterstützung
für KNX Logger und KNX Busmonitor
KNX Diagnose Monitor, Import des ETS Projektes deutlich beschleunigt, Suche in der Navigation
Mehr Informationen dazu hier im Forum
Insider Version 6 zur 4.5 jetzt für alle Mitglieder des Insider Clubs installierbar
Alle Infos zum Update im Timberwolf Wiki
[FINR] [V4.1] Freie Formel - Probleme mit Bool Konvertierung (WD-2633)
-
- Reactions:
- Beiträge: 261
- Registriert: Sa Mär 02, 2024 11:04 am
- Hat sich bedankt: 138 Mal
- Danksagung erhalten: 161 Mal
[V4.1] Freie Formel - Probleme mit Bool Konvertierung (WD-2633)
Hallo zusammen,
ich habe ein kleines Problem oder einen Fehler (?) mit dem Ergebnis einer freien Formel. Ich halte die Fehlerbeschreibung erst mal kurz und liefere wenn sich das Problem konkretisierte Infos/ Bilder nach.
Ich benutze folgende Formel (vereinfacht): x1 >= 800 ?1 :0
Die Berechnung funktioniert und das Ergebnis ist 1.0 oder 0.0 (Float-Zahl).
Den Output möchte ich an ein KNX Objekt von DTP 1.002 (Bool) senden. Laut Popup Hinweis muss eine Konvertierung stattfinden - gerne, sollte ja klappen. Tut es aber nicht: Der Output der Logik wird rot und die Verknüpfung lässt sich nicht speichern.
Verknüpfe ich das Ergebnis stattdessen an eine weitere Und-Logik und mache damit die Konvertierung (Eingangsfunktion) geht alles.
Nun das komische: Wenn ich die Und-Logik deaktiviere und dem Output meiner freien Formel zusätzlich das Bool KNX-Objekt hinzufüge, funktioniert die implizierte Konvertierung.
Tausche ich die Reihenfolge der Output-Verknüpfungen, also erst das KNX-Objekt dann die deaktivierte UND-Logik, wird die Logik rot und lässt sich nicht speichern.
Mache ich etwas falsch? Klingelt das Problem bei jemanden?
Viele Grüße
Stefan
ich habe ein kleines Problem oder einen Fehler (?) mit dem Ergebnis einer freien Formel. Ich halte die Fehlerbeschreibung erst mal kurz und liefere wenn sich das Problem konkretisierte Infos/ Bilder nach.
Ich benutze folgende Formel (vereinfacht): x1 >= 800 ?1 :0
Die Berechnung funktioniert und das Ergebnis ist 1.0 oder 0.0 (Float-Zahl).
Den Output möchte ich an ein KNX Objekt von DTP 1.002 (Bool) senden. Laut Popup Hinweis muss eine Konvertierung stattfinden - gerne, sollte ja klappen. Tut es aber nicht: Der Output der Logik wird rot und die Verknüpfung lässt sich nicht speichern.
Verknüpfe ich das Ergebnis stattdessen an eine weitere Und-Logik und mache damit die Konvertierung (Eingangsfunktion) geht alles.
Nun das komische: Wenn ich die Und-Logik deaktiviere und dem Output meiner freien Formel zusätzlich das Bool KNX-Objekt hinzufüge, funktioniert die implizierte Konvertierung.
Tausche ich die Reihenfolge der Output-Verknüpfungen, also erst das KNX-Objekt dann die deaktivierte UND-Logik, wird die Logik rot und lässt sich nicht speichern.
Mache ich etwas falsch? Klingelt das Problem bei jemanden?
Viele Grüße
Stefan
Zuletzt geändert von ms20de am Di Dez 03, 2024 5:32 pm, insgesamt 3-mal geändert.
TWS 3500XL ID:1486, VPN aktiv, Reboot nach Rücksprache
-
- Reactions:
- Beiträge: 2669
- Registriert: Sa Sep 15, 2018 10:26 am
- Wohnort: Kerpen
- Hat sich bedankt: 998 Mal
- Danksagung erhalten: 787 Mal
Hallo Stefan,
bitte liefere doch entsprechende Screenshots.
Du schreibst „vereinfacht“. Was genau ist darunter zu verstehen? Im Zweifel kommt es bei der Fehlersuche ja auf jedes einzelne Zeichen an.
Danke.
Beste Grüße
Jens
bitte liefere doch entsprechende Screenshots.
Du schreibst „vereinfacht“. Was genau ist darunter zu verstehen? Im Zweifel kommt es bei der Fehlersuche ja auf jedes einzelne Zeichen an.
Danke.
Beste Grüße
Jens
Zuletzt geändert von blaubaerli am Mo Dez 02, 2024 7:39 am, insgesamt 1-mal geändert.
timberwolf168 | (2600er) | VPN offen | Reboot nach Vereinbarung |
timberwolf1699 | (3500XL) | VPN offen | Reboot jederzeit |
wiregate1250 |
-
- Reactions:
- Beiträge: 261
- Registriert: Sa Mär 02, 2024 11:04 am
- Hat sich bedankt: 138 Mal
- Danksagung erhalten: 161 Mal
Moin Jens,
„vereinfacht“ heißt, dass die Formel etwas länger ist, aber in der gleichen Struktur. Da die Berechnung funktioniert (Dr. Modus) sollte die Formel keine Rolle spielen.
Doch ich kenne solche Situationen/Fehler… manchmal sind es superoffensichtliche Dinge, manchmal Wechselwirkungen um 2 Ecken.
Ich schaffe Screenshots erst heute abend - sofern bis dahin nicht doch jemanden was offensichtliches auffällt. Ehrlich gesagt rechne ich mit einem Anwenderfehler…
„vereinfacht“ heißt, dass die Formel etwas länger ist, aber in der gleichen Struktur. Da die Berechnung funktioniert (Dr. Modus) sollte die Formel keine Rolle spielen.
Doch ich kenne solche Situationen/Fehler… manchmal sind es superoffensichtliche Dinge, manchmal Wechselwirkungen um 2 Ecken.
Ich schaffe Screenshots erst heute abend - sofern bis dahin nicht doch jemanden was offensichtliches auffällt. Ehrlich gesagt rechne ich mit einem Anwenderfehler…
Zuletzt geändert von AndererStefan am Mo Dez 02, 2024 8:24 am, insgesamt 1-mal geändert.
TWS 3500XL ID:1486, VPN aktiv, Reboot nach Rücksprache
-
- Reactions:
- Beiträge: 3903
- Registriert: So Aug 12, 2018 8:44 am
- Hat sich bedankt: 1263 Mal
- Danksagung erhalten: 2213 Mal
Hallo Stefan!
Ich denke hier ist dürfte tatsächlich die Logik zu streng sein.
Was in dem Fall als Workaround auch gehen sollte:
- Logik ohne Verknüpfen speichern
- im Objektmanager verknüpfen
Lg
Robert von
Ich denke hier ist dürfte tatsächlich die Logik zu streng sein.
Was in dem Fall als Workaround auch gehen sollte:
- Logik ohne Verknüpfen speichern
- im Objektmanager verknüpfen
Lg
Robert von
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297
-
- Elaborated Networks
- Reactions:
- Beiträge: 10702
- Registriert: So Aug 12, 2018 9:27 am
- Wohnort: Frauenneuharting
- Hat sich bedankt: 5303 Mal
- Danksagung erhalten: 8685 Mal
- Kontaktdaten:
Hi Stefan,
Hast Du Insider? Dann wäre das einen Test wert und Du hast ein Problem weniger?
lg
Stefan
In der neuen IP 1 zur V 4.5 haben wir das Verhalten des Logikmanagers bei komplexeren Einstellungen und Verknüpfungen verbessert.AndererStefan hat geschrieben: ↑Mo Dez 02, 2024 12:40 amDer Output der Logik wird rot und die Verknüpfung lässt sich nicht speichern.
Hast Du Insider? Dann wäre das einen Test wert und Du hast ein Problem weniger?
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.
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.
-
- Reactions:
- Beiträge: 261
- Registriert: Sa Mär 02, 2024 11:04 am
- Hat sich bedankt: 138 Mal
- Danksagung erhalten: 161 Mal
Guten Abend zusammen,
aaalso, die Anwendung ist eigentlich sehr übersichtlich. Ich möchte einen Integer-Wert aus einer Wetter-API lesen, gegen ein Intervall prüfen und abhängig von dem Ergebnis Wahr/Falsch auf den KNX-Bus senden.
Saubere, funktionierende Lösung
Zunächst zeige ich die Screenshots einer "sauberen" Umsetzung die funktioniert. Es geht um die Logiken Logic_6 und Logic_7:
Per HTTP-API wird von OpenWeatherMap ein Parameter der Wettervorhersage aus einem json ausgelesen und als Integerwert in Objekt RT2 gespeichert. Im Screenshot unten ist das 500 (Code für leichter Regen).

Mit der Logic_6 ermittel ich, ob RT2 zwischen 800 oder 801 liegt. Ja, das ginge auch anders, aber evtl. möchte ich das später auf 802, ...803 erweitern. Dazu nutze ich die Formel:
Das Ergebnis der Formel ist eine Float-Zahl und entweder 1.0 oder 0.0. Den Ausgang der Logik habe ich mit dem Eingang der Logic_7 verbunden.
Mit einer UND-Verknüpfung mache ich eine (eventuell etwas ungelenke) Konvertierung von Float nach Bool. Das Ergebnis wird in KNX-Objekt KX26 geschrieben, ebenfalls Bool.

Nach dieser Methode funktioniert alles wie beabsichtigt, ist aber mit 2 Logiken nicht sehr elegant. Meine erste Herangehensweise war folgender Versuch:
Nicht funkionierende, direkte Konvertierung

Es ist nicht möglich die Logik zu speichern, nachdem ich KX26 verknüpfe. Mir ist auch nicht klar, was das rote Feld bedeutet. Also abseits davon, dass es vermutlich auf ein Problem hinweist
Über das Dropdown im roten Feld kann ich nur "Ausgangsfunktion keine" anwählen.
Im Verknüpfungsassistenten wird mir zu KX26 folgendes mitgeteilt:

Gerne doch! Eine Konvertierung von 1.0 nach true und 0.0 nach false ist genau was ich mir wünsche. Aber, leider... es geht nicht.
Durch Zufall kam ich dann auf die folgende Variante.
Dirty Workaround
Wenn ich zuerst das Eingangs-Objekt für die Konvertierungs-Logic_7 verknüpfe (die jetzt übrigens pausiert ist), dann darf ich als zweites Objekt KX26 verknüpfen:


Dann klappts auch mit der Konvertierung. Und oh, es regnet nicht mehr, wie schön.
Andersherum geht es nicht, dann kommt wieder der rote Kasten.
@Robert_Mini: Jetzt wollte ich am Ende meines Beitrags eigentlich fragen, was du mit "die Logik sei zu streng" meinst, aber dann habe ich noch deinen Tipp ausprobiert (hätte ich wohl zuerst machen sollen
) und die Logik ohne Verknpüfung gespeichert und anschließend in der KNX-Objektverwaltung verknüpft. Und.... geht!

Die 800 für "klaren Himmel" habe ich allerdings gefaked
Also bleibt als Fazit: Ich habe eigentlich kein echtes Problem und dank dem Hinweis von Robert auch eine saubere, schlanke Lösung.
Ob jetzt aber alles so funktioniert wie von den Entwicklern gedacht, oder ob da zumindest noch irgendwo ein Hinweis hin sollte, oder ich einfach nur das Handbuch sorgfältiger lesen müsste, vermag ich nicht zu sagen.
@stefanW: Nein, kein Insider. Aber ich hoffe, das Finanzministerium genehmigt nach Ablauf des Inklusiv-Upgrades eine Wartung. - Je mehr ich mich in den letzten Tagen wieder mehr mit dem TWS beschäftige, umso begeisteter bin ich.
Viele Grüße & Gute Nacht
Stefan
aaalso, die Anwendung ist eigentlich sehr übersichtlich. Ich möchte einen Integer-Wert aus einer Wetter-API lesen, gegen ein Intervall prüfen und abhängig von dem Ergebnis Wahr/Falsch auf den KNX-Bus senden.
Saubere, funktionierende Lösung
Zunächst zeige ich die Screenshots einer "sauberen" Umsetzung die funktioniert. Es geht um die Logiken Logic_6 und Logic_7:
Per HTTP-API wird von OpenWeatherMap ein Parameter der Wettervorhersage aus einem json ausgelesen und als Integerwert in Objekt RT2 gespeichert. Im Screenshot unten ist das 500 (Code für leichter Regen).

Mit der Logic_6 ermittel ich, ob RT2 zwischen 800 oder 801 liegt. Ja, das ginge auch anders, aber evtl. möchte ich das später auf 802, ...803 erweitern. Dazu nutze ich die Formel:
Code: Alles auswählen
(X1 >= 800 && X1<= 801) || (X1 ==0) ?1.0:0.0
Mit einer UND-Verknüpfung mache ich eine (eventuell etwas ungelenke) Konvertierung von Float nach Bool. Das Ergebnis wird in KNX-Objekt KX26 geschrieben, ebenfalls Bool.

Nach dieser Methode funktioniert alles wie beabsichtigt, ist aber mit 2 Logiken nicht sehr elegant. Meine erste Herangehensweise war folgender Versuch:
Nicht funkionierende, direkte Konvertierung

Es ist nicht möglich die Logik zu speichern, nachdem ich KX26 verknüpfe. Mir ist auch nicht klar, was das rote Feld bedeutet. Also abseits davon, dass es vermutlich auf ein Problem hinweist

Über das Dropdown im roten Feld kann ich nur "Ausgangsfunktion keine" anwählen.
Im Verknüpfungsassistenten wird mir zu KX26 folgendes mitgeteilt:

Gerne doch! Eine Konvertierung von 1.0 nach true und 0.0 nach false ist genau was ich mir wünsche. Aber, leider... es geht nicht.
Durch Zufall kam ich dann auf die folgende Variante.
Dirty Workaround
Wenn ich zuerst das Eingangs-Objekt für die Konvertierungs-Logic_7 verknüpfe (die jetzt übrigens pausiert ist), dann darf ich als zweites Objekt KX26 verknüpfen:


Dann klappts auch mit der Konvertierung. Und oh, es regnet nicht mehr, wie schön.

Andersherum geht es nicht, dann kommt wieder der rote Kasten.
@Robert_Mini: Jetzt wollte ich am Ende meines Beitrags eigentlich fragen, was du mit "die Logik sei zu streng" meinst, aber dann habe ich noch deinen Tipp ausprobiert (hätte ich wohl zuerst machen sollen



Die 800 für "klaren Himmel" habe ich allerdings gefaked

Also bleibt als Fazit: Ich habe eigentlich kein echtes Problem und dank dem Hinweis von Robert auch eine saubere, schlanke Lösung.
Ob jetzt aber alles so funktioniert wie von den Entwicklern gedacht, oder ob da zumindest noch irgendwo ein Hinweis hin sollte, oder ich einfach nur das Handbuch sorgfältiger lesen müsste, vermag ich nicht zu sagen.
@stefanW: Nein, kein Insider. Aber ich hoffe, das Finanzministerium genehmigt nach Ablauf des Inklusiv-Upgrades eine Wartung. - Je mehr ich mich in den letzten Tagen wieder mehr mit dem TWS beschäftige, umso begeisteter bin ich.
Viele Grüße & Gute Nacht
Stefan
Zuletzt geändert von AndererStefan am Di Dez 03, 2024 12:22 am, insgesamt 1-mal geändert.
TWS 3500XL ID:1486, VPN aktiv, Reboot nach Rücksprache
-
- Elaborated Networks
- Reactions:
- Beiträge: 1267
- Registriert: Sa Aug 11, 2018 9:14 pm
- Hat sich bedankt: 358 Mal
- Danksagung erhalten: 696 Mal
Hallo Stefan,
die Entwickler sind der Meinung, dass der Logik-Editor hier zu streng ist, besonders im Zusammenhang mit der Anzeige im Verknüpfungsassistent.
Mit dem nächsten Release, kann im Logik-Editor direkt eine Verknüpfung von float auf boolean gemacht werden. Wenn der Wert auf dem KNX Bus gesendet wird, findet die Umwandlung statt. Wie bisher auch schon über die KNX-Objektseite oder andere Wege möglich.
Zusätzlich (WD-2634) kann man dann auch Booleans, Ints und Floats auf eine Zeichenkette im KNX Subsystem (DPT 16) senden mit automatischer Konvertierung. Braucht man vielleicht nicht sehr oft, weil mit der String Format Logik schönere Ergebnisse möglich sind, war aber kein Aufwand weil bereits eingebaut aber nicht freischaltet.
Viele Grüße,
Matthias
die Entwickler sind der Meinung, dass der Logik-Editor hier zu streng ist, besonders im Zusammenhang mit der Anzeige im Verknüpfungsassistent.
Mit dem nächsten Release, kann im Logik-Editor direkt eine Verknüpfung von float auf boolean gemacht werden. Wenn der Wert auf dem KNX Bus gesendet wird, findet die Umwandlung statt. Wie bisher auch schon über die KNX-Objektseite oder andere Wege möglich.
Zusätzlich (WD-2634) kann man dann auch Booleans, Ints und Floats auf eine Zeichenkette im KNX Subsystem (DPT 16) senden mit automatischer Konvertierung. Braucht man vielleicht nicht sehr oft, weil mit der String Format Logik schönere Ergebnisse möglich sind, war aber kein Aufwand weil bereits eingebaut aber nicht freischaltet.
Viele Grüße,
Matthias
[ Timberwolf Entwicklung ]
TWS 2400 ID:102 VPN offen, Reboot auf Nachfrage
TWS 3500 ID:695 VPN offen, Bitte kein Reboot ohne Absprache
TWS 2400 ID:102 VPN offen, Reboot auf Nachfrage
TWS 3500 ID:695 VPN offen, Bitte kein Reboot ohne Absprache
-
- Reactions:
- Beiträge: 261
- Registriert: Sa Mär 02, 2024 11:04 am
- Hat sich bedankt: 138 Mal
- Danksagung erhalten: 161 Mal
Hallo Matthias,
sehr schön und lieben Dank!
sehr schön und lieben Dank!
TWS 3500XL ID:1486, VPN aktiv, Reboot nach Rücksprache