Exempelfil för OpenHop Repeater

Bifogat finns en config fil som används för mitt setup i JKG. Setup:en ser ut som följande:

  • Två nodes med radios, anslutna trådlös över wifi. Agerar tillsammans.
  • Fungerar som en Meshcore repeater.
  • Tillhandahåller en virtuell companion under eget identity.
  • Tillhandahåller en virtuell room server under eget identity.
  • Rapporterar till flertalet MQTT brokers.
  • Annat smått och gott!

Hoppas det hjälper er!

Allt väl och god forsättning!
//Jesper

repeater:
  node_name: SE-JKG-Gräshagen
  latitude: 57.761693
  longitude: 14.133588
  identity_file: null
  owner_info: Jesper
  cache_ttl: 3600
  max_flood_hops: 32
  use_score_for_tx: false
  multi_acks: 1
  score_threshold: 0.3
  neighbour_link_metrics_enabled: true
  neighbour_link_ewma_alpha: 0.2
  neighbour_link_ttl_seconds: 86400
  neighbour_link_max_entries: 512
  send_advert_interval_hours: 12
  direct_advert_interval_hours: 6
  allow_discovery: true
  advert_rate_limit:
    enabled: false
    bucket_capacity: 2
    refill_tokens: 1
    refill_interval_seconds: 36000
    min_interval_seconds: 0
  advert_penalty_box:
    enabled: false
    violation_threshold: 2
    violation_decay_seconds: 43200
    base_penalty_seconds: 21600
    penalty_multiplier: 2.0
    max_penalty_seconds: 86400
  advert_adaptive:
    enabled: false
    ewma_alpha: 0.1
    hysteresis_seconds: 300
    thresholds:
      quiet_max: 0.05
      normal_max: 0.2
      busy_max: 0.5
  security:
    max_clients: 1
    admin_password: REDACTED
    guest_password: ''
    allow_read_only: true
    jwt_secret: REDACTED
    jwt_expiry_minutes: 480
  identity_key: REDACTED
  mode: forward
  advert_interval_minutes: 0
policy:
  policy_file: policy.yaml
metrics:
  rrd_enabled: true
gps:
  enabled: false
  source: serial
  device: /dev/serial0
  baud_rate: 9600
  read_timeout_seconds: 1.0
  reconnect_interval_seconds: 5.0
  source_path: /var/lib/openhop_repeater/gps_nmea.txt
  poll_interval_seconds: 2.0
  host: ''
  port: 80
  endpoint: /api/stats
  scheme: http
  username: admin
  password: null
  api_fallback_to_config_location: true
  advertise_gps_location: false
  persist_gps_fix_to_config: false
  persist_gps_fix_interval_seconds: 600.0
  location_precision_digits: null
  stale_after_seconds: 10.0
  retain_sentences: 25
  validate_checksum: true
  require_checksum: false
  time_sync_enabled: true
  time_sync_interval_seconds: 3600.0
  time_sync_min_offset_seconds: 1.0
  time_sync_min_valid_year: 2020
sensors:
  enabled: true
  poll_interval_seconds: 10.0
  auto_install_packages: true
  definitions:
  - type: hardware_stats
    name: system-health
    enabled: true
mesh:
  unscoped_flood_allow: true
  global_flood_allow: true
  path_hash_mode: 2
  loop_detect: minimal
  default_region: null
identities:
  room_servers:
  - name: SE-JKG-Chattrum
    identity_key: REDACTED
    type: room_server
    settings:
      node_name: SE-JKG-Chattrum 🏘️
      latitude: 57.76164
      longitude: 14.1334
      admin_password: REDACTED
      guest_password: ''
      allow_read_only: false
      flood_advert_interval_hours: 12
      direct_advert_interval_hours: 0
  companions:
  - identity_key: REDACTED
    name: SE-JKG-JesperB 🏡
    settings:
      bind_address: 0.0.0.0
      node_name: SE-JKG-JesperB 🏡
      tcp_port: 5000
    type: companion
radio_type: modem_tcp
ch341:
  vid: 6790
  pid: 21778
radio:
  frequency: 869618000
  tx_power: 21
  bandwidth: 62500
  spreading_factor: 8
  coding_rate: 8
  preamble_length: 17
  implicit_header: false
  cad:
    min_threshold: 14
    peak_threshold: 22
    symbol_num: 2
