NEWS
Test Adapter OpenDTU
-
so, fällt Euch nochwas auf (ausser dem Xfce) ?
Skript v.2023-10-10 *** BASE SYSTEM *** Static hostname: ioserver Icon name: computer-desktop Chassis: desktop 🖥️ Operating System: Debian GNU/Linux 12 (bookworm) Kernel: Linux 6.1.0-13-amd64 Architecture: x86-64 Hardware Vendor: Intel_R_ Client Systems Hardware Model: NUC7CJYH Firmware Version: JYGLKCPX.86A.0070.2023.0505.1501 model name : Intel(R) Celeron(R) J4005 CPU @ 2.00GHz Docker : false Virtualization : none Kernel : x86_64 Userland : amd64 Systemuptime and Load: 14:54:52 up 2 min, 2 users, load average: 0.19, 0.20, 0.08 CPU threads: 2 *** Time and Time Zones *** Local time: Fri 2023-10-20 14:54:52 CEST Universal time: Fri 2023-10-20 12:54:52 UTC RTC time: Fri 2023-10-20 12:54:52 Time zone: Europe/Berlin (CEST, +0200) System clock synchronized: yes NTP service: active RTC in local TZ: no *** User and Groups *** superuser /home/superuser superuser adm cdrom floppy sudo audio dip video plugdev users netdev iobroker *** X-Server-Setup *** X-Server: true Desktop: Terminal: web Boot Target: graphical.target *** MEMORY *** total used free shared buff/cache available Mem: 7.9G 1.2G 6.3G 27M 697M 6.7G Swap: 1.0G 0B 1.0G Total: 8.9G 1.2G 7.3G 7556 M total memory 1171 M used memory 213 M active memory 1162 M inactive memory 5986 M free memory 34 M buffer memory 630 M swap cache 975 M total swap 0 M used swap 975 M free swap *** FAILED SERVICES *** UNIT LOAD ACTIVE SUB DESCRIPTION 0 loaded units listed. *** FILESYSTEM *** Filesystem Type Size Used Avail Use% Mounted on udev devtmpfs 3.7G 0 3.7G 0% /dev tmpfs tmpfs 756M 1.1M 755M 1% /run /dev/sda2 ext4 218G 7.9G 199G 4% / tmpfs tmpfs 3.7G 0 3.7G 0% /dev/shm tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock /dev/sda1 vfat 511M 9.8M 502M 2% /boot/efi tmpfs tmpfs 756M 20K 756M 1% /run/user/104 tmpfs tmpfs 756M 16K 756M 1% /run/user/1000 Messages concerning ext4 filesystem in dmesg: [Fri Oct 20 14:52:44 2023] EXT4-fs (sda2): mounted filesystem with ordered data mode. Quota mode: none. [Fri Oct 20 14:52:45 2023] EXT4-fs (sda2): re-mounted. Quota mode: none. Show mounted filesystems \(real ones only\): TARGET SOURCE FSTYPE OPTIONS / /dev/sda2 ext4 rw,relatime,errors=remount-ro `-/boot/efi /dev/sda1 vfat rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro Files in neuralgic directories: /var: 2.4G /var/ 2.0G /var/cache 1.9G /var/cache/apt/archives 1.9G /var/cache/apt 215M /var/log Archived and active journals take up 198.6M in the file system. /opt/iobroker/backups: 2.4M /opt/iobroker/backups/ /opt/iobroker/iobroker-data: 60M /opt/iobroker/iobroker-data/ 34M /opt/iobroker/iobroker-data/backup-objects 15M /opt/iobroker/iobroker-data/files 13M /opt/iobroker/iobroker-data/files/admin.admin/custom/static/js 13M /opt/iobroker/iobroker-data/files/admin.admin/custom/static sort: fflush failed: 'standard output': Broken pipe sort: write error The five largest files in iobroker-data are: 8.2M /opt/iobroker/iobroker-data/objects.jsonl 6.3M /opt/iobroker/iobroker-data/files/admin.admin/custom/static/js/vendors-node_modules_iobroker_adapter-react-v5_assets_devices_parseNames_js-node_modules_iobr-99c23e.847b8ad9.chunk.js.map 3.2M /opt/iobroker/iobroker-data/states.jsonl 2.8M /opt/iobroker/iobroker-data/files/admin.admin/custom/static/js/vendors-node_modules_iobroker_adapter-react-v5_assets_devices_parseNames_js-node_modules_iobr-99c23e.847b8ad9.chunk.js 1.6M /opt/iobroker/iobroker-data/files/admin.admin/custom/static/js/vendors-node_modules_mui_material_Accordion_index_js-node_modules_mui_material_AccordionDetai-57e02d.0886b730.chunk.js.map USB-Devices by-id: USB-Sticks - Avoid direct links to /dev/* in your adapter setups, please always prefer the links 'by-id': find: '/dev/serial/by-id/': No such file or directory *** NodeJS-Installation *** /usr/bin/nodejs v18.18.2 /usr/bin/node v18.18.2 /usr/bin/npm 9.8.1 /usr/bin/npx 9.8.1 /usr/bin/corepack 0.19.0 nodejs: Installed: 18.18.2-1nodesource1 Candidate: 18.18.2-1nodesource1 Version table: *** 18.18.2-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 100 /var/lib/dpkg/status 18.18.1-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 18.18.0-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 18.17.1-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 18.17.0-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 18.16.1-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 18.16.0-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 18.15.0-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 18.14.2-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 18.14.1-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 18.14.0-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 18.13.0+dfsg1-1 500 500 http://debian.inf.tu-dresden.de/debian bookworm/main amd64 Packages 18.13.0-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 18.12.0-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 18.11.0-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 18.10.0-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 18.9.1-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 18.9.0-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 18.8.0-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 18.7.0-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 18.6.0-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 18.5.0-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 18.4.0-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 18.3.0-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 18.2.0-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 18.1.0-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages 18.0.0-1nodesource1 1001 500 https://deb.nodesource.com/node_18.x nodistro/main amd64 Packages Temp directories causing npm8 problem: 0 No problems detected Errors in npm tree: *** ioBroker-Installation *** ioBroker Status iobroker is running on this host. Objects type: jsonl States type: jsonl Core adapters versions js-controller: 5.0.12 admin: 6.10.1 javascript: "javascript" not found Adapters from github: 1 Adapter State + system.adapter.admin.0 : admin : ioserver - enabled, port: 8081, bind: 0.0.0.0, run as: admin + system.adapter.backitup.0 : backitup : ioserver - enabled system.adapter.discovery.0 : discovery : ioserver - disabled + system.adapter.email.0 : email : ioserver - enabled + system.adapter.influxdb.0 : influxdb : ioserver - enabled, port: 8086 system.adapter.mercedesme.0 : mercedesme : ioserver - disabled system.adapter.mqtt.1 : mqtt : ioserver - disabled, port: 1883, bind: 0.0.0.0 system.adapter.oilfox.0 : oilfox : ioserver - enabled + system.adapter.opendtu.0 : opendtu : ioserver - enabled + system.adapter.terminal.0 : terminal : ioserver - enabled, port: 8088, bind: 0.0.0.0, run as: admin + system.adapter.viessmannapi.0 : viessmannapi : ioserver - enabled + instance is alive Enabled adapters with bindings + system.adapter.admin.0 : admin : ioserver - enabled, port: 8081, bind: 0.0.0.0, run as: admin + system.adapter.influxdb.0 : influxdb : ioserver - enabled, port: 8086 + system.adapter.terminal.0 : terminal : ioserver - enabled, port: 8088, bind: 0.0.0.0, run as: admin ioBroker-Repositories stable : http://download.iobroker.net/sources-dist.json beta : http://download.iobroker.net/sources-dist-latest.json Active repo(s): stable Installed ioBroker-Instances Used repository: stable Adapter "admin" : 6.10.1 , installed 6.10.1 Adapter "backitup" : 2.8.1 , installed 2.8.1 Adapter "discovery" : 3.1.0 , installed 3.1.0 Adapter "email" : 1.2.0 , installed 1.2.0 Adapter "influxdb" : 3.2.0 , installed 3.2.0 Controller "js-controller": 5.0.12 , installed 5.0.12 Adapter "mercedesme" : 0.1.1 , installed 0.1.1 Adapter "mqtt" : 4.1.1 , installed 4.1.1 Adapter "oilfox" : 4.2.0 , installed 4.2.0 Adapter "opendtu" : 1.0.0 , installed 1.0.0 Adapter "terminal" : 1.0.0 , installed 1.0.0 Adapter "viessmannapi" : 2.0.9 , installed 2.2.1 Objects and States Please stand by - This may take a while Objects: 9445 States: 7679 *** OS-Repositories and Updates *** Hit:1 http://debian.inf.tu-dresden.de/debian bookworm InRelease Hit:2 http://security.debian.org/debian-security bookworm-security InRelease Hit:3 http://debian.inf.tu-dresden.de/debian bookworm-updates InRelease Hit:4 https://apt.grafana.com stable InRelease Hit:5 https://repos.influxdata.com/debian stable InRelease Hit:6 https://deb.nodesource.com/node_18.x nodistro InRelease Reading package lists... Pending Updates: 0 *** Listening Ports *** Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name tcp 0 0 0.0.0.0:48497 0.0.0.0:* LISTEN 111 22545 1091/rpc.statd tcp 0 0 127.0.0.1:9001 0.0.0.0:* LISTEN 1001 19494 953/iobroker.js-con tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 1001 20542 953/iobroker.js-con tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 0 19488 988/exim4 tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 0 14966 1/init tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 19016 567/sshd: /usr/sbin tcp6 0 0 ::1:25 :::* LISTEN 0 19489 988/exim4 tcp6 0 0 :::8088 :::* LISTEN 1001 21025 1156/io.terminal.0 tcp6 0 0 :::8081 :::* LISTEN 1001 20669 1002/io.admin.0 tcp6 0 0 :::8086 :::* LISTEN 999 17117 591/influxd tcp6 0 0 :::3000 :::* LISTEN 112 19513 952/grafana tcp6 0 0 :::111 :::* LISTEN 0 14968 1/init tcp6 0 0 :::37127 :::* LISTEN 111 22551 1091/rpc.statd tcp6 0 0 :::9090 :::* LISTEN 0 16646 1/init udp 0 0 0.0.0.0:111 0.0.0.0:* 0 14967 1/init udp 0 0 0.0.0.0:49340 0.0.0.0:* 111 22542 1091/rpc.statd udp 0 0 127.0.0.1:843 0.0.0.0:* 0 22537 1091/rpc.statd udp6 0 0 :::111 :::* 0 14969 1/init udp6 0 0 :::37763 :::* 111 22548 1091/rpc.statd *** Log File - Last 25 Lines *** 2023-10-20 14:53:03.484 - info: influxdb.0 (1045) enabled logging of Viessmann-Gas-WW-Tag, Alias=true, 21 points now activated 2023-10-20 14:53:03.484 - info: influxdb.0 (1045) enabled logging of Viessmann-Strom-Heizung-Tag, Alias=true, 22 points now activated 2023-10-20 14:53:03.484 - info: influxdb.0 (1045) enabled logging of Viessmann-WW-Temp, Alias=true, 23 points now activated 2023-10-20 14:53:03.485 - info: influxdb.0 (1045) enabled logging of Viessmann-VL-Temp, Alias=true, 24 points now activated 2023-10-20 14:53:03.485 - info: influxdb.0 (1045) enabled logging of Zisterne-Füllstand-Perc, Alias=true, 25 points now activated 2023-10-20 14:53:03.485 - info: influxdb.0 (1045) enabled logging of Zisterne-Füllstand-Liter, Alias=true, 26 points now activated 2023-10-20 14:53:03.485 - info: influxdb.0 (1045) enabled logging of B200-Letzte-Fahrt-km, Alias=true, 27 points now activated 2023-10-20 14:53:03.486 - info: influxdb.0 (1045) enabled logging of B200-Durchschnittsverbrauch-L, Alias=true, 28 points now activated 2023-10-20 14:53:03.486 - info: influxdb.0 (1045) enabled logging of B200-Durchschnittsverbrauch-letzte-Fahrt, Alias=true, 29 points now activated 2023-10-20 14:53:03.486 - info: influxdb.0 (1045) enabled logging of B200-KM-Stand, Alias=true, 30 points now activated 2023-10-20 14:53:03.490 - info: influxdb.0 (1045) Connected! 2023-10-20 14:53:06.011 - info: host.ioserver instance system.adapter.backitup.0 started with pid 1060 2023-10-20 14:53:07.223 - info: backitup.0 (1060) starting. Version 2.8.1 in /opt/iobroker/node_modules/iobroker.backitup, node: v18.18.2, js-controller: 5.0.12 2023-10-20 14:53:07.268 - info: backitup.0 (1060) [iobroker] backup will be activated at 23:00 every 1 day(s) 2023-10-20 14:53:10.013 - info: host.ioserver instance system.adapter.opendtu.0 started with pid 1113 2023-10-20 14:53:11.095 - info: opendtu.0 (1113) starting. Version 1.0.0 in /opt/iobroker/node_modules/iobroker.opendtu, node: v18.18.2, js-controller: 5.0.12 2023-10-20 14:53:11.349 - info: opendtu.0 (1113) Connect to OpenDTU over websocket connection. 2023-10-20 14:53:14.011 - info: host.ioserver instance system.adapter.viessmannapi.0 started with pid 1128 2023-10-20 14:53:15.223 - info: viessmannapi.0 (1128) starting. Version 2.2.1 in /opt/iobroker/node_modules/iobroker.viessmannapi, node: v18.18.2, js-controller: 5.0.12 2023-10-20 14:53:18.059 - info: host.ioserver instance scheduled system.adapter.oilfox.0 5 12 * * * 2023-10-20 14:53:22.014 - info: host.ioserver instance system.adapter.terminal.0 started with pid 1156 2023-10-20 14:53:23.447 - info: terminal.0 (1156) starting. Version 1.0.0 in /opt/iobroker/node_modules/iobroker.terminal, node: v18.18.2, js-controller: 5.0.12 2023-10-20 14:53:23.492 - info: terminal.0 (1156) http server listening on port 8088 2023-10-20 14:53:25.953 - info: opendtu.0 (1113) Connect to OpenDTU over websocket connection. 2023-10-20 14:53:27.313 - info: viessmannapi.0 (1128) 1 installations found.
-
@friedhofsblond sagte in Test Adapter OpenDTU:
sort: fflush failed: 'standard output': Broken pipe
sort: write errorKomische Meldung, sollte da nicht auftauchen.
Und schalt den Desktop AUS! -
@thomas-braun
OK ich schau mal nach.
Ansonsten beobachte ich mal was morgen so passiert.Danke erstmal
-
sehr geil besten Dank! Ich musste das Script etwas anpassen, da ich dauerhaft die Grundlast einspeisen möchte. Am Tage sollte der Akku trotzdem noch voll werden, da ich noch weitere drei Module an 1300 Watt WR Leisung angeschlossen habe.
ich habe jetzt dein erstes Script für meinen Zweck abgeändert, und Mal hier zur Begutachtung exportiert. Kannst Du deine 10 Watt Änderung an meinem angepassten Script noch einfügen?
Komme jetzt mit den zwei Abschnitten nicht ganz klar...
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="BN!a@q$SEAU4^)xo:SRJ">maxSolarPower</variable> <variable id="AcYpB0Ty+wVObL7=Y.a.">measuredPower</variable> <variable id="1}Q0686mMw0ZGk)e+r?(">measuredSolarPower</variable> <variable id="le#}gR{6G.yhW=x|6pS8">neededPower</variable> <variable id="X-B3:`dA%wy5$?]at5W-">NeededPowerPercent</variable> <variable id=":U;.Z4:pYNy(TwM9X-dL">storedNeededPower</variable> <variable id="}s`y%Qd}~t2t(jU$8(ud">upperLimit</variable> <variable id="P^1|W+9iVy?PgNp}9!.S">lowerLimit</variable> <variable id="?~:J:;gqC%-pt?=zNsH:">Sunrise</variable> <variable id="UJ`JGN{Ezb$K7jJ[4P}j">Sunset</variable> <variable id=")2]D^Y|D:QS6S[A}9J=/">SolarLimit</variable> </variables> <block type="schedule" id="!P+uzJ#%y!_wHsKqo2~M" x="-769" y="-524"> <field name="SCHEDULE">*/15 * * * * *</field> <statement name="STATEMENT"> <block type="controls_if" id="xaOp|xXgB@BB44iq}cJ."> <mutation else="1"></mutation> <value name="IF0"> <block type="time_compare_ex" id="Y8n@Iqzd:%qZbp|#P_v^"> <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">between</field> <value name="START_TIME"> <shadow type="text" id="]-0N3DkP*7?ghtYzXwX!"> <field name="TEXT">10:00</field> </shadow> </value> <value name="END_TIME"> <shadow type="text" id="fBJt;J|@?8y+L|`jmRd9"> <field name="TEXT">09:00</field> </shadow> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="~p6WKGjCNU[UXfc{|$8|"> <field name="VAR" id="BN!a@q$SEAU4^)xo:SRJ">maxSolarPower</field> <value name="VALUE"> <block type="math_number" id="Z(v(#cMkS]/o.,;iyE/|"> <field name="NUM">600</field> </block> </value> <next> <block type="variables_set" id="Ih%sQzzK`!Ec=`tscEm-"> <field name="VAR" id="AcYpB0Ty+wVObL7=Y.a.">measuredPower</field> <value name="VALUE"> <block type="get_value" id="E60zTd:yszZT-@pD[YB#"> <field name="ATTR">val</field> <field name="OID">hm-rega.0.10421</field> </block> </value> <next> <block type="variables_set" id=":rlAB32E^@yPP9Jh?EMO"> <field name="VAR" id="1}Q0686mMw0ZGk)e+r?(">measuredSolarPower</field> <value name="VALUE"> <block type="get_value" id="Q8pLDlgI~N(N2-6)X@Qu"> <field name="ATTR">val</field> <field name="OID">opendtu.0.114182913679.ac.phase_1.power</field> </block> </value> <next> <block type="variables_set" id="t8-xB+K`%rr)x]%:Q5cN"> <field name="VAR" id="le#}gR{6G.yhW=x|6pS8">neededPower</field> <value name="VALUE"> <block type="math_arithmetic" id="2FaDMR/kS5K9d!j=`dK3"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="2FEk%?jHI2)Hvf4}p|*;"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="Z`YZ!4FileGG?5VwaP-/"> <field name="VAR" id="AcYpB0Ty+wVObL7=Y.a.">measuredPower</field> </block> </value> <value name="B"> <shadow type="math_number" id="+10nRI6/x]hugF{/lmxM"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="n0BqKn~p@qPw.Jvfrj,s"> <field name="VAR" id="1}Q0686mMw0ZGk)e+r?(">measuredSolarPower</field> </block> </value> </block> </value> <next> <block type="variables_set" id="$61h{3os=)%X-VEx9M:i"> <field name="VAR" id="X-B3:`dA%wy5$?]at5W-">NeededPowerPercent</field> <value name="VALUE"> <block type="math_round" id="3$tH.4.P)ukPPcI4xw.A"> <field name="OP">ROUND</field> <value name="NUM"> <shadow type="math_number" id="{D8W1ElJ#97Cg:]vDkM;"> <field name="NUM">3.1</field> </shadow> <block type="math_arithmetic" id="ju~9S8j-`0c/OF%2$7-o"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="6:p#t,*^;)z:Wb:@dc|3"> <field name="NUM">100</field> </shadow> </value> <value name="B"> <shadow type="math_number" id=".fYZ,3H9RSS}:wD=%Bvk"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="Z9S-r-/8^FbCeq,[{ULB"> <field name="OP">DIVIDE</field> <value name="A"> <shadow type="math_number" id="jul_lM$(9.yj`:ZH8}%@"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="_mPBX.l-0%hNvWtND[z1"> <field name="VAR" id="le#}gR{6G.yhW=x|6pS8">neededPower</field> </block> </value> <value name="B"> <shadow type="math_number" id="{Q+JfjzDv.)Z1KRbU*uv"> <field name="NUM">600</field> </shadow> <block type="variables_get" id="M!sN^/9!7$b}.ru.lqgC"> <field name="VAR" id="BN!a@q$SEAU4^)xo:SRJ">maxSolarPower</field> </block> </value> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="g3gA+F5X4*$4x2),%sJV"> <field name="VAR" id=":U;.Z4:pYNy(TwM9X-dL">storedNeededPower</field> <value name="VALUE"> <block type="get_value" id="7wbrC,7l;@ahCGcw2/pL"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.PV-Anlage.storedNeededPowerHM600.storedNeededPower</field> </block> </value> <next> <block type="variables_set" id="2KI]WdQd`0MzEf%mOPaL"> <field name="VAR" id="}s`y%Qd}~t2t(jU$8(ud">upperLimit</field> <value name="VALUE"> <block type="math_round" id="Ha.~N]M`[1eWboby_aYe"> <field name="OP">ROUND</field> <value name="NUM"> <shadow type="math_number" id=":C/cpWh)P`-jK9}]IN*4"> <field name="NUM">3.1</field> </shadow> <block type="math_arithmetic" id="v}v!|Jkv3JHVqQR7poM0"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="Nou}`9U#64_9EfeP$7E^"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="{dg*rTfc(I5I1PoYYN;l"> <field name="VAR" id=":U;.Z4:pYNy(TwM9X-dL">storedNeededPower</field> </block> </value> <value name="B"> <shadow type="math_number" id="D`~([S!SEua]l95F+#-*"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="#Aa[sC!ija_TtL9Go*jl"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="GfovLR]X(6=?),|X/9K2"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="?YS@_}6Hup[`ZsLR!Z45"> <field name="VAR" id=":U;.Z4:pYNy(TwM9X-dL">storedNeededPower</field> </block> </value> <value name="B"> <shadow type="math_number" id="YxGb?xk[MY37)!7O-Cqe"> <field name="NUM">0.05</field> </shadow> </value> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="+KJ71_Z(eLN.a(uoEuci"> <field name="VAR" id="P^1|W+9iVy?PgNp}9!.S">lowerLimit</field> <value name="VALUE"> <block type="math_round" id="=HYNg!vGE)^Z7m{+e$cs"> <field name="OP">ROUND</field> <value name="NUM"> <shadow type="math_number" id="|d.50MyF$Zxnn(B]!gq~"> <field name="NUM">3.1</field> </shadow> <block type="math_arithmetic" id="?8HAOa[X,LM#h`p]lLc4"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="(8p!3BSrd)N0m`PVj}cd"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="?$cU!rsg;wkU}CP.VsR."> <field name="VAR" id=":U;.Z4:pYNy(TwM9X-dL">storedNeededPower</field> </block> </value> <value name="B"> <shadow type="math_number" id="@kP8*eoC!D4/Wa?%grKM"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="D$_kryX`Gb5eu$gnYS_q"> <field name="OP">MULTIPLY</field> <value name="A"> <shadow type="math_number" id="MHx^YJ`[IJHske|0K5}M"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="nrL6t1UCC{jy1*U[O|Xq"> <field name="VAR" id=":U;.Z4:pYNy(TwM9X-dL">storedNeededPower</field> </block> </value> <value name="B"> <shadow type="math_number" id="||~-FC.nb3oU=fuLJzw}"> <field name="NUM">0.1</field> </shadow> </value> </block> </value> </block> </value> </block> </value> <next> <block type="debug" id="8cGY=ms*^/Fbn#Cde4/e"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="csk68CmH=pR,ptmE?y}5"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="QUQf.~7J|ziuD3sLdl)|"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="lGPf[Ci!QdAF4j#Bn34-"> <field name="TEXT">Sonnenaufgang; </field> </block> </value> <value name="ADD1"> <block type="variables_get" id="kwmbl:u%6-!)]lE{Bhdj"> <field name="VAR" id="?~:J:;gqC%-pt?=zNsH:">Sunrise</field> </block> </value> </block> </value> <next> <block type="debug" id="yaFK]t~sZKg}j1WzH!TL"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="A:^a.TTl)CuCY?K4{Z0;"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="g_%Dq-ksE!p;Tib-dWoB"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="(bZZUaTT0bt~IQ|a~%#R"> <field name="TEXT">Sonnenuntergang; </field> </block> </value> <value name="ADD1"> <block type="variables_get" id="weuYcyZ5+:mfnpSK9UiP"> <field name="VAR" id="UJ`JGN{Ezb$K7jJ[4P}j">Sunset</field> </block> </value> </block> </value> <next> <block type="debug" id="1|f1K~GhCe(a;/q4o_X]"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="WtDq6*-h|XRBClzt7C[}"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="2Zo2{I0w6J%`$2:qEY1l"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="+YI.VRyx;em.YT$D(|bs"> <field name="TEXT">Istwert: </field> </block> </value> <value name="ADD1"> <block type="variables_get" id="z%3ACfZd0~)KLgj0p}%@"> <field name="VAR" id=":U;.Z4:pYNy(TwM9X-dL">storedNeededPower</field> </block> </value> </block> </value> <next> <block type="debug" id="r+xN[i`4xS-M`OYDBpb."> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="huRV|RwGh(WJG|l-)Aw`"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="(f(78JM#Hy0@?Z0hJe~l"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="~}`O(MW.TU:J%_oS)#Xu"> <field name="TEXT">obere Grenze: </field> </block> </value> <value name="ADD1"> <block type="variables_get" id=",vBoJg7x{3!@v.c5w4q]"> <field name="VAR" id="}s`y%Qd}~t2t(jU$8(ud">upperLimit</field> </block> </value> </block> </value> <next> <block type="debug" id="qBNh2:P3U}F#$|$6FZFn"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="2kPK8(t-SdR9TZvb.%-l"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="}cq5v9RJT$55w(=?6BX)"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="*q^TTVgJ+?:b!z,x/S;V"> <field name="TEXT">untere Grenze: </field> </block> </value> <value name="ADD1"> <block type="variables_get" id="Vh$)4$K%:ZHW:~MiMXet"> <field name="VAR" id="P^1|W+9iVy?PgNp}9!.S">lowerLimit</field> </block> </value> </block> </value> <next> <block type="debug" id="k}*+@}8y%^u*6nB1JGm^"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="p_lud?Lq-FYBOI}E.h])"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="9O/.cB+R0J#M=YHuIJn?"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="3Uv-x,Irz%wnP{oXU!s^"> <field name="TEXT">benötigte Power in Prozent:</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="T);Yxf;X[xS0z_7}_YkI"> <field name="VAR" id="X-B3:`dA%wy5$?]at5W-">NeededPowerPercent</field> </block> </value> </block> </value> <next> <block type="controls_if" id="//Rx),f%pyif!qW8O/?G"> <mutation elseif="1" else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="6|n{EZ*g-L?wwMuw~`pt"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="@s)ep$AZC}nn4%[Y{zXv"> <field name="OP">GTE</field> <value name="A"> <block type="variables_get" id="rLGQIwoD@(-[)i.@Gek1"> <field name="VAR" id="X-B3:`dA%wy5$?]at5W-">NeededPowerPercent</field> </block> </value> <value name="B"> <block type="math_number" id="i.8)/]r6EY5E@{+61}ch"> <field name="NUM">100</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="M%7gn=%*6!Oo0Iy!N0HE"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="FPBUa4}8MCdw~u2(u=Z4"> <field name="VAR" id=":U;.Z4:pYNy(TwM9X-dL">storedNeededPower</field> </block> </value> <value name="B"> <block type="math_number" id="])#t~DUCT78?qe_~1/X)"> <field name="NUM">100</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="debug" id="_|aD2Z`JU`?BoQCCcfTz"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="wcNA/`cj2DUcJLr26^bd"> <field name="TEXT">keine Änderung, Wert ist gleich gespeichertem Wert</field> </shadow> </value> </block> </statement> <value name="IF1"> <block type="logic_operation" id="4WJuW,40dOlCCnG8!=A("> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="0U*fZT58L0uKFJsD)N{;"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="%=U`G7.6z`w:8|:XtgTI"> <field name="VAR" id="X-B3:`dA%wy5$?]at5W-">NeededPowerPercent</field> </block> </value> <value name="B"> <block type="variables_get" id="IE{(_NPVQP{:.^rxbG?4"> <field name="VAR" id="}s`y%Qd}~t2t(jU$8(ud">upperLimit</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="7GGwP6lHcmy!ILxZJvYk"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="EN^7brshgWEicI7V4)C!"> <field name="VAR" id="X-B3:`dA%wy5$?]at5W-">NeededPowerPercent</field> </block> </value> <value name="B"> <block type="variables_get" id="7B.88d1a^Hr`R-b6!iMZ"> <field name="VAR" id="P^1|W+9iVy?PgNp}9!.S">lowerLimit</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="controls_if" id="P8/_4.KJ/zZ6qh9iBh+o"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="mk*xKT^,LdqKZpmRr}r4"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id=".d_KP;p/?wytr_{S7(db"> <field name="VAR" id="le#}gR{6G.yhW=x|6pS8">neededPower</field> </block> </value> <value name="B"> <block type="variables_get" id="R!EQmKR0*lP1iR`NTG%f"> <field name="VAR" id="BN!a@q$SEAU4^)xo:SRJ">maxSolarPower</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="v_^pc%4YAqueF4@xp/Ph"> <field name="VAR" id=")2]D^Y|D:QS6S[A}9J=/">SolarLimit</field> <value name="VALUE"> <block type="variables_get" id="rba!2I;EQyijkPfjo!Ze"> <field name="VAR" id="X-B3:`dA%wy5$?]at5W-">NeededPowerPercent</field> </block> </value> <next> <block type="update" id="E7HJvqAC,*BNAxN~e8sd"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV-Anlage.storedNeededPowerHM600.storedNeededPower</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="hR1[WimPbd@1ICN+UAdn"> <field name="VAR" id="X-B3:`dA%wy5$?]at5W-">NeededPowerPercent</field> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="iqqD`P-h34,:2q7p$CH|"> <field name="VAR" id=")2]D^Y|D:QS6S[A}9J=/">SolarLimit</field> <value name="VALUE"> <block type="math_number" id="dowAhu.+=iz#Wc-F]p:X"> <field name="NUM">100</field> </block> </value> <next> <block type="update" id="*?5=;cANP)NJ|KuX_[PF"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV-Anlage.storedNeededPowerHM600.storedNeededPower</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="7vXqNl1zb}n*oh6q3:]4"> <field name="NUM">100</field> </block> </value> </block> </next> </block> </statement> <next> <block type="controls_if" id="ngN)`(Ee_|WVjpbeEi,Z"> <value name="IF0"> <block type="logic_compare" id="E;jvy,d?,h~{8J-;$c#Z"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="j.wG0w+y^vE]tm7AZ2SR"> <field name="VAR" id=")2]D^Y|D:QS6S[A}9J=/">SolarLimit</field> </block> </value> <value name="B"> <block type="math_number" id="qmst0kfQa63`(1C?20+t"> <field name="NUM">4</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="eG:yr(gAO*#W@6$4I,9T"> <field name="VAR" id=")2]D^Y|D:QS6S[A}9J=/">SolarLimit</field> <value name="VALUE"> <block type="math_number" id="0qq=Pa2L.`pfN{/fr=|V"> <field name="NUM">5</field> </block> </value> </block> </statement> <next> <block type="control" id="KN@t^0cE0k@-082b*`$}"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">opendtu.0.114182913679.power_control.limit_nonpersistent_relative</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="T,9Ms}!g05fFGlV[=97t"> <field name="VAR" id=")2]D^Y|D:QS6S[A}9J=/">SolarLimit</field> </block> </value> <next> <block type="update" id="K~#2,NL{?T,t?vi8K@_K"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.PV-Anlage.Solarlimit_HM600.Solarlimit_HM600</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="obffp}fvI-w|9kbk(:D7"> <field name="VAR" id=")2]D^Y|D:QS6S[A}9J=/">SolarLimit</field> </block> </value> <next> <block type="debug" id="4(mO4hae0d8|yCEDlMj~"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="GhK9E*i9z*IoFuBKSaq1"> <field name="TEXT">test</field> </shadow> <block type="text_join" id="K$7:Tw;%Pm?f$3/:xV?V"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="tzX795?CuQ=.SGL`i!ns"> <field name="TEXT">gesetztes Limit: </field> </block> </value> <value name="ADD1"> <block type="variables_get" id="`hpd|~6gnaa1#A:#I^ku"> <field name="VAR" id=")2]D^Y|D:QS6S[A}9J=/">SolarLimit</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="debug" id="k-_yI!1YR}Cw@^zA*2By"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="pOzzR,#7b~P,=jhm/QLz"> <field name="TEXT">keine Änderung</field> </shadow> </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> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="debug" id="6hv2w66u%V}c3Ij`Q?pi"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="LmPU])Tk80,#%40`K:m4"> <field name="TEXT">Zeit ist außerhalb der Reglungszeit.</field> </shadow> </value> </block> </statement> </block> </statement> </block> </xml>
Ich lade mein Batterie tagsüber. Der dahinter geschaltete WR ist dann vom Netz getrennt. Wenn ich einspeise, ist das Ladegerät vom Netz getrennt. Ich weiß nicht ob man eine Batterie gleichzeitig laden und entladen kann, was Dir vermutlich vorschwebt?
das Laden und Entladen parallel macht dem Akku nichts aus... Es geht und wird auch woanders genau so geregelt.
-
@knopers1
mal so nebenbei.
Ich frage mich immer wie lange solche Solarakkus halten - angeblich ja: 5.000-10.000 Ladezyklen.
Wenn gerade jetzt in der Übergangszeit mal Sonne, Wolken usw. sich zügig ablösen ist ja der Akku ständig am be/entladen. - Da ist der bald hin.
Oder wenn man mal den Herd anschaltet .... lässt sich sicher nicht einfach händeln. -
Alles angepasst aber irend etwas passt nicht...
bei 250 Watt Netzbezug, setzt das Script mein hm-600WR auf 10%-60 Watt bei 0 Watt Sonnenleistung
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="BN!a@q$SEAU4^)xo:SRJ">max_WR_Leistung</variable> <variable id="AcYpB0Ty+wVObL7=Y.a.">saldierte_Leistung</variable> <variable id="1}Q0686mMw0ZGk)e+r?(">IST-Wert_WR</variable> <variable id="le#}gR{6G.yhW=x|6pS8">SOLL-Wert_WR</variable> <variable id="av^_6@}eU-gIk%dJ,!,}">Stellwert_WR</variable> </variables> <block type="schedule" id="OO@|Rtoh_rlRKcPbfGAo" x="-2262" y="-1412"> <field name="SCHEDULE">0,10,20,30,40,50 * * * * *</field> <statement name="STATEMENT"> <block type="comment" id="!%pL=9LkG.9?H[$qx2YI"> <field name="COMMENT">wenn Nachteinspeisung aktiv</field> <next> <block type="controls_if" id="7T?Z|?Y5.p-:678Tx$Ti"> <value name="IF0"> <block type="get_value" id="E60zTd:yszZT-@pD[YB#"> <field name="ATTR">val</field> <field name="OID">hm-rega.0.10421</field> </block> </value> <statement name="DO0"> <block type="comment" id="un41CmgNYK(Y]/a|36h]"> <field name="COMMENT">Variablen beschreiben</field> <next> <block type="variables_set" id="EqaM{MYS7M6`-h;!zF93"> <field name="VAR" id="BN!a@q$SEAU4^)xo:SRJ">max_WR_Leistung</field> <value name="VALUE"> <block type="math_number" id="^w]xAxYJ7wN]m6;vk(fV"> <field name="NUM">600</field> </block> </value> <next> <block type="variables_set" id="wR,+k_F;sMBf]aAYh+~t"> <field name="VAR" id="AcYpB0Ty+wVObL7=Y.a.">saldierte_Leistung</field> <value name="VALUE"> <block type="get_value" id="RX$n4zq((b9U%h@.fnK,"> <field name="ATTR">val</field> <field name="OID">hm-rega.0.10421</field> </block> </value> <next> <block type="variables_set" id="~RRNE/ol!3MoTz;#)`PK"> <field name="VAR" id="1}Q0686mMw0ZGk)e+r?(">IST-Wert_WR</field> <value name="VALUE"> <block type="get_value" id="5CvJRCtL/p)gjkP2,A%K"> <field name="ATTR">val</field> <field name="OID">opendtu.0.114182913679.ac.phase_1.power</field> </block> </value> <next> <block type="variables_set" id="mZ+[ru,M.bbbDx$!%cbd"> <field name="VAR" id="le#}gR{6G.yhW=x|6pS8">SOLL-Wert_WR</field> <value name="VALUE"> <block type="math_arithmetic" id="rv08p$|]!!eg`$;G4?[t"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="n}1O70OfJnrAub1M8c[r"> <field name="NUM">1</field> </shadow> <block type="math_arithmetic" id="3y=~@f2Qw!_YiJJ7yyxq"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="qLf/8W@9:(9C9tZ0)%zs"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="0N8%)B@Js@QKG(.|9C;/"> <field name="VAR" id="AcYpB0Ty+wVObL7=Y.a.">saldierte_Leistung</field> </block> </value> <value name="B"> <shadow type="math_number" id="N@J09x*NDsor:$]CWIb)"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="k8CjoP?zy$q5sYiz|fp`"> <field name="VAR" id="1}Q0686mMw0ZGk)e+r?(">IST-Wert_WR</field> </block> </value> </block> </value> <value name="B"> <shadow type="math_number" id="RrKwrA08I}5~xOXJTY=l"> <field name="NUM">0</field> </shadow> </value> </block> </value> <next> <block type="comment" id="%`DgcG;amO_v`JekW7X#"> <field name="COMMENT">maximal WR Leistung einstellen</field> <next> <block type="controls_if" id="X.V3jJA5CZkZQUc%Yn{;"> <mutation elseif="3"></mutation> <value name="IF0"> <block type="logic_compare" id="TKLqCZMY~Wns-BS@K,K2"> <field name="OP">GTE</field> <value name="A"> <block type="variables_get" id="?B6HLx3_C%j{i`W3_h~4"> <field name="VAR" id="le#}gR{6G.yhW=x|6pS8">SOLL-Wert_WR</field> </block> </value> <value name="B"> <block type="variables_get" id="=j*pkdNV[O*7=,LmG^hL"> <field name="VAR" id="BN!a@q$SEAU4^)xo:SRJ">max_WR_Leistung</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="T{[2|VMAG8kqI|/hwnX."> <field name="VAR" id="av^_6@}eU-gIk%dJ,!,}">Stellwert_WR</field> <value name="VALUE"> <block type="variables_get" id="YULaab+c`U9LO`fH91iU"> <field name="VAR" id="BN!a@q$SEAU4^)xo:SRJ">max_WR_Leistung</field> </block> </value> <next> <block type="comment" id="EK7aa~/95cKP_*9jtj~u"> <field name="COMMENT">Vermeidung W Änderungen > 10W wegen Schwingen</field> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="gVY;LPML8z$4uv`|Pif0"> <field name="OP">GTE</field> <value name="A"> <block type="variables_get" id="(@i,:QFP%Ui#$Qc#}9zK"> <field name="VAR" id="le#}gR{6G.yhW=x|6pS8">SOLL-Wert_WR</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="qS;D4lv4a]J5@{4bq}}["> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="I_UEM;1#-apn7r1ubP.Q"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="E`wS@czP,1f}|UDsLxWy"> <field name="VAR" id="1}Q0686mMw0ZGk)e+r?(">IST-Wert_WR</field> </block> </value> <value name="B"> <shadow type="math_number" id="vc]UO5xK#u/;a[$nc{7L"> <field name="NUM">1</field> </shadow> <block type="math_number" id="=1.lbX$$-%3|HK%5O1s6"> <field name="NUM">10</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="2hh%7nQbUqWU/c/oD;1]"> <field name="VAR" id="av^_6@}eU-gIk%dJ,!,}">Stellwert_WR</field> <value name="VALUE"> <block type="math_arithmetic" id="B0B7N@oj(qhgq.[CfLrm"> <field name="OP">ADD</field> <value name="A"> <shadow type="math_number" id="I_UEM;1#-apn7r1ubP.Q"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="~U[j;IW!IuC97gq%wTiT"> <field name="VAR" id="1}Q0686mMw0ZGk)e+r?(">IST-Wert_WR</field> </block> </value> <value name="B"> <shadow type="math_number" id="vc]UO5xK#u/;a[$nc{7L"> <field name="NUM">1</field> </shadow> <block type="math_number" id="npdn`ZMsF.UU%sumAg]f"> <field name="NUM">10</field> </block> </value> </block> </value> <next> <block type="comment" id="+52id[cI4NLN3rH@}5+9"> <field name="COMMENT">Vermeidung W Änderungen < 10W wegen Schwingen</field> </block> </next> </block> </statement> <value name="IF2"> <block type="logic_compare" id="cp:Gbx*F@Z)|d?I_*NM["> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="!m{sPTYgujd)08}F(iiw"> <field name="VAR" id="le#}gR{6G.yhW=x|6pS8">SOLL-Wert_WR</field> </block> </value> <value name="B"> <block type="math_arithmetic" id="@tgzHg%Ae%v`SEE4*4Vh"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="I_UEM;1#-apn7r1ubP.Q"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="D:an~$hFrNvX$+lLY*)."> <field name="VAR" id="1}Q0686mMw0ZGk)e+r?(">IST-Wert_WR</field> </block> </value> <value name="B"> <shadow type="math_number" id="vc]UO5xK#u/;a[$nc{7L"> <field name="NUM">1</field> </shadow> <block type="math_number" id="c;wHpOxmnU[,woPIEeV^"> <field name="NUM">10</field> </block> </value> </block> </value> </block> </value> <statement name="DO2"> <block type="variables_set" id="0K$GCJ,wp=x$|NNUk}tJ"> <field name="VAR" id="av^_6@}eU-gIk%dJ,!,}">Stellwert_WR</field> <value name="VALUE"> <block type="math_arithmetic" id="J^O#Rg+68T:Xnfp?_IAb"> <field name="OP">MINUS</field> <value name="A"> <shadow type="math_number" id="I_UEM;1#-apn7r1ubP.Q"> <field name="NUM">1</field> </shadow> <block type="variables_get" id="E@NrHLM:p${9Orq}X6^w"> <field name="VAR" id="1}Q0686mMw0ZGk)e+r?(">IST-Wert_WR</field> </block> </value> <value name="B"> <shadow type="math_number" id="vc]UO5xK#u/;a[$nc{7L"> <field name="NUM">1</field> </shadow> <block type="math_number" id="~LDPUO1B|3*vKw~E+7Ji"> <field name="NUM">10</field> </block> </value> </block> </value> </block> </statement> <value name="IF3"> <block type="logic_operation" id="P_uomd33Pm,$sKLHaK?8"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="%9^pqGFOAdF_Q4+I_kk|"> <field name="OP">GTE</field> <value name="A"> <block type="variables_get" id="3FJ;ccWjMMWY975Kj@5s"> <field name="VAR" id="AcYpB0Ty+wVObL7=Y.a.">saldierte_Leistung</field> </block> </value> <value name="B"> <block type="math_number" id="3[DVAMar{wt_rK:[kRtU"> <field name="NUM">10</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="H(i+-mX%!VeQT-k-dSW~"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="If*V!EDhw)-mx.R1T4n|"> <field name="VAR" id="AcYpB0Ty+wVObL7=Y.a.">saldierte_Leistung</field> </block> </value> <value name="B"> <block type="math_number" id="Ba7:PVdMPz2$p~*KFDnQ"> <field name="NUM">0</field> </block> </value> </block> </value> </block> </value> <statement name="DO3"> <block type="comment" id="f1T,}m=[3vLl{OBvCavV"> <field name="COMMENT">benötigte Leistung einstellen</field> <next> <block type="variables_set" id="N2`__2dpmt+NXIcxENW/"> <field name="VAR" id="av^_6@}eU-gIk%dJ,!,}">Stellwert_WR</field> <value name="VALUE"> <block type="variables_get" id=";3S?@Jd,;,GMMI=X8X,0"> <field name="VAR" id="le#}gR{6G.yhW=x|6pS8">SOLL-Wert_WR</field> </block> </value> </block> </next> </block> </statement> <next> <block type="comment" id="5V:8{H(Wby#lc(I7TXo3"> <field name="COMMENT">Vermeidung das SOLL-Wert < 10W wird</field> <next> <block type="controls_if" id="z~i9;MPg9rNBrD:.ZcHx"> <value name="IF0"> <block type="logic_compare" id="#wA@uq;vFm}184]3,XTf"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="b~F;nG1/8mo.0J8Qo;]3"> <field name="VAR" id="le#}gR{6G.yhW=x|6pS8">SOLL-Wert_WR</field> </block> </value> <value name="B"> <block type="math_number" id="1a.@~,.{Y9?msC|}i!Eh"> <field name="NUM">10</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="y-1KyiEpr+hF9[GjI6yR"> <field name="VAR" id="av^_6@}eU-gIk%dJ,!,}">Stellwert_WR</field> <value name="VALUE"> <block type="math_number" id="ZCQw^kFMn*J`ypL@Xt.A"> <field name="NUM">10</field> </block> </value> </block> </statement> <next> <block type="control" id="%cOvD+Otu7dc3(7+Pt%?"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">opendtu.0.114182913679.power_control.limit_nonpersistent_relative</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_round" id="qp8W?7#X`RyZcY2C7b7k"> <field name="OP">ROUND</field> <value name="NUM"> <shadow type="math_number" id="OJ-sBUj]4[O=:~#bD`+/"> <field name="NUM">3.1</field> </shadow> <block type="variables_get" id="c;t^q^e_m6@Xsn@8(u`r"> <field name="VAR" id="av^_6@}eU-gIk%dJ,!,}">Stellwert_WR</field> </block> </value> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </xml>
-
evtl, habe ich falsch die Werte eingetragen....
Mein Hichi IR Zähler saldiert auch, Ich habe aber drei HM-WR die Leistung abgeben, wovon nur einer geregelt werden soll! Da bei mir parallel drei Hoymiles arbeiten, muss ich bei "saldierte_Leistung" den Wert aller drei Hoymiles auswählen? Oder was genau wird dort eingetragen? -
@friedhofsblond sagte in Test Adapter OpenDTU:
Ich frage mich immer wie lange solche Solarakkus halten - angeblich ja: 5.000-10.000 Ladezyklen.
Wenn gerade jetzt in der Übergangszeit mal Sonne, Wolken usw. sich zügig ablösen ist ja der Akku ständig am be/entladen. - Da ist der bald hin.Damit sind komplette Zyklen gemeint.
-
@codierknecht
Da sind schon Vollzyklen gemeint, wie ich das aus den Akkubeschreibungen rauslese. Aber wenn im Sekundentakt geladen und entladen wird (Herdplatte), dann komme ich sehr schnell auf einen Vollzyklus. Ich möchte das ungern testen. -
@knopers1
Ich habe dein Script angesehen.
Die 10Watt Änderung ist bereits im Script enthalten (Vermeidung großer Sprungantworten bei Sollwertänderungen).
Zur 2. Frage Tei1
Da du saldiert auf 0W kommen willst, brauchst du den 16.7.0 Wert aus dem IR Kopf. Egal was du sonst noch machst, ist das ja der Wert den du erreichen möchtest. Also möglichst genau 0W.
Hier:
muss das Kriterium rein, dass das die Nulleinspeisung einschaltet. Da ich nur nachts Nulleinspeisung betreibe, ist es bei mir die Steckdose, die am Ausgang des WR hängt.
Da du 24h Nulleinspeisung machen willst, wäre diese Abfrage unnötig. Du könntest z.B. einen neuen Datenpunkt erstellen vom Typ Zahl und auf "1" abfragen. Also wenn "1", dann arbeite das Script ab. Bei "0" mache nichts. Dann brauchst du nichts am Script ändern und könntest in der Objektansicht durch setzen auf "0" das Script anhalten. Oder du verwendest eben ein andere Bedingung. Jedenfalls brauchst du eine Bedingung, die immer erfüllt ist.Zur 2. Frage Teil2
Hier:
muss der saldierte Wert abgefragt werden, auf den geregelt werden soll. Das ist der 16.7.0 aus dem ausgelesenen IR Kopf.Ich bekomme den Wert über MQTT in den ioBroker und habe ihn dann gewandelt in eine Variable.
Falls dir das hilft, anbei ein Screen meines Scriptes wie das zumindest bei mir geht:
Da ich selbst noch nicht viel Erfahrung bei der Blockly Projektierung habe, geht das vielleicht auch anders besser/kürzer/schneller?
Weiterhin viel Erfolg.
-
@schoeppi_1 dein setup klingt spannend. Was genau setzt du denn als Hardware ein? (Batterie und Ladegerät, Fotos wären auch toll…)
-
@chris299
Moin,
prinzipiell ist es so:
PV auf Garagendach speist ins Hausnetz. Batterie 24V/100A steht im Keller, damit sie im Warmen steht.
Da der Weg von der Garage in den Keller sehr lang ist, habe ich mich dazu entschlossen, ein Ladegerät 24V/16A und keinen MPPT einzusetzen. Wissentlich, dass die Verluste größer sind aufgrund der DC/AC Wandlung, aber dafür ohne "Erdarbeiten für dicke Gleichspannungskabel und auch ohne großen Aufwand zu verwirklichen.
Aus der Batterie entnehme ich max. 2kW in der Nacht (um die Batterie zu schonen) . Das reicht für den Grundbedarf in den Sommermonaten über Nacht. Da meine PV bei aktuellem Wetter und Sonnenstand die Batterie seit ca. 2 Wochen nicht mehr voll bekommt, macht eine größere Batterie (derzeit) auch keinen Sinn.
Sieht also so aus:
Laden: WLan Steckdose_Laden ->Ladegerät -> 30A Sicherung -> Batterie
Entladen: Batterie -> 30A Sicherung -> Battery Protect (gegen Tiefenentladung) -> HM WR -> WLan Steckdose_Entladengrobe Funktion: (alles im IoBroker verschaltet)
Laden:
Wenn nicht Entladen wird, schaltet das Ladegerät zu, wenn die PV >550W erzeugt. Wenn die Leistung unter 450W sinkt, wieder aus. Bei schöner Sonne, ist die Batterie dann in ca. 4-5 Stunden geladen. (~400Wx5Std = 2kW)
Entladen:
Wenn nicht geladen wird und es ist nach 19Uhr, schaltet die Steckdose_Entladen ein und es wird eingespeist. Wie geschrieben jetzt mit Nulleinspeisung, um möglichst effizient die erzeugte Batterieenergie zu verwenden.Ich habe hier absichtlich keine Fabrikate genannt oder Fotos eingestellt, da ich nicht weiß ob das erlaubt ist.
-
@schoeppi_1 so ein setup hatte ich mir für mein Balkonkraftwerk auch überlegt, aber ich frage mich da folgendes:
Lohnt sich das für 1-2kWh Überschuss im Sommer überhaupt?
Und mit welchen Preisen für Komponenten muss ich da eigentlich rechnen?
Daher auch meine Frage nach den konkreten Geräten. (Warum sollte eine Nennung hier nicht erlaubt sein?)
Und kann man das wirklich mit einem normalen Ladegerät machen? Diese prüfen ja immer erstmal die Batterie und legen dann erst los. Wenn man aber die Ladung ständig wegen Wolken oder so unterbricht, dann kann das kaum gut sein für die Batterie.... -
@chris299 ich habe eine ähnlich große Anlage, 1,5 KWP. Anlage dient ausschließlich der Grundversorgung des Hauses. Einspeisen tue ich derzeit nichts. Das bedeutet unser PV Sturm wird zu 100 % selbst verbraucht. So habe ich die beste Amortisation meiner Investition. Ich werde im nächsten Jahr noch mal das selbe hinzu bauen. ich kann den Grundverbrauch noch nicht messen, der wird aber höher sein. Dann sollte ein wenig Überschuss entstehen. Aber für eine Batterienutzung reicht das meines Erachtens nicht. Dafür sind Batterien viel zu teuer und die Wirtschaftlichkeit ist nicht gegeben. Zu den Produkten: meines Erachtens kannst du nehmen, was du willst. Die Qualität ist meist sehr gleichbleibend. Die Dinger kommen eh oft aus der gleichen Fabrikationslinie und haben nur andere Labels. Das gilt auch für die Micro-Inverter.
-
@chris299
Ich denke diese Frage muss jeder für sich beantworten, da der Anreiz unterschiedlich ist.
3 Beispiele...
Gewinnrechnung:
Invest ca. 1100€ (Batt. WR, Sicherung, Leitungen, Steckdose, Ladegerät,..) -> 180Tage x 30Cent x 2kW = 108€ im Jahr -> Amortisationszeit 10 Jahre wenn die Glaskugel stimmt und nichts kaputt geht. -> unter dem Gesichtspunkt wird es vermutlich nichts bringen
Spaß an der Sache:
Das gilt primär für mich. Ich wollte einfach wissen, ob ich es hinbekomme und kann. Man fängt klein an (PV) und dann kommen die Ideen. So bin ich zum IoBroker gekommen und verstehe es als Hobby, bei gleichzeitigem sinnvollen Effekt.
Einspeisung vermeiden:
Es kann Sinn machen, die Einspeisung nicht zu groß werden zulassen.Was ich geschrieben habe, war nur das prinzipielle Konzept. Wenn das Ladegerät aus ist, schalte ich es erst 2-3 Minuten verzögert ein wenn die Leistung über die PV vorhanden ist, um zu vermeiden, dass die Wolke am Himmel größer ist und es keinen Sinn macht einzuschalten.
Wenn das Ladegerät ein ist, schaltete es auch nicht gleich wieder ab wenn die Wolke am Himmel erscheint. Ich meine aktuell eine Ausschaltverzögerung von 7 Minuten drin zu haben wenn die untere Schwelle unterschritten wurde. Geht die Leistung zwischenzeitlich wieder hoch, bleibt das Ladegerät natürlich an. An die Werte und Bedingungen habe ich mich empirisch herangetastet.Es ist nichts anderes, wie wenn du an deinem Auto ein Ladegerät anschließt und lädst, nur eben in Abhängigkeit der erzeugten Energie.
-
@schoeppi_1 sagte in Test Adapter OpenDTU:
bei gleichzeitigem sinnvollen Effekt.
Einspeisung vermeiden:
Es kann Sinn machen, die Einspeisung nicht zu groß werden zulassen.Ansichtssache.
Aktuell geht man von etwa 1 Mio. BKW in DE aus, auch wenn die Zahl der offiziell angemeldeten deutlich geringer ist.
Lass es in den kommenden Monaten/Jahren mal 10 Mio. werden.
Wenn jedes davon nur 200 W Überschuss einspeist, sind das 2 Gigawatt. Also 2 kleine AKW. Da braucht man dann als Oppositionspolitiker nicht mehr über die Abschaltung der letzten 3 AKW Anfang des Jahres zu jammern.Klar kriegt man dafür in der Regel (wegen unterlassenem Antrag beim Energieversorger) keine Vergütung.
Aber besser als z.B. komplette Landschaften für Braunkohle umzupflügen oder AKW ohne Endlager zu betreiben ist es allemal. -
@codierknecht
Ich habe nicht damit gemeint, dass man nicht vergütete Energie nicht einspeisen sollte, sondern die Energie aus der Batterie nicht unnötig ins Netz zu speisen, die man zuvor aus der PV mühsam geerntet hat. Daher ist die Regelung von Vorteil gegenüber der Konstanteinspeisung.Wenn es die 600(800)W Grenze nicht gäbe, oder man zumindest einen Elektriker finden würde, der auch kleine Anlagen abnimmt....
Wenn es keinen Huddel mit dem Netzbetreiber geben würde, der sich wundert, dass bei einem BKW die Einspeisung am Jahresende so groß ist, das es mit 600W nicht stimmen kann ....
ja wenn das nicht wäre... stimme ich Dir zu 100% zu -
Bitte macht einen eigenen Thread für die Sachen auf die nicht den Adapter betreffen.
-
@idlebit sorry, dass ich den Thread "missbraucht" habe. evtl. kann ein Moderator wie @Homoran die Beiträge in einen eigenen Thread verfrachten....
Aber nun habe ich tatsächlich ein Thema zum Adapter:
Wie ich in den letzten Tagen feststellen musste, ist der "Tagesertrag" meines HMS nicht wirklich der Tagesertrag sondern der Ertrag seit letztem Reset. Leider kommen bei dunklerem Herbstwetter wie jetzt solche Resets mehrmals am Tag vor...
Dazu gibt es auch ein Issue hier: https://github.com/tbnobody/OpenDTU/issues/1397Evtl würde es sinn machen den DP umzubenennen und/oder eine Logik für die wirkliche Tagessumme zu implementieren.
Nun wollte ich das mittels Blockly "umrunden" aber mir fehlt da etwas die Tiefe, wie man das angehen könnte.
Das Problem ist dabei ja, das man die verschiedenen Reset-summen pro Tag summieren muss, man aber nicht weiss, ob an dem betreffenden Tag noch ein Reset kommt oder erst am nächsten Morgen.
Ich schreibe mir die Tagessumme dann auch in einen eigenen DP einmal am Tag weg, damit ich jeweils nur ein einen Wert pro Tag in der History für mein echart Balken-diagramm bekomme.
Kann man so eine temporäre Tagessumme im Script selbst halten oder braucht man dafür noch einen DP? -
@chris299
also ich kann Dir nur sagen, was ich gemacht habe. Ich verwende die OpenDTU Energiewerte gar nicht aus der genannten Problematik heraus.
Ich habe ja WLAN Steckdosen (z.B. Shelly, Sonoff,... ) zur Schaltung der Nachteinspeisung und fürs Laden verwendet. Das ist ein sicherer Weg die Energie zu messen.
Kurz vor Start der Nachteinspeisung schreibe ich mittels Blockly Trigger "Zeitplan" den Energiewert der Steckdose in einen DP "Zählerstand_Nacht_Entladen". Dann subtrahiere ich den Energiewert der Steckdose vom DP "Zählerstand_Nacht_Entladen" und erhalte die Differenz. Also dass, was ich aus der Batterie wirklich bekomme.
Genau so mache ich es auch umgekehrt, wenn ich die Batterie über den Tag lade.