NEU! UPGRADE IP 11 verfügbar!
NEU! LICHTWIDGET - DPT 7.600 - Logik Manager Update - sowie viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/B9MUEJj2

Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Ab sofort kann jeder die neue VISU & IFTTT testen. Info: viewtopic.php?f=8&t=5074

Release V 4 am 15. Juni 2024
Es gibt nun einen fixen Termin. Info: viewtopic.php?f=8&t=5117

NEU! Ausführliches Video Tutorial zur VISU
Jetzt werden alle Fragen beantwortet. Das Video: https://youtu.be/_El-zaC2Rrs

[TIPP] Zähler Universalbaustein

Hier stellen Foristen und Kunden Ihre EIGENEN Logikbausteine vor. Diese Logikbausteine stehen jedem im Rahmen der vom Autor eingeräumten / genannten Lizenz zur Verfügung.
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
Benutzeravatar

jensgulow
Reactions:
Beiträge: 322
Registriert: Fr Apr 19, 2019 4:37 pm
Hat sich bedankt: 66 Mal
Danksagung erhalten: 136 Mal

#51

Beitrag von jensgulow »

Kurze Anmerkung: in meiner aktuellen Version V4.0 IP4 kann ich den obigen Code nicht direkt einsetzen. Der Editor mahnt die in Großbuchstaben geschriebenen Sendevariablen "Zähler" (A), "Verbrauch Aktueller Tag" (C), "Verbrauch Aktuelle Woche" (C), "Verbrauch Aktueller Monat" (C) sowie "Verbrauch Aktuelles Jahr" (C) an.
Diese müssen in KLEINSCHREIBUNG sein, dann kann man die Logik auch wieder speichern. Hier scheint die aktuelle Version des Logikeditors casesensitiv zu sein.

Nur als Hinweis ....
Viele Grüße

Jens

_____________________________________________________________________
TWS 2600#394 , TWS 3500L#1051, VPN offen, Reboot erlaubt
Was wird genutzt? -> TWS, KNX, 1-wire, MODBUS, Http-REST-API, IFTTT, Enocean, Amazon Alexa

Ersteller
Robosoc
Reactions:
Beiträge: 1884
Registriert: Di Okt 09, 2018 9:26 am
Hat sich bedankt: 639 Mal
Danksagung erhalten: 775 Mal

#52

Beitrag von Robosoc »

Danke

Hier mal korrigierte Version als V6

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 - 3500 XL ID:1369 | 3500 L ID:1355, VPN offen, Reboot OK

murelli146
Reactions:
Beiträge: 90
Registriert: Mi Jan 16, 2019 9:21 pm
Hat sich bedankt: 13 Mal
Danksagung erhalten: 50 Mal

#53

Beitrag von murelli146 »

Hatte auf diese Art die Zähler in Edomi realisiert, war damit aber nicht glücklich.

Habe es dann wie folgt gelöst:

Bild

Die Verbrauchsmessung durch die Speicherung der Zählerstände in der Datenbank und die nachträgliche Berechnung der Verbräuche halte ich für eine solide und praktische Lösung, um potenzielle Fehlerquellen zu minimieren und genaue Verbrauchsdaten zu erhalten.

Durch diese Methode werden potenzielle Fehlerquellen minimiert, da Sie sich auf die ursprünglichen aufgezeichneten Zählerstände verlassen, anstatt den Verbrauch in Echtzeit zu berechnen. Das bedeutet, dass selbst wenn es Probleme mit der Berechnung oder der Datenakquise gibt, die ursprünglichen Zählerstände erhalten bleiben und die Verbräuche nachträglich korrekt berechnet werden können.

Ein Logikbaustein der selektierte Werte aus influx in ein KO schreiben kann würde meiner Ansicht nach viele Türen öffnen.
Sieht da jemand einen Lösungsansatz?

Schöne Grüße
Gernot
Schöne Grüße
Gernot
_______________________________________________________
TWS 2600 ID:276 , VPN offen, Reboot nach Rücksprache erlaubt

murelli146
Reactions:
Beiträge: 90
Registriert: Mi Jan 16, 2019 9:21 pm
Hat sich bedankt: 13 Mal
Danksagung erhalten: 50 Mal

