Seite 1 von 1

[V4.1] Verbrauchszähler

Verfasst: Sa Dez 21, 2024 2:15 pm
von Elkomaster91
Hihi, kann ich mit der Timberwolf-Logik, mir einen eigenen Verbrauchszähler bauen?

Ich bekomme sekündlich Leistungswerte aus einem Shelly in W und würde gerne daraus einen Zähler haben der mir kontinuierlich den Verbrauch berechnet in Wh oder kWh?


Gruß Hardi

Re: [V4.1] Verbrauchszähler

Verfasst: Sa Dez 21, 2024 2:20 pm
von Sun1453
Hatte da schon verschiedene Sachen im Forum gesehen. Die Logik Gurus des Forums können bestimmt weiterhelfen.

Re: [V4.1] Verbrauchszähler

Verfasst: Sa Dez 21, 2024 2:22 pm
von MrWilson
Zähler Universalbaustein geht in die Richtung

Re: [V4.1] Verbrauchszähler

Verfasst: Sa Dez 21, 2024 2:23 pm
von cheater
Liefert der Shelly nicht auf aufsummierte Werte, wie Tagesverbrauch oder so? Das wäre bestimmt einfacher zu nutzen.

Re: [V4.1] Verbrauchszähler

Verfasst: Sa Dez 21, 2024 2:34 pm
von gbglace
Ja welcher Shelly ist es denn genau?

Man kann natürlich auch aus diversen W Werten ein Integralbauen, aber Das ist dann schon ziemlich aufwändig. Ich würde da auch eher nochmal in den Datenstrom des Shelly schauen und deren Wh oder kWh nutzen.

Diese Werte dann weiter aufhübschen geht dann mit den Zählerbausteinen die in den Customlgiksammlungen hier im Forum schon vorgestellt wurden. Wenn der Wh- oder kWh-Wert vom Shelly nicht stabil sein sollte, dagegen habe ich mir mal eine Customlogik gebaut, die quasi trotz optischen reset der Zählerstände passend weiterzählt.

Re: [V4.1] Verbrauchszähler

Verfasst: So Dez 22, 2024 12:48 pm
von pbm
Hallo Hardi,

hier ein Baustein, der das macht, was du brauchst:

Bild

Die Eingänge "Triggerintervall" und "Trigger 1" müssen die selbst Zeitkonstante haben.

Der Parameter "Schwelle" bestimmt, wie groß das Delta des Zählwerts sein muss, damit der Ausgang aktualisiert wird.
(Damit nicht, wie in meinem Beispiel alle zwei Sekunden ein Wert auf den Ausgang geschrieben wird.)

Code: Alles auswählen

/**===========================================================
Integral Intervall
W rein -> kWh raus
============================================================*/

{
  "_Meta": { // Optional
    "Description": "Integral Intervall",
    "Version": "1.00",
    "Icon": "" // format: "data:image/svg+xml;base64,ENCODED_FILE"
  },
  "Level":[
    ["$Leistung","float",0.0],
    ["$Arbeit_Wh","float",0.0],
	["$Arbeit_kWh","float",0.0],
	["$Arbeit_Rest_Wh","float",0.0],
	["$Arbeit_Merker_kWh","float",0.0],
	["$Arbeit_Merker_Schwelle_kWh","float",0.0],
	["$Triggerintervall","float",2.0],
	["$Teiler","float",1.0],
	["$Time","float",1.0],
	["$pluskWh","float",0.0],
    ["$Konst0","float",0.0],
	["$Konst1","float",1.0],
	["$Konst3600","float",3600.0],
	["$Konst1000","float",1000.0],
	["$plus1","bool",false],
	["$Gate","bool",false],
	["$Diff","float",0.0],
	["$Schwelle","float",0.1],
	["$KonstFalse","bool",false],
	["$Formel_Time","string","X1/X2"],
	["$Formel_Teiler","string","X1*X2"],
	["$Formel_Arbeit_Wh","string","X1+X2"],
	["$Formel_Arbeit_Rest_Wh","string","X1-X2"],
	["$Formel_Arbeit_Merker_kWh","string","X1+X2"],
	["$Formel_Arbeit_kWh","string","X1+(X2/X3)"],
	["$Formel_Arbeit_Schwelle_kWh","string","X1-X2"]
  ],
  "Module": [
      //3600 Sekunden / Triggerintervall = Time	  
	  ["CalcFormula",["$Konst3600","$Triggerintervall"],"$Time","$Formel_Time"],
	
	  //Time * 1000 = Teiler
	  ["CalcFormula",["$Time","$Konst1000"],"$Teiler","$Formel_Teiler"],
	  
	  //Leistung + Arbeit_Wh = Arbeit_Wh
      ["CalcFormula",["$Leistung","$Arbeit_Wh"],"$Arbeit_Wh","$Formel_Arbeit_Wh"],
	  
	  //Arbeit_Wh größer Teiler? -> plus1 = 1
	  ["Comparator","$Arbeit_Wh","$plus1","$Teiler"],
	  	  
	  //Arbeit_Wh - Teiler = Arbeit_Rest_Wh
	  ["CalcFormula",["$Arbeit_Wh","$Teiler"],"$Arbeit_Rest_Wh","$Formel_Arbeit_Rest_Wh"],
	  
	  //Wenn plus1 = 1, dann Arbeit_Rest_Wh = Arbeit_Wh, ansonten nichts tun
	  ["Multiplexer",["$Arbeit_Wh","$Arbeit_Rest_Wh"],"$Arbeit_Wh","$plus1"],

	  // Wenn plus1 = 1, dann pluskWh = 1, ansonten pluskWh = 0
	  ["Multiplexer",["$Konst0","$Konst1"],"$pluskWh","$plus1"],
	  
	  // Arbeit_Merker_kWh + pluskWh) = Arbeit_Merker_kWh
	  ["CalcFormula",["$Arbeit_Merker_kWh","$pluskWh"],"$Arbeit_Merker_kWh","$Formel_Arbeit_Merker_kWh"],
	  
	  // Arbeit_Merker_kWh + (Arbeit_Wh / Teiler) = Arbeit_Merker_Schwelle_kWh
	  ["CalcFormula",["$Arbeit_Merker_kWh","$Arbeit_Wh","$Teiler"],"$Arbeit_Merker_Schwelle_kWh","$Formel_Arbeit_kWh"],
	  
	  
	  ["CalcFormula",["$Arbeit_Merker_Schwelle_kWh","$Arbeit_kWh"],"$Diff","$Formel_Arbeit_Schwelle_kWh"],
	  
	  ["Comparator" , "$Diff" , "$Gate" , "$Schwelle"],
      ["Latch","$Arbeit_Merker_Schwelle_kWh","$Arbeit_kWh","$Gate",0]
	  
	  
  ],
  "Input": [
      ["Leistung in W","in Watt","$Leistung","u"],
      ["Triggerintervall","Hier muss die Zeit vom Trigger rein","$Triggerintervall","u"],
	  ["Schwelle","Differenz am Ausgang","$Schwelle","u"]
  ],
  "Output": [
      ["Arbeit in kWh","in Kilowattstunden","$Arbeit_kWh","c"]
  ]
}
Nutzungsrechte:
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.

Re: [V4.1] Verbrauchszähler

Verfasst: So Dez 22, 2024 3:28 pm
von Elkomaster91
Hallo,

vielen Dank für die Antworten und auch für die fertige Logik.

Ich nutze einen Shelly PM Mini Gen3 - und diesen auch erst seit 2 Wochen und der Grund der Nachfrage ist genau deswegen, weil ich das Gefühl habe das der Wert der dort als "aenergy" übermittelt wird nicht ganz passt. Man muss dazu sagen das ich keine Verbindung in die Cloud habe.

Gören, was hast du dir gebaut damit es stabil läuft?

Dankeschön und Gruß Hardi

PS: Ich fange erst mit Logik im TWS an, weil ich die sehr kompliziert finde, vor allem wenn ich mehrere Bausteine hintereinander schalten mag, jetzt möchte ich aber doch damit spielen.

Re: [V4.1] Verbrauchszähler

Verfasst: So Dez 22, 2024 3:58 pm
von gbglace
Ja das hintereinander packen macht erst Sinn in einer Customlogik.
Ist ein eigener Dialekt aber am Ende sehr mächtig.

in einzelnen Standardbausteinen und dann wild verstöpseln, mag ich weder die TWS noch andere Logik-Engines. Im Nodered stöpsele ich auch immer mal was zusammen merke aber das mir das zu viele unübersichtliche Boxen werden und packe dann doch alles in einen function node. Dieses NodeJS als Programmiersprache kann ich auch nicht und habe auch keine Ahnung was es da alles gibt. Also geht das ganze Stückwerk immer ins Chat GPT und dessen Output dann in den function node. Dann noch etwas Kosmetik in den variablen Namen und dann fertig.

Im TWs ist es dann ähnlich. Es fehlt nur noch das Chat-GPT. also mehr davon machen und posten an Customlogiken.
Einfach ein paar Customlogiken sich mal anschauen, den grundsätzlichen Aufbau verstehen der paar Blöcke die es da gibt. Und dann selbst loslegen.

Es empfiehlt sich den Code in einem geeigneten Editor zu schreiben nicht direkt in der Weboberfläche.

das ist der Baustein den ich da mal gebaut hatte:
viewtopic.php?t=4166