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

[Gelöst] Logik für Berechnungen (für 1-Wire DS2438)

Informationen und Diskussionen über Logik-Engine und Logik-Editor
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

Ersteller
danik
Reactions:
Beiträge: 415
Registriert: Mo Sep 10, 2018 8:40 pm
Hat sich bedankt: 293 Mal
Danksagung erhalten: 278 Mal

Logik für Berechnungen (für 1-Wire DS2438)

#1

Beitrag von danik »

Hi

Ich habe einige 1-Wire Geräte für Luftfeuchte/Helligkeit (Baustein DS2438TV) von esera. Die gewünschten Werte müssen jedoch über eine Formel errechnet werden. Ich habe mich bei den Logiken schon mal umgesehen ob es ein Modul für Berechnungen gibt, da aber nichts gefunden. Kommt da noch was, resp. gibt es da ggf. auch einen anderen Weg die benötigen Werte zu errechnen? Ich habe gesehen, dass die entsprechenden 1-Wire Geräte von ElabNet wohl automatisch korrekt eingebunden werden und gleich die richtigen Werte liefert, ich möchte aber jetzt natürlich ungern alles neue Geräte kaufen.

Ich habe die Beta 21

Danke und Gruss
Dani
TW 3500L (#882) + TW 950Q (#321, im Moment inaktiv), VPN offen, Reboot nach Rücksprache
Benutzeravatar

773H
Reactions:
Beiträge: 428
Registriert: Mo Okt 15, 2018 9:24 pm
Hat sich bedankt: 104 Mal
Danksagung erhalten: 208 Mal

#2

Beitrag von 773H »

Würde mich auch interessieren, da das den Horizont des TWS doch erheblich erweitern dürfte.

Gruss
Stephan
TWS 2500 ID:677, PBM ID:495 & ID:632, TWS 2500 ID:574, TWS 2500 ID:220, PBM ID:1022, VPN offen, Neustart kein Problem

S. Kolbinger
Elaborated Networks
Elaborated Networks
Reactions:
Beiträge: 588
Registriert: Mi Aug 15, 2018 11:34 am
Hat sich bedankt: 82 Mal
Danksagung erhalten: 560 Mal

#3

Beitrag von S. Kolbinger »

Hallo Dani,
danik hat geschrieben: Sa Mai 11, 2019 9:56 am ...
Die gewünschten Werte müssen jedoch über eine Formel errechnet werden. Ich habe mich bei den Logiken schon mal umgesehen ob es ein Modul für Berechnungen gibt, da aber nichts gefunden.
...
das sollte schon jetzt über die Logik (vermutlich mittels Polynomfunktion) möglich sein.
Hast du mal schnell die Formel parat?

Gruß,
Stefan K.
Gruß,
Stefan K.

Elkomaster91
Reactions:
Beiträge: 68
Registriert: So Sep 23, 2018 11:19 pm
Hat sich bedankt: 9 Mal
Danksagung erhalten: 18 Mal

#4

Beitrag von Elkomaster91 »

Hallo Stafan,
S. Kolbinger hat geschrieben: Do Mai 16, 2019 1:19 pm
das sollte schon jetzt über die Logik (vermutlich mittels Polynomfunktion) möglich sein.
Hast du mal schnell die Formel parat?

Gruß,
Stefan K.
Ich müsst folgendes umrechnen:

(157,2327 * (I1 / I2 - 0,1515)) / (1.0546 - 0.00216 * I3)

I1=VAD,
I2=VDD
I3=TEMP

Gruß Hardi
TWS 950Q ID:351, VPN offen, Reboot erlaubt - Daheim | Edomi | evcc | Victron PV + Akku
TWS2500 ID:1160, VPN offen, Reboot erlaubt - im Vereinsgebäude

S. Kolbinger
Elaborated Networks
Elaborated Networks
Reactions:
Beiträge: 588
Registriert: Mi Aug 15, 2018 11:34 am
Hat sich bedankt: 82 Mal
Danksagung erhalten: 560 Mal

#5

Beitrag von S. Kolbinger »

Hallo Hardi,
Elkomaster91 hat geschrieben: Do Mai 16, 2019 1:35 pm Ich müsst folgendes umrechnen:

(157,2327 * (I1 / I2 - 0,1515)) / (1.0546 - 0.00216 * I3)
Ich habe mir erlaubt, die Formel etwas umzustellen, damit es einfacher in der Logik passt:
(157,2327 * (VAD / VDD) - 23,82) / (1.0546 - 0.00216 * TEMP)

Code: Alles auswählen

{
    "Level": [
        ["$VAD_In","float",2.0],
        ["$VDD_In","float",5.0],
        ["$VAD_Rel","float",0.4],
        ["$V_Offset","float",-23.82],
        ["$V_Gradient","float",157.2327],
        ["$V_Part","float",39.07],
        ["$TEMP_IN","float",20.0],
        ["$TEMP_Offset","float",1.0546],
        ["$TEMP_Gradient","float",-0.00216],
        ["$TEMP_Part","float",39.07],
        ["$Result","float",47.11]
    ],
    "Module": [
        ["Ratio","$VAD_In","$VAD_Rel","$VDD_In"],
        ["Polynomial","$VAD_Rel","$V_Part",["$V_Offset","$V_Gradient"]],
        ["Polynomial","$TEMP_IN","$TEMP_Part",["$TEMP_Offset","$TEMP_Gradient"]],
        ["Ratio","$V_Part","$Result","$TEMP_Part"]
    ],
    "Input": [
        ["VAD","Messspannung","$VAD_In","c"],
        ["VDD","Referenz-/Versorgungsspannung","$VDD_In","c"],
        ["TEMP","Temperatur","$TEMP_IN","c"],
        ["Offset V","Offset des Spannungsanteils","$V_Offset","c"],
        ["Steigung V","Steigung des Spannungsanteils","$V_Gradient","c"],
        ["Offset T","Offset des Temperaturanteils","$TEMP_Offset","c"],
        ["Steigung T","Steigung des Temperaturanteils","$TEMP_Gradient","c"]
    ],
    "Output": [
        ["Erbebnis","Resultierende Messgröße","$Result","c"]
    ]
}
Damit sollte du auch die konstanten Werte als Parameter anlegen können, für evtl. Feinjustierung.
Es könnte dann so aussehen:
Bild

Jetzt nur noch die richtigen (1W-)Objekte mittels DOS oder Objekt-Verwaltung an die Ein-/Ausgänge verbinden.

Viel Spaß beim Ausprobieren.

Gruß,
Stefan K.
Gruß,
Stefan K.

Ersteller
danik
Reactions:
Beiträge: 415
Registriert: Mo Sep 10, 2018 8:40 pm
Hat sich bedankt: 293 Mal
Danksagung erhalten: 278 Mal

#6

Beitrag von danik »

Hallo Stefan K.

Vielen dank für die Formel. Das ganze passt und funktioniert bei mir für die Luftfeuchte.

Es grüsst
Dani
TW 3500L (#882) + TW 950Q (#321, im Moment inaktiv), VPN offen, Reboot nach Rücksprache

Ersteller
danik
Reactions:
Beiträge: 415
Registriert: Mo Sep 10, 2018 8:40 pm
Hat sich bedankt: 293 Mal
Danksagung erhalten: 278 Mal

#7

Beitrag von danik »

S. Kolbinger hat geschrieben: Do Mai 16, 2019 2:54 pm
Jetzt nur noch die richtigen (1W-)Objekte mittels DOS oder Objekt-Verwaltung an die Ein-/Ausgänge verbinden.

Viel Spaß beim Ausprobieren.
Hallo Stefan K.

Ich habe die Logik so im Einsatz, funktioniert soweit auch gut (einzig beim Update auf Beta 22 passte es irgendwie nicht mehr, habe dann aber die Logik nochmals angelegt). Das Ergebnis vom Ausgang ist ein Wert mit Nachkommastellen. Gibt es einen Möglichkeit, den Ausgang gleich auf einen Wert ohne Nachkommastelle zu formatieren?

Danke und Gruss
Dani

Hinzugefügt nach 33 Minuten 35 Sekunden:
Irgendwie klappt es doch noch nicht. Jetzt sind wieder die Eingänge vertauscht (VAD, VDD und Temp passen nicht mehr), obwohl ich nur den Trigger erstellt habe. Damit passt das Ergebnis dann wieder nicht mehr. Vermutlich noch ein Problem mit dem aktuellen Beta-Status.
Zuletzt geändert von danik am So Mai 19, 2019 10:23 am, insgesamt 1-mal geändert.
TW 3500L (#882) + TW 950Q (#321, im Moment inaktiv), VPN offen, Reboot nach Rücksprache

S. Kolbinger
Elaborated Networks
Elaborated Networks
Reactions:
Beiträge: 588
Registriert: Mi Aug 15, 2018 11:34 am
Hat sich bedankt: 82 Mal
Danksagung erhalten: 560 Mal

#8

Beitrag von S. Kolbinger »

danik hat geschrieben: So Mai 19, 2019 10:22 am ...
Das Ergebnis vom Ausgang ist ein Wert mit Nachkommastellen. Gibt es einen Möglichkeit, den Ausgang gleich auf einen Wert ohne Nachkommastelle zu formatieren?
...
Klar geht das. Dazu must du nur den Typ und Defaultwert für das Ergebnis in der Definition der Custom-Logik ändern:
["$Result","float",47.11] =>> ["$Result","int",47]
Im Debug-Modus wird der Wert zwar noch als float angezeigt, aber mit obiger Änderung sind die Nachkommastellen immer .00
danik hat geschrieben: So Mai 19, 2019 10:22 am Irgendwie klappt es doch noch nicht. Jetzt sind wieder die Eingänge vertauscht (VAD, VDD und Temp passen nicht mehr), obwohl ich nur den Trigger erstellt habe. Damit passt das Ergebnis dann wieder nicht mehr. Vermutlich noch ein Problem mit dem aktuellen Beta-Status.
Danke für die Info, ich konnte diesen Fehler bei mir nachstellen.
Da haben wir wohl noch einen Bug im Logik-Editor. Das muss ich mir mit den Kollegen genauer anschauen.
Ich habe auf deinem TWS321 gesehen, dass das Mapping noch immer falsch ist.
Da der Logik-Editor offensichtlich in manchen Fällen etwas eigenwillig ist, kann du das Mapping am besten über die Objekt-Verwaltung korrigieren.

Gruß,
Stefan K.
Zuletzt geändert von S. Kolbinger am So Mai 19, 2019 1:28 pm, insgesamt 1-mal geändert.
Gruß,
Stefan K.

Ersteller
danik
Reactions:
Beiträge: 415
Registriert: Mo Sep 10, 2018 8:40 pm
Hat sich bedankt: 293 Mal
Danksagung erhalten: 278 Mal

#9

Beitrag von danik »

Danke, jetzt klappt es soweit wie gewünscht.

Gruss
Dani
TW 3500L (#882) + TW 950Q (#321, im Moment inaktiv), VPN offen, Reboot nach Rücksprache

Robert_Mini
Reactions:
Beiträge: 3903
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1264 Mal
Danksagung erhalten: 2213 Mal

#10

Beitrag von Robert_Mini »

Verschoben in das Logik Unterforum, nachdem es um keinen Fehler der Logik-Engine geht.
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297
Antworten

Zurück zu „Logikengine & Logik-Editor“