mirror of
https://github.com/SpudGunMan/meshing-around.git
synced 2026-03-28 17:32:36 +01:00
53 lines
2.0 KiB
Python
53 lines
2.0 KiB
Python
# file name: send-environment-metrics.py
|
|
# https://github.com/pdxlocations/Meshtastic-Python-Examples/blob/main/send-environment-metrics.py
|
|
|
|
from meshtastic.protobuf import portnums_pb2, telemetry_pb2
|
|
from meshtastic import BROADCAST_ADDR
|
|
import time
|
|
|
|
# For connection over serial
|
|
# import meshtastic.serial_interface
|
|
# interface = meshtastic.serial_interface.SerialInterface()
|
|
|
|
# For connection over TCP
|
|
import meshtastic.tcp_interface
|
|
interface = meshtastic.tcp_interface.TCPInterface(hostname='127.0.0.1', noProto=False)
|
|
|
|
# Create a telemetry data object
|
|
telemetry_data = telemetry_pb2.Telemetry()
|
|
telemetry_data.time = int(time.time())
|
|
#telemetry_data.local_stats.upTime = 0
|
|
telemetry_data.environment_metrics.temperature = 0
|
|
# telemetry_data.environment_metrics.voltage = 0
|
|
# telemetry_data.environment_metrics.current = 0
|
|
# telemetry_data.environment_metrics.relative_humidity = 0
|
|
# telemetry_data.environment_metrics.barometric_pressure = 0
|
|
# telemetry_data.environment_metrics.gas_resistance = 0
|
|
# telemetry_data.environment_metrics.iaq = 0
|
|
# telemetry_data.environment_metrics.distance = 0
|
|
# telemetry_data.environment_metrics.lux = 0
|
|
# telemetry_data.environment_metrics.white_lux = 0
|
|
# telemetry_data.environment_metrics.ir_lux = 0
|
|
# telemetry_data.environment_metrics.uv_lux = 0
|
|
# telemetry_data.environment_metrics.wind_direction = 0
|
|
# telemetry_data.environment_metrics.wind_speed = 0
|
|
# telemetry_data.environment_metrics.wind_gust = 0
|
|
# telemetry_data.environment_metrics.wind_lull = 0
|
|
# telemetry_data.environment_metrics.weight = 0
|
|
|
|
# Read the uptime
|
|
# with open('/proc/uptime', 'r') as uptime:
|
|
# telemetry_data.local_stats.upTime = int(float(uptime.readline().split()[0]))
|
|
|
|
# Read the CPU temperature
|
|
with open('/sys/class/thermal/thermal_zone0/temp', 'r') as cpu_temp:
|
|
telemetry_data.environment_metrics.temperature = int(cpu_temp.read()) / 1000
|
|
|
|
interface.sendData(
|
|
telemetry_data,
|
|
destinationId=BROADCAST_ADDR,
|
|
portNum=portnums_pb2.PortNum.TELEMETRY_APP,
|
|
wantResponse=False,
|
|
)
|
|
|
|
interface.close() |