Comments (5)
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.
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.
@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.
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.
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)
- Interrupt received with CMT2300A HOT 2
- HMS-800-2T HOT 14
- /api/livedata/status -> too many decimal places via web query HOT 3
- [Request] Add support for TSUN TSOL_MS2000 inverter HOT 3
- "HMS-400BM" recognized as "HMS-500-1T v2" HOT 12
- MQTT connection lost, laggy web interface, restart required HOT 7
- _isAllEnabledProducing and _isAllEnabledReachable are true without connection to inverter HOT 4
- crashes especially after firmware update at tcp_update_rcv_ann_wnd HOT 4
- Version v24.8.1 läst sich nicht mit VSC neu bauen. HOT 3
- keine WLAN-Verbindung zum Ziel-WLAN HOT 21
- Nach WLAN-Router Neustart keine Verbindung mit der DTU HOT 55
- [Request] IPv6 support HOT 13
- nRF24 Chip-Status not connected HOT 5
- [Request] fail-safe limit option HOT 1
- HMT 2250 6T - connected but no data displayed HOT 4
- WiFi issue still exists HOT 45
- Überschusseinspeisung nur bei Netzfreqenz kleiner 50 Hz HOT 2
- "Poll interval" - Fix documentation or code HOT 2
- [Request] do not use night time if date is in the year 1970 HOT 2
- 2 HM WR - HMS-2000-4T wird nicht erkannt der HM-1500-4T aber schon HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from opendtu.