Timberwolf Server 3500 - 35% bis 60% Rabatt
Inkl. V4 ULTRA! Auch mit Inzahlungnahme von WireGate Server und älteren Timberwolf Server
Kunden mit TWS 350Q / 950Q / 960Q können einen kostenfreien PBM mit gleicher Aktivierung erhalten
Limitiert auf 99 Geräte und bis 15. Oktober 2023. Alle Fragen hierzu bitte nur an service at elabnet dot de.

Alle Details hier: https://elab.news/aktion-3500

[V4.0 IP4] Verständnisfrage Cron Syntax als Trigger

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

Cepheus73
Reactions:
Beiträge: 138
Registriert: Sa Aug 11, 2018 11:36 pm
Wohnort: München
Hat sich bedankt: 289 Mal
Danksagung erhalten: 82 Mal

#11

Beitrag von Cepheus73 »

Robosoc hat geschrieben: Mo Sep 18, 2023 4:01 pm
Marino hat geschrieben: Mo Sep 18, 2023 9:59 am Logik konnte nicht angelegt werden, da der Code fehlerhaft ist.
Habe es gerade bei mir ausprobiert... Ich bin auf der offiziellen Hauptversion V3.5.1 und konnte problemfrei eine neue Logik mit dem Code aus dem
verlinkten Post (also V5 des Code-Schnipsels) anlegen. Auf welcher TWS Version arbeitest Du?
Mit V4.0 IP4 hat sich die Syntax des Logikeditors geringfügig geändert und zwar müssen die Buchstaben für das standardmäßige Verhalten an den Ein- und Ausgängen nun immer klein geschrieben werden, also z.B. "c" statt "C", "a" statt "A".

Viele Grüße, Bernhard
Zuletzt geändert von Cepheus73 am Mo Sep 18, 2023 5:53 pm, insgesamt 1-mal geändert.
TW 2600 #178 - VPN offen, Zugriff jederzeit
EFH, KNX, 1-Wire, DALI, Wiregate,
CometVisu (TW Docker-Container), Mobotix T25, Logiken für Licht- und Rolladensteuerung
1-Wire-Ventilaktoren + Logiken für Gartenbewässerung

Robosoc
Reactions:
Beiträge: 1811
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 614 Mal
Danksagung erhalten: 734 Mal

#12

Beitrag von Robosoc »

Cepheus73 hat geschrieben: Mo Sep 18, 2023 5:52 pm

Mit V4.0 IP4 hat sich die Syntax des Logikeditors geringfügig geändert und zwar müssen die Buchstaben für das standardmäßige Verhalten an den Ein- und Ausgängen nun immer klein geschrieben werden, also z.B. "c" statt "C", "a" statt "A".
:shock: gute zu wissen, danke...für das nächste Update sollte ich dann wohl schon mal in Ruhe was vorbereiten.
Zuletzt geändert von Robosoc am Mo Sep 18, 2023 5:57 pm, insgesamt 1-mal geändert.
VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

Ersteller
Marino
Reactions:
Beiträge: 88
Registriert: Fr Jul 24, 2020 6:44 am
Wohnort: Hamburg
Hat sich bedankt: 37 Mal
Danksagung erhalten: 51 Mal

#13

Beitrag von Marino »

Ich bin auf V4 IP4.

Die Logik für die stündlichen Werte würde ich wahrscheinlich auch wirklich eher als eigene Logik belassen...


Viele Grüße
Nils
TWS 3500XL ID:1080 (VPN offen, Reboot nach Rücksprache)

Robert_Mini
Reactions:
Beiträge: 3560
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1032 Mal
Danksagung erhalten: 1937 Mal

#14

Beitrag von Robert_Mini »

Hallo Nils
Marino hat geschrieben: Mo Sep 18, 2023 9:59 am mich interessiert Stunde/Tag/Monat/Jahr.
Ich habe hier einen Zählerbaustein dafür gepostet (Tag/Monat/Jahr):
viewtopic.php?f=65&t=3782&hilit=Z%C3%A4 ... nde#p42252

Für Stunde müsstest du den Bausteine verwenden, auf den ich schon verlinkt habe.

lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / Wiregate-Fan

Robosoc
Reactions:
Beiträge: 1811
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 614 Mal
Danksagung erhalten: 734 Mal

#15

Beitrag von Robosoc »

@Marino : Probiere bitte einmal aus, ob Du diesen Code verwenden kannst:

Code: Alles auswählen

