Seite 5 von 8

Re: Zähler Universalbaustein

Verfasst: Do Dez 01, 2022 4:05 am
von Mibr85
Die Funktion würde mich auch sehr interessieren.
Ist denn von Seiten Elabnet ein Update auf ifluxDB 2.0 in naher Zukunft geplant?

Re: Zähler Universalbaustein

Verfasst: Do Dez 01, 2022 6:49 am
von gbglace
Im SQL gibt es natürlich sehr lange schon Funktionen die Year(), Month() usw. Auswerten können und mit denen dann auch im Group by gearbeitet werden kann. Aber nicht jedes System hält sich an den ANSI Standards im SQL. Aber die neueren Versionen rüsten es offensichtlich nach.

Ich habe so meine Erfahrungen auf Oracle,.Sybase IQ,.und Synapse Analytics. Deutlich tiefer in Influx steckt wirklich unser Sensej.

Re: Zähler Universalbaustein

Verfasst: Do Dez 01, 2022 6:54 am
von Robosoc
Es gibt zu dem Thema hier zwei drei Diskussionen mit einer recht guten Lösung.

Und wie auch schon geschrieben: rein qualitative Analysen kann man sehr gut machen, nur für Abrechnung (Nebenkosten) muss man dann genau schauen was man macht... das kann man aber auch gut lösen dafür braucht man ja nur einen tagesgenauen Wert das bekommt man gut hin.

Re: Zähler Universalbaustein

Verfasst: Sa Dez 03, 2022 9:24 am
von alexbeer
Guten Morgen,
wenn ich versuche den Logik Code (V4) aus #26 in eine benutzerdefinierte Logik einzufügen und direkt zu sichern, bekomme ich folgenden Fehler:

Code: Alles auswählen

 Code inkorrekt
Logik konnte nicht angelegt werden, da Code fehlerhaft ist.

1. Bitte folgende Parameter reparieren: "$Formula_End_of"
Wenn ich das richtig sehe, ist dieser Parameter unter [Level] definiert, danach aber nicht mehr verwendet.
Kommentiere ich den Parameter aus, dann lässt sich die Logik speichern.
Hat sich da in V4 ggf ein Copy & Paste-Fehler eingeschlichen?

Re: Zähler Universalbaustein

Verfasst: Sa Dez 03, 2022 10:13 am
von blaubaerli
Hallo Alex,

mit welcher Version hast du das Problem? Ggf. Ist es sinnvoll zuerst einen neuen Thread mit den entsprechenden Angaben im zugehörigen Forum zu erstellen und dann hier auf diesen zu verweisen.

Beste Grüße
Jens

Re: Zähler Universalbaustein

Verfasst: Sa Dez 03, 2022 2:34 pm
von alexbeer
Hey Jens, in der letzten von Sven veröffentlichten Version (V4) - aus Beitrag 26. Beides hatte ich auch in meiner Frage verlinkt ;-) Bei einem anderen Stand hätte ich einen neuen Thread eröffnet.

Re: Zähler Universalbaustein

Verfasst: Sa Dez 03, 2022 5:01 pm
von blaubaerli
Hallo Alex,

es geht mir hier nicht um die Versionsnummer des Logikbausteins, sondern um die des TWs.

:-)

Beste Grüße
Jens

Re: Zähler Universalbaustein

Verfasst: Sa Dez 03, 2022 6:42 pm
von alexbeer
:Facepalm:
Sorry... Und das obwohl ich noch kein Glühwein intus habe...
Bin auf der aktuellsten Version 4.0 IP1

Re: Zähler Universalbaustein

Verfasst: Sa Dez 03, 2022 6:51 pm
von blaubaerli
Hallo Alex,

daher gehört das Thema in den dortigen Forumsbereich. Und „aktuellste Version“ ist keine valide Angabe, weil die morgen eine andere sein kann. Bitte erstelle einen neuen Thread, füge dort die exakte Versionsbezeichnung bei und referenziere von dort auf diesen Post hier.

Beste Grüße
Jens

Re: Zähler Universalbaustein

Verfasst: So Dez 04, 2022 11:34 am
von Robosoc
Nachdem alexbeer mich auf eine unnötige Variablendeklaration aufmerksam gemacht hat, habe ich eine Zeile im Code gelöscht.
Keine Funktionsänderung gegenüber V4, aber der Code könnte in zukünftigen TWS-Versionen >V3.5.1 in Fehler laufen. Daher rate ich jedem Nutzer meiner Logik V4 die neue Version V5 zu nutzen (einfach Code austauschen).

Code: Alles auswählen

/**
* Zähler Universalbaustein V5
* 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]
  ]
}