engineai_fleet/agent/.env.deployed
2026-08-27 16:24:12 +04:00

155 lines
6.4 KiB
Plaintext

# ============================================================================
# .env.deployed — a REDACTED snapshot of the .env actually running on the
# robot at /opt/sanad_api_eng/.env (mode 600, root).
#
# This is the real deployed configuration, captured so the folder is a
# complete record of what is live. THE TOKENS HAVE BEEN REMOVED:
#
# DEVICE_TOKEN=REPLACE_WITH_ECO_DEV_TOKEN <- was the working eco-dev token
# SERVER_2_TOKEN= <- was already empty (eco 401s)
#
# Every other value is exactly what the live service is using.
#
# To rebuild the robot from this file:
# scp agent/.env.deployed ubuntu@10.210.136.150:/tmp/.env
# ssh ubuntu@10.210.136.150 'sudo install -m600 -o root -g root /tmp/.env \
# /opt/sanad_api_eng/.env && rm /tmp/.env'
# # then put the real token back:
# ssh ubuntu@10.210.136.150 "sudo sed -i \
# 's#^DEVICE_TOKEN=.*#DEVICE_TOKEN=<token>#' /opt/sanad_api_eng/.env && \
# sudo systemctl restart sanad-api-eng"
# ============================================================================
# sanad_api_eng — EngineAI PM01 (10.210.136.150). LIVE CONFIG.
# Generated from .env.example; every value below was verified on this robot.
# ── fleet servers (same payload to every enabled one) ────────────────────────
SERVER_URL=https://eco-dev.yslootahrobotics.com
DEVICE_TOKEN=REPLACE_WITH_ECO_DEV_TOKEN
SERVER_NAME=eco-dev
SERVER_ENABLE=1
# eco (production) rejected the token above with 401 — identically to a garbage
# token, so it is the app's auth layer, not a firewall. eco issues its own
# tokens. Paste it below and set SERVER_2_ENABLE=1, then restart the service.
SERVER_2_URL=https://eco.yslootahrobotics.com
SERVER_2_TOKEN=
SERVER_2_NAME=eco
SERVER_2_ENABLE=0
SERVER_2_SHARE_TOKEN=0
# ── identity ─────────────────────────────────────────────────────────────────
SN=PM01-1421326045624
ROBOT_NAME=pm01_150
ROBOT_BRAND=engineai
ROBOT_TYPE=humanoid
ROBOT_MODEL=pm01
ROBOT=sanad
STORAGE_DATA_PATH=/home/ubuntu/sanad_t8/data
# ── PM01 state source ────────────────────────────────────────────────────────
ENG_SOURCE=ros2
ENG_TOPIC_POWER=/hardware/power_info
ENG_TYPE_POWER=interface_protocol/msg/PowerInfo
ENG_TOPIC_MOTORS=/hardware/motor_debug
ENG_TYPE_MOTORS=interface_protocol/msg/MotorDebug
ENG_TOPIC_JOINTS=/hardware/joint_state
ENG_TYPE_JOINTS=interface_protocol/msg/JointState
ENG_TOPIC_MOTION=/motion/motion_state
ENG_TYPE_MOTION=interface_protocol/msg/MotionState
ENG_TOPIC_ODOM=
ENG_TYPE_ODOM=nav_msgs/msg/Odometry
ROS_DOMAIN_ID=69
ENG_ROS_QOS=best_effort
ENG_JOINT_MIN_PERIOD=0.05
ENG_MOTOR_MIN_PERIOD=0.2
# ── field mapping ────────────────────────────────────────────────────────────
ENG_FIELD_SOC=percentage
ENG_FIELD_VOLTAGE=voltage
ENG_FIELD_CURRENT=current
ENG_FIELD_CURRENT_LIMIT=current_limit
ENG_FIELD_POWER_ERR=error_code
ENG_FIELD_POWER_ENABLE=enable
ENG_FIELD_TEMP=
ENG_FIELD_SOH=
ENG_FIELD_CYCLES=
ENG_FIELD_TEMPS=motor_temperature
ENG_FIELD_MOS_TEMPS=mos_temperature
ENG_FIELD_MOTOR_ERR=error_code
ENG_FIELD_MOTOR_OFFLINE=offline
ENG_FIELD_VEL=velocity
ENG_FIELD_MOTION=current_motion_task
ENG_FIELD_TRANSITIONS=available_transition_motions
ENG_FIELD_X=pose.pose.position.x
ENG_FIELD_Y=pose.pose.position.y
ENG_FIELD_FW=
# ── unit conventions (measured on this robot) ────────────────────────────────
ENG_SOC_SCALE=percent
ENG_CURRENT_SIGN=-1
ENG_VOLTAGE_SCALE=1
ENG_CURRENT_SCALE=1
# ── position (no odometry on the PM01 — reports null, never a fake origin) ───
ENG_POSITION_SOURCE=none
ENG_POSITION_URL=http://127.0.0.1:8014/api/nav/status
ENG_POSITION_FIELD_X=pose.x
ENG_POSITION_FIELD_Y=pose.y
ENG_POSITION_INTERVAL=2
ROSBRIDGE_URL=ws://127.0.0.1:9090
# ── identity / networking ────────────────────────────────────────────────────
MAC_INTERFACE=wlP1p1s0
# ── fault thresholds ─────────────────────────────────────────────────────────
LOW_SOC=50
MOTOR_TEMP_MAX=85
MOS_TEMP_MAX=100
MOVING_VEL=0.15
# ── cadence / transport ──────────────────────────────────────────────────────
POLL_INTERVAL=2
VERIFY_TLS=1
HTTP_TIMEOUT=30
TZ_OFFSET_HOURS=4
# ── map sync ─────────────────────────────────────────────────────────────────
MAPS_DIR=/home/ubuntu/sanad_t8/data/maps
EXTRA_MAP_DIRS=
DATA_DIR=/home/ubuntu/sanad_t8/data
STATE_DIR=/var/lib/sanad_api_eng
MAP_SELECT=all
MAP_UPLOAD_MODE=multipart
MAP_POLL_INTERVAL=30
MAP_MAX_UPLOAD_MB=7
WEB_NAV3_URL=
# ── logs + alerts ────────────────────────────────────────────────────────────
LOGS_INTERVAL=60
PROJECT_LOG_CONTAINER=auto
PROJECT_LOG_PATH=
PROJECT_LOG_LABEL=
PROJECT_LOG_BACKFILL=100
ALERT_SCAN_INTERVAL=10
ALERT_LOG_COOLDOWN=300
# ── remote ───────────────────────────────────────────────────────────────────
REMOTE_ENABLE=1
REMOTE_PORTS=8014,8001,9002,9003,8000,8080
REMOTE_KIND=web
REMOTE_INTERVAL=60
REMOTE_URL=
REMOTE_HOST=
SSH_REGISTER=1
SSH_USER=ubuntu
SSH_PORT=22
# ── control (READ-ONLY) ──────────────────────────────────────────────────────
CONTROL_STATUS_URL=http://127.0.0.1:8014/api/controller/status
CONTROL_ENABLE=0
# raw subscriptions for the 500Hz/100Hz topics (see AGENT_README)
ENG_RAW_SUBSCRIBE=1
ERROR_LOG_COOLDOWN=60