#54

Beitrag von murelli146 »

Wenn ich weiter darüber nachdenke wäre das eigentlich ein Feature der TW Visu!?
Schöne Grüße
Gernot
_______________________________________________________
TWS 2600 ID:276 , VPN offen, Reboot nach Rücksprache erlaubt

Sebastian104
Reactions:
Beiträge: 150
Registriert: Do Sep 29, 2022 12:52 am
Hat sich bedankt: 158 Mal
Danksagung erhalten: 110 Mal

#55

Beitrag von Sebastian104 »

Ich würde das eher als ein Feature für das zukünftig geplante Energie Management einordnen. Eine Visu ist ja „nur“ eine Anzeige / Bedienoberfläche.
Grüße
Sebastian

TWS 3500S ID:860, VPN offen, Reboot möglich

cheater
Reactions:
Beiträge: 613
Registriert: Sa Aug 11, 2018 11:16 pm
Hat sich bedankt: 384 Mal
Danksagung erhalten: 274 Mal

#56

Beitrag von cheater »

Hallo Leute,
kurze Frage. Wenn ich den Zählerbaustein soweit fertig konfiguriert habe, warum schreibt er mir noch keine Verbrauchswerte in "Verbrauch aktueller Tag"?
Grüße, Dominic

Timberwolf 2400 #126, VPN offen, Reboot nach Absprache

Robert_Mini
Reactions:
Beiträge: 3744
Registriert: So Aug 12, 2018 8:44 am
Hat sich bedankt: 1171 Mal
Danksagung erhalten: 2076 Mal

#57

Beitrag von Robert_Mini »

cheater hat geschrieben: Mo Dez 25, 2023 4:34 pm kurze Frage. Wenn ich den Zählerbaustein soweit fertig konfiguriert habe, warum schreibt er mir noch keine Verbrauchswerte in "Verbrauch aktueller Tag"?
Wenn ich das richtig gesehen habe:
Das Verhalten ist momentan je Periode so eingestellt (oder sollte so eingestellt sein), dass Werte erst geschrieben werden, sobald eine Vorperiode geendet ist. Also wird man erst Tages-Werte sehen, wenn nach dem Speichern der Logik ein Tag abgeschlossen wurde...also am nachfolgenden Tag.
für längere Perioden entsprechend später.
d.h. morgen früh nochmal nachsehen.
lg
Robert
Timberwolf Server 2500 / #117 (VPN offen + reboot nach Rückfrage) / zusätzlich: 3500M/#935, 3500L/#1297

cheater
Reactions:
Beiträge: 613
Registriert: Sa Aug 11, 2018 11:16 pm
Hat sich bedankt: 384 Mal
Danksagung erhalten: 274 Mal

#58

Beitrag von cheater »

Alles klar. Vielen Dank!
Grüße, Dominic

Timberwolf 2400 #126, VPN offen, Reboot nach Absprache

gbglace
Reactions:
Beiträge: 3615
Registriert: So Aug 12, 2018 10:20 am
Hat sich bedankt: 1273 Mal
Danksagung erhalten: 1674 Mal

#59

Beitrag von gbglace »

Der Jahreswert braucht da halt was länger bis es kommt, wobei jetzt im Dezember hast Glück. Ich hab den Baustein bei mir im Frühjahr gestartet...
Grüße
Göran

#1 Timberwolf 2600 Velvet Red TWS #225 / VPN aktiv / Reboot OK
#2 Timberwolf 2600 Organic Silver TWS #438 / VPN aktiv / Reboot OK
#3 PBM 3 Kanäle, #4 Modbus-Extension

cheater
Reactions:
Beiträge: 613
Registriert: Sa Aug 11, 2018 11:16 pm
Hat sich bedankt: 384 Mal
Danksagung erhalten: 274 Mal

#60

Beitrag von cheater »

Funktioniert wie geplant. :clap:
Grüße, Dominic

Timberwolf 2400 #126, VPN offen, Reboot nach Absprache
Antworten

Zurück zu „Zusätzliche Logikbausteine“