sx1262:
  bus_id: 0
  cs_id: 0
  cs_pin: 21
  reset_pin: 18
  busy_pin: 20
  irq_pin: 16
  txen_pin: -1
  rxen_pin: -1
  en_pin: -1
  txled_pin: -1
  rxled_pin: -1
  use_dio3_tcxo: false
  dio3_tcxo_voltage: 1.8
  use_dio2_rf: false
  is_waveshare: false
delays:
  tx_delay_factor: 1.0
  direct_tx_delay_factor: 0.5
duty_cycle:
  enforcement_enabled: true
  max_airtime_per_minute: 6000
storage:
  storage_dir: /var/lib/openhop_repeater
  retention:
    sqlite_cleanup_days: 31
    companion_events_days: 31
mqtt_brokers:
  iata_code: JKG
  status_interval: 60
  owner: REDACTED
  email: REDACTED_EMAIL
  brokers:
  - name: Meshat.se
    enabled: true
    transport: websockets
    host: meshcore-mqtt.meshat.se
    port: 443
    format: letsmesh
    disallowed_packet_types: []
    retain_status: false
    neighbors: true
    tls:
      enabled: true
      insecure: false
    use_jwt_auth: true
    audience: meshcore-mqtt.meshat.se
  - name: Europe (LetsMesh v1)
    enabled: true
    transport: websockets
    host: mqtt-eu-v1.letsmesh.net
    port: 443
    format: letsmesh
    disallowed_packet_types: []
    retain_status: false
    neighbors: false
    tls:
      enabled: true
      insecure: false
    use_jwt_auth: true
    audience: mqtt-eu-v1.letsmesh.net
  - name: US West (LetsMesh v1)
    enabled: true
    transport: websockets
    host: mqtt-us-v1.letsmesh.net
    port: 443
    format: letsmesh
    disallowed_packet_types: []
    retain_status: false
    neighbors: false
    tls:
      enabled: true
      insecure: false
    use_jwt_auth: true
    audience: mqtt-us-v1.letsmesh.net
  - name: MeshMapper
    enabled: true
    transport: websockets
    host: mqtt.meshmapper.net
    port: 443
    format: letsmesh
    disallowed_packet_types: []
    retain_status: false
    neighbors: false
    tls:
      enabled: true
      insecure: false
    use_jwt_auth: true
    audience: mqtt.meshmapper.net
  - name: Rbit
    enabled: true
    transport: tcp
    host: mqtt.rbit.se
    port: 8883
    format: letsmesh
    disallowed_packet_types: []
    retain_status: false
    neighbors: false
    tls:
      enabled: true
      insecure: false
    use_jwt_auth: false
    username: observer41
    password: REDACTED
  neighbors:
    enabled: true
    interval_hours: 24
glass:
  enabled: false
  base_url: http://localhost:8080
  inform_interval_seconds: 30
  request_timeout_seconds: 10
  verify_tls: true
  api_token: ''
  cert_store_dir: /etc/openhop_repeater/glass
logging:
  level: INFO
  format: '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
http:
  enabled: true
  host: 0.0.0.0
  port: 6543
  thread_pool: 8
  thread_pool_max: 16
  socket_timeout: 65
  socket_queue_size: 100
web:
  cors_enabled: false
  carto_api_key: ''
  site_name: Meshcore Gräshagen
radios:
- id: south
  radio_type: modem_tcp
  radio:
    frequency: 869618000
    spreading_factor: 8
    bandwidth: 62500
    tx_power: 22
    coding_rate: 8
    preamble_length: 17
  modem_tcp:
    host: 10.10.5.21
    port: 5055
    connect_timeout: 5
    lbt_enabled: true
    lbt_max_attempts: 5
    token: REDACTED
- id: north
  radio_type: modem_tcp
  radio:
    frequency: 869618000
    spreading_factor: 8
    bandwidth: 62500
    tx_power: 21
    coding_rate: 8
    preamble_length: 17
  modem_tcp:
    host: 10.10.5.18
    port: 5055
    connect_timeout: 5
    lbt_enabled: true
    lbt_max_attempts: 5
    token: REDACTED
fabric:
  default_radio: north
  tx_mode: bridge
  repeat_on_ingress: true
  origin_tx: all
  local_tx_mode: all
setup_completed: true
1 gillning