Jak nepostavit FVE (Zlaté Hory)

Popis a ukázky samostatných ostrovních elektráren nepřipojených do rozvodné sítě s akumulací energie.
Soban
Příspěvky: 3447
Registrován: pon úno 07, 2022 10:11 pm
Lokalita: Zlaté Hory / Olomouc
Systémové napětí: 24V
Výkon panelů [Wp]: 3600
Kapacita baterie [kWh]: 16
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Zlaté Hory

Re: Jak nepostavit FVE (Zlaté Hory)

Příspěvek od Soban »

Tak další upgrade elektrárny......

Byl zprovozněn ten starý měnič REVO který bude používán jak svítí tak bude napájet bojler a zásuvky v koupelně a ven na zahradu.

V zimě bude vypnut a okruhy přepnuty na DS.

Tak vše je zapojeno, dnes kompletní provoz z DS elektrárna vyrobila pouze 1kWh a ta šla do prázdné baterky.

Tak jsem si s tím taky hrál, a zjišťoval kolik proudu berou ty vypnuté měniče.

Takže když je vše vypnuté a odpojené AC IN tak spotřeba je obou 130mA. (Měřeno BMV712 zkontrolováno i normálním měřákem.)

Jinak:

Zapnuté AC IN + zapnutý měnič a vypnutý jistič AC OUT čili nulová spotřeba:

MUST s vypnutým šetřením proudu - 1.35A
MUST s zapnutým šetřením proudu - 0.80A až 0.89A prostě to skáče ta poslední číslice a šipka na LCD do zátěže bliká prostě jednou je a jednou je jenom čára.

REVO nemá žádný šetřící režim, takže při vypnutém jističi AC OUT spotřeba 1.03A .
3,6kWp ::pv:: 600Wp (4x 150Wp 4S) + 1kWp (2x 500Wp 2S) + 2kWp (4x 500Wp 2S2P) | 2x MUST PV18-3024 VHM, 3kW/24V | 16kWh *batt* (2x 12V/200Ah AGM) + 25.6V/120Ah + 25.6V/125Ah + 25.6V/230Ah LiFePO4 | Jak nepostavit FVE Zlaté Hory :home:
bokser01
Příspěvky: 1315
Registrován: pon úno 07, 2022 2:43 pm
Lokalita: Okolí Pardubic
Systémové napětí: 24V
Výkon panelů [Wp]: 7770
Kapacita baterie [kWh]: 14,4

Re: Jak nepostavit FVE (Zlaté Hory)

Příspěvek od bokser01 »

Dobrá volba teď budeš zase o něco svobodnější :D Pojede bojler a k němu třeba pračka. :) Mám taky doma v podstatě 2f rozvod z měničů. Jak jsi řešil AC IN? To musím ještě dořešit... vede mi tam 2,5mm2 pro oba měniče zatím jistěných 16A jističem. Plánuju tam asi dotáhnout další fázi z DS a každý měnič mít na svojí fázi přívodu.
MUST 3KW 80A MPPT 24V/ 3,75kWp stringy 5s3P 200wp + 5s1P 150wp. 2 měnič MUST 3KW 80A MPPT 24V 4kWp stringy 2S4P 400wp bifacial + 2S1P 410wp Baterie 14,4KWh olovouhlik (6x JPC12-200), Celek tedy 7770Wp :yes:
Soban
Příspěvky: 3447
Registrován: pon úno 07, 2022 10:11 pm
Lokalita: Zlaté Hory / Olomouc
Systémové napětí: 24V
Výkon panelů [Wp]: 3600
Kapacita baterie [kWh]: 16
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Zlaté Hory

Re: Jak nepostavit FVE (Zlaté Hory)

Příspěvek od Soban »

Tak já AC IN mám na jedné fázi s 25A jističem, elektroměr a do obou měničů 4mm2 drátem.

Což je 25*230=5750W což by mě mělo bez problémů v bypassu stačit.

Z toho mustu mám elektroměr a taky 25A jistič aby to přetížení zvládl a za tím přepínač FVE - DS a už další rozvody taky 4mm2 drátem.

Z toho REVA mám zase elektroměr a jistič 13A drát 2.5mm2 a jenom na ruční přepínač FVE - DS a chráničojistič a šup s tím do koupelny, tam je podružný rozvaděč, s proudovým relé co odpíná bojler při zátěži ze zásuvek a soumrakový spínač který odpíná bojler navečer aby nežral baterku. Zde se nepočítá s přetížením proto tenčí drát a jenom 13A jistič.
Je to tak proto že do koupelny vede pouze jeden kabel 2.5mm2 - prostě se s bojlerem nepočítalo, byl tam plynový ohřívač.
3,6kWp ::pv:: 600Wp (4x 150Wp 4S) + 1kWp (2x 500Wp 2S) + 2kWp (4x 500Wp 2S2P) | 2x MUST PV18-3024 VHM, 3kW/24V | 16kWh *batt* (2x 12V/200Ah AGM) + 25.6V/120Ah + 25.6V/125Ah + 25.6V/230Ah LiFePO4 | Jak nepostavit FVE Zlaté Hory :home:
Soban
Příspěvky: 3447
Registrován: pon úno 07, 2022 10:11 pm
Lokalita: Zlaté Hory / Olomouc
Systémové napětí: 24V
Výkon panelů [Wp]: 3600
Kapacita baterie [kWh]: 16
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Zlaté Hory

Re: Jak nepostavit FVE (Zlaté Hory)

Příspěvek od Soban »

Další kabely byly dány do lišt ať to trochu lépe vypadá.....
must
must
A druhý měnič - REVO
REVO
REVO
3,6kWp ::pv:: 600Wp (4x 150Wp 4S) + 1kWp (2x 500Wp 2S) + 2kWp (4x 500Wp 2S2P) | 2x MUST PV18-3024 VHM, 3kW/24V | 16kWh *batt* (2x 12V/200Ah AGM) + 25.6V/120Ah + 25.6V/125Ah + 25.6V/230Ah LiFePO4 | Jak nepostavit FVE Zlaté Hory :home:
cipis
Příspěvky: 4324
Registrován: pon srp 16, 2021 9:31 pm
Lokalita: blízko Brna
Bydliště: blízko Brna

Re: Jak nepostavit FVE (Zlaté Hory)

Příspěvek od cipis »

Kdy zrenovuješ dveře a obložky? :D
9,77 kWp: 6240 Wp Jih, 2040 Wp Východ, 1490 Wp Západ
Regulátory Epever a Victron
Phoenix 2 kVA + MP 24/5000 (můj byt + wifi/kamery/atd. + máti byt)
Epever 3kW vytěžování do bojlerů + žebříky
CARSPA aktuálně odpojené
1 kW "nabíječka" 24 V
31 080 Wh staré olovo 7 488 Wh Li-Ion
Modře píši jako moderátor, černě jako člen.
Soban
Příspěvky: 3447
Registrován: pon úno 07, 2022 10:11 pm
Lokalita: Zlaté Hory / Olomouc
Systémové napětí: 24V
Výkon panelů [Wp]: 3600
Kapacita baterie [kWh]: 16
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Zlaté Hory

Re: Jak nepostavit FVE (Zlaté Hory)

Příspěvek od Soban »

Až naprší a uschne :mrgreen:

Vchodové dveře a střecha je spravená okna taky, elektrika částečně (ve dvou pokojích a komoře zůstal ještě hliník) vědět že budu dělat FVE tak bych dal největší rozvaděč a natáhl další kabely do koupelny pro bojlery...

Teď to chce zateplit, vykopat plynové topení a udělat nové, ale na co? Peletky a zdraží peletky a zlevní plyn jak to udělám, elektriku - to zase FVE nedá v zimě kdy to je třeba........
3,6kWp ::pv:: 600Wp (4x 150Wp 4S) + 1kWp (2x 500Wp 2S) + 2kWp (4x 500Wp 2S2P) | 2x MUST PV18-3024 VHM, 3kW/24V | 16kWh *batt* (2x 12V/200Ah AGM) + 25.6V/120Ah + 25.6V/125Ah + 25.6V/230Ah LiFePO4 | Jak nepostavit FVE Zlaté Hory :home:
Uživatelský avatar
TomHC
Příspěvky: 1259
Registrován: pát lis 11, 2022 8:14 am
Lokalita: Hlohovec, SR
Systémové napětí: 48V
Výkon panelů [Wp]: 5520
Kapacita baterie [kWh]: 14
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Hlohovec, SR

Re: Jak nepostavit FVE (Zlaté Hory)

Příspěvek od TomHC »

cipis píše:Kdy zrenovuješ dveře a obložky? :D
Načo, to je teraz moderné :P
MUST PV1800 VHM 48V 5.5kW, 5.52kWp (12x TPL mono 460W, 2S2P východ, 2S4P juh), 16x 280 Ah LiFePO4 (14.3 kWh) BMS JBD-AP21S001-L21S-200A-B, SW: Home Assistant na Synology DS923+ ku tomu ESPHome, Tasmota, MariaDB, InfluxDB, Telegraf, Grafana, Zigbee2MQTT..., HW: ESPlan (ESP32 + LAN 8720 + RS485 + UART). Nejaké moje projekty: MUST-ESPhome, ELTEK Flatpack2 ESPhome, ESP32-EMON, PZEM-017@WiFi, diyBMS-CurrentShunt-ESPhome
glottis
Příspěvky: 2032
Registrován: stř úno 02, 2022 10:30 am
Lokalita: okolí Mělníka
Systémové napětí: 48V
Výkon panelů [Wp]: 13000
Kapacita baterie [kWh]: 15

