Skip to content

Commit

Permalink
Remove obsolete and duplicated create_datalines_from_raw_unpacked_data()
Browse files Browse the repository at this point in the history
  • Loading branch information
aapris committed Jun 13, 2024
1 parent d6e4c29 commit d011c03
Show file tree
Hide file tree
Showing 15 changed files with 24 additions and 199 deletions.
14 changes: 1 addition & 13 deletions fvhiot/parsers/dlmbx.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import binascii
from typing import Optional
from zoneinfo import ZoneInfo
# from ..utils.lorawan.thingpark import get_uplink_obj


PROTOCOL_VERSION = 2

Expand Down Expand Up @@ -54,18 +54,6 @@ def decode_hex(hex_str: str, port: int):
return parse_dlmbx(hex_str, port)


def create_datalines_from_raw_unpacked_data(unpacked_data: dict) -> list:
"""
parse raw data from unpacked_data
Return well-known parsed data formatted list of data and packet timestamp
"""
uplink_obj = get_uplink_obj(unpacked_data)
datalines = create_datalines(uplink_obj.payload_hex, port=uplink_obj.FPort, time_str=uplink_obj.Time)
packet_timestamp = datetime.datetime.strptime(uplink_obj.Time, "%Y-%m-%dT%H:%M:%S.%f%z")

return packet_timestamp, datalines


def create_datalines(hex_str: str, port: int, time_str: Optional[str] = None) -> list:
"""
Return well-known parsed data formatted list of data, e.g.
Expand Down
13 changes: 0 additions & 13 deletions fvhiot/parsers/dlpm.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import struct
from typing import Optional
from zoneinfo import ZoneInfo
from ..utils.lorawan.thingpark import get_uplink_obj

PROTOCOL_VERSION = 2

Expand Down Expand Up @@ -94,18 +93,6 @@ def decode_hex(hex_str: str, port: int) -> dict:
return parse_decentlab_pm(hex_str, port)


def create_datalines_from_raw_unpacked_data(unpacked_data: dict) -> list:
"""
parse raw data from unpacked_data
Return well-known parsed data formatted list of data and packet timestamp
"""
uplink_obj = get_uplink_obj(unpacked_data)
datalines = create_datalines(uplink_obj.payload_hex, port=uplink_obj.FPort, time_str=uplink_obj.Time)
packet_timestamp = datetime.datetime.strptime(uplink_obj.Time, "%Y-%m-%dT%H:%M:%S.%f%z")

return packet_timestamp, datalines


def create_datalines(hex_str: str, port: int, time_str: Optional[str] = None) -> list:
"""
Return well-known parsed data formatted list of data, e.g.
Expand Down
14 changes: 1 addition & 13 deletions fvhiot/parsers/dlsoil.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
https://www.decentlab.com/products/soil-moisture-temperature-and-electrical-conductivity-sensor-for-lorawan
https://github.com/decentlab/decentlab-decoders/blob/master/DL-TRS12/DL-TRS12.py
"""

import binascii
import datetime
import re
import struct
from typing import Optional
from zoneinfo import ZoneInfo
from ..utils.lorawan.thingpark import get_uplink_obj

PROTOCOL_VERSION = 2

Expand Down Expand Up @@ -111,18 +111,6 @@ def decode_hex(hex_str: str, port: int) -> dict:
return parse_decentlab_soil(hex_str, port)


def create_datalines_from_raw_unpacked_data(unpacked_data: dict) -> list:
"""
parse raw data from unpacked_data
Return well-known parsed data formatted list of data and packet timestamp
"""
uplink_obj = get_uplink_obj(unpacked_data)
datalines = create_datalines(uplink_obj.payload_hex, port=uplink_obj.FPort, time_str=uplink_obj.Time)
packet_timestamp = datetime.datetime.strptime(uplink_obj.Time, "%Y-%m-%dT%H:%M:%S.%f%z")

return packet_timestamp, datalines


def create_datalines(hex_str: str, port: int, time_str: Optional[str] = None) -> list:
"""
Return well-known parsed data formatted list of data, e.g.
Expand Down
13 changes: 0 additions & 13 deletions fvhiot/parsers/elsys.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import datetime
from zoneinfo import ZoneInfo
from typing import Optional
from ..utils.lorawan.thingpark import get_uplink_obj

