Giter Club home page Giter Club logo

Comments (5)

tbnobody avatar tbnobody commented on August 24, 2024

Das Eventlog wird 1zu1 aus dem Inverter ausgelesen. Habe hier keinerlei Einfluss darauf was angezeigt wird. Auch ein Bestätigen von Events ist aktuell noch nicht möglich da wohl niemand weiß wie.

from opendtu.

ntfrnd avatar ntfrnd commented on August 24, 2024

Ok, die Events prinzipiell sind ja gut. Mich stört nur die numerische Anzeige, wo sich die Anzahl immer wieder ändert, aber nie verschwindet.
Das Icon mit der Anzahl wird doch auf der Weboberfläche befüllt, bzw. wo kommt die Anzahl her?

from opendtu.

stefan123t avatar stefan123t commented on August 24, 2024

@tbnobody das Bestätigen kann mE mit dem MainCmd DevControl 0x51 SubCmd Type_CleanState_LockAndAlarm 0x14 erledigen bzw zurück setzen.
Evtl wird dabei auch YieldDaily resettet.
Hier der Link zum Discord von klahus1
https://discord.com/channels/984173303147155506/992022163307638887/1017502538267906129

from opendtu.

stefan123t avatar stefan123t commented on August 24, 2024

Alternativ kann beim MainCmd 0x15 DevInfo mit SubCmd RealTimeRunData_Debug 0x0B auch die AlarmSerialNumber mitgeben, das sagt dem Wechselrichter welche AlarmId bereits der DTU bekannt ist. Die wurde anfangs gerne als 0x0005 übergeben solange die Bedeutung unbekannt war.

Siehe zB hier https://github.com/stefan123t/ahoy/wiki/FAQ-Frequently-Asked-Questions#realtimerundata_debug--0x0b

from opendtu.

stefan123t avatar stefan123t commented on August 24, 2024

Die aktuelle Event ID (WarnSerNub) sollte wie in #104 beschrieben auf DTU Seite in den RealTimeRunData_Debug und anderen Nachrichten angepaßt werden.

RealTimeRunData_Debug | 0x0B

7E 15 81101507 81101507 80 0B00 62D806FB 0000 259C 00000000 2C1A 56 7F
^^--------------------------------------------------------------------- SOF Start of Frame 0x7E
   ^^------------------------------------------------------------------ MainCmd 0x15 REQ_ARW_DAT_ALL
      ^^^^^^^^--------------------------------------------------------- WR Serial ID
               ^^^^^^^^------------------------------------------------ DTU Serial ID
               ^^^^^^^^--------------------- DTU Serial ID wird vom NRF24 überschrieben, da initial vom Treiber gesetzt
                        ^^--------------------------------------------- MultiFrameID 0x80 = SingleFrame
                           ^^------------------------------------------ SubCmd bzw. DataType: 0x0B = RealTimeRunData_Debug, 0x0C RealTimeRunData_Reality
                             ^^---------------------------------------- rev Protocol Revision ?
                           ^^^^---------------------------------------- Control Mode ? immer zwei Byte im Gen3 Protokoll
                                ^^^^^^^^------------------------------- UNIX timestamp 62BE1CE0 -> 2022-07-01 00:00:00
                                         ^^^^-------------------------- Gap always 0x0000
                                              ^^^^--------------------- 0x0000, nur bei AlarmData: WarnSerNub (Warning Serial Number)
                                                                         // User data: the latest alarm serial number received on the same day
                                                   ^^^^^^^^------------ Password always 0x00000000
                                                            ^^^^------- CRC16 / CRC-Modbus über die UserData, excl. Frame ID!
                                                            ^^^^------- CRC16 / CRC-Modbus über die Daten, nach und excl. Frame ID!
                                                                 ^^---- CRC8
                                                                    ^^- EOF End of Frame 0x7F

AlarmData | 0x11 / AlarmUpdate | 0x12

15 74403329 78563412 80 1100 62D80183 0000 0000 00000000 0765 FE --- AlarmData 0x11
15 74403329 78563412 80 1200 62D80183 0000 0000 00000000 FFC4 2A --- AlarmUpdate 0x12
^^------------------------------------------------------------------ MainCmd 0x15 REQ_ARW_DAT_ALL
   ^^^^^^^^--------------------------------------------------------- WR Serial ID
            ^^^^^^^^------------------------------------------------ DTU Serial ID
                     ^^--------------------------------------------- MultiFrameID 0x80
                        ^^------------------------------------------ SubCmd bzw. DataType: 0x11 = AlarmData, 0x12 AlarmUpdate
                          ^^---------------------------------------- rev Protocol Revision ?
                             ^^^^^^^^------------------------------- UNIX timestamp 62BE1CE0 -> 2022-07-01 00:00:00
                                      ^^^^-------------------------- Gap always 0x0000
                                           ^^^^--------------------- 0x0000, nur bei AlarmData: WarnSerNub (Warning Serial Number)  
                                                ^^^^^^^^------------ Password always 0x0000
                                                         ^^^^------- CRC16 / CRC-Modbus über die UserData, excl. Frame ID!
                                                              ^^---- CRC8

Mit einem Delta der WarnSerNub kann man prüfen ob es neue Event Einträge auf WR Seite gibt.

    if(DataType == AlarmData)
    {
        //        temp_dat[18] = (u8)((CurRealAlarmNum + 1) / 0xff);
        //        temp_dat[19] = (u8)((CurRealAlarmNum + 1) % 0xff);
        temp_dat[18] = (u8)((WarnSerNub[PortNO]) / 0xff);
        temp_dat[19] = (u8)((WarnSerNub[PortNO]) % 0xff);
    }
    else
    {
        memset((u8 *) & (temp_dat[18]), 0, 2);  // User data: the latest alarm serial number received on the same day
    }

Die alten Events sollte man ggf. mit CleanState_LockAndAlarm zurücksetzen

CleanState_LockAndAlarm | 0x14

7E 51 81101507 81101507 81 14 00 D000 02 7F Type_CleanState_LockAndAlarm 0x14
^^------------------------------------------ SOF Start of Frame 0x7E
   ^^--------------------------------------- MainCmd 0x51 DEVCONTROL_ALL
      ^^^^^^^^------------------------------ WR Serial ID
               ^^^^^^^^--------------------- DTU Serial ID wird vom NRF24 überschrieben, da initial vom Treiber gesetzt
                        ^^------------------ Single Frame ID
                           ^^--------------- SubCmd siehe oben
                           ^^^^^------------ Control Mode ? immer zwei Byte im Gen3 Protokoll
                                 ^^^^------- CRC16 / CRC-Modbus über die Daten, nach und excl. Frame ID!
                                      ^^---- CRC8
                                         ^^- EOF End of Frame 0x7F

from opendtu.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.