/**
* Zähler Universalbaustein V6
* Der Schöpfer dieser Custom Logik überträgt die Nutzungsrechte gemäß der TOLL ("Timberwolf Open Logikblock License") die unter https://wrgt.news/TOLL zum Download zur Verfügung steht.
*/

{
  "Input":[
    ["Zähler","Kontinuierlicher Zähler","$Counter","a"]  ],
  "Output":[
    ["Zähler Vortag","Zählerstand zum Ende des vorherigen Tages","$End_D","x"],
	["Zähler Vorwoche","Zählerstand zum Ende der vorherigen Woche","$End_W","x"],
	["Zähler Vormonat","Zählerstand zum Ende des vorherigen Monats","$End_M","x"],
    ["Zähler Vorjahr","Zählerstand zum Ende des vorherigen Jahres","$End_Y","x"],
    ["Verbrauch Vortag","Verbrauch des letzten Tages","$Consumption_PrevD","x"],
    ["Verbrauch Vorwoche","Verbrauch der letzten Woche","$Consumption_PrevW","x"],
    ["Verbrauch Vormonat","Verbrauch des letzten Monats","$Consumption_PrevM","x"],
    ["Verbrauch Vorjahr","Verbrauch des letzten Jahres","$Consumption_PrevY","x"],
    ["Verbrauch Aktueller Tag","Verbrauch des aktuellen Tages bisher","$Consumption_CurrD","c"],
    ["Verbrauch Aktuelle Woche","Verbrauch der aktuellen Woche bisher","$Consumption_CurrW","c"],
    ["Verbrauch Aktueller Monat","Verbrauch des aktuellen Monats bisher","$Consumption_CurrM","c"],
    ["Verbrauch Aktuelles Jahr","Verbrauch des aktuellen Jahres bisher","$Consumption_CurrY","c"]
  ],
  "Level":[
	["$Cron_D","string","59 59 23 * * *"],
	["$HalfDayinSec","integer",43200],
	["$Formula_Tomorrow","string","X1+X2"],
	["$Today_Utime","integer",0],
	["$Today_Wday","integer",0],
	["$Tomorrow_Utime","integer",0],
	["$Tomorrow_Mday","integer",0],
	["$Tomorrow_Yday","integer",0],
	["$SendCond_D","bool",false],
	["$SendCond_W","bool",false],
	["$SendCond_M","bool",false],
	["$SendCond_Y","bool",false],
	["$Eins","integer",1],
	["$True","bool",true],	
	
    ["$Counter","float",0.0],
	["$End_D","float",0.0],
	["$End_W","float",0.0],
	["$End_M","float",0.0],
	["$End_Y","float",0.0],
	["$Consumption_PrevD","float",0.0],
	["$Consumption_PrevW","float",0.0],
	["$Consumption_PrevM","float",0.0],
	["$Consumption_PrevY","float",0.0],
	["$Consumption_CurrD","float",0.0],
	["$Consumption_CurrW","float",0.0],
	["$Consumption_CurrM","float",0.0],
	["$Consumption_CurrY","float",0.0],
	["$Formula","string","X2>0?X1-X2:0"],
	["$Gate","bool",true]	
  ],
  "Module":[
  //täglich am Ende des Tages triggern
	["Cron","$True","$SendCond_D",0,"$Cron_D"],

  // Werte des aktuellen Tages bestimmen
	["Localtime",0,"$Today_Utime",0,0,0,0,0,0,"$Today_Wday",0,0],

  // Werte des Folgetages bestimmen
	["CalcFormula",["$Today_Utime","$HalfDayinSec"], "$Tomorrow_Utime", "$Formula_Tomorrow"],
	["Localtime","$Tomorrow_Utime",0,0,0,0,"$Tomorrow_Mday",0,0,0,"$Tomorrow_Yday",0],
	
  //Tageswerte schreiben
	//Berechnung des aktuellen Verbrauches in der Periodenende
	["CalcFormula",["$Counter","$End_D"], "$Consumption_CurrD", "$Formula"],
	
	//Setzen und Senden des Periodenende, wenn Bedingung erfüllt
	["Latch","$Counter","$End_D","$SendCond_D",0],
	["SendExplicit","$SendCond_D","$End_D",0],
	
	//Setzen und Senden des Periodenendverbrauches, wenn Bedingung erfüllt
	["Comparator" , "$End_D" , "$Gate" , 0],
	["And",["$Gate","$SendCond_D"],"$SendCond_D"],
	["Latch","$Consumption_CurrD","$Consumption_PrevD","$SendCond_D",0],
	["SendExplicit","$SendCond_D","$Consumption_PrevD",0],
	
  //Wochenwerte schreiben
	//Berechnung des aktuellen Verbrauches in der Periodenende
	["CalcFormula",["$Counter","$End_W"], "$Consumption_CurrW", "$Formula"],
	
	//Prüfen ob das Ende einer Woche (also Sonntag-Abend) erreicht ist und ob die Logik wegen des Periodenendes getriggert wurde
	["Comparator" , "$Today_Wday" , "-$SendCond_W" , 0],
	["And",["$SendCond_D","$SendCond_W"],"$SendCond_W"],
	
	//Setzen und Senden des Periodenende, wenn Bedingung erfüllt
	["Latch","$Counter","$End_W","$SendCond_W",0],
	["SendExplicit","$SendCond_W","$End_W",0],
	
	//Setzen und Senden des Periodenendverbrauches, wenn Bedingung erfüllt
	["Comparator" , "$End_W" , "$Gate" , 0],
	["And",["$Gate","$SendCond_W"],"$SendCond_W"],
	["Latch","$Consumption_CurrW","$Consumption_PrevW","$SendCond_W",0],
	["SendExplicit","$SendCond_W","$Consumption_PrevW",0],
	
  //Monatswerte schreiben
	//Berechnung des aktuellen Verbrauches in der Periodenende
	["CalcFormula",["$Counter","$End_M"], "$Consumption_CurrM", "$Formula"],
	
	//Prüfen ob das Ende eines Monats erreicht ist und ob die Logik wegen des Periodenendes getriggert wurde
	["Comparator" , "$Tomorrow_Mday" , "-$SendCond_M" , "$Eins"],
	["And",["$SendCond_D","$SendCond_M"],"$SendCond_M"],
	
	//Setzen und Senden des Periodenende, wenn Bedingung erfüllt
	["Latch","$Counter","$End_M","$SendCond_M",0],
	["SendExplicit","$SendCond_M","$End_M",0],
	
	//Setzen und Senden des Periodenendverbrauches, wenn Bedingung erfüllt
	["Comparator" , "$End_M" , "$Gate" , 0],
	["And",["$Gate","$SendCond_M"],"$SendCond_M"],
	["Latch","$Consumption_CurrM","$Consumption_PrevM","$SendCond_M",0],
	["SendExplicit","$SendCond_M","$Consumption_PrevM",0],
	
  //Jahreswerte schreiben
	//Berechnung des aktuellen Verbrauches in der Periodenende
	["CalcFormula",["$Counter","$End_Y"], "$Consumption_CurrY", "$Formula"],
	
	//Prüfen ob das Ende eines Jahres erreicht ist und ob die Logik wegen des Periodenendes getriggert wurde
	["Comparator" , "$Tomorrow_Yday" , "-$SendCond_Y" , "$Eins"],
	["And",["$SendCond_D","$SendCond_Y"],"$SendCond_Y"],
	
	//Setzen und Senden des Periodenende, wenn Bedingung erfüllt
	["Latch","$Counter","$End_Y","$SendCond_Y",0],
	["SendExplicit","$SendCond_Y","$End_Y",0],
	
	//Setzen und Senden des Periodenendverbrauches, wenn Bedingung erfüllt
	["Comparator" , "$End_Y" , "$Gate" , 0],
	["And",["$Gate","$SendCond_Y"],"$SendCond_Y"],
	["Latch","$Consumption_CurrY","$Consumption_PrevY","$SendCond_Y",0],
	["SendExplicit","$SendCond_Y","$Consumption_PrevY",0]
  ]
}

VG, Sven - TWS 950Q ID:335 & 291, VPN offen, Reboot OK

Ersteller
Marino
Reactions:
Beiträge: 88
Registriert: Fr Jul 24, 2020 6:44 am
Wohnort: Hamburg
Hat sich bedankt: 37 Mal
Danksagung erhalten: 51 Mal

#16

Beitrag von Marino »

@Cepheus73
Danke für den Hinweis.

@Robosoc
Vielen Dank für den Code. So kann ich ihn nun importieren. Dann kann ich damit ja nun mal testen :)


Viele Grüße
Nils
TWS 3500XL ID:1080 (VPN offen, Reboot nach Rücksprache)
Antworten

Zurück zu „Logikengine & Logik-Editor“