id_name_map = {
"01": "temp", # temp 2 bytes -3276.8°C -->3276.7°C
Expand Down Expand Up @@ -98,18 +97,6 @@ def decode_hex(hex_str: str, port: int):
return parse_elsys(hex_str, port)


def create_datalines_from_raw_unpacked_data(unpacked_data: dict) -> list:
"""
parse raw data from unpacked_data
Return well-known parsed data formatted list of data and packet timestamp
"""
uplink_obj = get_uplink_obj(unpacked_data)
datalines = create_datalines(uplink_obj.payload_hex, port=uplink_obj.FPort, time_str=uplink_obj.Time)
packet_timestamp = datetime.datetime.strptime(uplink_obj.Time, "%Y-%m-%dT%H:%M:%S.%f%z")

return packet_timestamp, datalines


def create_datalines(hex_str: str, port: int, time_str: Optional[str] = None) -> list:
"""
Return well-known parsed data formatted list of data, e.g.
Expand Down
13 changes: 0 additions & 13 deletions fvhiot/parsers/energiaburk.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
import struct
from typing import Optional
from zoneinfo import ZoneInfo
from ..utils.lorawan.thingpark import get_uplink_obj


def hex2int(hex_str: str) -> int:
Expand Down Expand Up @@ -279,18 +278,6 @@ def decode_hex(hex_str: str, port: int) -> dict:
return parse_energiaburk(hex_str, port)


def create_datalines_from_raw_unpacked_data(unpacked_data: dict) -> list:
"""
parse raw data from unpacked_data
Return well-known parsed data formatted list of data and packet timestamp
"""
uplink_obj = get_uplink_obj(unpacked_data)
datalines = create_datalines(uplink_obj.payload_hex, port=uplink_obj.FPort, time_str=uplink_obj.Time)
packet_timestamp = datetime.datetime.strptime(uplink_obj.Time, "%Y-%m-%dT%H:%M:%S.%f%z")

return packet_timestamp, datalines


def create_datalines(hex_str: str, port: int, time_str: Optional[str] = None) -> list:
"""
Return well-known parsed data formatted list of data, e.g.
Expand Down
14 changes: 1 addition & 13 deletions fvhiot/parsers/fvhgeneric.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@
Check internal documentation for now.
TODO: add documentation to here too.
"""

import datetime
from typing import Optional
from zoneinfo import ZoneInfo
from ..utils.lorawan.thingpark import get_uplink_obj


FVHGENERIC_CSV = """ID;Table;Name;Size;Units
Expand Down Expand Up @@ -73,18 +73,6 @@ def decode_hex(hex_str: str, port: int) -> dict:
return parse_fvhgeneric(hex_str, port=port)


def create_datalines_from_raw_unpacked_data(unpacked_data: dict) -> list:
"""
parse raw data from unpacked_data
Return well-known parsed data formatted list of data and packet timestamp
"""
uplink_obj = get_uplink_obj(unpacked_data)
datalines = create_datalines(uplink_obj.payload_hex, port=uplink_obj.FPort, time_str=uplink_obj.Time)
packet_timestamp = datetime.datetime.strptime(uplink_obj.Time, "%Y-%m-%dT%H:%M:%S.%f%z")

return packet_timestamp, datalines


def create_datalines(hex_str: str, port: int, time_str: Optional[str] = None) -> list:
"""
Return well-known parsed data formatted list of data, e.g.
Expand Down
13 changes: 0 additions & 13 deletions fvhiot/parsers/iotpetri.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
import datetime
from typing import Optional
from zoneinfo import ZoneInfo
from ..utils.lorawan.thingpark import get_uplink_obj


def parse_paxcounter(hex_str: str, port: int) -> dict:
Expand All @@ -53,18 +52,6 @@ def decode_hex(hex_str: str, port: int) -> dict:
return parse_paxcounter(hex_str, port)


def create_datalines_from_raw_unpacked_data(unpacked_data: dict) -> list:
"""
parse raw data from unpacked_data
Return well-known parsed data formatted list of data and packet timestamp
"""
uplink_obj = get_uplink_obj(unpacked_data)
datalines = create_datalines(uplink_obj.payload_hex, port=uplink_obj.FPort, time_str=uplink_obj.Time)
packet_timestamp = datetime.datetime.strptime(uplink_obj.Time, "%Y-%m-%dT%H:%M:%S.%f%z")

return packet_timestamp, datalines


def create_datalines(hex_str: str, port: int, time_str: Optional[str] = None) -> list:
"""
Return well-known parsed data formatted list of data, e.g.
Expand Down
14 changes: 1 addition & 13 deletions fvhiot/parsers/lht65.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@
See example here:
https://www.dragino.com/downloads/downloads/LHT65/UserManual/LHT65_Temperature_Humidity_Sensor_UserManual_v1.3.pdf
"""

import datetime
from typing import Optional
from zoneinfo import ZoneInfo
from ..utils.lorawan.thingpark import get_uplink_obj


def parse_lht65(payload_hex: str, port: int) -> dict:
Expand Down Expand Up @@ -39,18 +39,6 @@ def decode_hex(hex_str: str, port: int) -> dict:
return parse_lht65(hex_str, port)


def create_datalines_from_raw_unpacked_data(unpacked_data: dict) -> list:
"""
parse raw data from unpacked_data
Return well-known parsed data formatted list of data and packet timestamp
"""
uplink_obj = get_uplink_obj(unpacked_data)
datalines = create_datalines(uplink_obj.payload_hex, port=uplink_obj.FPort, time_str=uplink_obj.Time)
packet_timestamp = datetime.datetime.strptime(uplink_obj.Time, "%Y-%m-%dT%H:%M:%S.%f%z")

return packet_timestamp, datalines


def create_datalines(hex_str: str, port: int, time_str: Optional[str] = None) -> list:
"""
Return well-known parsed data formatted list of data, e.g.
Expand Down
13 changes: 0 additions & 13 deletions fvhiot/parsers/marjetas.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import datetime
from typing import Optional
from zoneinfo import ZoneInfo
from ..utils.lorawan.thingpark import get_uplink_obj


def parse_marjetas(hex_str: str, port: int) -> dict:
Expand Down Expand Up @@ -49,18 +48,6 @@ def decode_hex(hex_str: str, port: int) -> dict:
return parse_marjetas(hex_str, port)


def create_datalines_from_raw_unpacked_data(unpacked_data: dict) -> list:
"""
parse raw data from unpacked_data
Return well-known parsed data formatted list of data and packet timestamp
"""
uplink_obj = get_uplink_obj(unpacked_data)
datalines = create_datalines(uplink_obj.payload_hex, port=uplink_obj.FPort, time_str=uplink_obj.Time)
packet_timestamp = datetime.datetime.strptime(uplink_obj.Time, "%Y-%m-%dT%H:%M:%S.%f%z")

return packet_timestamp, datalines


def create_datalines(hex_str: str, port: int, time_str: Optional[str] = None) -> list:
"""
Return well-known parsed data formatted list of data, e.g.
Expand Down
13 changes: 0 additions & 13 deletions fvhiot/parsers/mcf88.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
import struct
from typing import Optional
from zoneinfo import ZoneInfo
from ..utils.lorawan.thingpark import get_uplink_obj


def extract_bits(value: int, first: int, last: int) -> int:
Expand Down Expand Up @@ -98,18 +97,6 @@ def decode_hex(hex_str: str, port: int) -> Optional[list]:
return parse_mcf88(hex_str, port)


def create_datalines_from_raw_unpacked_data(unpacked_data: dict) -> list:
"""
parse raw data from unpacked_data
Return well-known parsed data formatted list of data and packet timestamp
"""
uplink_obj = get_uplink_obj(unpacked_data)
datalines = create_datalines(uplink_obj.payload_hex, port=uplink_obj.FPort, time_str=uplink_obj.Time)
packet_timestamp = datetime.datetime.strptime(uplink_obj.Time, "%Y-%m-%dT%H:%M:%S.%f%z")

return packet_timestamp, datalines


def create_datalines(hex_str: str, port: int, time_str: Optional[str] = None) -> list:
"""
Return well-known parsed data formatted list of data.
Expand Down
13 changes: 0 additions & 13 deletions fvhiot/parsers/meteohelix.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import datetime
from typing import Optional
from zoneinfo import ZoneInfo
from ..utils.lorawan.thingpark import get_uplink_obj


def parse_meteohelix(hex_str: str, port: int) -> dict:
Expand Down Expand Up @@ -65,18 +64,6 @@ def decode_hex(hex_str: str, port: int) -> dict:
return parse_meteohelix(hex_str, port)


def create_datalines_from_raw_unpacked_data(unpacked_data: dict) -> list:
"""
parse raw data from unpacked_data
Return well-known parsed data formatted list of data and packet timestamp
"""
uplink_obj = get_uplink_obj(unpacked_data)
datalines = create_datalines(uplink_obj.payload_hex, port=uplink_obj.FPort, time_str=uplink_obj.Time)
packet_timestamp = datetime.datetime.strptime(uplink_obj.Time, "%Y-%m-%dT%H:%M:%S.%f%z")

return packet_timestamp, datalines


def create_datalines(hex_str: str, port: int, time_str: Optional[str] = None) -> list:
"""
Return well-known parsed data formatted list of data, e.g.
Expand Down
35 changes: 18 additions & 17 deletions fvhiot/parsers/milesight.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
https://github.com/Milesight-IoT/SensorDecoders/blob/main/EM_Series/EM300_Series/EM300-TH/EM300-TH_Decoder.js
Parser for Milesight-EM310-UDL data format
https://github.com/Milesight-IoT/SensorDecoders/blob/main/EM_Series/EM300_Series/EM310-UDL/EM310-UDL_Decoder.js
Parser for Milesight-EM400-TLD data format
https://github.com/Milesight-IoT/SensorDecoders/blob/main/EM_Series/EM400_Series/EM400-TLD/EM400-TLD_Decoder.js
"""

import datetime
Expand Down Expand Up @@ -42,38 +44,38 @@ def parse_milesight(hex_str: str, port: int) -> dict:
i += 1
# EM300-TH temperature and humidity sensor
elif channel_id == 0x03 and channel_type == 0x67:
data["temperature"] = read_int16_le(byte_data[i: i + 2]) / 10.0
data["temperature"] = read_int16_le(byte_data[i : i + 2]) / 10.0
i += 2
elif channel_id == 0x04 and channel_type == 0x68:
data["humidity"] = byte_data[i] / 2.0
i += 1
# EM310-UDL ultrasonic distance sensor
elif channel_id == 0x03 and channel_type == 0x82:
data['distance'] = read_uint16_le(byte_data[i:i + 2])
data["distance"] = read_uint16_le(byte_data[i : i + 2])
i += 2
elif channel_id == 0x04 and channel_type == 0x00:
data['position'] = 0 if byte_data[i] == 0 else 1
data["position"] = 0 if byte_data[i] == 0 else 1
i += 1
# EM400-TLD
elif channel_id == 0x04 and channel_type == 0x82:
data['distance'] = read_uint16_le(byte_data[i:i + 2])
data["distance"] = read_uint16_le(byte_data[i : i + 2])
i += 2
elif channel_id == 0x05 and channel_type == 0x00:
data['position'] = 0 if byte_data[i] == 0 else 1
data["position"] = 0 if byte_data[i] == 0 else 1
i += 1
elif channel_id == 0x83 and channel_type == 0x67:
data["temperature"] = read_int16_le(byte_data[i: i + 2]) / 10.0
data["temperature"] = read_int16_le(byte_data[i : i + 2]) / 10.0
data["temperature_abnormal"] = byte_data[i + 2]
i += 3
elif channel_id == 0x84 and channel_type == 0x82:
data['distance'] = read_uint16_le(byte_data[i:i + 2])
data['distance_alarming'] = byte_data[i + 2]
data["distance"] = read_uint16_le(byte_data[i : i + 2])
data["distance_alarming"] = byte_data[i + 2]
i += 3
elif channel_id == 0x20 and channel_type == 0xCE:
point = {
"timestamp": read_uint32_le(byte_data[i: i + 4]),
"temperature": read_int16_le(byte_data[i + 4: i + 6]) / 10.0,
"humidity": byte_data[i + 6] / 2.0
"timestamp": read_uint32_le(byte_data[i : i + 4]),
"temperature": read_int16_le(byte_data[i + 4 : i + 6]) / 10.0,
"humidity": byte_data[i + 6] / 2.0,
}
if "history" not in data:
data["history"] = []
Expand Down Expand Up @@ -132,13 +134,12 @@ def main(samples: list):
import sys

examples = [
["0367e70004684d", 85],
["0367ed0004684b", 85],
["0367f100046847", 85],
["0175640367f500046866", 85],
["0367e70004684d", 85], # { "temperature": 23.1, "humidity": 38.5}
["0367ed0004684b", 85], # { "temperature": 23.7, "humidity": 37.5}
["0367f100046847", 85], # { "temperature": 24.1, "humidity": 35.5}
["0175640367f500046866", 85], #{ "battery": 100, "temperature": 24.5, "humidity": 51.0}
["01755C03824408040000", 85], # {"battery": 92, "distance": 2116, "position": 0}
["01755C0367010104824408050001", 85], # {"battery":92,"temperature":25.7,"distance":2116,"position":1}
["8367e800018482410601", 85],
# --> {"temperature": 23.2, "temperature_abnormal": 1, "distance": 1601, "distance_alarming": 1}
["8367e800018482410601", 85], # {"temperature": 23.2, "temperature_abnormal": 1, "distance": 1601, "distance_alarming": 1}

Check failure on line 143 in fvhiot/parsers/milesight.py

View workflow job for this annotation

GitHub Actions / tests (3.10)

Ruff (E501)

fvhiot/parsers/milesight.py:143:121: E501 Line too long (131 > 120)

Check failure on line 143 in fvhiot/parsers/milesight.py

View workflow job for this annotation

GitHub Actions / tests (3.11)

Ruff (E501)

fvhiot/parsers/milesight.py:143:121: E501 Line too long (131 > 120)

Check failure on line 143 in fvhiot/parsers/milesight.py

View workflow job for this annotation

GitHub Actions / tests (3.12)

Ruff (E501)

fvhiot/parsers/milesight.py:143:121: E501 Line too long (131 > 120)
]
main(examples)
Loading

0 comments on commit d011c03

Please sign in to comment.