Re: Jak nepostavit FVE (Zlaté Hory)

Příspěvek od glottis »

Dobrý termín je taky "až bude fve hotová" :D
bokser01
Příspěvky: 1315
Registrován: pon úno 07, 2022 2:43 pm
Lokalita: Okolí Pardubic
Systémové napětí: 24V
Výkon panelů [Wp]: 7770
Kapacita baterie [kWh]: 14,4

Re: Jak nepostavit FVE (Zlaté Hory)

Příspěvek od bokser01 »

Docela mazec jak to Revo i Green cell jsou o dost menší než MUST. Asi tím vzniká odpověď která je v rozdílu kvality kde MUST je jednička oproti těm 2 jmenovaným.

Tady ještě když jsem měl Green cell a je pěkně vidět velikostní porovnání s MUST.
Přílohy
324393980_897524715005883_7002260240901522182_n.jpg
MUST 3KW 80A MPPT 24V/ 3,75kWp stringy 5s3P 200wp + 5s1P 150wp. 2 měnič MUST 3KW 80A MPPT 24V 4kWp stringy 2S4P 400wp bifacial + 2S1P 410wp Baterie 14,4KWh olovouhlik (6x JPC12-200), Celek tedy 7770Wp :yes:
Soban
Příspěvky: 3447
Registrován: pon úno 07, 2022 10:11 pm
Lokalita: Zlaté Hory / Olomouc
Systémové napětí: 24V
Výkon panelů [Wp]: 3600
Kapacita baterie [kWh]: 16
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Zlaté Hory

Re: Jak nepostavit FVE (Zlaté Hory)

Příspěvek od Soban »

Tak MUST: Nová verze.....
(W*H*D)
272x355x100 mm

REVO: Je větší........
(W*H*D)
285x360x118 mm

Tak nevím podle mě v té velikosti není moc rozdíl......
3,6kWp ::pv:: 600Wp (4x 150Wp 4S) + 1kWp (2x 500Wp 2S) + 2kWp (4x 500Wp 2S2P) | 2x MUST PV18-3024 VHM, 3kW/24V | 16kWh *batt* (2x 12V/200Ah AGM) + 25.6V/120Ah + 25.6V/125Ah + 25.6V/230Ah LiFePO4 | Jak nepostavit FVE Zlaté Hory :home:
bokser01
Příspěvky: 1315
Registrován: pon úno 07, 2022 2:43 pm
Lokalita: Okolí Pardubic
Systémové napětí: 24V
Výkon panelů [Wp]: 7770
Kapacita baterie [kWh]: 14,4

Re: Jak nepostavit FVE (Zlaté Hory)

Příspěvek od bokser01 »

Aha, tak z toho co jsi postnul je revo opticky rozhodně menší :D

Green cell:

rozměry:
320.5x224x95.1mm

MUST:
272 × 355 × 100 mm
MUST 3KW 80A MPPT 24V/ 3,75kWp stringy 5s3P 200wp + 5s1P 150wp. 2 měnič MUST 3KW 80A MPPT 24V 4kWp stringy 2S4P 400wp bifacial + 2S1P 410wp Baterie 14,4KWh olovouhlik (6x JPC12-200), Celek tedy 7770Wp :yes:
Soban
Příspěvky: 3447
Registrován: pon úno 07, 2022 10:11 pm
Lokalita: Zlaté Hory / Olomouc
Systémové napětí: 24V
Výkon panelů [Wp]: 3600
Kapacita baterie [kWh]: 16
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Zlaté Hory

Re: Jak nepostavit FVE (Zlaté Hory)

Příspěvek od Soban »

Tak jsem zprovoznil ovládání toho 24V mustu z Raspberry Pi 400 pomocí Node-RED.
must - ovládáí
must - ovládáí
Připojeno je to přes USB káblík, uvažuji k tomu připojit ještě revo a mppt od victronu.


Kdo má zájem kod zde:

Kód: Vybrat vše

