Neue Insider Version 1 zur V 4.5 verfügbar

NEU! Dynamische Akzentfarben in der VISU per Objekt steuerbar
NEU! Seite wechseln sperren per Objekt
NEU! Neue Symbole in VISU und Logik Manager
NEU! Putzmodus im VISU Client
NEU! Umfangreich verbesserter Logik Manager


Alle Informationen hier: https://elabnet.atlassian.net/wiki/x/AYD5ng

[V4.1] Zwischenspeichern eines Wertes für den nächsten Aufruf

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
Antworten

Ersteller
avater
Reactions:
Beiträge: 24
Registriert: Sa Apr 02, 2022 12:19 pm
Hat sich bedankt: 16 Mal
Danksagung erhalten: 6 Mal

[V4.1] Zwischenspeichern eines Wertes für den nächsten Aufruf

#1

Beitrag von avater »

Mod: abgetrennt zur besseren Auffindbarkeit!

Also, vielleicht ist es wirklich sinnvoller, auf evcc zu setzen.

Aber meine Eingangsfrage bleibt insofern bestehen, als ich für etwas anderes einen Latch brauche - und ich bekomme es nicht hin. Hier mein Versuch, einfach den letzten anstatt dem aktuellen Wert auszugeben:

Code: Alles auswählen

{
    "Level": [
        ["$Wahr","bool",true],
        ["$Eingang","float",100.0],
        ["$Merker1A","float",100.0]
    ],
    "Module": [
	    ["Latch","$Eingang","$Merker1A","$Wahr",0]
    ],
    "Input": [
        ["Eingang","Eingang","$Eingang","c"]
    ],
    "Output": [
        ["Merker1","Vorheriger Wert","$Merker1A","c"]
    ]
}
Es kommt aber immer direkt der Eingangswert wieder raus. Und die Logik sollte laut diesem alten Thread funktionieren: viewtopic.php?t=1394

Was ich nun versuche, ist, aus den letzten zwei Energiewerten (gezählt von einem S0-Zähler) die Momentanleistung zu berechnen. Mit Stoppuhr und Differenzbildung.
Zuletzt geändert von Robert_Mini am So Nov 24, 2024 12:00 pm, insgesamt 1-mal geändert.
Viele Grüße!
Arne

TWS 3500 XL #1458 mit KNX, 1-Wire (PBM #1139), HTTP-API, MQTT, Modbus

Robert_Mini
Reactions:
Beiträge: 3842
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1231 Mal
Danksagung erhalten: 2130 Mal

#2

Beitrag von Robert_Mini »

Hallo!

Du hast im Latch ein $Wahr. Damit ist die Bedingung für das Übernehmen Eingang auf Ausgang des Latch Moduls immer erfüllt (bei Option 0).

Was du eigentlich willst:
Am Ende der Logikabarbeitung den letzten Wert merken und diesen beim nächsten Aufruf dann weiterverwenden.

D.h. Du brauchst (in der Reihenfolge)
Latch Merker1A => Ausgang zur Anzeige des letzten Wertes
(Eingang-Merker1A)/dt => Leistung
Latch Eingang => Merker1A

Lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

Ersteller
avater
Reactions:
Beiträge: 24
Registriert: Sa Apr 02, 2022 12:19 pm
Hat sich bedankt: 16 Mal
Danksagung erhalten: 6 Mal

#3

Beitrag von avater »

Danke Robert!

Ich kapier es leider nicht. Also die Formel an Punkt 2, die schon, aber den Rest ... :eusa-think:

Gruß
Arne
Viele Grüße!
Arne

TWS 3500 XL #1458 mit KNX, 1-Wire (PBM #1139), HTTP-API, MQTT, Modbus

Robert_Mini
Reactions:
Beiträge: 3842
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1231 Mal
Danksagung erhalten: 2130 Mal

#4

Beitrag von Robert_Mini »

Melde mich dazu noch mal, mein Text ist etwas kryptisch, wenn ich selbst nochmal drüber lese.
LG Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

Robert_Mini
Reactions:
Beiträge: 3842
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1231 Mal
Danksagung erhalten: 2130 Mal

#5

Beitrag von Robert_Mini »

Hallo Arne!

Anbei ein einfaches Beispiel, was ich gemeint habe.

Am Beginn der Logik wird der letzte Wert auf den Ausgang übernommen, im zweiten Schritt wird der aktuelle Wert auf $Merker1A wieder zwischengespeichert. Beim folgenden Aufruf passiert wieder das gleiche.

Beim ganz ersten Aufruf wird der Initialwert von Merker1A (in dem Fall 77) ausgegeben.

lg
Robert

Code: Alles auswählen

{
    "Level": [
        ["$Wahr","bool",true],
        ["$Eingang","float",100.0],
        ["$Merker1A","float",77.0],
        ["$Ausgang","float",100.0]
    ],
    "Module": [
        // Alten Wert auf den Ausgang ausgeben
	    ["Latch","$Merker1A","$Ausgang","$Wahr",0],
        // Neuen Wert zwischenspeichern
	    ["Latch","$Eingang","$Merker1A","$Wahr",0]
    ],
    "Input": [
        ["Eingang","Eingang","$Eingang","a"]
    ],
    "Output": [
        ["Vorheriger Wert","Vorheriger Wert","$Ausgang","a"],
        ["Merker1","Wert aktuell zwischengespeichert","$Merker1A","a"]
    ]
}
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

Sun1453
Reactions:
Beiträge: 2070
Registriert: Do Feb 07, 2019 8:08 am
Hat sich bedankt: 1813 Mal
Danksagung erhalten: 849 Mal

#6

Beitrag von Sun1453 »

Cool vielleicht auch was für nen Standard Modul.
Gruß Michael

Timberwolf 950 QL #344 | Mit Internetanbindung | VPN Offen | Reboot nach Absprache | PROD Server
Timberwolf 2500 #602 | VPN offen | TEST Server | Reboot nach Absprache |

Ersteller
avater
Reactions:
Beiträge: 24
Registriert: Sa Apr 02, 2022 12:19 pm
Hat sich bedankt: 16 Mal
Danksagung erhalten: 6 Mal

#7

Beitrag von avater »

Vielen Dank @Robert_Mini!

Ich glaube, der Groschen ist gefallen: Mir war vor deinem Beispiel nicht klar genug, welche Rolle die Reihenfolge der Module spielt (oder auch: dass sie überhaupt eine Rolle spielt). Ich war da gedanklich bei einem Signalfluss in Mopsgeschwindigkeit (oder genauer: Nullzeit). Aber offensichtlich lässt sich ein Ausgangswert (hier also $Ausgang) schon bestimmen, noch ehe die Logik insgesamt fertig ist.

Ist immer noch ungewohnt für mich.

Wäre cool, wenn solche Beispiele auch direkt in der Dokumentation bei den Modulbausteinen wären.

Viele Grüße
Arne
Viele Grüße!
Arne

TWS 3500 XL #1458 mit KNX, 1-Wire (PBM #1139), HTTP-API, MQTT, Modbus
Antworten

Zurück zu „Logikengine & Logik-Editor“