Landis+Gyr GridStream Protocol: Difference between revisions
→Sync and Header: Removed 0x2A from the header since new packets were found as part of "New Discovery" YouTube video. |
→00FF 2A 55 Meter Data: Changed data tags based on discovery using IWR |
||
| (4 intermediate revisions by the same user not shown) | |||
| Line 45: | Line 45: | ||
|[11] '''11111111''' 1 | |[11] '''11111111''' 1 | ||
|} | |} | ||
----Using GNU Radio it was found that shortening the Sync requirements a bit and incorporating part of the header leads to the cleanest data for further downstream processing. The modified sync | ----Using GNU Radio it was found that shortening the Sync requirements a bit and incorporating part of the header leads to the cleanest data for further downstream processing. The modified sync in 8 bit chunks is shown below. These two sync's are both loaded into the '''PDU Align''' block and if either one is matched the full packet is passed downstream. | ||
{| class="wikitable" | {| class="wikitable" | ||
|+Sync Word used with GNURadio | |+Sync Word used with GNURadio for v4 | ||
!0xAA | !0xAA | ||
!0xAA | !0xAA | ||
!0x00 | |||
!0x5F | |||
!0xF | |||
|- | |||
|10101010 | |||
|10101010 | |||
|00000000 | |||
|01011111 | |||
|1111 | |||
|} | |||
{| class="wikitable" | |||
|+Sync Word used with GNURadio for v5 | |||
!0xAA | !0xAA | ||
!0xAA | !0xAA | ||
! | !0x00 | ||
! | !0x7F | ||
! | !0x1F | ||
|- | |- | ||
|10101010 | |10101010 | ||
|10101010 | |10101010 | ||
| | |00000000 | ||
| | |01111111 | ||
| | |11111 | ||
|} | |} | ||
----<br /> | ----<br /> | ||
==== | ====Packet Types and Structures==== | ||
----So far only two types of packets have been observed, a 0x55 and a 0xD5 packet. Multiple lengths and SubTypes of these are listed below. | ----Data is shown in Hexadecimal unless stated otherwise | ||
So far only two types of packets have been observed, a 0x55 and a 0xD5 packet. Multiple lengths and SubTypes of these exist, a few are listed below. | |||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
! | ! | ||
!Start of | |||
Frame | |||
!Type | !Type | ||
!Sub Type | |||
!Sequence | |||
! colspan="2" |Packets Purpose | |||
|- | |||
! | |||
|00FF | |||
|00 | |||
|81 or 85 | |||
|1 Byte | |||
| colspan="2" |Report Power Usage (Device Control Word DCW) | |||
|- | |||
! | |||
|00FF | |||
|01 | |||
|81 or 85 | |||
|1 Byte | |||
| colspan="2" |Report Power Usage (Device Control Word DCW) | |||
|- | |||
! | |||
|00FF | |||
|02 | |||
|81 or 85 | |||
|1 Byte | |||
| colspan="2" |Report Power Usage (Device Control Word DCW) | |||
|- | |||
! | |||
|00FF | |||
|03 | |||
|81 or 85 | |||
|1 Byte | |||
| colspan="2" |Report Power Usage (Device Control Word DCW) | |||
|- | |||
! | |||
!Start of | |||
Frame | |||
!Type | |||
!Sub Type | |||
!Length | !Length | ||
! | !Unknown | ||
!Packets Purpose | !Packets Purpose | ||
|- | |- | ||
!1 | !1 | ||
| | |00FF | ||
| | |2A | ||
| | |55 | ||
|0023 | |||
|30 | |||
|Report up-time and other unknown data | |Report up-time and other unknown data | ||
|- | |- | ||
!2 | !2 | ||
| | |00FF | ||
| | |2A | ||
| | |D5 | ||
| | |0047 | ||
|51 | |||
|Includes Epoch and Uptime | |||
|- | |- | ||
!3 | !3 | ||
| | |00FF | ||
| | |2A | ||
| | |D5 | ||
| | |00FD | ||
| | |C0 | ||
| | | | ||
|} | |} | ||
| Line 195: | Line 185: | ||
---- | ---- | ||
==== | ====00FF 2A 55 Meter Data==== | ||
The data below was captured from the same meter (F0EE36DB) and shows some of the values that can change with each transmission. Different meters have different fixed data and some of the data changes less frequently as well. | The data below was captured from the same meter (F0EE36DB) and shows some of the values that can change with each transmission. Different meters have different fixed data and some of the data changes less frequently as well. | ||
{| class="wikitable" | {| class="wikitable" | ||
| Line 201: | Line 191: | ||
0x55 Captured packets from Meter F0EE36DB (Oncor) | 0x55 Captured packets from Meter F0EE36DB (Oncor) | ||
! rowspan="3" |Pkt | ! rowspan="3" |Pkt | ||
!0 | |||
!1 | !1 | ||
!2 | !2 | ||
| Line 218: | Line 209: | ||
!16 | !16 | ||
|- | |- | ||
! colspan=" | ! colspan="4" |Not part of CRC calc | ||
! colspan=" | ! colspan="9" |Data Packet | ||
! colspan=" | ! colspan="3" |Trailing 6 Bytes | ||
! | |||
|- | |- | ||
! | !Start of | ||
Frame | |||
!Type | !Type | ||
!SubType | |||
!Length | !Length | ||
! | !Unknown | ||
!Unknown | !Unknown | ||
!WAN Address | !WAN Address | ||
| Line 241: | Line 235: | ||
|- | |- | ||
!1 | !1 | ||
| | |00FF | ||
|2A | |||
|55 | |55 | ||
|0023 | |0023 | ||
| Line 259: | Line 254: | ||
|- | |- | ||
!2 | !2 | ||
| | |00FF | ||
|2A | |||
|55 | |55 | ||
|0023 | |0023 | ||
| Line 277: | Line 273: | ||
|- | |- | ||
!3 | !3 | ||
| | |00FF | ||
|2A | |||
|55 | |55 | ||
|0023 | |0023 | ||
| Line 295: | Line 292: | ||
|- | |- | ||
!4 | !4 | ||
| | |00FF | ||
|2A | |||
|55 | |55 | ||
|0023 | |0023 | ||
| Line 313: | Line 311: | ||
|- | |- | ||
!5 | !5 | ||
| | |00FF | ||
|2A | |||
|55 | |55 | ||
|0023 | |0023 | ||
| Line 331: | Line 330: | ||
|- | |- | ||
!6 | !6 | ||
| | |00FF | ||
|2A | |||
|55 | |55 | ||
|0023 | |0023 | ||
| Line 349: | Line 349: | ||
|- | |- | ||
!7 | !7 | ||
| | |00FF | ||
|2A | |||
|55 | |55 | ||
|0023 | |0023 | ||
| Line 367: | Line 368: | ||
|- | |- | ||
!8 | !8 | ||
| | |00FF | ||
|2A | |||
|55 | |55 | ||
|0023 | |0023 | ||
| Line 385: | Line 387: | ||
|- | |- | ||
!9 | !9 | ||
| | |00FF | ||
|2A | |||
|55 | |55 | ||
|0023 | |0023 | ||
| Line 403: | Line 406: | ||
|- | |- | ||
!10 | !10 | ||
| | |00FF | ||
|2A | |||
|55 | |55 | ||
|0023 | |0023 | ||
| Line 438: | Line 442: | ||
|+0x55 Captured packets from Meter 5021D005 (Coserv) | |+0x55 Captured packets from Meter 5021D005 (Coserv) | ||
! rowspan="3" |Pkt | ! rowspan="3" |Pkt | ||
!0 | |||
!1 | !1 | ||
!2 | !2 | ||
| Line 455: | Line 460: | ||
!16 | !16 | ||
|- | |- | ||
! colspan=" | ! colspan="4" |Not part of CRC calc | ||
! colspan=" | ! colspan="9" |Data Packet | ||
! colspan=" | ! colspan="3" |Trailing 6 Bytes | ||
! | |||
|- | |- | ||
! | !Start of | ||
Frame | |||
!Type | !Type | ||
!SubType | |||
!Length | !Length | ||
! | !Unknown | ||
!Unknown | !Unknown | ||
!WAN Address | !WAN Address | ||
| Line 478: | Line 486: | ||
|- | |- | ||
!1 | !1 | ||
| | |00FF | ||
|2A | |||
|55 | |55 | ||
|0023 | |0023 | ||
| Line 496: | Line 505: | ||
|- | |- | ||
!2 | !2 | ||
| | |00FF | ||
|2A | |||
|55 | |55 | ||
|0023 | |0023 | ||
| Line 514: | Line 524: | ||
|- | |- | ||
!3 | !3 | ||
| | |00FF | ||
|2A | |||
|55 | |55 | ||
|0023 | |0023 | ||
| Line 532: | Line 543: | ||
|- | |- | ||
!4 | !4 | ||
| | |00FF | ||
|2A | |||
|55 | |55 | ||
|0023 | |0023 | ||
| Line 550: | Line 562: | ||
|- | |- | ||
!5 | !5 | ||
| | |00FF | ||
|2A | |||
|55 | |55 | ||
|0023 | |0023 | ||
| Line 567: | Line 580: | ||
|04 | |04 | ||
|- | |- | ||
! colspan=" | ! colspan="18" |Power restored after an outage | ||
|- | |- | ||
!6 | !6 | ||
| | |00FF | ||
|2A | |||
|55 | |55 | ||
|0023 | |0023 | ||
| Line 588: | Line 602: | ||
|- | |- | ||
!7 | !7 | ||
| | |00FF | ||
|2A | |||
|55 | |55 | ||
|0023 | |0023 | ||
| Line 606: | Line 621: | ||
|- | |- | ||
!8 | !8 | ||
| | |00FF | ||
|2A | |||
|55 | |55 | ||
|0023 | |0023 | ||
| Line 624: | Line 640: | ||
|- | |- | ||
!9 | !9 | ||
| | |00FF | ||
|2A | |||
|55 | |55 | ||
|0023 | |0023 | ||
| Line 642: | Line 659: | ||
|- | |- | ||
!10 | !10 | ||
| | |00FF | ||
|2A | |||
|55 | |55 | ||
|0023 | |0023 | ||
| Line 661: | Line 679: | ||
---- | ---- | ||
==== | ====00FF 2A D5 Meter Data==== | ||
There appear to be multiple packet lengths and styles for the 0xD5 packet. Some samples shown below, [https://wiki.recessim.com/w/images/9/9e/D5-Packets-Table-F03B9FFB.txt download as a txt file]. | There appear to be multiple packet lengths and styles for the 0xD5 packet. Some samples shown below, [https://wiki.recessim.com/w/images/9/9e/D5-Packets-Table-F03B9FFB.txt download as a txt file]. | ||
{| class="wikitable" | {| class="wikitable" | ||
| Line 667: | Line 685: | ||
! rowspan="3" |Pkt | ! rowspan="3" |Pkt | ||
!1 | !1 | ||
! | |||
!2 | !2 | ||
!3 | !3 | ||
| Line 679: | Line 698: | ||
! colspan="2" | | ! colspan="2" | | ||
|- | |- | ||
! colspan=" | ! colspan="4" |Not part of CRC calc | ||
! colspan="9" |CRC'd Data | ! colspan="9" |CRC'd Data | ||
!CRC | !CRC | ||
! colspan="2" | | ! colspan="2" | | ||
|- | |- | ||
! | !Start of | ||
Frame | |||
!Type | !Type | ||
!SubType | |||
!Length | !Length | ||
! | !Unknown | ||
!DST Meter | !DST Meter | ||
!SRC Meter | !SRC Meter | ||
| Line 700: | Line 721: | ||
|- | |- | ||
|1 | |1 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>0011</code> | |<code>0011</code> | ||
| Line 717: | Line 739: | ||
|- | |- | ||
|2 | |2 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>0011</code> | |<code>0011</code> | ||
| Line 734: | Line 757: | ||
|- | |- | ||
|3 | |3 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>0011</code> | |<code>0011</code> | ||
| Line 751: | Line 775: | ||
|- | |- | ||
|4 | |4 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>0016</code> | |<code>0016</code> | ||
| Line 768: | Line 793: | ||
|- | |- | ||
|5 | |5 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>0016</code> | |<code>0016</code> | ||
| Line 785: | Line 811: | ||
|- | |- | ||
|6 | |6 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>0016</code> | |<code>0016</code> | ||
| Line 802: | Line 829: | ||
|- | |- | ||
|7 | |7 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>0016</code> | |<code>0016</code> | ||
| Line 819: | Line 847: | ||
|- | |- | ||
|8 | |8 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>0017</code> | |<code>0017</code> | ||
| Line 836: | Line 865: | ||
|- | |- | ||
|9 | |9 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>0017</code> | |<code>0017</code> | ||
| Line 853: | Line 883: | ||
|- | |- | ||
|10 | |10 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>0017</code> | |<code>0017</code> | ||
| Line 870: | Line 901: | ||
|- | |- | ||
|11 | |11 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>0017</code> | |<code>0017</code> | ||
| Line 887: | Line 919: | ||
|- | |- | ||
|12 | |12 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>001C</code> | |<code>001C</code> | ||
| Line 904: | Line 937: | ||
|- | |- | ||
|13 | |13 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>001C</code> | |<code>001C</code> | ||
| Line 921: | Line 955: | ||
|- | |- | ||
|14 | |14 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>001C</code> | |<code>001C</code> | ||
| Line 938: | Line 973: | ||
|- | |- | ||
|15 | |15 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>001C</code> | |<code>001C</code> | ||
| Line 955: | Line 991: | ||
|- | |- | ||
|16 | |16 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>001C</code> | |<code>001C</code> | ||
| Line 972: | Line 1,009: | ||
|- | |- | ||
|17 | |17 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>001C</code> | |<code>001C</code> | ||
| Line 989: | Line 1,027: | ||
|- | |- | ||
|18 | |18 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>001C</code> | |<code>001C</code> | ||
| Line 1,006: | Line 1,045: | ||
|- | |- | ||
|19 | |19 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>001C</code> | |<code>001C</code> | ||
| Line 1,023: | Line 1,063: | ||
|- | |- | ||
|20 | |20 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>001C</code> | |<code>001C</code> | ||
| Line 1,040: | Line 1,081: | ||
|- | |- | ||
|21 | |21 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>001C</code> | |<code>001C</code> | ||
| Line 1,057: | Line 1,099: | ||
|- | |- | ||
|22 | |22 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>001D</code> | |<code>001D</code> | ||
| Line 1,074: | Line 1,117: | ||
|- | |- | ||
|23 | |23 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>001D</code> | |<code>001D</code> | ||
| Line 1,091: | Line 1,135: | ||
|- | |- | ||
|24 | |24 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>001D</code> | |<code>001D</code> | ||
| Line 1,108: | Line 1,153: | ||
|- | |- | ||
|25 | |25 | ||
|<code> | |<code>00FF</code> | ||
|<code>2A</code> | |||
|<code>D5</code> | |<code>D5</code> | ||
|<code>001D</code> | |<code>001D</code> | ||
| Line 1,129: | Line 1,175: | ||
! rowspan="3" |Pkt | ! rowspan="3" |Pkt | ||
!1 | !1 | ||
! | |||
!2 | !2 | ||
!3 | !3 | ||
| Line 1,148: | Line 1,195: | ||
!17 | !17 | ||
|- | |- | ||
! colspan=" | ! colspan="4" |Not part of CRC calc | ||
! colspan=" | ! colspan="12" |Data Packet (Oncor Meter) | ||
! colspan=" | ! colspan="3" |Trailing 6 Bytes | ||
! | |||
|- | |- | ||
! | !Start of | ||
Frame | |||
!Type | !Type | ||
!SubType | |||
!Length | !Length | ||
! | !Unknown | ||
!Meter ID1 | !Meter ID1 | ||
!Meter ID2 | !Meter ID2 | ||
| Line 1,176: | Line 1,226: | ||
|- | |- | ||
!1 | !1 | ||
| | |00FF | ||
|2A | |||
|D5 | |D5 | ||
|0047 | |0047 | ||
| Line 1,197: | Line 1,248: | ||
|- | |- | ||
!2 | !2 | ||
| | |00FF | ||
|2A | |||
|D5 | |D5 | ||
|0047 | |0047 | ||
| Line 1,218: | Line 1,270: | ||
|- | |- | ||
!3 | !3 | ||
| | |00FF | ||
|2A | |||
|D5 | |D5 | ||
|0047 | |0047 | ||
| Line 1,238: | Line 1,291: | ||
|00 | |00 | ||
|- | |- | ||
! colspan=" | ! colspan="5" | | ||
! colspan="14" |Payload (CoServ Meter) | ! colspan="14" |Payload (CoServ Meter) | ||
! colspan="2" | | ! colspan="2" | | ||
|- | |- | ||
!4 | !4 | ||
| | |00FF | ||
|2A | |||
|D5 | |D5 | ||
|0047 | |0047 | ||
| Line 1,264: | Line 1,318: | ||
|- | |- | ||
!5 | !5 | ||
| | |00FF | ||
|2A | |||
|D5 | |D5 | ||
|0047 | |0047 | ||
| Line 1,285: | Line 1,340: | ||
|- | |- | ||
!6 | !6 | ||
| | |00FF | ||
|2A | |||
|D5 | |D5 | ||
|0047 | |0047 | ||
| Line 1,323: | Line 1,379: | ||
===Data captures=== | ===Data captures=== | ||
'''''*Note: This file does not contain the trailing bytes shown in the captures above, it stops at the 16 bit Checksum.''''' | '''''*Note: This file does not contain the trailing bytes shown in the captures above, it stops at the 16 bit Checksum.''''' | ||
[https://wiki.recessim.com/w/images/ | ====Dallas==== | ||
[https://wiki.recessim.com/w/images/9/9b/Oncor_Capture_01-07-2023_30hrs.zip Oncor Capture 01-07-2023 30hrs (CONTAINS NEW PACKETS)] | |||
====Austin==== | ====Austin==== | ||