[
    {
        "id": "f68b8258b4fd501c",
        "type": "tab",
        "label": "Flow 1",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "95317754fdfaa7df",
        "type": "ui_base",
        "theme": {
            "name": "theme-light",
            "lightTheme": {
                "default": "#0094CE",
                "baseColor": "#0094CE",
                "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif",
                "edited": true,
                "reset": false
            },
            "darkTheme": {
                "default": "#097479",
                "baseColor": "#097479",
                "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif",
                "edited": true,
                "reset": false
            },
            "customTheme": {
                "name": "Untitled Theme 1",
                "default": "#4B7930",
                "baseColor": "#4B7930",
                "baseFont": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif",
                "reset": false
            },
            "themeState": {
                "base-color": {
                    "default": "#0094CE",
                    "value": "#0094CE",
                    "edited": false
                },
                "page-titlebar-backgroundColor": {
                    "value": "#0094CE",
                    "edited": false
                },
                "page-backgroundColor": {
                    "value": "#fafafa",
                    "edited": false
                },
                "page-sidebar-backgroundColor": {
                    "value": "#ffffff",
                    "edited": false
                },
                "group-textColor": {
                    "value": "#1bbfff",
                    "edited": false
                },
                "group-borderColor": {
                    "value": "#ffffff",
                    "edited": false
                },
                "group-backgroundColor": {
                    "value": "#ffffff",
                    "edited": false
                },
                "widget-textColor": {
                    "value": "#111111",
                    "edited": false
                },
                "widget-backgroundColor": {
                    "value": "#0094ce",
                    "edited": false
                },
                "widget-borderColor": {
                    "value": "#ffffff",
                    "edited": false
                },
                "base-font": {
                    "value": "-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif"
                }
            },
            "angularTheme": {
                "primary": "indigo",
                "accents": "blue",
                "warn": "red",
                "background": "grey",
                "palette": "light"
            }
        },
        "site": {
            "name": "FVE Bezručova",
            "hideToolbar": "false",
            "allowSwipe": "false",
            "lockMenu": "false",
            "allowTempTheme": "true",
            "dateFormat": "DD MM YYYY",
            "sizes": {
                "sx": 48,
                "sy": 48,
                "gx": 6,
                "gy": 6,
                "cx": 6,
                "cy": 6,
                "px": 0,
                "py": 0
            }
        }
    },
    {
        "id": "01f0a60623d9c6c4",
        "type": "ui_group",
        "name": "MUST",
        "tab": "1f51881fac00ed63",
        "order": 1,
        "disp": true,
        "width": "24",
        "collapse": false,
        "className": ""
    },
    {
        "id": "1f51881fac00ed63",
        "type": "ui_tab",
        "z": "f68b8258b4fd501c",
        "name": "FVE Bezručova",
        "icon": "dashboard",
        "order": 1,
        "disabled": false,
        "hidden": false
    },
    {
        "id": "0904de601b9ee0e6",
        "type": "modbus-client",
        "name": "",
        "clienttype": "serial",
        "bufferCommands": true,
        "stateLogEnabled": false,
        "queueLogEnabled": false,
        "failureLogEnabled": true,
        "tcpHost": "127.0.0.1",
        "tcpPort": "502",
        "tcpType": "DEFAULT",
        "serialPort": "/dev/ttyUSB0",
        "serialType": "RTU-BUFFERD",
        "serialBaudrate": "19200",
        "serialDatabits": "8",
        "serialStopbits": "1",
        "serialParity": "none",
        "serialConnectionDelay": "1000",
        "serialAsciiResponseStartDelimiter": "0x3A",
        "unit_id": "1",
        "commandDelay": "1",
        "clientTimeout": "2000",
        "reconnectOnTimeout": true,
        "reconnectTimeout": "10000",
        "parallelUnitIdsAllowed": true,
        "showWarnings": true,
        "showLogs": true
    },
    {
        "id": "a56cc8d7cea6218d",
        "type": "ui_group",
        "name": "MUST MPPT",
        "tab": "1f51881fac00ed63",
        "order": 2,
        "disp": true,
        "width": "24",
        "collapse": false,
        "className": ""
    },
    {
        "id": "5a73e1541b238292",
        "type": "ui_tab",
        "z": "f68b8258b4fd501c",
        "name": "FVE Bezručova Grafy",
        "icon": "dashboard",
        "order": 2,
        "disabled": false,
        "hidden": false
    },
    {
        "id": "c6ef0b286d09dd7b",
        "type": "ui_group",
        "name": "Grafy",
        "tab": "5a73e1541b238292",
        "order": 1,
        "disp": true,
        "width": "16",
        "collapse": false,
        "className": ""
    },
    {
        "id": "f0ba07d96b2bf713",
        "type": "ui_spacer",
        "z": "f68b8258b4fd501c",
        "name": "spacer",
        "group": "01f0a60623d9c6c4",
        "order": 3,
        "width": 7,
        "height": 1
    },
    {
        "id": "b0c5a1247728e5a7",
        "type": "ui_spacer",
        "z": "f68b8258b4fd501c",
        "name": "spacer",
        "group": "01f0a60623d9c6c4",
        "order": 5,
        "width": 1,
        "height": 1
    },
    {
        "id": "49bdd56629e91a7d",
        "type": "ui_spacer",
        "z": "f68b8258b4fd501c",
        "name": "spacer",
        "group": "01f0a60623d9c6c4",
        "order": 7,
        "width": 7,
        "height": 1
    },
    {
        "id": "d8b46347741e2506",
        "type": "ui_spacer",
        "z": "f68b8258b4fd501c",
        "name": "spacer",
        "group": "01f0a60623d9c6c4",
        "order": 8,
        "width": 1,
        "height": 1
    },
    {
        "id": "d30984f894973488",
        "type": "ui_spacer",
        "z": "f68b8258b4fd501c",
        "name": "spacer",
        "group": "01f0a60623d9c6c4",
        "order": 9,
        "width": 7,
        "height": 1
    },
    {
        "id": "859e8e1696ae9d55",
        "type": "ui_spacer",
        "z": "f68b8258b4fd501c",
        "name": "spacer",
        "group": "01f0a60623d9c6c4",
        "order": 10,
        "width": 1,
        "height": 1
    },
    {
        "id": "14b978db0a738e3a",
        "type": "ui_spacer",
        "z": "f68b8258b4fd501c",
        "name": "spacer",
        "group": "01f0a60623d9c6c4",
        "order": 11,
        "width": 7,
        "height": 1
    },
    {
        "id": "73b7110985356980",
        "type": "ui_spacer",
        "z": "f68b8258b4fd501c",
        "name": "spacer",
        "group": "01f0a60623d9c6c4",
        "order": 12,
        "width": 1,
        "height": 1
    },
    {
        "id": "445dfbbbaba519ba",
        "type": "ui_spacer",
        "z": "f68b8258b4fd501c",
        "name": "spacer",
        "group": "a56cc8d7cea6218d",
        "order": 3,
        "width": 7,
        "height": 1
    },
    {
        "id": "dd73725d6abad1fc",
        "type": "ui_spacer",
        "z": "f68b8258b4fd501c",
        "name": "spacer",
        "group": "a56cc8d7cea6218d",
        "order": 5,
        "width": 1,
        "height": 1
    },
    {
        "id": "692ceedab8473adf",
        "type": "ui_spacer",
        "z": "f68b8258b4fd501c",
        "name": "spacer",
        "group": "a56cc8d7cea6218d",
        "order": 7,
        "width": 7,
        "height": 1
    },
    {
        "id": "06415ca155f42d8b",
        "type": "ui_spacer",
        "z": "f68b8258b4fd501c",
        "name": "spacer",
        "group": "a56cc8d7cea6218d",
        "order": 8,
        "width": 1,
        "height": 1
    },
    {
        "id": "f3bf124f157428ed",
        "type": "ui_spacer",
        "z": "f68b8258b4fd501c",
        "name": "spacer",
        "group": "a56cc8d7cea6218d",
        "order": 9,
        "width": 7,
        "height": 1
    },
    {
        "id": "f5e6bcaef6efc52e",
        "type": "ui_spacer",
        "z": "f68b8258b4fd501c",
        "name": "spacer",
        "group": "a56cc8d7cea6218d",
        "order": 10,
        "width": 1,
        "height": 1
    },
    {
        "id": "7a307d3b0529de1d",
        "type": "ui_spacer",
        "z": "f68b8258b4fd501c",
        "name": "spacer",
        "group": "a56cc8d7cea6218d",
        "order": 11,
        "width": 7,
        "height": 1
    },
    {
        "id": "42612a633686aa8e",
        "type": "ui_spacer",
        "z": "f68b8258b4fd501c",
        "name": "spacer",
        "group": "a56cc8d7cea6218d",
        "order": 12,
        "width": 1,
        "height": 1
    },
    {
        "id": "6df39421b13ce942",
        "type": "ui_spacer",
        "z": "f68b8258b4fd501c",
        "name": "spacer",
        "group": "a56cc8d7cea6218d",
        "order": 18,
        "width": 4,
        "height": 1
    },
    {
        "id": "6b1f568f1766602a",
        "type": "inject",
        "z": "f68b8258b4fd501c",
        "name": "update",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "2",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "update",
        "payload": "",
        "payloadType": "date",
        "x": 100,
        "y": 40,
        "wires": [
            [
                "b957a22b0dcbc678"
            ]
        ]
    },
    {
        "id": "6214c73917658231",
        "type": "inject",
        "z": "f68b8258b4fd501c",
        "name": "reset",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "reset",
        "payload": "",
        "payloadType": "date",
        "x": 90,
        "y": 80,
        "wires": [
            [
                "b957a22b0dcbc678"
            ]
        ]
    },
    {
        "id": "f4b5d2b44f1df01d",
        "type": "inject",
        "z": "f68b8258b4fd501c",
        "name": "next",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "next",
        "payload": "",
        "payloadType": "date",
        "x": 90,
        "y": 120,
        "wires": [
            [
                "b957a22b0dcbc678"
            ]
        ]
    },
    {
        "id": "1f1eab9ddd5a415a",
        "type": "switch",
        "z": "f68b8258b4fd501c",
        "name": "",
        "property": "topic",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "Inverter Display Message",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "PV Charger Display Message",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "Inverter Control Message",
                "vt": "str"
            },
            {
                "t": "eq",
                "v": "PV Charger Control Message",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 4,
        "x": 1150,
        "y": 340,
        "wires": [
            [
                "6487c845f4618749",
                "07c477d09d73a71f",
                "4b4d3c67967a49b4",
                "5c1041bec917129e",
                "f2eb10293f4554a1",
                "fd512253dea5a547"
            ],
            [
                "57f172150e9c5fed",
                "d0b3044cc148e446",
                "f7012130d32eb648",
                "7387974de105a58a",
                "8fb84e4df2896ee6",
                "bfc84c6e4c69d370",
                "2f1a1677b0ef2f72",
                "f912edbaf74ee62b",
                "761d1fc1cccc5dfd"
            ],
            [
                "130004c4b02fc95f",
                "a2fac952882896c2"
            ],
            []
        ]
    },
    {
        "id": "07c477d09d73a71f",
        "type": "function",
        "z": "f68b8258b4fd501c",
        "name": "hodnota / 10 fix 2",
        "func": "var num = msg.payload[4];\nnum = num / 10;\nnum = (parseFloat(num)).toFixed(2);\nmsg.payload = num; \nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1490,
        "y": 180,
        "wires": [
            [
                "f3fd1b384b5fa198",
                "c0d93f6c09e1a646"
            ]
        ]
    },
    {
        "id": "f3fd1b384b5fa198",
        "type": "ui_gauge",
        "z": "f68b8258b4fd501c",
        "name": "",
        "group": "01f0a60623d9c6c4",
        "order": 1,
        "width": 4,
        "height": 4,
        "gtype": "gage",
        "title": "Napětí baterie.",
        "label": "V",
        "format": "{{value}}",
        "min": "24",
        "max": "28",
        "colors": [
            "#e6e600",
            "#00b500",
            "#ca3838"
        ],
        "seg1": "25",
        "seg2": "27.6",
        "diff": false,
        "className": "",
        "x": 1760,
        "y": 180,
        "wires": []
    },
    {
        "id": "f2eb10293f4554a1",
        "type": "function",
        "z": "f68b8258b4fd501c",
        "name": "Convert INT na  signed INT",
        "func": "let hodnota = msg.payload[73];\nmsg.payload = Int2Float(hodnota);\n\nreturn msg;\n\n\n// Převede číslo z formátu signed integer na desetinné číslo\nfunction Int2Float(v) {\n    \n    let t;\n    \n    if (v > 32767) t = v - 65536;\n\telse t = v;\n\t\n\treturn t;\n\t\n}",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1520,
        "y": 240,
        "wires": [
            [
                "015ac76af1050f56"
            ]
        ]
    },
    {
        "id": "015ac76af1050f56",
        "type": "ui_gauge",
        "z": "f68b8258b4fd501c",
        "name": "",
        "group": "01f0a60623d9c6c4",
        "order": 4,
        "width": 4,
        "height": 4,
        "gtype": "gage",
        "title": "Proud baterie.",
        "label": "A",
        "format": "{{value}}",
        "min": "-125",
        "max": "125",
        "colors": [
            "#ca3838",
            "#00b500",
            "#ca3838"
        ],
        "seg1": "-50",
        "seg2": "50",
        "diff": true,
        "className": "",
        "x": 1760,
        "y": 240,
        "wires": []
    },
    {
        "id": "c8224570e5420292",
        "type": "inject",
        "z": "f68b8258b4fd501c",
        "name": "SBU",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "Energy use mode",
        "payload": "{\"value\":1,\"fc\":6,\"unitid\":4,\"address\":20109,\"quantity\":1}",
        "payloadType": "json",
        "x": 90,
        "y": 220,
        "wires": [
            [
                "b957a22b0dcbc678"
            ]
        ]
    },
    {
        "id": "98ee0c969234c163",
        "type": "inject",
        "z": "f68b8258b4fd501c",
        "name": "UTI",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "Energy use mode",
        "payload": "{\"value\":3,\"fc\":6,\"unitid\":4,\"address\":20109,\"quantity\":1}",
        "payloadType": "json",
        "x": 90,
        "y": 260,
        "wires": [
            [
                "b957a22b0dcbc678"
            ]
        ]
    },
    {
        "id": "22d98304e381445b",
        "type": "inject",
        "z": "f68b8258b4fd501c",
        "name": "SOL",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "Energy use mode",
        "payload": "{\"value\":4,\"fc\":6,\"unitid\":4,\"address\":20109,\"quantity\":1}",
        "payloadType": "json",
        "x": 90,
        "y": 300,
        "wires": [
            [
                "b957a22b0dcbc678"
            ]
        ]
    },
    {
        "id": "1022cfaf3d8f47fa",
        "type": "ui_text",
        "z": "f68b8258b4fd501c",
        "group": "01f0a60623d9c6c4",
        "order": 13,
        "width": 4,
        "height": 1,
        "name": "",
        "label": "Režim:",
        "format": "{{msg.payload}}",
        "layout": "row-center",
        "className": "",
        "x": 1780,
        "y": 320,
        "wires": []
    },
    {
        "id": "fd512253dea5a547",
        "type": "ui_text",
        "z": "f68b8258b4fd501c",
        "group": "01f0a60623d9c6c4",
        "order": 16,
        "width": 4,
        "height": 1,
        "name": "",
        "label": "Teplota:",
        "format": "{{msg.payload[32]}}°C",
        "layout": "row-center",
        "className": "",
        "x": 1700,
        "y": 420,
        "wires": []
    },
    {
        "id": "a26f40a4089b5e02",
        "type": "ui_text",
        "z": "f68b8258b4fd501c",
        "group": "01f0a60623d9c6c4",
        "order": 15,
        "width": 4,
        "height": 1,
        "name": "",
        "label": "Status:",
        "format": "{{msg.payload}}",
        "layout": "row-center",
        "className": "",
        "x": 1700,
        "y": 360,
        "wires": []
    },
    {
        "id": "6487c845f4618749",
        "type": "function",
        "z": "f68b8258b4fd501c",
        "name": "Režim work state",
        "func": "if (msg.payload[0] == 0) msg.payload = \"PowerOn\";\nif (msg.payload[0] == 1) msg.payload = \"SelfTest\";\nif (msg.payload[0] == 2) msg.payload = \"OffGrid\";\nif (msg.payload[0] == 3) msg.payload = \"Grid-Tie\";\nif (msg.payload[0] == 4) msg.payload = \"ByPass\";\nif (msg.payload[0] == 5) msg.payload = \"Stop\";\nif (msg.payload[0] == 6) msg.payload = \"Grid charging\";\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1490,
        "y": 360,
        "wires": [
            [
                "a26f40a4089b5e02"
            ]
        ]
    },
    {
        "id": "bfa7999778a272a8",
        "type": "ui_dropdown",
        "z": "f68b8258b4fd501c",
        "name": "Režim SBU/SUB/UTI/SOL",
        "label": "Režim měniče:",
        "tooltip": "",
        "place": "režim",
        "group": "01f0a60623d9c6c4",
        "order": 14,
        "width": 4,
        "height": 1,
        "passthru": true,
        "multiple": false,
        "options": [
            {
                "label": "SOL",
                "value": "4",
                "type": "str"
            },
            {
                "label": "SBU",
                "value": "1",
                "type": "str"
            },
            {
                "label": "UTI",
                "value": "3",
                "type": "str"
            },
            {
                "label": "SUB",
                "value": "2",
                "type": "str"
            }
        ],
        "payload": "",
        "topic": "topic",
        "topicType": "msg",
        "className": "",
        "x": 1490,
        "y": 120,
        "wires": [
            [
                "e4fe33a7aac74776"
            ]
        ]
    },
    {
        "id": "e4fe33a7aac74776",
        "type": "function",
        "z": "f68b8258b4fd501c",
        "name": "Výběr režimu SBU/SUB/UTI/SOL",
        "func": "//let SUB_ON = true; // pokud měnič umí režim SUB odkomentovat true tento řádek, zakomentovat ten pod tímto\nlet SUB_ON = false; // pokud měnič neumí režim SUB odkomentovat false tento řádek, zakomentovat ten nahoře\n\nif (msg.payload == 1) msg.payload = { \"value\": 1, \"fc\": 6, \"unitid\": 4, \"address\": 20109, \"quantity\": 1 };\nif (msg.payload == 2) {\n    if ( SUB_ON ) msg.payload = { \"value\": 2, \"fc\": 6, \"unitid\": 4, \"address\": 20109, \"quantity\": 1 };\n    else msg.payload = { \"value\": 0, \"fc\": 3, \"unitid\": 4, \"address\": 20109, \"quantity\": 1 };\n}\nif (msg.payload == 3) msg.payload = { \"value\": 3, \"fc\": 6, \"unitid\": 4, \"address\": 20109, \"quantity\": 1 };\nif (msg.payload == 4) msg.payload = { \"value\": 4, \"fc\": 6, \"unitid\": 4, \"address\": 20109, \"quantity\": 1 };\nmsg.topic = \"Energy use mode\";\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1820,
        "y": 120,
        "wires": [
            [
                "b957a22b0dcbc678"
            ]
        ]
    },
    {
        "id": "c70343c774b9b99c",
        "type": "modbus-flex-getter",
        "z": "f68b8258b4fd501c",
        "name": "",
        "showStatusActivities": true,
        "showErrors": true,
        "showWarnings": true,
        "logIOActivities": false,
        "server": "0904de601b9ee0e6",
        "useIOFile": false,
        "ioFile": "",
        "useIOForPayload": false,
        "emptyMsgOnFail": true,
        "keepMsgProperties": true,
        "delayOnStart": false,
        "startDelayTime": "10",
        "x": 750,
        "y": 180,
        "wires": [
            [
                "3430125dc4a358a6"
            ],
            [
                "a058bce2a8a308d1"
            ]
        ]
    },
    {
        "id": "a058bce2a8a308d1",
        "type": "modbus-response",
        "z": "f68b8258b4fd501c",
        "name": "",
        "registerShowMax": 20,
        "x": 990,
        "y": 120,
        "wires": []
    },
    {
        "id": "3d5a558586b044b1",
        "type": "modbus-flex-write",
        "z": "f68b8258b4fd501c",
        "name": "",
        "showStatusActivities": true,
        "showErrors": true,
        "showWarnings": true,
        "server": "0904de601b9ee0e6",
        "emptyMsgOnFail": true,
        "keepMsgProperties": true,
        "delayOnStart": false,
        "startDelayTime": "10",
        "x": 750,
        "y": 240,
        "wires": [
            [],
            [
                "fb216ee67da92cd8"
            ]
        ]
    },
    {
        "id": "fb216ee67da92cd8",
        "type": "modbus-response",
        "z": "f68b8258b4fd501c",
        "name": "",
        "registerShowMax": 20,
        "x": 970,
        "y": 240,
        "wires": []
    },
    {
        "id": "c0d93f6c09e1a646",
        "type": "ui_chart",
        "z": "f68b8258b4fd501c",
        "name": "",
        "group": "c6ef0b286d09dd7b",
        "order": 1,
        "width": 16,
        "height": 6,
        "label": "Napětí baterie.",
        "chartType": "line",
        "legend": "false",
        "xformat": "HH:mm",
        "interpolate": "linear",
        "nodata": "",
        "dot": false,
        "ymin": "24",
        "ymax": "28",
        "removeOlder": "4",
        "removeOlderPoints": "2592000",
        "removeOlderUnit": "604800",
        "cutout": 0,
        "useOneColor": false,
        "useUTC": false,
        "colors": [
            "#1f77b4",
            "#aec7e8",
            "#ff7f0e",
            "#2ca02c",
            "#98df8a",
            "#d62728",
            "#ff9896",
            "#9467bd",
            "#c5b0d5"
        ],
        "outputs": 1,
        "useDifferentColor": false,
        "className": "",
        "x": 1980,
        "y": 180,
        "wires": [
            []
        ]
    },
    {
        "id": "4b4d3c67967a49b4",
        "type": "function",
        "z": "f68b8258b4fd501c",
        "name": "hodnota / 10 fix 2",
        "func": "var num = msg.payload[6];\nnum = num / 10;\nnum = (parseFloat(num)).toFixed(2);\nmsg.payload = num; \nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1490,
        "y": 480,
        "wires": [
            [
                "b93b10f92179eb01",
                "b0497504173d818c"
            ]
        ]
    },
    {
        "id": "b93b10f92179eb01",
        "type": "ui_gauge",
        "z": "f68b8258b4fd501c",
        "name": "",
        "group": "01f0a60623d9c6c4",
        "order": 2,
        "width": 4,
        "height": 4,
        "gtype": "gage",
        "title": "DS Napětí",
        "label": "V",
        "format": "{{value}}",
        "min": "90",
        "max": "280",
        "colors": [
            "#e6e600",
            "#00b500",
            "#ca3838"
        ],
        "seg1": "196",
        "seg2": "250",
        "diff": false,
        "className": "",
        "x": 1710,
        "y": 480,
        "wires": []
    },
    {
        "id": "b0497504173d818c",
        "type": "ui_chart",
        "z": "f68b8258b4fd501c",
        "name": "",
        "group": "c6ef0b286d09dd7b",
        "order": 3,
        "width": 16,
        "height": 6,
        "label": "DS Napětí",
        "chartType": "line",
        "legend": "false",
        "xformat": "HH:mm",
        "interpolate": "linear",
        "nodata": "",
        "dot": false,
        "ymin": "90",
        "ymax": "280",
        "removeOlder": "4",
        "removeOlderPoints": "2592000",
        "removeOlderUnit": "604800",
        "cutout": 0,
        "useOneColor": false,
        "useUTC": false,
        "colors": [
            "#1f77b4",
            "#aec7e8",
            "#ff7f0e",
            "#2ca02c",
            "#98df8a",
            "#d62728",
            "#ff9896",
            "#9467bd",
            "#c5b0d5"
        ],
        "outputs": 1,
        "useDifferentColor": false,
        "className": "",
        "x": 1890,
        "y": 480,
        "wires": [
            []
        ]
    },
    {
        "id": "c515d86c24a82903",
        "type": "ui_gauge",
        "z": "f68b8258b4fd501c",
        "name": "",
        "group": "01f0a60623d9c6c4",
        "order": 6,
        "width": 4,
        "height": 4,
        "gtype": "gage",
        "title": "Výkon měniče.",
        "label": "W",
        "format": "{{value}}",
        "min": "0",
        "max": "3000",
        "colors": [
            "#e6e600",
            "#00b500",
            "#ca3838"
        ],
        "seg1": "",
        "seg2": "",
        "diff": false,
        "className": "",
        "x": 2040,
        "y": 320,
        "wires": []
    },
    {
        "id": "5c1041bec917129e",
        "type": "function",
        "z": "f68b8258b4fd501c",
        "name": "hodnota fix 2",
        "func": "var num = msg.payload[12];\nnum = (parseFloat(num)).toFixed(2);\nmsg.payload = num; \nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1850,
        "y": 280,
        "wires": [
            [
                "4966ac9fe1a7a17b",
                "c515d86c24a82903"
            ]
        ]
    },
    {
        "id": "4966ac9fe1a7a17b",
        "type": "ui_chart",
        "z": "f68b8258b4fd501c",
        "name": "",
        "group": "c6ef0b286d09dd7b",
        "order": 2,
        "width": 16,
        "height": 6,
        "label": "Výkon měniče.",
        "chartType": "line",
        "legend": "false",
        "xformat": "HH:mm",
        "interpolate": "linear",
        "nodata": "",
        "dot": false,
        "ymin": "0",
        "ymax": "3000",
        "removeOlder": "4",
        "removeOlderPoints": "2920005",
        "removeOlderUnit": "604800",
        "cutout": 0,
        "useOneColor": false,
        "useUTC": false,
        "colors": [
            "#1f77b4",
            "#aec7e8",
            "#ff7f0e",
            "#2ca02c",
            "#98df8a",
            "#d62728",
            "#ff9896",
            "#9467bd",
            "#c5b0d5"
        ],
        "outputs": 1,
        "useDifferentColor": false,
        "className": "",
        "x": 2040,
        "y": 280,
        "wires": [
            []
        ]
    },
    {
        "id": "b957a22b0dcbc678",
        "type": "function",
        "z": "f68b8258b4fd501c",
        "name": "Modbus Queue",
        "func": "let resendifnoresposne = false; // resend the last message is no response is received\nlet resendinterval = 30; // resend last e message every x seconds\nlet online_threshold = 30; // Seconds between updates under which the device is considered online\nlet offline_threshold = 300; // Seconds between updates above which the device is considered offline\n\nlet notifmsg = null;\n\n// Check and make sure the incoming message has a topic\nif ((msg.topic===\"\")||(msg.topic===null)||(msg.topic===undefined)) {\n    node.status({fill:\"red\",shape:\"dot\",text:\"Topic missing\"});\n    return;\n}\n\nlet lastupdate = context.get(\"lastupdate\");\nlet state = context.get(\"state\") | 0;\nlet queue = context.get(\"queue\");\nlet queuecount = 0;\nif (queue === undefined) {\n    queue = [];\n} else {\n    if (Array.isArray(queue)) {\n        queuecount = queue.length;\n    } else {\n        queue = [];\n    }\n}\nlet current = new Date().getTime();\nlet send = false;\n\nswitch (msg.topic.toLowerCase()) {\n    case \"update\":\n        // Update the timer and statistics\n\n        if (lastupdate !== undefined) {\n            notifmsg = { \"topic\": \"Information\", \"payload\": {} };\n            current = current - lastupdate;\n            current = Math.floor(current / 1000);\n            notifmsg.payload.secondsincelastupdate = current;\n            var minute = Math.floor(current / 60);\n            var hour = Math.floor(minute / 60);\n            var day = Math.floor(hour / 24);\n            if (current > 24 * 60 * 60) {\n                notifmsg.payload.updatetext = \"Last update \" + day + \" days, \" + hour % 24 + \" hours, \" + minute % 60 + \" minutes, \" + current % 60 + \" seconds ago\";\n            } else if (current > 60 * 60) {\n                notifmsg.payload.updatetext = \"Last update \" + hour % 24 + \" hours, \" + minute % 60 + \" minutes, \" + current % 60 + \" seconds ago\";\n            } else if (current > 60) {\n                notifmsg.payload.updatetext = \"Last update \" + minute % 60 + \" minutes, \" + current % 60 + \" seconds ago\";\n            } else {\n                notifmsg.payload.updatetext = \"Last update \" + current % 60 + \" seconds ago\";\n            }\n\n            // Resend last message if there is no response from the server\n            if (resendifnoresposne) {\n                if ((current>0) && (current % resendinterval===0)) {\n                    let lastmsg = context.get(\"lastmsg\");\n                    if ((lastmsg!==undefined) && (context.get(\"sent\"))) {\n                        notifmsg.payload.resend = true;\n                        if ((lastmsg.payload.fc === 1) || (lastmsg.payload.fc === 2) || (lastmsg.payload.fc === 3) || (lastmsg.payload.fc === 4)) {\n                            // this is a modbus read request\n                            node.status({ fill: \"green\", shape: \"dot\", text: \"Read re-sent!\" });\n                            return [lastmsg, null, notifmsg];\n                        } else {\n                            // this is a modbus write request\n                            node.status({ fill: \"green\", shape: \"dot\", text: \"Write re-sent!\" });\n                            return [null, lastmsg, notifmsg];\n                        }\n                    }\n                }\n            }\n\n            // Check for online state\n            if (state !== 1) {\n                if (current < online_threshold) {\n                    notifmsg.topic = \"Warning\";\n                    notifmsg.payload.text = \"Device is now online\";\n                    notifmsg.payload.statuschange = true;\n                    state = 1;\n                    context.set(\"state\", state);\n                }\n            } else {\n                if (current > offline_threshold) {\n                    notifmsg.topic = \"Error\";\n                    notifmsg.payload.text = \"Device is not transmitting\";\n                    notifmsg.payload.statuschange = true;\n                    state = 99;\n                    context.set(\"state\", state);\n                }\n            }\n            notifmsg.payload.state = state;\n            if (state===1) {\n                node.status({ fill: \"blue\", shape: \"ring\", text: queuecount+ \" | \"+notifmsg.payload.updatetext });\n            } else {\n                node.status({ fill: \"red\", shape: \"ring\", text: queuecount + \" | \" + notifmsg.payload.updatetext });\n            }\n            return [null, null, notifmsg];\n\n        } else {\n            node.status({ fill: \"grey\", shape: \"ring\", text: \"No data\" });\n        }\n        break;\n    case \"next\":\n        // Update the lastupdate counter\n        context.set(\"lastupdate\", current);\n        context.set(\"sent\", false);\n        send = true;\n        break;\n    case \"reset\":\n        context.set(\"queue\",[]);\n        context.set(\"sent\", false);\n        context.set(\"lastmsg\", undefined);\n        break;\n    default:\n        // The incoming message is a modbus request\n\n        // delete the last msg to prevent from being resent\n        // context.set(\"lastmsg\", undefined);\n\n        // Check if there is already a message in the queue with the same topic. \n        // If there is it needs to be deleted, because we only keep the last message.\n        for (let i=queue.length-1; i>=0; i--) {\n            if (queue[i].topic === msg.topic) {\n                queue.splice(i,1);\n            }\n        }\n\n        // Add the message to the end of the queue\n        queue.push(msg);\n        context.set(\"queue\",queue);\n\n        if (!context.get(\"sent\")) {\n            send = true;\n        }\n        node.status({ fill: \"green\", shape: \"dot\", text: queue.length });\n\n}\n\n// We need to send out a new message\nif (send) {\n\n    if (queue.length>0) {\n        // Get the older message from the array\n        let newmsg = queue[0];\n        // remove this message\n        queue.splice(0,1);\n        context.set(\"queue\",queue);\n        context.set(\"sent\", true);\n        context.set(\"lastmsg\", newmsg);\n\n        if ((newmsg.payload.fc === 1) || (newmsg.payload.fc === 2) || (newmsg.payload.fc === 3) || (newmsg.payload.fc === 4)) {\n            // this is a modbus read request\n            node.status({ fill: \"green\", shape: \"dot\", text: \"Read sent!\" });\n            return[newmsg,null,null];\n        } else {\n            // this is a modbus write request\n            node.status({ fill: \"green\", shape: \"dot\", text: \"Write sent!\" });\n            return [null, newmsg, null];\n        }\n        \n    }\n}\n",
        "outputs": 3,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 460,
        "y": 200,
        "wires": [
            [
                "c70343c774b9b99c",
                "e218f7cfdf2fe463"
            ],
            [
                "3d5a558586b044b1",
                "e218f7cfdf2fe463"
            ],
            [
                "349e2fa8b06658cb"
            ]
        ],
        "info": "# Modbus Queue\r\n\r\nThis node queueing read and write messages for modbus. Use this node if you are reading and writing the same device with many different requests. E.g. reading different coil/register intervals continously and also writing to the device at the same time.\r\n\r\nIt does a few things:\r\n- queues all messages arrive on the input port\r\n- based on the msg.topic, older messages of the same topci is ignored\r\n- sends out the oldest message and waits for the \r\n- monitors the time since last message and send out report on the output\r\n- handles online/offline status\r\n- resend the last message is response is not received in time\r\n\r\n## Input Data\r\n\r\n### payload\r\n\r\nThe payload should contain the data that gets sent to the flex-getter or flex-write node.\r\nTypical modbus read payload:\r\n`{\"value\":0,\"fc\":3,\"unitid\":1,\"address\":1000,\"quantity\":20}`\r\nTypical modbus write payload:\r\n`{\"value\":false,\"fc\":5,\"unitid\":1,\"address\":0,\"quantity\":1}`\r\n\r\n### topic\r\n\r\nEach message must contain a topic (any text), and this topic is used to identify the different read/write requests and delete any earlier request with the same topic if it still in the queueing\r\n\r\nThere are a few reserved topic for special function (for these payload is ignored):\r\n- reset: resets the queue and deleted any data collected so far\r\n- next: this is the message fed back from the flex getter/write node to indicate to this node that a new message can be sent out\r\n- update: this should be coming from a 1 second time to display the current queue count, time since the last update and online/offline status\r\n\r\n## Output ports\r\n\r\n### Port 1: flex getter\r\n\r\nThis output should be connected to a modbos-flex-getter and all the read requests will be sent out through this port\r\n\r\n### Port 2: flex write\r\n\r\nThis output should be connected to a modbos-flex-write and all the write requests will be sent out through this port\r\n\r\n### Port 3: status messages\r\n\r\nThis port outputs a status message for every update message (msg.topic=\"update\").\r\n\r\n- topic: \"Information\" for regular updates, \"Warning\": offline device is now back online, \"Error\": device is offline\r\n- payload.text: message like when the device gone offline, or back online\r\n- payload.updatetext: time passed since the last update (human readable format)\r\n- payload.secondsincelastupdate: number of seconds since the last update from the device\r\n- payload.statuschange: true if status is changed (gone offline, back online)\r\n- payload.state: 0: initial state, no data yet, 1: device online, 99: device offline\r\n\r\n## Node Settings\r\n\r\nChange the settings in the first 4 lines of the code to influence the behaviour. Explanation is in the code as comment."
    },
    {
        "id": "685a797cf80d0845",
        "type": "inject",
        "z": "f68b8258b4fd501c",
        "name": "Read 20101 +43 Inverter Control Message",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "5",
        "crontab": "",
        "once": false,
        "onceDelay": "1",
        "topic": "Inverter Control Message",
        "payload": "{\"value\":0,\"fc\":3,\"unitid\":4,\"address\":20101,\"quantity\":43}",
        "payloadType": "json",
        "x": 230,
        "y": 580,
        "wires": [
            [
                "b957a22b0dcbc678"
            ]
        ]
    },
    {
        "id": "e218f7cfdf2fe463",
        "type": "change",
        "z": "f68b8258b4fd501c",
        "name": "Advance queue",
        "rules": [
            {
                "t": "set",
                "p": "topic",
                "pt": "msg",
                "to": "next",
                "tot": "str"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 440,
        "y": 80,
        "wires": [
            [
                "872a3a4f2d4ae355"
            ]
        ]
    },
    {
        "id": "90abdd501510ad66",
        "type": "inject",
        "z": "f68b8258b4fd501c",
        "name": "Read 25201 +78 Inverter Display Message",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "5",
        "crontab": "",
        "once": false,
        "onceDelay": "2",
        "topic": "Inverter Display Message",
        "payload": "{\"value\":0,\"fc\":3,\"unitid\":4,\"address\":25201,\"quantity\":78}",
        "payloadType": "json",
        "x": 230,
        "y": 620,
        "wires": [
            [
                "b957a22b0dcbc678"
            ]
        ]
    },
    {
        "id": "316f0efd0d0e4fd3",
        "type": "inject",
        "z": "f68b8258b4fd501c",
        "name": "Čtení velikosti baterky v Ah (PV Charger Control Message)",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "PV Charger Control Message",
        "payload": "{\"value\":0,\"fc\":3,\"unitid\":4,\"address\":10111,\"quantity\":1}",
        "payloadType": "json",
        "x": 250,
        "y": 420,
        "wires": [
            [
                "b957a22b0dcbc678"
            ]
        ]
    },
    {
        "id": "dde6e9df9762f1dc",
        "type": "inject",
        "z": "f68b8258b4fd501c",
        "name": "Read 15201 +21 PV Charger Display Message",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "5",
        "crontab": "",
        "once": false,
        "onceDelay": "3",
        "topic": "PV Charger Display Message",
        "payload": "{\"value\":0,\"fc\":3,\"unitid\":4,\"address\":15201,\"quantity\":21}",
        "payloadType": "json",
        "x": 240,
        "y": 660,
        "wires": [
            [
                "b957a22b0dcbc678"
            ]
        ]
    },
    {
        "id": "589a392f1227c212",
        "type": "inject",
        "z": "f68b8258b4fd501c",
        "name": "Zapis velikosti baterky 445Ah",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "PV Charger Control Message",
        "payload": "{\"value\":445,\"fc\":6,\"unitid\":4,\"address\":10111,\"quantity\":1}",
        "payloadType": "json",
        "x": 160,
        "y": 380,
        "wires": [
            []
        ]
    },
    {
        "id": "3430125dc4a358a6",
        "type": "switch",
        "z": "f68b8258b4fd501c",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "nempty"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 1050,
        "y": 180,
        "wires": [
            [
                "1f1eab9ddd5a415a"
            ]
        ]
    },
    {
        "id": "130004c4b02fc95f",
        "type": "function",
        "z": "f68b8258b4fd501c",
        "name": "Režim Energy use mode",
        "func": "if (msg.payload[8] == 1) msg.payload = \"SBU\";\nif (msg.payload[8] == 2) msg.payload = \"SUB\";\nif (msg.payload[8] == 3) msg.payload = \"UTI\";\nif (msg.payload[8] == 4) msg.payload = \"SOL\";\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1530,
        "y": 300,
        "wires": [
            [
                "1022cfaf3d8f47fa"
            ]
        ]
    },
    {
        "id": "872a3a4f2d4ae355",
        "type": "delay",
        "z": "f68b8258b4fd501c",
        "name": "",
        "pauseType": "delay",
        "timeout": "500",
        "timeoutUnits": "milliseconds",
        "rate": "1",
        "nbRateUnits": "1",
        "rateUnits": "second",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": false,
        "allowrate": false,
        "outputs": 1,
        "x": 610,
        "y": 80,
        "wires": [
            [
                "b957a22b0dcbc678"
            ]
        ]
    },
    {
        "id": "a2fac952882896c2",
        "type": "function",
        "z": "f68b8258b4fd501c",
        "name": "hodnota",
        "func": "var num = msg.payload[8];\n//num = num / 10;\n//num = (parseFloat(num)).toFixed(2);\nmsg.payload = num; \nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1280,
        "y": 120,
        "wires": [
            [
                "bfa7999778a272a8"
            ]
        ]
    },
    {
        "id": "9b5f4edc043fd4da",
        "type": "ui_text",
        "z": "f68b8258b4fd501c",
        "group": "a56cc8d7cea6218d",
        "order": 13,
        "width": 4,
        "height": 1,
        "name": "",
        "label": "Pracovní stav:",
        "format": "{{msg.payload}}",
        "layout": "row-center",
        "className": "",
        "x": 1880,
        "y": 580,
        "wires": []
    },
    {
        "id": "57f172150e9c5fed",
        "type": "function",
        "z": "f68b8258b4fd501c",
        "name": "Charger workstate",
        "func": "if (msg.payload[0] == 0) msg.payload = \"inicializace\";\nif (msg.payload[0] == 1) msg.payload = \"autotest\";\nif (msg.payload[0] == 2) msg.payload = \"pracuje\";\nif (msg.payload[0] == 3) msg.payload = \"vypnuto\";\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1650,
        "y": 580,
        "wires": [
            [
                "9b5f4edc043fd4da"
            ]
        ]
    },
    {
        "id": "dfd855c352549885",
        "type": "ui_text",
        "z": "f68b8258b4fd501c",
        "group": "a56cc8d7cea6218d",
        "order": 14,
        "width": 4,
        "height": 1,
        "name": "",
        "label": "Režim MPPT:",
        "format": "{{msg.payload}}",
        "layout": "row-center",
        "className": "",
        "x": 1880,
        "y": 640,
        "wires": []
    },
    {
        "id": "d0b3044cc148e446",
        "type": "function",
        "z": "f68b8258b4fd501c",
        "name": "Mppt state",
        "func": "if (msg.payload[1] == 0) msg.payload = \"Stop\";\nif (msg.payload[1] == 1) msg.payload = \"MPPT\";\nif (msg.payload[1] == 2) msg.payload = \"omezení proudu\";\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1630,
        "y": 640,
        "wires": [
            [
                "dfd855c352549885"
            ]
        ]
    },
    {
        "id": "8ee95c6cc4d74af6",
        "type": "ui_text",
        "z": "f68b8258b4fd501c",
        "group": "a56cc8d7cea6218d",
        "order": 15,
        "width": 4,
        "height": 1,
        "name": "",
        "label": "Stav nabíjení:",
        "format": "{{msg.payload}}",
        "layout": "row-center",
        "className": "",
        "x": 1880,
        "y": 700,
        "wires": []
    },
    {
        "id": "f7012130d32eb648",
        "type": "function",
        "z": "f68b8258b4fd501c",
        "name": "charging state",
        "func": "if (msg.payload[2] == 0) msg.payload = \"Stop\";\nif (msg.payload[2] == 1) msg.payload = \"Absorbce\";\nif (msg.payload[2] == 2) msg.payload = \"Float\";\nif (msg.payload[2] == 3) msg.payload = \"Eqalize\";\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1640,
        "y": 700,
        "wires": [
            [
                "8ee95c6cc4d74af6"
            ]
        ]
    },
    {
        "id": "349e2fa8b06658cb",
        "type": "debug",
        "z": "f68b8258b4fd501c",
        "name": "Status Messages",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "targetType": "msg",
        "statusVal": "",
        "statusType": "auto",
        "x": 750,
        "y": 340,
        "wires": []
    },
    {
        "id": "7387974de105a58a",
        "type": "function",
        "z": "f68b8258b4fd501c",
        "name": "hodnota / 10 fix 2",
        "func": "var num = msg.payload[4];\nnum = num / 10;\nnum = (parseFloat(num)).toFixed(2);\nmsg.payload = num; \nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1630,
        "y": 760,
        "wires": [
            [
                "9ff3990fb979f68d",
                "abea618e04114363"
            ]
        ]
    },
    {
        "id": "9ff3990fb979f68d",
        "type": "ui_gauge",
        "z": "f68b8258b4fd501c",
        "name": "",
        "group": "a56cc8d7cea6218d",
        "order": 2,
        "width": 4,
        "height": 4,
        "gtype": "gage",
        "title": "Napětí panelů",
        "label": "V",
        "format": "{{value}}",
        "min": "0",
        "max": "145",
        "colors": [
            "#e6e600",
            "#00b500",
            "#ca3838"
        ],
        "seg1": "30",
        "seg2": "130",
        "diff": false,
        "className": "",
        "x": 1900,
        "y": 760,
        "wires": []
    },
    {
        "id": "abea618e04114363",
        "type": "ui_chart",
        "z": "f68b8258b4fd501c",
        "name": "",
        "group": "c6ef0b286d09dd7b",
        "order": 4,
        "width": 16,
        "height": 7,
        "label": "Napětí na panelech",
        "chartType": "line",
        "legend": "false",
        "xformat": "HH:mm",
        "interpolate": "linear",
        "nodata": "",
        "dot": false,
        "ymin": "0",
        "ymax": "145",
        "removeOlder": "2",
        "removeOlderPoints": "",
        "removeOlderUnit": "86400",
        "cutout": 0,
        "useOneColor": false,
        "useUTC": false,
        "colors": [
            "#1f77b4",
            "#aec7e8",
            "#ff7f0e",
            "#2ca02c",
            "#98df8a",
            "#d62728",
            "#ff9896",
            "#9467bd",
            "#c5b0d5"
        ],
        "outputs": 1,
        "useDifferentColor": false,
        "className": "",
        "x": 2130,
        "y": 760,
        "wires": [
            []
        ]
    },
    {
        "id": "8fb84e4df2896ee6",
        "type": "function",
        "z": "f68b8258b4fd501c",
        "name": "hodnota / 10 fix 2",
        "func": "var num = msg.payload[5];\nnum = num / 10;\nnum = (parseFloat(num)).toFixed(2);\nmsg.payload = num; \nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1630,
        "y": 820,
        "wires": [
            [
                "efbcb61afa976776"
            ]
        ]
    },
    {
        "id": "efbcb61afa976776",
        "type": "ui_gauge",
        "z": "f68b8258b4fd501c",
        "name": "",
        "group": "a56cc8d7cea6218d",
        "order": 1,
        "width": 4,
        "height": 4,
        "gtype": "gage",
        "title": "Napětí MPPT",
        "label": "V",
        "format": "{{value}}",
        "min": "24",
        "max": "28",
        "colors": [
            "#e6e600",
            "#00b500",
            "#ca3838"
        ],
        "seg1": "25",
        "seg2": "27.6",
        "diff": false,
        "className": "",
        "x": 1900,
        "y": 820,
        "wires": []
    },
    {
        "id": "cc2ae399eca90ae5",
        "type": "ui_gauge",
        "z": "f68b8258b4fd501c",
        "name": "",
        "group": "a56cc8d7cea6218d",
        "order": 4,
        "width": 4,
        "height": 4,
        "gtype": "gage",
        "title": "Proud z MPPT",
        "label": "A",
        "format": "{{value}}",
        "min": "0",
        "max": "80",
        "colors": [
            "#e6e600",
            "#00b500",
            "#ca3838"
        ],
        "seg1": "",
        "seg2": "",
        "diff": false,
        "className": "",
        "x": 1920,
        "y": 900,
        "wires": []
    },
    {
        "id": "bfc84c6e4c69d370",
        "type": "function",
        "z": "f68b8258b4fd501c",
        "name": "hodnota / 10 fix 2",
        "func": "var num = msg.payload[6];\nnum = num / 10;\nnum = (parseFloat(num)).toFixed(2);\nmsg.payload = num; \nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1650,
        "y": 900,
        "wires": [
            [
                "cc2ae399eca90ae5"
            ]
        ]
    },
    {
        "id": "847930cde4ec4977",
        "type": "ui_gauge",
        "z": "f68b8258b4fd501c",
        "name": "",
        "group": "a56cc8d7cea6218d",
        "order": 6,
        "width": 4,
        "height": 4,
        "gtype": "gage",
        "title": "Výkon panelů",
        "label": "W",
        "format": "{{value}}",
        "min": "0",
        "max": "2000",
        "colors": [
            "#e6e600",
            "#00b500",
            "#ca3838"
        ],
        "seg1": "",
        "seg2": "",
        "diff": false,
        "className": "",
        "x": 1920,
        "y": 960,
        "wires": []
    },
    {
        "id": "2f1a1677b0ef2f72",
        "type": "function",
        "z": "f68b8258b4fd501c",
        "name": "hodnota / 10 fix 2",
        "func": "var num = msg.payload[7];\nnum = num / 10;\nnum = (parseFloat(num)).toFixed(2);\nmsg.payload = num; \nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1650,
        "y": 960,
        "wires": [
            [
                "847930cde4ec4977"
            ]
        ]
    },
    {
        "id": "f912edbaf74ee62b",
        "type": "ui_text",
        "z": "f68b8258b4fd501c",
        "group": "a56cc8d7cea6218d",
        "order": 16,
        "width": 4,
        "height": 1,
        "name": "",
        "label": "Teplota MPPT:",
        "format": "{{msg.payload[8]}}°C",
        "layout": "row-center",
        "className": "",
        "x": 1880,
        "y": 540,
        "wires": []
    },
    {
        "id": "761d1fc1cccc5dfd",
        "type": "function",
        "z": "f68b8258b4fd501c",
        "name": "hodnota / 10 fix 2",
        "func": "var num_high = msg.payload[16];\nvar num_low = msg.payload[17];\nvar dnu = msg.payload[18];\nvar hodin = msg.payload[19];\nvar minut = msg.payload[20];\nvar num = num_low / 10;\nnum = num + (num_high * 1000);\nmsg.payload = (parseFloat(num)).toFixed(2);\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1630,
        "y": 1060,
        "wires": [
            [
                "4ad2478fb51faf50"
            ]
        ]
    },
    {
        "id": "4ad2478fb51faf50",
        "type": "ui_text",
        "z": "f68b8258b4fd501c",
        "group": "a56cc8d7cea6218d",
        "order": 17,
        "width": 4,
        "height": 1,
        "name": "Výroba kwh",
        "label": "",
        "format": "Výroba: {{value}} kwh",
        "layout": "row-center",
        "className": "",
        "x": 1890,
        "y": 1060,
        "wires": []
    },
    {
        "id": "d14e72fa99393b7d",
        "type": "comment",
        "z": "f68b8258b4fd501c",
        "name": "Ruční přepnutí režimů SBU/UTI/SOL",
        "info": "",
        "x": 160,
        "y": 180,
        "wires": []
    },
    {
        "id": "e3aadc55ebba7ed5",
        "type": "comment",
        "z": "f68b8258b4fd501c",
        "name": "Ruční zapis - přečtení velikosti baterky v Ah registr 10111",
        "info": "",
        "x": 230,
        "y": 340,
        "wires": []
    },
    {
        "id": "72ad9230df39e02a",
        "type": "comment",
        "z": "f68b8258b4fd501c",
        "name": "Vyčítání registrů",
        "info": "",
        "x": 120,
        "y": 540,
        "wires": []
    },
    {
        "id": "11925805c14153c3",
        "type": "comment",
        "z": "f68b8258b4fd501c",
        "name": "Fronta",
        "info": "",
        "x": 410,
        "y": 40,
        "wires": []
    },
    {
        "id": "952ee8b918eabfb3",
        "type": "comment",
        "z": "f68b8258b4fd501c",
        "name": "Komunikace",
        "info": "",
        "x": 730,
        "y": 120,
        "wires": []
    },
    {
        "id": "54e0bd5a2954a10f",
        "type": "comment",
        "z": "f68b8258b4fd501c",
        "name": "Zobrazení dat",
        "info": "",
        "x": 1290,
        "y": 60,
        "wires": []
    },
    {
        "id": "c9952e8583108107",
        "type": "debug",
        "z": "f68b8258b4fd501c",
        "name": "debug 1",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 1820,
        "y": 1180,
        "wires": []
    }
]
3,6kWp ::pv:: 600Wp (4x 150Wp 4S) + 1kWp (2x 500Wp 2S) + 2kWp (4x 500Wp 2S2P) | 2x MUST PV18-3024 VHM, 3kW/24V | 16kWh *batt* (2x 12V/200Ah AGM) + 25.6V/120Ah + 25.6V/125Ah + 25.6V/230Ah LiFePO4 | Jak nepostavit FVE Zlaté Hory :home:
mikiki
Příspěvky: 341
Registrován: sob dub 02, 2022 6:32 pm
Lokalita: Pelhřimov
Systémové napětí: 48V
Výkon panelů [Wp]: 1810
Kapacita baterie [kWh]: 12
Chci prodávat energii: NE
Bydliště: od Pejru

Re: Jak nepostavit FVE (Zlaté Hory)

Příspěvek od mikiki »

Gratuluji, taky bych si někdy chtěl tuto statistiku zprovoznit :-)
FE č.1 = 910Wp - Epever XTRA4210N = 24V (2x Victron GEL 12V/220Ah)
FE č.2 = 1810Wp - EPever XTRA4415N = 48V (2x Lion 51V/150Ah)
Soban
Příspěvky: 3447
Registrován: pon úno 07, 2022 10:11 pm
Lokalita: Zlaté Hory / Olomouc
Systémové napětí: 24V
Výkon panelů [Wp]: 3600
Kapacita baterie [kWh]: 16
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Zlaté Hory

Re: Jak nepostavit FVE (Zlaté Hory)

Příspěvek od Soban »

Tak já nic nikam neukládám, jsou to pouze živé data, ale není problém je někam do databáze ukládat a pak zobrazovat grafy.
3,6kWp ::pv:: 600Wp (4x 150Wp 4S) + 1kWp (2x 500Wp 2S) + 2kWp (4x 500Wp 2S2P) | 2x MUST PV18-3024 VHM, 3kW/24V | 16kWh *batt* (2x 12V/200Ah AGM) + 25.6V/120Ah + 25.6V/125Ah + 25.6V/230Ah LiFePO4 | Jak nepostavit FVE Zlaté Hory :home:
Soban
Příspěvky: 3447
Registrován: pon úno 07, 2022 10:11 pm
Lokalita: Zlaté Hory / Olomouc
Systémové napětí: 24V
Výkon panelů [Wp]: 3600
Kapacita baterie [kWh]: 16
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Zlaté Hory

Re: Jak nepostavit FVE (Zlaté Hory)

Příspěvek od Soban »

Tak konečně použitelná verze se vším co potřebuji, dají se i nastavovat věci, prostě náhrada nepoužitelného programu co k tomu dodávají.... :yes:
MUST_v_1_20.txt
node_red_must
(103.93 KiB) Staženo 77 x
Snímek obrazovky z 2023-04-22 11-24-35.png
Snímek obrazovky z 2023-04-22 11-24-54.png
3,6kWp ::pv:: 600Wp (4x 150Wp 4S) + 1kWp (2x 500Wp 2S) + 2kWp (4x 500Wp 2S2P) | 2x MUST PV18-3024 VHM, 3kW/24V | 16kWh *batt* (2x 12V/200Ah AGM) + 25.6V/120Ah + 25.6V/125Ah + 25.6V/230Ah LiFePO4 | Jak nepostavit FVE Zlaté Hory :home:
Uživatelský avatar
rottenkiwi
Příspěvky: 5451
Registrován: pát úno 13, 2015 2:24 pm
Lokalita: SO, SK
Bydliště: SO, SK

Re: Jak nepostavit FVE (Zlaté Hory)

Příspěvek od rottenkiwi »

A aky je tam HW / procesor, frekvencia, SSD disk / a aky SW ? Aky Linux ?
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Uživatelský avatar
TomHC
Příspěvky: 1259
Registrován: pát lis 11, 2022 8:14 am
Lokalita: Hlohovec, SR
Systémové napětí: 48V
Výkon panelů [Wp]: 5520
Kapacita baterie [kWh]: 14
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Hlohovec, SR

Re: Jak nepostavit FVE (Zlaté Hory)

Příspěvek od TomHC »

Nodered, to funguje aj na kalkulačke...
MUST PV1800 VHM 48V 5.5kW, 5.52kWp (12x TPL mono 460W, 2S2P východ, 2S4P juh), 16x 280 Ah LiFePO4 (14.3 kWh) BMS JBD-AP21S001-L21S-200A-B, SW: Home Assistant na Synology DS923+ ku tomu ESPHome, Tasmota, MariaDB, InfluxDB, Telegraf, Grafana, Zigbee2MQTT..., HW: ESPlan (ESP32 + LAN 8720 + RS485 + UART). Nejaké moje projekty: MUST-ESPhome, ELTEK Flatpack2 ESPhome, ESP32-EMON, PZEM-017@WiFi, diyBMS-CurrentShunt-ESPhome
bokser01
Příspěvky: 1315
Registrován: pon úno 07, 2022 2:43 pm
Lokalita: Okolí Pardubic
Systémové napětí: 24V
Výkon panelů [Wp]: 7770
Kapacita baterie [kWh]: 14,4

Re: Jak nepostavit FVE (Zlaté Hory)

Příspěvek od bokser01 »

Máš to moc pěkné... Mohu se zeptat čím to že ti sedí napětí MPPT a nabětí BATT úplně na chlup? kalibroval jsi? Já mám rozdíl mezi PV BATT a položkou BATT i 0,9V a potřeboval bych to nakalibrovat.
MUST 3KW 80A MPPT 24V/ 3,75kWp stringy 5s3P 200wp + 5s1P 150wp. 2 měnič MUST 3KW 80A MPPT 24V 4kWp stringy 2S4P 400wp bifacial + 2S1P 410wp Baterie 14,4KWh olovouhlik (6x JPC12-200), Celek tedy 7770Wp :yes:
Soban
Příspěvky: 3447
Registrován: pon úno 07, 2022 10:11 pm
Lokalita: Zlaté Hory / Olomouc
Systémové napětí: 24V
Výkon panelů [Wp]: 3600
Kapacita baterie [kWh]: 16
Chci prodávat energii: NE
Chci/Mám dotaci: NE
Bydliště: Zlaté Hory

Re: Jak nepostavit FVE (Zlaté Hory)

Příspěvek od Soban »

bokser01 píše:Máš to moc pěkné... Mohu se zeptat čím to že ti sedí napětí MPPT a nabětí BATT úplně na chlup? kalibroval jsi? Já mám rozdíl mezi PV BATT a položkou BATT i 0,9V a potřeboval bych to nakalibrovat.
Tak kalibrace mi nechodí, prostě do toho registru nic nezapíši co jsem skoušel, nevím ani jaké rozpětí to bere, moc jsem to nepokoušel není třeba.

Jinak taky se mi rozchází ty napětí, ale to bych fakt neřešil, nastavení jde po 0.1V takže si nastavím tak aby to na baterce bylo OK.

Jinak HW jak jsem psal Raspberry Pi 400

Kód: Vybrat vše

Linux version 6.1.21-v8+ (dom@buildbot) (aarch64-linux-gnu-gcc-8 (Ubuntu/Linaro 8.4.0-3ubuntu1) 8.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #1642 SMP PREEMPT Mon Apr  3 17:24:16 BST 2023
Machine model: Raspberry Pi 400 Rev 1.0
Memory: 3355924K/4049920K available

Kód: Vybrat vše

Bus 002 Device 002: ID 1058:25a2 Western Digital Technologies, Inc. Elements 25A2
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 04d9:0007 Holtek Semiconductor, Inc. Raspberry Pi Internal Keyboard
Bus 001 Device 003: ID 1a86:7523 QinHeng Electronics CH340 serial converter
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
V jednom USB je HDD - běhá to daleko svižněji jak z SD karty - ta tam není.
V dalším USB je káblík od měniče.

Jediné s čím je problém s rušením přenosu chce to kvalitní káblík a táhnout ho co nejdál od jiných vodičů.
3,6kWp ::pv:: 600Wp (4x 150Wp 4S) + 1kWp (2x 500Wp 2S) + 2kWp (4x 500Wp 2S2P) | 2x MUST PV18-3024 VHM, 3kW/24V | 16kWh *batt* (2x 12V/200Ah AGM) + 25.6V/120Ah + 25.6V/125Ah + 25.6V/230Ah LiFePO4 | Jak nepostavit FVE Zlaté Hory :home:
bokser01
Příspěvky: 1315
Registrován: pon úno 07, 2022 2:43 pm
Lokalita: Okolí Pardubic
Systémové napětí: 24V
Výkon panelů [Wp]: 7770
Kapacita baterie [kWh]: 14,4

Re: Jak nepostavit FVE (Zlaté Hory)

Příspěvek od bokser01 »

Taky mám Raspberry Pi 400 a s rušením jsem taky bojoval a nakonec vyřešil. Nedošlo k výpadku dat přes 3 měsíce po úpravách co jsem provedl. Jedu přes USB, koupil jsem 5M kabel stíněný (měl jsem i 2m stíněný ale přes něj to vypadávalo) Rušení se vyskytovalo nahodile při vysokých výkonech i po 5M kabelu. Následně jsem nasadil feritové kroužky hned u měničů a u vstupu do Raspberry. Od té doby to funguje skvěle a spolehlivě
Přílohy
340062048_241886448355956_6725910853091242465_n.jpg
342852085_189766720108556_3368441463671089570_n.jpg
MUST 3KW 80A MPPT 24V/ 3,75kWp stringy 5s3P 200wp + 5s1P 150wp. 2 měnič MUST 3KW 80A MPPT 24V 4kWp stringy 2S4P 400wp bifacial + 2S1P 410wp Baterie 14,4KWh olovouhlik (6x JPC12-200), Celek tedy 7770Wp :yes: