OPL 9AC datová sběrnice

Ohřev TUV, aku nádrže, boilery, ohřívače vody, vytápění, klimatizace
misisnik
Příspěvky: 4
Registrován: ned čer 25, 2023 8:33 pm

OPL 9AC datová sběrnice

Příspěvek od misisnik »

Ahoj, vím, že se dá koupit LAN modul, ale úplně to nevyhovuje koncepci chytré domácnosti, kterou mám postavenou.
Má OPL 9AC někde zdokumentovaný protokol po kterém komunikuje s LAN, případně nějaký UART/SPI/MODBUS/RS232/I2C, abych si zařízení moh připojit k lokálním systémům chytré domácnosti?

Jasně, dá se odsnifovat komunikace na LAN modulu, tomuto bych se chtěl ale vyhnout (pokud bude jiná možnost).

Dík
Michal
tssk
Příspěvky: 10
Registrován: pát čer 09, 2023 6:03 pm

Re: OPL 9AC datová sběrnice

Příspěvek od tssk »

Ahoj. Mám stejný plán. Konkrétně mám 2xOPL 9AC 3kW a údaje z nich chci posílat přes MQTT do openHAB.

Nevím o žádné dokumentaci protokolu. Ale ptal jsem se na to když jsem si osobně přebíral regulátory minulý rok (červen 2022) v Nové Pace. Bylo mi řečeno že z toho konektoru P1 lze číst klasickou sériovou komunikaci. Pochopil jsem že tam chodí data ze kterých bude jasné co znamenají a stačí pouze číst a není potřeba jinak specificky komunikovat. Co mne překvapilo bylo že když jsem pánovi říkal svůj plán tak si vzal ty regulátory a něco do nich naflashoval - říkal že ta led verze "to" neumí. Argumentoval jsem že z popisu na eshopu jsem pochopil že všechny verze jsou stejné a jen se liší zobrazením dat na displayi. Vycházel jsem také z toho že LAN modul by se měl dát připojit ke každé verzi.

Měniče bych měl mít snad už za 14 dní zapojené tak se do toho hodlám pustit. V první verzi mám v plánu použít ESP8266 ve kterém nahodím co nejjednodušší kód který bude číst data a posílat na MQTT broker. Protože se sériovou komunikací nemám vůbec žádné zkušenosti tak si to chci nejprve nasimulovat připojením na Adruino Uno (to bude simulovat regulátor).

Ten jejich LAN modul se mi moc nelíbí. Není mi z popisu jasné co to přesně dělá. Připadá mi že to nějakým způsobem používá emoncms. Asi je to určené pro lidi kteří nemají žádnou infrastrukturu a má jim to poskytnout kompletní řešení v jedné krabičce.

Za případné další poznatky budu rád.
Uživatelský avatar
ThomasGardner
Příspěvky: 1
Registrován: pát srp 11, 2023 5:43 am
Lokalita: Itali

Re: OPL 9AC datová sběrnice

Příspěvek od ThomasGardner »

Pokud chceš komunikovat s LAN modulem zařízení OPL 9AC v rámci své chytré domácnosti:

Hledej dokumentaci od výrobce, která by popisovala, jak zařízení komunikuje přes LAN.

Sériová rozhraní: Pokud má zařízení UART, SPI, MODBUS, RS232 nebo I2C, můžeš použít tato rozhraní k propojení s domácími systémy.
S neochvějným nadšením jsme se spojili, abychom vytvořili TECHZAPK – platformu, která poskytuje bezplatné a komplexní soubory Mod APK.
tssk
Příspěvky: 10
Registrován: pát čer 09, 2023 6:03 pm

Re: OPL 9AC datová sběrnice

Příspěvek od tssk »

ThomasGardner píše:Pokud chceš komunikovat s LAN modulem zařízení OPL 9AC v rámci své chytré domácnosti:
Ahoj. To neni to co mame v planu. Chceme data cist primo z regulatoru.
tssk
Příspěvky: 10
Registrován: pát čer 09, 2023 6:03 pm

Re: OPL 9AC datová sběrnice

Příspěvek od tssk »

Ahoj. Tak to mam zprovoznene. A cteni dat a preposilani na MQTT broker funguje bez problemu. Pro tuhle chvili to udelam pomoci Tasmoty na WeMos D1 Mini ESP8266 WiFi modulu.

Pro zajimavost realna data:

Kód: Vybrat vše

tele/tasmota_E34334/RESULT {"SSerialReceived":"M:4 P:6:0 R:0 F:0 U:262 262V 8505mA 2228W 50Hz 32C 9516us 6972Wh\n"}
tele/tasmota_DEDE70/RESULT {"SSerialReceived":"M:4 P:6:0 R:0 F:0 U:259 279V 7848mA 2189W 50Hz 39C 9897us 7802Wh\n"}
Musim tam doladit jeste par veci a kdyz budu mit chvili tak zkusim napsat nejaky podrobny postup.

Z github repository https://github.com/kub/homeassistant-solareco ktere nasel misisnik pro homeassistent integraci jsem vycetl nasledujici:

Kód: Vybrat vše

M:4 - ?
P:1:1 - ?
R:0 - relay
F:0 - fan
U:168 - required_voltage (UnitOfElectricPotential.VOLT)
168V - voltage (UnitOfElectricPotential.VOLT)
838mA - current (UnitOfElectricCurrent.MILLIAMPERE)
140W - power (UnitOfPower.WATT)
50Hz - frequency (UnitOfFrequency.HERTZ)
30C - temperature (UnitOfTemperature.CELSIUS)
594us - pulse_width (UnitOfTime.MICROSECONDS)
252Wh - energy (UnitOfEnergy.WATT_HOUR)
\n - konec_zaznamu
Pokud by nekdo o protokolu vedel vic detailu tak budu rad za info.
misisnik
Příspěvky: 4
Registrován: ned čer 25, 2023 8:33 pm

Re: OPL 9AC datová sběrnice

Příspěvek od misisnik »

Super, taky sem se k tomu o vikendu dostal (no jo, ten delay je hroznej :D).
Mam novejsi verzi desky, ve ktere se protokol trochu zmenil.

Seriova komunikace jede na 5V, na konektor LAN modul konektor jsem pripojil Nodemcu v3 (esp8266), kde pro 5V->3V3
UART RX na strane ESP byl pripojen PNP transistor, jako jednoduchej konvertor.

UART baudrate je 115200, kdy se frame opakuje kazdych 893ms (zajimava hodnota).
https://ibb.co/GVS8px2
Vystup je ASCII, kde je kazdy frame zakoncen "\n". V mem pripade:

Kód: Vybrat vše

b"M:4:6 P:23:10 F1 DC1 AC0 0L 224S 224U 224V 7068mA 1583W 0:39C 7287us 3013Wh\n"
Implementoval sem do ESPHome ve spolupraci s Home assistant.
Solareco obcas dava nesmyslna data pro "Enegy [Wh]", ktera se resetuji kazdy den (novej boot), hazelo to peaky a delalo problem s pocitanim celkove spotreby - naimplementoval sem tedy jednoduchej filtr.
Zatim nenaimplementovanej downsampling, takze se data hrnou dost casto, pozdeji planuju na server posilat pouze kazdej 3-5 frame.

Kód: Vybrat vše

esphome:
  name: solareco-meter

esp8266:
  board: esp01_1m

# Enable logging
logger:
  baud_rate: 115200

# Enable Home Assistant API
api:
  encryption:
    key: "neukazu"

ota:
  password: "neukazu"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Solareco-Meter Fallback Hotspot"
    password: "neukazu"

globals:
   - id: latest_energy_value
     type: int
     restore_value: no
     initial_value: '-1'

captive_portal:

uart:
  baud_rate: 115200
  tx_pin: 15
  rx_pin: 13
  id: uart_2
  debug:
    direction: RX
    dummy_receiver: true
    after:
      delimiter: "\n"
    sequence:
      - lambda: |-
          UARTDebug::log_string(direction, bytes);
          char m[20];
          char p[20];
          int fan = 0;
          int dc = 0;
          int ac = 0;
          int l = 0;
          int solar = 0;
          int required_voltage = 0;
          int voltage = 0;
          int current = 0;
          int power = 0;
          int temperature = 0;
          int pulse_width = 0;
          int energy = 0;
          std::string str(bytes.begin(), bytes.end());

          // split the data from format  (b'M:4:6 P:23:10 F1 DC1 AC0 0L 224S 224U 225V 7068mA 1586W 0:39C 7289us 3014Wh\n')
          if (sscanf(str.c_str(), "M:%s P:%s F%d DC%d AC%d %dL %dS %dU %dV %dmA %dW 0:%dC %dus %dWh", m, p, &fan, &dc, &ac, &l, &solar, &required_voltage, &voltage, &current, &power, &temperature, &pulse_width, &energy ) == 14) {
            // check wrong peaks
            if(id(latest_energy_value) > 1 && id(latest_energy_value) > energy ){
              // new energy value is smaller than old one, no reset because its higher than 1
              return;
            }
            // fill up current energy value
            id(latest_energy_value) = energy;
            // publish the data
            //id(SOLAR_m).publish_state(m);
            //id(SOLAR_p).publish_state(p);
            id(SOLAR_fan).publish_state(fan);
            id(SOLAR_dc).publish_state(dc);
            id(SOLAR_ac).publish_state(ac);
            id(SOLAR_l).publish_state(l);
            id(SOLAR_solar).publish_state(solar);
            id(SOLAR_required_voltage).publish_state(required_voltage);
            id(SOLAR_voltage).publish_state(voltage);
            id(SOLAR_current).publish_state(current);
            id(SOLAR_power).publish_state(power);
            id(SOLAR_temperature).publish_state(temperature);
            id(SOLAR_pulse_width).publish_state(pulse_width);
            id(SOLAR_energy).publish_state(energy);
          }

sensor:
  - platform: template
    name: "SolarEco-Fan"
    id: "SOLAR_fan"
    update_interval: never
    accuracy_decimals: 0
  - platform: template
    name: "SolarEco-DC"
    id: "SOLAR_dc" 
    update_interval: never
    accuracy_decimals: 0
  - platform: template
    name: "SolarEco-AC"
    id: "SOLAR_ac"
    update_interval: never
    accuracy_decimals: 0
  - platform: template
    name: "SolarEco-L"
    id: "SOLAR_l"
    update_interval: never
    accuracy_decimals: 0
  - platform: template
    name: "SolarEco-Solar voltage"
    id: "SOLAR_solar"
    unit_of_measurement: 'V'
    device_class: voltage
    update_interval: never
    accuracy_decimals: 1
  - platform: template
    name: "SolarEco-Required voltage"
    id: "SOLAR_required_voltage"
    unit_of_measurement: 'V'
    device_class: voltage
    update_interval: never
    accuracy_decimals: 1
  - platform: template
    name: "SolarEco-Voltage"
    id: "SOLAR_voltage"
    unit_of_measurement: 'V'
    device_class: voltage
    update_interval: never
    accuracy_decimals: 1
  - platform: template
    name: "SolarEco-Current"
    id: "SOLAR_current"
    unit_of_measurement: 'mA'
    device_class: current
    update_interval: never
    accuracy_decimals: 1
  - platform: template
    name: "SolarEco-Power"
    id: "SOLAR_power"
    unit_of_measurement: 'W'
    device_class: power
    update_interval: never
    accuracy_decimals: 1
  - platform: template
    name: "SolarEco-Temperature"
    id: "SOLAR_temperature"
    unit_of_measurement: '°C'
    device_class: temperature
    update_interval: never
    accuracy_decimals: 1
  - platform: template
    name: "SolarEco-Pulse with"
    id: "SOLAR_pulse_width"
    unit_of_measurement: 'us'
    device_class: duration
    update_interval: never
    accuracy_decimals: 3
  - platform: template
    name: "SolarEco-Energy"
    id: "SOLAR_energy"
    unit_of_measurement: 'Wh'
    device_class: energy
    state_class: total_increasing
    accuracy_decimals: 1

