NEWS
PV Überschuss mit Heizstab Stufenlos in den Heizungspuffer
-
Hallo,
könntet Ihr mir bitte erklären wie ihr vorgehen würdet?
Habe eine PV und würde gerne meinen Überschuss in den Heizungspuffer laden.Habe einen 9KW Heizstab (MyPV) (noch nicht eingebaut) den ich über den Thyristorsteller (https://de.aliexpress.com/item/1005003318109509.html) (noch nicht bestellt) regeln wollte.
PV, Puffer und RPI IOBroker stehen in jeweils unterschiedlichen Räumen (Wlan nicht möglich) daher über RJ45, LAN verlegt.
Wie eine Ansteuerung des Thyristorstellers über einen Arduino, ESP32 oä. am besten realisieren (Dachte an MQTT)?PV Steuerung über Victron Venus OS Large (Inkl. Node Red) auf RPI4. Daher wäre ein Umsetzung in Node Red vermutlich am einfachsten (komme ich im Moment leider noch nicht mit klar).
Vorgestellt habe ich mir das in etwa so, wenn Einspeisung >1KW dann 1V an Thyristorsteller bis > 10KW dann 10V an Thyristorsteller oder so ähnlich.
Je Stufenloser je besser, bin für alle Vorschläge offen.
@t-spooner
du hast in einem anderen Thread geschrieben es wäre einfach umzusetzen, wie würdest du vorgehen?Danke
Grüße
Michael
-
@bastler-0 sagte in PV Überschuss mit Heizstab Stufenlos verheizen:
den ich über den Thyristorsteller (noch nicht
was soll dieser Link?
ansonsten mal suchen. da gibt es schon threads zu
z.B. https://forum.iobroker.net/post/1050357 -
@homoran
Danke, den Link habe ich geändert, hatte in der Vorschau noch gepasst.Hatte in der Suche schon gesucht, leider nichts passendes gefunden.
Nur 3 Stufen, würde ich ungern umsetzen, da 3kW Schritte schon groß sind und sich die Heizstäbe auch einseitig abnutzen würden.Danke
Grüße
Michael -
@bastler-0 Machs mit Phasenanschnitt. Bei mir fragt ein ESP alle 5sek den ioBroker ab, welcher Werte für eine PWM-Steuerung generiert, je nach überschüssiger Solarleistung (Shelly EM3). Der ESP steuert eine Platine an, welche das PWM-Signal in eine Spannung zwischen 1 und 10V umwandelt und an ein SSR übergibt, der regelt dann - quasi stufenlos - den Phasenanschnitt für meine beiden Boiler. Bei Interesse sag Bescheid, hätte ein Skript, einen Sketch für den ESP und Fotos von der fertigen Lösung Screen_Recording_20230707_102647_ioBrokervis.mp4
Aktuell hab ich so 6 bis 7 Sekunden Verzug in der Regelung, d.h. wenn sich eine Wolke vor die Sonne schiebt, dauert es einen Moment bis nachgeregelt wird. Ich hätte gern den ESP / WLAN dazwischen noch weg. Mein ioBroker läuft aktuell unter Windows 11. Irgendein USB-Teil was direkt über eine Software 0-10V ausgibt und dann ne Strippe gezogen...
Gleich schreien wieder alle Elektriker
-
@bastler-0 sagte: leider nichts passendes gefunden.
-
@lalam Hallo, Ich bin neu in diesem Forum.
Aber ich würde gerne eine ähnliche Lösung bauen.
Ich interessiere mich für das Skript und den Sketch für das ESP.
Vielen Dank im Voraus. -
Der Sketch ist relativ einfach. Das Blockly aber nicht. Vielleicht erkläre ich noch fix das Prinzip:
Ein Shelly EM3 stellt die aktuell Verfügbare Energie im Saldo dar. Da er direkt hinter dem Zähler läuft, ist der Grundverbrauch bereits eingerechnet und alle Verbraucher werden im Saldo berücksichtigt. Kann man also direkt übernehmen. Was man noch tun muss, ist die aktuelle Last des Boilers gegenrechnen, sonst schaltet sich die Sache sofort wieder ab. Das heisst der Boiler braucht auch einen Shelly xPM vorneweg!
Leider laufen die SSR nicht linear. Habe das ganze über den PWM-Range (255) in 5er Schritten ausgemessen und näherungsweise einen Logarithmus im Skript genommen. Besser hätte ein Polynom dritten Grades gepasst, hab ich aber mit Blockly nicht abbilden können. Alternativ kann man das Ganze auch manuell im Blockly machen, je nach Überschuss setzt man halt den PWM-Wert in einer Zeile.
Dazu gibt es noch einen Offset, einen Startwert (bei wieviel Überschuss das Lastmanagement einsetzt) und das Skript bedient zwei Boiler (!) mit je 1,5 kW Heizstab. Ehe Du Dich da komplett durchfummelst empfehle ich es neu zu setzen, zumal dort meine sämtlichen Variablen noch drin sind, und es ist auch immer besser, wenn man nebenbei noch versteht was man tut
Bei Fragen fragen....#include <ESP8266WiFi.h> #include <ESP8266HTTPClient.h> HTTPClient sender; WiFiClient wifiClient; const char* ssid = "DeinWLAN"; const char* password = "DeinWLAN-Passwort"; #define LED 2 int brightness = 0; // how bright the LED is int fadeAmount = 5; // how many points to fade the LED by const int PWM_pin = 13; //PWM Ausgabepin (D7 auf dem Board) const int PWM_pin_1 = 15; //PWM Ausgabepin (D8 auf dem Board) //###################################################################### void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(200); Serial.print("."); } Serial.println("Verbunden!"); pinMode(LED,OUTPUT); pinMode(D7, OUTPUT); pinMode(D8, OUTPUT); analogWriteFreq(500); analogWriteRange(255); } //##################################################################### void loop() { if (sender.begin(wifiClient, "http://IPdesIOBroker:8082/getPlainValue/0_userdata.0.Lastmanagement.Boiler80PWM")) { int httpCode = sender.GET(); if (httpCode > 0) { // Anfrage wurde gesendet und Server hat geantwortet // Info: Der HTTP-Code für 'OK' ist 200 if (httpCode == HTTP_CODE_OK) { // Hier wurden die Daten vom Server empfangen // String vom Webseiteninhalt speichern String payload = sender.getString(); // Hier kann mit dem Wert weitergearbeitet werden // ist aber nicht unbedingt notwendig int steuer = payload.toInt() ; Serial.println (steuer); //Ausgabe auf D8 if (steuer < 0) { analogWrite(PWM_pin,( steuer));}; if (steuer >= 0) { analogWrite(PWM_pin,steuer);}; } }else{ // Falls HTTP-Error Serial.printf("HTTP-Error: ", sender.errorToString(httpCode).c_str()); } // Wenn alles abgeschlossen ist, wird die Verbindung wieder beendet sender.end(); }else { Serial.printf("HTTP-Verbindung konnte nicht hergestellt werden!"); } delay (2000);
<block xmlns="https://developers.google.com/blockly/xml" type="procedures_defnoreturn" id="A.gz|Hyg}Li~u)dac9Q)" x="2913" y="-237.25"> <field name="NAME">Offset</field> <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment> <statement name="STACK"> <block type="controls_if" id="kts.!Z,9]EOKMY)(L[7-"> <value name="IF0"> <block type="logic_compare" id="ro4]F[b9YYPzKjMv/tt%"> <field name="OP">LTE</field> <value name="A"> <block type="math_single" id="h;w/T#XZi;m+^=bGx8y+"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="1}t$HDh~I^_whbA.Gb{B"> <field name="NUM">9</field> </shadow> <block type="get_value" id=":BugHy?_tmkl2@dcKf=D"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="cO!6+;{qiwz9J]@Z}JMk"> <field name="NUM">600</field> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="[C{hLL@*?d_ZHQXCv-Uy"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Lastmanagement.123</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="oH,c{L5B#,A%XRAnbaXj"> <field name="NUM">93</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="b(QItv5m#Rb[M8P]Im=5"> <value name="IF0"> <block type="logic_operation" id="3C4?}Am+PRhs~lLk#u,K"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="j-@.dY,/PFMJ-7%:{H))"> <field name="OP">GTE</field> <value name="A"> <block type="math_single" id="rd0;1#6+g$D:33z*tZ@^"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="~[Eh2ZUny}2QKZ*2^Udy"> <field name="NUM">9</field> </shadow> <block type="get_value" id="RTbQR1=jVCM]c%7E+/w4"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="a%DF!Xa/Y?$|_x0vmKZz"> <field name="NUM">100</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="|su3mZ=@._`XUveVRo@b"> <field name="OP">LT</field> <value name="A"> <block type="math_single" id="c;DFY7GLi4O#*eJQSF/h"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="^T)X##+P2h0PDwmtjjxC"> <field name="NUM">9</field> </shadow> <block type="get_value" id="~h5JUMRrl?h.uwL+%(r!"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="-`Y)g0mKcl0aJx@Gh_d5"> <field name="NUM">600</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="g~:`0whsLOhKe]o,G~tW"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Lastmanagement.123</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="1*60~0!Vh4sM,!O^JPCz"> <field name="NUM">92</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="VKs/9~WZA`u!*^EeM|Ab"> <value name="IF0"> <block type="logic_operation" id="U]b2PWTc|OLtd0*0-d~K"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="V_B(.LY$rX,oOer,lS~l"> <field name="OP">GTE</field> <value name="A"> <block type="math_single" id="HqhpJT=m,t^AU_8PfI}0"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="wTBX*1hop#5A:3:X#T}e"> <field name="NUM">9</field> </shadow> <block type="get_value" id="8y6BJMga+/=u5Ikw`aD7"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="]s5grnZ:ZP}L#P+f6rLp"> <field name="NUM">600</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="GzgR!F!^qZcxO3=9Wd;L"> <field name="OP">LT</field> <value name="A"> <block type="math_single" id="]o/}[uzp-!([RQ(|D8UR"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="jFEZ/GBO79).m_dMoFmJ"> <field name="NUM">9</field> </shadow> <block type="get_value" id="yNUZjbuHe2eSV(uO}l6f"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="n9l5I:,ul*L?|]Pe0Nt+"> <field name="NUM">700</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="S63g2pl-PJ;vN=):V_1b"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Lastmanagement.123</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id=";Bejb_+IX;=ntc0|$SFq"> <field name="NUM">90</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="lfUZ6`^U9J|C~UsN1Nnx"> <value name="IF0"> <block type="logic_operation" id="Qc`Ka8G#H=7V#[~jqr,P"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="Ow})`Wz=-wU]^R{l}DpK"> <field name="OP">GTE</field> <value name="A"> <block type="math_single" id="EZF%1n_MK,Wdp=_fV5-|"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id=".6pkuyb#?uJQXR.1xr+z"> <field name="NUM">9</field> </shadow> <block type="get_value" id="-F=1hCczh^`6zMaLQk0G"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="~e6$#C,8qjKD_YeujRn0"> <field name="NUM">700</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="c%TDn(tE}T[o[O.}@q(i"> <field name="OP">LT</field> <value name="A"> <block type="math_single" id="GsPGS?M,:)e*3i,pp*)M"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="{HMxL%VWGN=)}OyoPG%F"> <field name="NUM">9</field> </shadow> <block type="get_value" id="x=qydny2)p-{Hz%=165O"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="wW!3!HSo;1A@jv?r,O:N"> <field name="NUM">800</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="=pYg0[K(4uGBO/A5ol:3"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Lastmanagement.123</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="vM4eG8Gor]DPmSFdu*(v"> <field name="NUM">90</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="g8$;.|Tj^/{Bk]SP)xGa"> <value name="IF0"> <block type="logic_operation" id="_Vp0%rqwhKT/!Pl8J)zk"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="?Jnw+Q5sLctHLUx@|YDL"> <field name="OP">GTE</field> <value name="A"> <block type="math_single" id="Qy:5lSE,}%`5m:1c9OVm"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="r$!t%+#:jYb#6//b=kq="> <field name="NUM">9</field> </shadow> <block type="get_value" id="oonDuY_!dvc1+Z,,LiNt"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="{9-;HDHsSJI[(R](MSUT"> <field name="NUM">800</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="!WTL[fTO(?FExqll4G@P"> <field name="OP">LT</field> <value name="A"> <block type="math_single" id="pZl].SI8Kw^AG1Dgai{s"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="?@lOQYE9K~{Xx3)DyNcf"> <field name="NUM">9</field> </shadow> <block type="get_value" id="fgFd.`!()kzqb.)_@Q*0"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="hnXJO2G!yHB8_~:I%#Jq"> <field name="NUM">900</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="vWe^460RLVIhd`X|DDtF"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Lastmanagement.123</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="O8YxispS/Y=IkijOyBXv"> <field name="NUM">90</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="D}I+lPn3vGB6KPdZai@n"> <value name="IF0"> <block type="logic_operation" id="^M!H%Kq+z[OgwZ;u|W4t"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="Wd+NRTS`YeBpf~Y)M?,B"> <field name="OP">GTE</field> <value name="A"> <block type="math_single" id="(ANsU[rLSl;yaYR[ZVLa"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="=2FQ+be`Fn`F_#Ty6qUs"> <field name="NUM">9</field> </shadow> <block type="get_value" id="1:@S62YKeSQU_5qnq#/O"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="XL}*|YU1XWis6_DSIyS["> <field name="NUM">900</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="k)PAnzSlF..n*L^5`Sr="> <field name="OP">LT</field> <value name="A"> <block type="math_single" id="6=BPE{i+zuxXxvZ@~um."> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="_(4|k2nox)(!6T2!6gyc"> <field name="NUM">9</field> </shadow> <block type="get_value" id="C;28.`_@84Z%|44bg5`+"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id=")bL1O8.w1zW7)mn;P!1Q"> <field name="NUM">950</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="8f%U5Vp|#X!,neSw,kYB"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Lastmanagement.123</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="Hh,lXh@t`y]n~i2xCt.x"> <field name="NUM">88</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="AKw#JtcJJlG3;r5;}nZ2"> <value name="IF0"> <block type="logic_operation" id="S[ds*Kv%Q.K:RG.`uSd8"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="N8w$/z[/7~QTWjLNC8CW"> <field name="OP">GTE</field> <value name="A"> <block type="math_single" id="PXhFOCGycAXZ(lDn!msz"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="gc13zb|@fRCQ@C4m?GYB"> <field name="NUM">9</field> </shadow> <block type="get_value" id="6oRj5l;QRe/xZG=9z!?P"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id=":F|5Yam1OQxl^^?nRRDg"> <field name="NUM">950</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="iz7KQe_i_D^]jdXTAl9t"> <field name="OP">LT</field> <value name="A"> <block type="math_single" id="P6D;0?Bqdu6FtQuFmb3F"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="Tr3h;3-Ak)h6M(ji)?%Q"> <field name="NUM">9</field> </shadow> <block type="get_value" id="{Ky-Qd:D1A4a$bg,iw+H"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="MxRT2iuv^Tec~nn^vA3N"> <field name="NUM">1000</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="7rG[`K`O74MjfKRdn/VU"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Lastmanagement.123</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="}pqi-q9#D6Sor[?4c7hC"> <field name="NUM">86</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="L016Q9w,}/VbgO;ThrXR"> <value name="IF0"> <block type="logic_operation" id="BSXnP4NcbS/Q^H6hrxN^"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="9CaWFHQT^3*o=P/G~%y~"> <field name="OP">GTE</field> <value name="A"> <block type="math_single" id="s~)Ll!c=soy`ON[|krSy"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="B8P5/4Ip4L}3[acYHTST"> <field name="NUM">9</field> </shadow> <block type="get_value" id="ieMa`}kh$-zqYqu!8Q_p"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="QHiDYmt:LDv11wk|l:B#"> <field name="NUM">1000</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="(u;9V)$w:LqW6/]B3;+U"> <field name="OP">LT</field> <value name="A"> <block type="math_single" id="5P,a.u?e[g[$ngbX1US,"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="[%9g-A.i%~#WyzC}q2`Z"> <field name="NUM">9</field> </shadow> <block type="get_value" id="65.$:1AbTUwZMw7Tt=zp"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="p+_:9JYgysP_ThG822Ra"> <field name="NUM">1050</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="grAh$8DJ3*PEzFPl}+l}"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Lastmanagement.123</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="gZ70L2=mvQ[s!5ZRu#*,"> <field name="NUM">83</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="$/BWm*bZG,+SNb$S)Ph*"> <value name="IF0"> <block type="logic_operation" id=",vuvImxooh!w2v4Qe2+]"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id=")lmgiWk]F!M9fWbhN0)="> <field name="OP">GTE</field> <value name="A"> <block type="math_single" id="_%t(LBRKItr+Ww4m95mW"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="5^9ciDJnfyQkI-|=/W?6"> <field name="NUM">9</field> </shadow> <block type="get_value" id="CLFo^u4Rtz`B,k@g`8hU"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="AT]_4~v-5G0ZzJt[8_rW"> <field name="NUM">1050</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="}V8Dza]W8HG|pt*X,Y]`"> <field name="OP">LT</field> <value name="A"> <block type="math_single" id="1z~0=K8*,O}fqkc67A1,"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="7uyEaA#/J7G5-Xa/`O^t"> <field name="NUM">9</field> </shadow> <block type="get_value" id="n$#g?3a@D}N^T*xk$[WH"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="2-S3+O[~I]8~$?NaA7Tc"> <field name="NUM">1100</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="cLOE1z[1?.a3@;j]#xYP"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Lastmanagement.123</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="6.Xo!@w$uEv#/io5ym5~"> <field name="NUM">75</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="J/f]CZ/OwhZ@KT:B)Mfu"> <value name="IF0"> <block type="logic_operation" id="d%$w2WD{[[}n8ORt?sWD"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id=":1LOx;BqJ~8PF#bp*`NC"> <field name="OP">GTE</field> <value name="A"> <block type="math_single" id="0]PAb{ziK)r`^eM5~Yzc"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="%CH3X|AvYDm,kbjMWxR0"> <field name="NUM">9</field> </shadow> <block type="get_value" id="XOuttW?%IAc2+Cp%nsot"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="4Ya-v(VLRvT%Y,@Zq?pO"> <field name="NUM">1100</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="I/5ILL?jrIW6(=-LmIWF"> <field name="OP">LT</field> <value name="A"> <block type="math_single" id="P!YLF7`7Gc1yD:}!a[z)"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="82ltC-;vDi0q_T*;6#^H"> <field name="NUM">9</field> </shadow> <block type="get_value" id="2nsh}n957J+fPy3^.,#I"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="G`~OjeI:GBf`UNq3@$VC"> <field name="NUM">1200</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="EsLtKZA7DPZ,D`sX1)YC"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Lastmanagement.123</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="JK*#`tg!I94VH{E.4[J6"> <field name="NUM">65</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="hcrWvTfs~Dn]fm|2F7Gf"> <value name="IF0"> <block type="logic_operation" id="}6QfiH5wdn1mAvh:6$K}"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="i/(r,AG4.68n^+EBjCDI"> <field name="OP">GTE</field> <value name="A"> <block type="math_single" id="N+]qrvA04!1I_0EK+y]n"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="-(KU)]EPI1?p9vS6~*g6"> <field name="NUM">9</field> </shadow> <block type="get_value" id="K$~?ALRI{XBH%uWU.L,H"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="cve)naYmz^jVxhb1ZoK7"> <field name="NUM">1200</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="nisVFKPkj#}K*5aiqi8q"> <field name="OP">LT</field> <value name="A"> <block type="math_single" id="Cc}]-mAKw~#/XN6H0GNh"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="YxaKD9fa;R}mU2ms+l3m"> <field name="NUM">9</field> </shadow> <block type="get_value" id="~lA3rR8qCO:Cy`gDIvU+"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="s6k$IR0jM,[/88I=8ukw"> <field name="NUM">1300</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="4xc;yKgltFP584v8h/Om"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Lastmanagement.123</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="Z]mh!FlH0NlrE+_l^hxF"> <field name="NUM">55</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="aPRM!A{xuWFs3wwK*b[a"> <value name="IF0"> <block type="logic_operation" id="M)Dpnl0:7[8+%6ap4CYE"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="sM{U4sW#KHtV;7%=;{1*"> <field name="OP">GTE</field> <value name="A"> <block type="math_single" id="LSe1.v8Z2]7a?rv,T;B@"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="e@EJUGM83I(.Ntg0)Rc:"> <field name="NUM">9</field> </shadow> <block type="get_value" id="{)6)X1^@2PSEE2ZC;L[k"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="6C7+N6?|JDKMaWe%Y0G["> <field name="NUM">1300</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="_#S;Bsq8Wu%0P^}S6`WB"> <field name="OP">LT</field> <value name="A"> <block type="math_single" id="/euJp`^h@I_2bAb5si^["> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="3MY/8([OM1is.2afLl1m"> <field name="NUM">9</field> </shadow> <block type="get_value" id="_I:)|gv^x7{0V`RR##L`"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="WH5_:}=~UxvH}S0bJLXL"> <field name="NUM">1400</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="nDYRC`mj()gtC.mX/Ll6"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Lastmanagement.123</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="MmZB`.yYG.Zn@@E*Svh+"> <field name="NUM">54</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="]yEHY~?-Qo_#;mkB)lg~"> <value name="IF0"> <block type="logic_operation" id="{i6e$@;qw~QtSY^z|?f7"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="}ozq4eyVz0,pX!5~fBRQ"> <field name="OP">GTE</field> <value name="A"> <block type="math_single" id=",Mm$_g_T2CpA9yb!qnp2"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="Q9u1rP7n1U:$s80;+x)+"> <field name="NUM">9</field> </shadow> <block type="get_value" id="AY.3/%c|;cB?s)O9-ze7"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="$ko0{VVsA[fF6@e-(:Ni"> <field name="NUM">1400</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="i+GiFRu:11!2U0a0x-@i"> <field name="OP">LT</field> <value name="A"> <block type="math_single" id="q2$J[F*`xxlFLV7)`b|c"> <field name="OP">ABS</field> <value name="NUM"> <shadow type="math_number" id="EKRQX^U6c7qih-R[S*an"> <field name="NUM">9</field> </shadow> <block type="get_value" id="@]y1Z%2vB,dcYP%0V=CJ"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Lastmanagement.Average</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="(1gIoA1^o)G4:-sJ-aE|"> <field name="NUM">5000</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="update" id="eOzXs[K@9pF.S=2*jA6)"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Lastmanagement.123</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="erjRvWG?smDx{Tcpl:oP"> <field name="NUM">35</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block>
-
@lalam Vielen Dank das Skript und den Sketch.
Ich werde erst mal versuchen um das ganze Mal durch zu nehmen.
Und das Prinzip zu verstehen, wie alles afgebaut ist.
Erstmal schon Vielen Dank, und melde mich dann wieder. -
Hallo
Ich nutze es änlich nur mit Shelly RGBW2 mit einem PWM zu 0 - 10v Wandler
ein Kemo M240 Leistungsregler und ein 900W Heizstab
Shelly pro3em ist der trigger und werte lieferantBlockly Gesteuert
<block type="on" id="voi`r)`Z*0;4yrs3]u/Q" x="224695" y="231765"> <field name="OID">alias.0.Shellys.Pro3EM.Pro3EMTotallPower</field> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="cf*3BpEfg?`!`f]lnx=t"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="a=TyaWWW(~0YV/o?+_ck" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="time_compare" id="qsy-Z/^n`DaF}UIceIuy"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation> <field name="OPTION">between</field> <field name="START_TIME">08:00</field> <field name="END_TIME">20:00</field> </block> </value> <value name="B"> <block type="logic_compare" id="FRBBm8-x1Dj;U12fJL1L"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id="WX-1C-HW~2s#vaOuC!^7"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="cNT0+rze;!xQM2b8[U[T"> <field name="NUM">100</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="Snu.%wkp%nf]z:Y.]]r#"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="+PG2_Yv5f9xMVkHX2PvU" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="+l!??6Lv=Y@wyi!Ms`qf"> <field name="OP">LTE</field> <value name="A"> <block type="get_value" id="?Il5d=55NMVP_dybe|yh"> <field name="ATTR">val</field> <field name="OID">alias.0.Shellys.ShellyDimmer.ShellyDimmer</field> </block> </value> <value name="B"> <block type="math_number" id=")*;=e!$JCGnrO$FfLAb."> <field name="NUM">0</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="`_|1TGCyCdjz#4pI@FLt"> <field name="OP">LTE</field> <value name="A"> <block type="on_source" id="E^-U$rH0;=1;f:0c]kPk"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id=";v-mSi;v})VTAQPO`+Ba"> <field name="NUM">10</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="4XpTF4sw1D[,U6B=;FN]"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.Shellys.ShellyDimmer.ShellyDimmer</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="L*;oE@.T4K2SaZyyIVBl"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="M|7o;caU0}:zVi?)`p1H"> <field name="NUM">1</field> </shadow> <block type="get_value" id="^h4eTS*cU*rC34aP/%?u"> <field name="ATTR">val</field> <field name="OID">alias.0.Shellys.ShellyDimmer.ShellyDimmer</field> </block> </value> <value name="B"> <shadow type="math_number" id="X6;y#k+s=e:dRn8}|_uK"> <field name="NUM">4</field> </shadow> </value> </block> </value> <next> <block type="control" id="(o)?EWPS2%B;lTQLUl7;"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.Shellys.ShellyDimmer.ShellyDimmerSchalter</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="H?j]99FDqCoVK+{;(bCu"> <field name="BOOL">TRUE</field> </block> </value> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_operation" id="}h2TD#Xhn3TNJpLV*/HO" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="!3aL6j?B;)l4E;%(]Tg*"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="^|v6Io;TP(%Z6ts/#~oy"> <field name="ATTR">val</field> <field name="OID">alias.0.Shellys.ShellyDimmer.ShellyDimmer</field> </block> </value> <value name="B"> <block type="math_number" id="8PfpCyqU;#(m5(5-cQpR"> <field name="NUM">100</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="+jXhtdK3[de4?@u3BEet"> <field name="OP">GTE</field> <value name="A"> <block type="on_source" id="A4x*R@=a-EpE!g){~d_h"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="math_number" id="]Q]jxO,$.K:1q#P~Bk|%"> <field name="NUM">30</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="r)+U0pA2@SU5dI~Sq)XI"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.Shellys.ShellyDimmer.ShellyDimmer</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_arithmetic" id="eaDuT0?v%fjLA:kCJW~P"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="M|7o;caU0}:zVi?)`p1H"> <field name="NUM">1</field> </shadow> <block type="get_value" id="/pvi,6X~~(i3+YBr;[6N"> <field name="ATTR">val</field> <field name="OID">alias.0.Shellys.ShellyDimmer.ShellyDimmer</field> </block> </value> <value name="B"> <shadow type="math_number" id="ys,qCQb.mvB%uiZbArV2"> <field name="NUM">3</field> </shadow> </value> </block> </value> </block> </statement> </block> </statement> <statement name="ELSE"> <block type="control" id="Ny-kZtDxZA]*TqN:w|le"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.Shellys.ShellyDimmer.ShellyDimmerSchalter</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="E3cap7f.-%FXGq4ebEW0"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="control" id="X!78#^Y?k:$44K5]Hs*x"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.Shellys.ShellyDimmer.ShellyDimmer</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="k4VeCSy~^NidOPNW.$t3"> <field name="NUM">0</field> </block> </value> </block> </next> </block> </statement> </block> </statement> </block> </xml>
-
@pajda Welche Aufgabe hat der Shelly RGBW2 ?
-
@lalam Aaaah. sehe gerade. Ist ein Shelly Dimmer ..... Alles klar ...
-
@pajda Hallo pajda, welchen PWM Wandler hast Du verbaut? Meine kommmen mit dem Signal vom RGBW2 nicht zurecht. Danke und Grüße Lars
-
@lalam vielleicht ist das Ausgangssignal des Shelly nicht glatt genug. R/C Glied dahinter könnte man versuchen.
-
@lalam
Der Kemo M240 kann per 0-10V angesteuert werden. Es gibt doch den Shelly Plus 0-10V Dimmer. Mit dem müsste das doch direkt gehen. -
@lalam Hallo
Ich nutzen den hier :
https://www.amazon.de/gp/product/B07HQB7SQM/ref=ppx_yo_dt_b_asin_title_o06_s00?ie=UTF8&psc=1
Das stimmt das der Kemo M240 per 0-10V gesteuert werden kann , nur der Shelle 0-10V Dimmer Liefert keine 0-10V .
Und zu der zeit wo ich es gebaut habe gabs den Shelly0-10V noch nicht
LG. -
@pajda sagte in PV Überschuss mit Heizstab Stufenlos in den Heizungspuffer:
nur der Shelle 0-10V Dimmer Liefert keine 0-10V
Interessant. Was liefert er dann?
-
@samson71
Also ich kenne analog dimmer die haben am Ausgang 0-10V anliegen
und bei shelly 0-10v Dimmer ist hauptsächlich für led Trafo mit internen 0-10V Versorgung gedacht . -
@pajda
Naja, Du hast geschrieben er liefert keine 0-10V. Daher die Frage was er dann liefert. Denn Du scheinst das ja in der Praxis bereits probiert zu haben. Wofür er "gedacht" ist, ist da ja erstmal egal. Ist insofern für mich vom Interesse, da ich einen Kemo240 für andere Regelungszwecke plane. -
@martinp Der PWM Wandler hat einen Jumper für das PWM-Eingangssignal. 0-5 oder 5-12 V Amplitude. Habe beides probiert. Der Shelly liefert 12V Amplitude - allerdings moduliert auf den Minuspol. Es gibt ein gemeinsames Plus für alle 4 Kanäle. Schätze daran liegt es. Shelly 0-10V Dimmer wäre optimal. Allerdings wird der vom Adapter in iobroker (noch) nicht unterstützt. Habe 2 davon hier liegen komme aber mit dem JSON -Gebambel nicht zurecht Deshalb der Versuch mit dem RGBW2 ...
-
@pajda Hallo Pajda und danke für die schnelle Reaktion! Und der hängt direkt an einer Farbe aus dem RGBW2 Shelly? Wie ist der konfiguriert? RGBW oder 4xWhite?