Nevim uplne co nektere entity ve framu znamenaj, pokud to zjistim, tak dam vedet.

Vysledek tady:
https://ibb.co/brXpYLy
https://ibb.co/D9KDMP1

Michal
eborebelosa
Příspěvky: 7
Registrován: ned zář 04, 2022 8:27 pm

Re: OPL 9AC datová sběrnice

Příspěvek od eborebelosa »

Pánové díky za inspiraci, zkusil jsem vyčítání pomocí Elfin převodníku (EE11) který posílá data dále pomocí MQTT. Problém je že po cca hodině komunikace rozpadne a regulátor už nic neposílá.

Neměli jste podobný problém?

Díky
Soban
Příspěvky: 3842
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: OPL 9AC datová sběrnice

Příspěvek od Soban »

Mám podobný (EW11), ale já používám komunikaci přes modbus.

Třeba zjistit kdo tu komunikaci ukončí?

Co takhle zde dát co tam máš nastavené?

Co nastavené timeouty, keep alive, ping period, heartbeat?
3,6kWp ::pv:: | 2x MUST PV18-3024 VHM, 3kW/24V | 16kWh *batt*
tssk
Příspěvky: 10
Registrován: pát čer 09, 2023 6:03 pm

Re: OPL 9AC datová sběrnice

Příspěvek od tssk »

@eborebelosa S nicim takovym jsem se nesetkal. mam verzi 9-19 a posila to data neustale bez problemu. Tipoval bych tedy ze bude nejaky problem s tim Elfin EE11. Nemuze tomu vadit ze ten regulator posila data rychle, nepravidelne a obcas maji jinou strukturu (START apod.)? Jak to je zapojene - nejspis by stacilo jen TX? Mozna taky zkusit update FW kdyz @Soban ma neco podobneho a problem s tim nema.
Soban
Příspěvky: 3842
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: OPL 9AC datová sběrnice

Příspěvek od Soban »

Tak já jsem musel akorát oddělit zápis se čtením - samostatné sockety protože při společném to vypadávalo - vyčerpalo se počet spojení který je na jednom pouze max 3 spojení.

Pak mám nastavený timeout na 600s kdy se spojení zruší a musí se znovu navázat - zase kvůli vyčerpání max. spojení protože jak něco vypadne nodered neukončí spojení a to zůstane viset.

Takže asi napsat jak má co spojené a nastavené a můžeme hledat chyby.
3,6kWp ::pv:: | 2x MUST PV18-3024 VHM, 3kW/24V | 16kWh *batt*
eborebelosa
Příspěvky: 7
Registrován: ned zář 04, 2022 8:27 pm

Re: OPL 9AC datová sběrnice

Příspěvek od eborebelosa »

Díky za komentáře

teď jsem se dostal do stavu že mi to hází toto 919-3kW-2109-768 0WDG což je asi identifikace měniče

ale zase ta data běží pořád :-)

nastavení serial portu zde
https://ibb.co/SyZY61p
Soban
Příspěvky: 3842
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: OPL 9AC datová sběrnice

Příspěvek od Soban »

No a co my s tím?

No tak musíš měniči říci aby posílal jiné data, já ten měnič nemám tak nevím jak komunikuje.
3,6kWp ::pv:: | 2x MUST PV18-3024 VHM, 3kW/24V | 16kWh *batt*
tssk
Příspěvky: 10
Registrován: pát čer 09, 2023 6:03 pm

Re: OPL 9AC datová sběrnice

Příspěvek od tssk »

Nevim o tom ze by se u menice nejak dalo nastavovat co ma posilat. U mne neustale sype data ve formatu:

Kód: Vybrat vše

M:4 P:6:0 R:0 F:0 U:262 262V 8505mA 2228W 50Hz 32C 9516us 6972Wh\n
@eborebelosa Jakou mas verzi desky/menice?
tssk
Příspěvky: 10
Registrován: pát čer 09, 2023 6:03 pm

Re: OPL 9AC datová sběrnice

Příspěvek od tssk »

Pro jistotu - mas to napojene na P1?

https://ibb.co/F0hCYvM
eborebelosa
Příspěvky: 7
Registrován: ned zář 04, 2022 8:27 pm

Re: OPL 9AC datová sběrnice

Příspěvek od eborebelosa »

Verze desky je 9-19 a ano mám zapojeno v P1
Až dnes jsme zjistil že když to posílalo toto: 919-3kW-2109-768 0WDG tak měnič nezačal vyrábět. Až když jsem modul odpojil tak se rozběhl. do té jen sypal tuhle identifikaci kde je očividně to číslo desky.

@tssk jak máš ošetřené 5V zapojení na Wemosu ?
Hlavní důvod proč zkouším Elfina je že jsem nevěděl jak přesně to zapojit
tssk
Příspěvky: 10
Registrován: pát čer 09, 2023 6:03 pm

Re: OPL 9AC datová sběrnice

Příspěvek od tssk »

To "919-3kW-2109-768 0WDG" je zajimavy - ja jsem nedavno nechal aktualizovat firmware tak by mne zajimalo co by to ukazovalo u mne - kdybychom vedeli jak to vyvolat :)

WeMos D1 Mini ma regulator napeti a jde ho napajet 5V a ESP8266 ma 5V tolerant GPI0 piny. Takze neni problem to proste napojit na primo. Kupoval jsem konkretne tady https://www.laskakit.cz/wemos-d1-mini-e ... ifi-modul/ + z aliexpressu jsem si objednal ten JST-XH-4 konektor. A koukam ze tady ho maji taky https://www.laskakit.cz/jst-xh-4-2-54mm ... ale--20cm/ .

Zapojene to mam konkretne takto https://ibb.co/fNSqpCB

Kód: Vybrat vše

OPL 9AC P1 - Wemos D1 Mini
Vcc - 5V
Tx  - D4
Rs  - D3
GND - G
Na WeMos D1 Mini mam nahrany standardni Tasmota firmware ( https://tasmota.github.io/ ) a tam kdyz se nastavi na odpovidajicich pinech SerialBridge tak co dostane tak preposle na MQTT.

Kód: Vybrat vše

#kdyz regulator vypinal a zapinal pri rozbresku tak se nestihlo chytit wifi a Tasmota se vyresetoval
SetOption36 0
SetOption65 1

{"NAME":"SolarEco","GPIO":[1792,1,1824,1,1,1,1,1,1,1,1,1,1,1],"FLAG":0,"BASE":18,"CMND":"SBaudrate 115200"}

ModuleType: Generic(18)
D3 GPIO0: SerBr Tx
D4 GPIO2: SerBr Rx
Data si pak parsuju v openHABu.

Jeste jedna poznamka - kdyz je pripojeny ten modul na P1 tak nejde udelat reset zapamatovanych hodnot regulatoru. Pokud to chce clovek delat tak si musi modul na chvili odpojit.
eborebelosa
Příspěvky: 7
Registrován: ned zář 04, 2022 8:27 pm

Re: OPL 9AC datová sběrnice

Příspěvek od eborebelosa »

Po čase krátké info. Zkusil jsem to načítat pomocí ESP8266 a Tasmoty. Nepovedlo se mi to rozjet pomocí serial bridge ale když jsem připojil TX měniče na RX NodeMCU tak to data posílá (v HEX) . Nicméně opět po hodině komunikace skončí takže to bude asi něco ve střídači. Zkusím dát dotaz na SolarECO
tssk
Příspěvky: 10
Registrován: pát čer 09, 2023 6:03 pm

Re: OPL 9AC datová sběrnice

Příspěvek od tssk »

Tak jsem se uz take dostal do stavu ze mi to ukazovalo string "919-3kW-2109-773 0WDG" resp. "919-2.3kW-2109-773 0WDG". Deje se to ve chvili kdy se provede reset zapamatovanych hodnot. Regulator pak testuje soustavu a pokud je pripojeny komunikacni modul tak nezacne vyrabet. Pred resetem je potreba modul odpojit, pockat az se dokonci testovani a zacne vyroba a az pak modul pripojit.

  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek