Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Several DTMF Enable and Disable (*831) stops SkywarnPlus from working #121

Open
scseifert opened this issue Dec 2, 2024 · 0 comments
Open
Labels
bug Something isn't working

Comments

@scseifert
Copy link

scseifert commented Dec 2, 2024

ISSUE TEMPLATE
This template is designed to help you report a bug with information required for you to actually be able to receive help. If you choose to ignore this template, do not provide proper files/information with your report, etc., then your issue will be ignored/closed.

Describe the bug
This has been happening since v0.8.0

I disable SWP via DTMF (*831) when connecting to a node using crontab. Then when the node disconnects, my crontab enables SWP via DTMF (*831). The issue is "After a couple times (no pattern) of disabling and enabling SWP the line of code that reads:

# 
# DO NOT ADD ast_var_update.sh TO CRON IF YOU ARE USING THIS FEATURE

gets modified to:

#
# DO NOT ADD ast
var_update.sh TO CRON IF YOU ARE USING THIS FEATURE
#

or

#
# DO NOT ADD as (t is missing)
_var_update.sh TO CRON IF YOU ARE USING THIS FEATURE

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
I would not have to move the rest of the command back to its original line of code and save

Files
Please, at minimum, paste or attach the following:

  • SkywarnPlus Files:
    • /usr/local/bin/SkywarnPlus/config.yaml
    • /tmp/SkywarnPlus/SkywarnPlus.log
    • /tmp/SkywarnPlus/data.json
  • Asterisk Files:
    • /etc/asterisk/rpt.conf
    • /var/log/asterisk/messages

Screenshots
If applicable, add screenshots to help explain your problem.

Node (please complete the following information):

  • OS: HAMVOIP 1.7

Additional context
***************************** config.yaml file when SkywarnPlus is no longer working ******************************

# SkywarnPlus v0.8.0 Configuration File
# Author: Mason Nelson (N5LSN/WRKF394)
# Please edit this file according to your specific requirements.

# This config file is structured YAML. Please be sure to maintain the structure when editing.
# YAML is very picky about indentation. Use spaces, not tabs.

################################################################################################################################

SKYWARNPLUS:
  # Toggle SkywarnPlus operation entirely.
  Enable: false

################################################################################################################################

Asterisk:
  # List of node numbers for broadcasting alerts. Multiple nodes are specified as a list.
  # Example:
  # Nodes:
  #   - 1998
  #   - 1999
  Nodes:
  - 470181

  # Optional silence to be added to the beginning of any audio files generated by SkywarnPlus.
  # This is useful for radio systems that require additional time to key up, such as RF links.
  # Silence is specified in milliseconds.
  AudioDelay: 200

################################################################################################################################

Alerting:
  # Specify the county codes for which you want to pull weather data.
  # Find your county codes at https://alerts.weather.gov/.
  # Make sure to use county codes ONLY, NOT zone codes, otherwise you might miss out on alerts.
  # Example:
  # CountyCodes:
  #   - ARC125
  #   - ARC119
  #
  # SkywarnPlus allows adding county-specific audio indicators to each alert in the message.
  # To enable this feature, specify an audio file containing a recording of the county name in the
  # ROOT of the SOUNDS/ directory as shown in the below example. You must create these files yourself.
  # A helper script is provided in the SkywarnPlus repository to help generate these files.
  # You can manually use the same VoiceRSS API used for SkyDescribe (see below) to generate these files with a synthetic voice:
  # http://api.voicerss.org/?key=[YOUR_API_KEY_HERE]&hl=en-us&f=8khz_16bit_mono&v=John&src=[YOUR COUNTY NAME HERE]
  # http://api.voicerss.org/?key=1234567890QWERTY&hl=en-us&f=8khz_16bit_mono&v=John&src=Saline County
  # Example:
  # CountyCodes:
  #   - ARC125: "Saline.wav"
  #   - ARC119: "Pulaski.wav"
  CountyCodes:
  - TXC201: county_harris.wav
  - TXC339: county_montgomery.wav

  # Enable instant voice announcement when new weather alerts are issued.
  SayAlert: true

  # Enable SayAlert to "say" any alerts whose list of affected counties has changed, in addition to new alerts.
  # Only applies if more than one CountyCode is specified AND County IDs have been setup.
  SayAlertsChanged: true

  # When a change is detected, make SayAlert say ALL of the currently active alerts, not just newly detected one(s)
  SayAlertAll: false

  # Specify the WAV file in the SOUNDS/ALERTS directory to use as the alert sound effect
  AlertSound: Duncecap.wav

  # Specify a WAV file in the root of the SOUNDS directory to be appended to the end of the alert message.
  SayAlertSuffix:

  # Enable instant voice announcement when weather alerts are cleared.
  SayAllClear: true

  # Specify the WAV file in the SOUNDS/ALERTS directory to use as the all clear sound effect.
  AllClearSound: Triangles.wav

  # Specify a WAV file in the root of the SOUNDS directory to be appended to the end of the all clear message.
  SayAllClearSuffix:
  # Specify the WAV file in the SOUNDS/ALERTS directory to use as the alert seperator sound effect
  AlertSeperator: Woodblock.wav

  # Enable audio tagging an alert as having "multiples" if there is more than one unique instance of that alert type
  # If enabled, and there are 2x different Severe Thunderstorm Warnings in your area, the audio will be: "Severe Thunderstorm Warning, with multiples"
  WithMultiples: false

  # Limit the maximum number of alerts to process in case of multiple alerts.
  # SkywarnPlus fetches all alerts, orders them by severity, and processes only the 'n' most severe alerts, where 'n' is the MaxAlerts value.
  MaxAlerts: 99

  # Specify an alternative path to the directory where sound files are located.
  # Default is SkywarnPlus/SOUNDS.
  SoundsPath: /usr/local/bin/SkywarnPlus/SOUNDS

  # 'TimeType' Configuration
  #
  # This setting determines the timing reference for issuing weather alerts.
  # You can choose between "onset" and "effective" time.
  #
  # 'onset': Alerts are issued based on the predicted start time of the event.
  # This means the system will only send out alerts when the events are imminent.
  # For example, even though a "Heat Advisory" can be forecasted accurately a day or two in advance,
  # the alert will only be sent close to the actual occurrence of the event.
  #
  # 'effective': Alerts are sent as soon as they are received, based on the effective time of the alert message.
  # The "effective" time is when the alert message is considered to be in effect,
  # which could be significantly earlier than the actual onset of the event.
  #
  # By using 'onset', you can ensure that alerts are relevant and timely for the recipients.
  TimeType: onset

################################################################################################################################

Blocking:
  # List of globally blocked events. These alerts are ignored across the entire SkywarnPlus operation.
  # Use a case-sensitive list. Wildcards can be used.
  # Example:
  # GlobalBlockedEvents:
  #   - Flood Watch
  #   - '*Statement'
  #   - '*Advisory'
  GlobalBlockedEvents:

  # List of events blocked from being announced when received. These alerts will still be added to the tail message.
  # Use a case-sensitive list.
  SayAlertBlockedEvents:

  # List of events blocked from being added to the tail message. These alerts will still be announced when received.
  # Use a case-sensitive list.
  TailmessageBlockedEvents:

################################################################################################################################

Tailmessage:
  # Configuration for the tail message functionality. Requires initial setup in RPT.CONF.

  # Enable/disable automatic tail message.
  Enable: true

  # Specify a WAV file in the root of the SOUNDS directory to be appended to the end of the tail message.
  TailmessageSuffix:

  # Enable to add county indicators to the tail message
  # County indicators must FIRST be configured in the Alerting section where county codes are defined.
  # NOTE: This can make your tail message quite long depending on how many counties you have configured.
  TailmessageCounties: true

  # Specify an alternative path and filename for saving the tail message.
  # Default is /tmp/SkywarnPlus/wx-tail.wav.
  TailmessagePath: /tmp/SkywarnPlus/wx-tail.wav

################################################################################################################################

CourtesyTones:
  # Configuration for automatic CT changing. Requires initial setup in RPT.CONF.
  # Enable/disable automatic courtesy tones.
  Enable: false

  # Directory where tone files will be read from & stored to. Modify this path to match your setup.
  # Default location is within the SkywarnPlus installation directory.
  ToneDir: /usr/local/bin/SkywarnPlus/SOUNDS/TONES

  # Define custom courtesy tones for use in different modes. This allows for dynamic response to weather alerts.
  Tones:
    # Define each courtesy tone, and which files to use for that tone in Normal and WX mode.
    ct1:
      Normal: Boop.ulaw
      WX: Stardust.ulaw

    ct2:
      Normal: Beep.ulaw
      WX: Stardust.ulaw

    # ct3:
    #   Normal: NBC.ulaw
    #   WX: SatPass.ulaw

    # ct4:
    #   Normal: BlastOff.ulaw
    #   WX: Target.ulaw
    # ct5:
    #   Normal: BumbleBee.ulaw
    #   WX: XPError.ulaw
    # ct6:
    #   Normal: Comet.ulaw
    #   WX: Waterdrop.ulaw

  # Define the alerts that trigger the "WX" courtesy tone.
  # Use a case-sensitive list. One alert per line.
  CTAlerts:
  - Ashfall Warning
  - Avalanche Warning
  - Blizzard Warning
  - Blowing Dust Warning
  - Civil Danger Warning
  - Civil Emergency Message
  - Coastal Flood Warning
  - Dust Storm Warning
  - Earthquake Warning
  - Evacuation - Immediate
  - Excessive Heat Warning
  - Extreme Wind Warning
  - Fire Warning
  - Hazardous Materials Warning
  - Heat Advisory
  - Hurricane Force Wind Warning
  - Hurricane Warning
  - Ice Storm Warning
  - Law Enforcement Warning
  - Local Area Emergency
  - Nuclear Power Plant Warning
  - Radiological Hazard Warning
  - Severe Thunderstorm Warning
  - Shelter In Place Warning
  - Storm Surge Warning
  - Tornado Warning
  - Tornado Watch
  - Tropical Storm Warning
  - Tsunami Warning
  - Typhoon Warning
  - Volcano Warning
  - Winter Storm Warning

################################################################################################################################

IDChange:
  # Configuration for Automatic ID Changing. Requires initial setup in RPT.CONF and manual creation of audio files.

  # Enable/disable automatic ID changing.
  Enable: false

  # Specify an alternative directory where ID files are located.
  # Default is SkywarnPlus/SOUNDS/ID.
  IDDir: /usr/local/bin/SkywarnPlus/SOUNDS/ID

  # Define the sound files for IDs.
  IDs:
    # Audio file to feed Asterisk as ID in "normal" mode
    NormalID: NORMALID.ulaw

    # Audio file to feed Asterisk as ID in "wx" mode
    WXID: WXID.ulaw

    # Audio file rpt.conf is looking for as ID
    RptID: RPTID.ulaw

  # Define the alerts that trigger the weather ID.
  # Use a case-sensitive list. One alert per line.
  IDAlerts:
  - Ashfall Warning
  - Avalanche Warning
  - Blizzard Warning
  - Blowing Dust Warning
  - Civil Danger Warning
  - Civil Emergency Message
  - Coastal Flood Warning
  - Dust Storm Warning
  - Earthquake Warning
  - Evacuation - Immediate
  - Excessive Heat Warning
  - Extreme Wind Warning
  - Fire Warning
  - Hazardous Materials Warning
  - Heat Advisory
  - Hurricane Force Wind Warning
  - Hurricane Warning
  - Ice Storm Warning
  - Law Enforcement Warning
  - Local Area Emergency
  - Nuclear Power Plant Warning
  - Radiological Hazard Warning
  - Severe Thunderstorm Warning
  - Shelter In Place Warning
  - Storm Surge Warning
  - Tornado Warning
  - Tornado Watch
  - Tropical Storm Warning
  - Tsunami Warning
  - Typhoon Warning
  - Volcano Warning
  - Winter Storm Warning

################################################################################################################################

SkyDescribe:
  # SkyDescribe is a feature that allows you to request a detailed description of a weather alert.
  # VoiceRSS is a free service that SkyDescribe requires to function. You must obtain an API key from VoiceRSS.org.
  # MAKE SURE YOU VERIFY YOUR EMAIL ADDRESS WITH VOICERSS.ORG OR YOUR API KEY WILL NOT WORK.

  # API Key for VoiceRSS.org
  APIKey: 5af0a6c8eb374590982424e2dd0763a7

  # VoiceRSS language code
  Language: en-us

  # VoiceRSS speech rate. -10 is slowest, 10 is fastest.
  Speed: 1

  # VoiceRSS voice profile. See VoiceRSS.org/api/ for more information.
  Voice: John

  # Maximum number of words to be spoken by SkyDescribe.
  # CAUTION: Setting this value too high may cause SkyDescribe to exceed the timeout timer of your node.
  # ~130 words is around 60 seconds at Speed: 0.
  MaxWords: 300

################################################################################################################################

AlertScript:
  # AlertScript allows you to map BASH or DTMF commands to be executed when a weather alert is detected.

  # Completely enable/disable AlertScript
  Enable: false

  # These are BASH or DTMF commands that are executed ONLY when the number of active alerts changes from ZERO to NON-ZERO.
  # Use the same format as other AlertScript mappings (see below).
  ActiveCommands:
  - Type: BASH
    Commands:
    - echo "THE NUMBER OF ACTIVE ALERTS JUST CHANGED FROM ZERO TO NON-ZERO"

  # These are BASH or DTMF commands that are executed ONLY when the number of active alerts changes from NON-ZERO to ZERO.
  # Use the same format as other AlertScript mappings (see below).
  InactiveCommands:
  - Type: BASH
    Commands:
    - echo "THE NUMBER OF ACTIVE ALERTS JUST CHANGED FROM NON-ZERO TO ZERO"

  Mappings:
    # Define the mapping of alerts to either DTMF commands or bash scripts here.
    #
    # Example 1:
    # This entry will execute the bash command 'asterisk -rx "rpt fun 1999 *123*456*789"'
    # when the alerts "Tornado Warning" AND "Tornado Watch" are detected. It will execute the
    # bash command 'asterisk -rx "rpt fun 1999 *987*654*321"' when there are no longer ANY alerts matching
    # "Tornado Warning" OR "Tornado Watch".
    #
    # - Type: DTMF
    #   Nodes:
    #     - 1999
    #   Commands:
    #     - "*123*456*789"
    #   ClearCommands:
    #     - "*987*654*321"
    #   Triggers:
    #     - Tornado Warning
    #     - Tornado Watch
    #   Match: ALL
    #
    # Example 2:
    # This entry will execute the bash command '/home/repeater/testscript.sh'
    # and the bash command '/home/repeater/saytime.sh' when an alert whose
    # title ends with "Statement" is detected.
    #
    # - Type: BASH
    #   Commands:
    #     - "/home/repeater/testscript.sh"
    #     - "/home/repeater/saytime.sh"
    #   Triggers:
    #     - "*Statement"
    #
    # Example 3:
    # This entry will execute the bash command 'asterisk -rx "rpt fun 1998 *123*456*789"'
    # and the bash command 'asterisk -rx "rpt fun 1999 *123*456*789"' when an alert
    # titled "Tornado Warning" OR "Tornado Watch" is detected.
    #
    # - Type: DTMF
    #   Nodes:
    #     - 1998
    #     - 1999
    #   Commands:
    #     - "*123*456*789"
    #   Triggers:
    #     - Tornado Warning
    #     - Tornado Watch
    #
    # Example 4:
    # This entry will execute the bash command 'asterisk -rx "rpt fun 1999 *123*456*789"'
    # and the bash command 'asterisk -rx "rpt fun 1999 *987*654*321"'
    # when an alert titled "Tornado Warning" OR "Tornado Watch" is detected.
    #
    # - Type: DTMF
    #   Nodes:
    #     - 1999
    #   Commands:
    #     - "*123*456*789"
    #     - "*987*654*321"
    #   Triggers:
    #     - Tornado Warning
    #     - Tornado Watch
    #   Match: ANY
    #
    # Example 5:
    # This is an example entry that will automatically execute SkyDescribe and
    # announce the full details of a Tornado Warning when it is detected.
    # The placeholder '{alert_title}' will be replaced with the title of the alert
    # when AlertScript executes the command.
  - Type: BASH
    Commands:
    - /usr/local/bin/SkywarnPlus/SkyDescribe.py "{alert_title}"
    Triggers:
    - Tornado Warning

################################################################################################################################

Pushover:
  # Configuration for Pushover integration. Pushover is a free notification service. Register at https://pushover.net/.

  # Enable/disable Pushover integration.
  Enable: true

  # Provide your user key obtained from Pushover.
  UserKey: uimhkd8952v7fg4dpxa3mv2xwk41uc

  # Provide the API token obtained from Pushover.
  APIToken: a1cdg7y51xdg91pzf2fseus185313p

  # Enable verbose messaging
  Debug: false

################################################################################################################################

Logging:
  # Configuration for logging.

  # Enable verbose logging
  Debug: false

  # Specify an alternative log file path.
  LogPath: /tmp/SkywarnPlus/SkywarnPlus.log

################################################################################################################################

DEV:
  # Configuration for development and testing.

  # Delete cached data on startup
  CLEANSLATE: false

  # Specify the TMP directory.
  TmpDir: /tmp/SkywarnPlus

  # ATTEMPT to write alerts to the old AUTOSKY files so that Supermon can display them.
  # This might not work due to there being several different versions of Supermon,
  # file permissions issues, etc at no fault to SkywarnPlus. This is a best-effort feature.
  #
  # If you are using Supermon2 on HamVoIP, please add your location and ZIP
  # to the file /usr/local/sbin/supermon/node_info.ini
  #
  # DO NOT ADD ast
var_update.sh TO CRON IF YOU ARE USING THIS FEATURE.
  #
  # Please encourage Supermon developers to add support for SkywarnPlus so this hack can be removed.
  SupermonCompat: true

  # Enable test alert injection instead of calling the NWS API by setting 'INJECT' to 'True'.
  INJECT: false

  # List the test alerts to inject. Alert titles are case sensitive.
  # Optionally specify the CountyCodes and/or EndTime for each alert.
  # CountyCodes used here must be defined at the top of this configuration file.
  # Example:
  # INJECTALERTS:
  #   - Title: "Tornado Warning"
  #     CountyCodes: ["ARC119", "ARC120"]
  #   - Title: "Tornado Watch"
  #     CountyCodes: ["ARC125"]
  #     EndTime: "2023-08-01T12:00:00Z"
  #   - Title: "Severe Thunderstorm Warning"
  INJECTALERTS:
  - Title: Avalanche Warning
  - Title: Tsunami Warning
  - Title: Volcano Warning

*********************************   config.yaml file when it is working properly ****************************************************
# SkywarnPlus v0.8.0 Configuration File
# Author: Mason Nelson (N5LSN/WRKF394)
# Please edit this file according to your specific requirements.

# This config file is structured YAML. Please be sure to maintain the structure when editing.
# YAML is very picky about indentation. Use spaces, not tabs.

################################################################################################################################

SKYWARNPLUS:
  # Toggle SkywarnPlus operation entirely.
  Enable: true

################################################################################################################################

Asterisk:
  # List of node numbers for broadcasting alerts. Multiple nodes are specified as a list.
  # Example:
  # Nodes:
  #   - 1998
  #   - 1999
  Nodes:
  - 470181

  # Optional silence to be added to the beginning of any audio files generated by SkywarnPlus.
  # This is useful for radio systems that require additional time to key up, such as RF links.
  # Silence is specified in milliseconds.
  AudioDelay: 200

################################################################################################################################

Alerting:
  # Specify the county codes for which you want to pull weather data.
  # Find your county codes at https://alerts.weather.gov/.
  # Make sure to use county codes ONLY, NOT zone codes, otherwise you might miss out on alerts.
  # Example:
  # CountyCodes:
  #   - ARC125
  #   - ARC119
  #
  # SkywarnPlus allows adding county-specific audio indicators to each alert in the message.
  # To enable this feature, specify an audio file containing a recording of the county name in the
  # ROOT of the SOUNDS/ directory as shown in the below example. You must create these files yourself.
  # A helper script is provided in the SkywarnPlus repository to help generate these files.
  # You can manually use the same VoiceRSS API used for SkyDescribe (see below) to generate these files with a synthetic voice:
  # http://api.voicerss.org/?key=[YOUR_API_KEY_HERE]&hl=en-us&f=8khz_16bit_mono&v=John&src=[YOUR COUNTY NAME HERE]
  # http://api.voicerss.org/?key=1234567890QWERTY&hl=en-us&f=8khz_16bit_mono&v=John&src=Saline County
  # Example:
  # CountyCodes:
  #   - ARC125: "Saline.wav"
  #   - ARC119: "Pulaski.wav"
  CountyCodes:
  - TXC201: county_harris.wav
  - TXC339: county_montgomery.wav

  # Enable instant voice announcement when new weather alerts are issued.
  SayAlert: true

  # Enable SayAlert to "say" any alerts whose list of affected counties has changed, in addition to new alerts.
  # Only applies if more than one CountyCode is specified AND County IDs have been setup.
  SayAlertsChanged: true

  # When a change is detected, make SayAlert say ALL of the currently active alerts, not just newly detected one(s)
  SayAlertAll: false

  # Specify the WAV file in the SOUNDS/ALERTS directory to use as the alert sound effect
  AlertSound: Duncecap.wav

  # Specify a WAV file in the root of the SOUNDS directory to be appended to the end of the alert message.
  SayAlertSuffix:

  # Enable instant voice announcement when weather alerts are cleared.
  SayAllClear: true

  # Specify the WAV file in the SOUNDS/ALERTS directory to use as the all clear sound effect.
  AllClearSound: Triangles.wav

  # Specify a WAV file in the root of the SOUNDS directory to be appended to the end of the all clear message.
  SayAllClearSuffix:
  # Specify the WAV file in the SOUNDS/ALERTS directory to use as the alert seperator sound effect
  AlertSeperator: Woodblock.wav

  # Enable audio tagging an alert as having "multiples" if there is more than one unique instance of that alert type
  # If enabled, and there are 2x different Severe Thunderstorm Warnings in your area, the audio will be: "Severe Thunderstorm Warning, with multiples"
  WithMultiples: false

  # Limit the maximum number of alerts to process in case of multiple alerts.
  # SkywarnPlus fetches all alerts, orders them by severity, and processes only the 'n' most severe alerts, where 'n' is the MaxAlerts value.
  MaxAlerts: 99

  # Specify an alternative path to the directory where sound files are located.
  # Default is SkywarnPlus/SOUNDS.
  SoundsPath: /usr/local/bin/SkywarnPlus/SOUNDS

  # 'TimeType' Configuration
  #
  # This setting determines the timing reference for issuing weather alerts.
  # You can choose between "onset" and "effective" time.
  #
  # 'onset': Alerts are issued based on the predicted start time of the event.
  # This means the system will only send out alerts when the events are imminent.
  # For example, even though a "Heat Advisory" can be forecasted accurately a day or two in advance,
  # the alert will only be sent close to the actual occurrence of the event.
  #
  # 'effective': Alerts are sent as soon as they are received, based on the effective time of the alert message.
  # The "effective" time is when the alert message is considered to be in effect,
  # which could be significantly earlier than the actual onset of the event.
  #
  # By using 'onset', you can ensure that alerts are relevant and timely for the recipients.
  TimeType: onset

################################################################################################################################

Blocking:
  # List of globally blocked events. These alerts are ignored across the entire SkywarnPlus operation.
  # Use a case-sensitive list. Wildcards can be used.
  # Example:
  # GlobalBlockedEvents:
  #   - Flood Watch
  #   - '*Statement'
  #   - '*Advisory'
  GlobalBlockedEvents:

  # List of events blocked from being announced when received. These alerts will still be added to the tail message.
  # Use a case-sensitive list.
  SayAlertBlockedEvents:

  # List of events blocked from being added to the tail message. These alerts will still be announced when received.
  # Use a case-sensitive list.
  TailmessageBlockedEvents:

################################################################################################################################

Tailmessage:
  # Configuration for the tail message functionality. Requires initial setup in RPT.CONF.

  # Enable/disable automatic tail message.
  Enable: true

  # Specify a WAV file in the root of the SOUNDS directory to be appended to the end of the tail message.
  TailmessageSuffix:

  # Enable to add county indicators to the tail message
  # County indicators must FIRST be configured in the Alerting section where county codes are defined.
  # NOTE: This can make your tail message quite long depending on how many counties you have configured.
  TailmessageCounties: true

  # Specify an alternative path and filename for saving the tail message.
  # Default is /tmp/SkywarnPlus/wx-tail.wav.
  TailmessagePath: /tmp/SkywarnPlus/wx-tail.wav

################################################################################################################################

CourtesyTones:
  # Configuration for automatic CT changing. Requires initial setup in RPT.CONF.
  # Enable/disable automatic courtesy tones.
  Enable: false

  # Directory where tone files will be read from & stored to. Modify this path to match your setup.
  # Default location is within the SkywarnPlus installation directory.
  ToneDir: /usr/local/bin/SkywarnPlus/SOUNDS/TONES

  # Define custom courtesy tones for use in different modes. This allows for dynamic response to weather alerts.
  Tones:
    # Define each courtesy tone, and which files to use for that tone in Normal and WX mode.
    ct1:
      Normal: Boop.ulaw
      WX: Stardust.ulaw

    ct2:
      Normal: Beep.ulaw
      WX: Stardust.ulaw

    # ct3:
    #   Normal: NBC.ulaw
    #   WX: SatPass.ulaw

    # ct4:
    #   Normal: BlastOff.ulaw
    #   WX: Target.ulaw
    # ct5:
    #   Normal: BumbleBee.ulaw
    #   WX: XPError.ulaw
    # ct6:
    #   Normal: Comet.ulaw
    #   WX: Waterdrop.ulaw

  # Define the alerts that trigger the "WX" courtesy tone.
  # Use a case-sensitive list. One alert per line.
  CTAlerts:
  - Ashfall Warning
  - Avalanche Warning
  - Blizzard Warning
  - Blowing Dust Warning
  - Civil Danger Warning
  - Civil Emergency Message
  - Coastal Flood Warning
  - Dust Storm Warning
  - Earthquake Warning
  - Evacuation - Immediate
  - Excessive Heat Warning
  - Extreme Wind Warning
  - Fire Warning
  - Hazardous Materials Warning
  - Heat Advisory
  - Hurricane Force Wind Warning
  - Hurricane Warning
  - Ice Storm Warning
  - Law Enforcement Warning
  - Local Area Emergency
  - Nuclear Power Plant Warning
  - Radiological Hazard Warning
  - Severe Thunderstorm Warning
  - Shelter In Place Warning
  - Storm Surge Warning
  - Tornado Warning
  - Tornado Watch
  - Tropical Storm Warning
  - Tsunami Warning
  - Typhoon Warning
  - Volcano Warning
  - Winter Storm Warning

################################################################################################################################

IDChange:
  # Configuration for Automatic ID Changing. Requires initial setup in RPT.CONF and manual creation of audio files.

  # Enable/disable automatic ID changing.
  Enable: false

  # Specify an alternative directory where ID files are located.
  # Default is SkywarnPlus/SOUNDS/ID.
  IDDir: /usr/local/bin/SkywarnPlus/SOUNDS/ID

  # Define the sound files for IDs.
  IDs:
    # Audio file to feed Asterisk as ID in "normal" mode
    NormalID: NORMALID.ulaw

    # Audio file to feed Asterisk as ID in "wx" mode
    WXID: WXID.ulaw

    # Audio file rpt.conf is looking for as ID
    RptID: RPTID.ulaw

  # Define the alerts that trigger the weather ID.
  # Use a case-sensitive list. One alert per line.
  IDAlerts:
  - Ashfall Warning
  - Avalanche Warning
  - Blizzard Warning
  - Blowing Dust Warning
  - Civil Danger Warning
  - Civil Emergency Message
  - Coastal Flood Warning
  - Dust Storm Warning
  - Earthquake Warning
  - Evacuation - Immediate
  - Excessive Heat Warning
  - Extreme Wind Warning
  - Fire Warning
  - Hazardous Materials Warning
  - Heat Advisory
  - Hurricane Force Wind Warning
  - Hurricane Warning
  - Ice Storm Warning
  - Law Enforcement Warning
  - Local Area Emergency
  - Nuclear Power Plant Warning
  - Radiological Hazard Warning
  - Severe Thunderstorm Warning
  - Shelter In Place Warning
  - Storm Surge Warning
  - Tornado Warning
  - Tornado Watch
  - Tropical Storm Warning
  - Tsunami Warning
  - Typhoon Warning
  - Volcano Warning
  - Winter Storm Warning

################################################################################################################################

SkyDescribe:
  # SkyDescribe is a feature that allows you to request a detailed description of a weather alert.
  # VoiceRSS is a free service that SkyDescribe requires to function. You must obtain an API key from VoiceRSS.org.
  # MAKE SURE YOU VERIFY YOUR EMAIL ADDRESS WITH VOICERSS.ORG OR YOUR API KEY WILL NOT WORK.

  # API Key for VoiceRSS.org
  APIKey: 5af0a6c8eb374590982424e2dd0763a7

  # VoiceRSS language code
  Language: en-us

  # VoiceRSS speech rate. -10 is slowest, 10 is fastest.
  Speed: 1

  # VoiceRSS voice profile. See VoiceRSS.org/api/ for more information.
  Voice: John

  # Maximum number of words to be spoken by SkyDescribe.
  # CAUTION: Setting this value too high may cause SkyDescribe to exceed the timeout timer of your node.
  # ~130 words is around 60 seconds at Speed: 0.
  MaxWords: 300

################################################################################################################################

AlertScript:
  # AlertScript allows you to map BASH or DTMF commands to be executed when a weather alert is detected.

  # Completely enable/disable AlertScript
  Enable: false

  # These are BASH or DTMF commands that are executed ONLY when the number of active alerts changes from ZERO to NON-ZERO.
  # Use the same format as other AlertScript mappings (see below).
  ActiveCommands:
  - Type: BASH
    Commands:
    - echo "THE NUMBER OF ACTIVE ALERTS JUST CHANGED FROM ZERO TO NON-ZERO"

  # These are BASH or DTMF commands that are executed ONLY when the number of active alerts changes from NON-ZERO to ZERO.
  # Use the same format as other AlertScript mappings (see below).
  InactiveCommands:
  - Type: BASH
    Commands:
    - echo "THE NUMBER OF ACTIVE ALERTS JUST CHANGED FROM NON-ZERO TO ZERO"

  Mappings:
    # Define the mapping of alerts to either DTMF commands or bash scripts here.
    #
    # Example 1:
    # This entry will execute the bash command 'asterisk -rx "rpt fun 1999 *123*456*789"'
    # when the alerts "Tornado Warning" AND "Tornado Watch" are detected. It will execute the
    # bash command 'asterisk -rx "rpt fun 1999 *987*654*321"' when there are no longer ANY alerts matching
    # "Tornado Warning" OR "Tornado Watch".
    #
    # - Type: DTMF
    #   Nodes:
    #     - 1999
    #   Commands:
    #     - "*123*456*789"
    #   ClearCommands:
    #     - "*987*654*321"
    #   Triggers:
    #     - Tornado Warning
    #     - Tornado Watch
    #   Match: ALL
    #
    # Example 2:
    # This entry will execute the bash command '/home/repeater/testscript.sh'
    # and the bash command '/home/repeater/saytime.sh' when an alert whose
    # title ends with "Statement" is detected.
    #
    # - Type: BASH
    #   Commands:
    #     - "/home/repeater/testscript.sh"
    #     - "/home/repeater/saytime.sh"
    #   Triggers:
    #     - "*Statement"
    #
    # Example 3:
    # This entry will execute the bash command 'asterisk -rx "rpt fun 1998 *123*456*789"'
    # and the bash command 'asterisk -rx "rpt fun 1999 *123*456*789"' when an alert
    # titled "Tornado Warning" OR "Tornado Watch" is detected.
    #
    # - Type: DTMF
    #   Nodes:
    #     - 1998
    #     - 1999
    #   Commands:
    #     - "*123*456*789"
    #   Triggers:
    #     - Tornado Warning
    #     - Tornado Watch
    #
    # Example 4:
    # This entry will execute the bash command 'asterisk -rx "rpt fun 1999 *123*456*789"'
    # and the bash command 'asterisk -rx "rpt fun 1999 *987*654*321"'
    # when an alert titled "Tornado Warning" OR "Tornado Watch" is detected.
    #
    # - Type: DTMF
    #   Nodes:
    #     - 1999
    #   Commands:
    #     - "*123*456*789"
    #     - "*987*654*321"
    #   Triggers:
    #     - Tornado Warning
    #     - Tornado Watch
    #   Match: ANY
    #
    # Example 5:
    # This is an example entry that will automatically execute SkyDescribe and
    # announce the full details of a Tornado Warning when it is detected.
    # The placeholder '{alert_title}' will be replaced with the title of the alert
    # when AlertScript executes the command.
  - Type: BASH
    Commands:
    - /usr/local/bin/SkywarnPlus/SkyDescribe.py "{alert_title}"
    Triggers:
    - Tornado Warning

################################################################################################################################

Pushover:
  # Configuration for Pushover integration. Pushover is a free notification service. Register at https://pushover.net/.

  # Enable/disable Pushover integration.
  Enable: true

  # Provide your user key obtained from Pushover.
  UserKey: uimhkd8952v7fg4dpxa3mv2xwk41uc

  # Provide the API token obtained from Pushover.
  APIToken: a1cdg7y51xdg91pzf2fseus185313p

  # Enable verbose messaging
  Debug: false

################################################################################################################################

Logging:
  # Configuration for logging.

  # Enable verbose logging
  Debug: false

  # Specify an alternative log file path.
  LogPath: /tmp/SkywarnPlus/SkywarnPlus.log

################################################################################################################################

DEV:
  # Configuration for development and testing.

  # Delete cached data on startup
  CLEANSLATE: false

  # Specify the TMP directory.
  TmpDir: /tmp/SkywarnPlus

  # ATTEMPT to write alerts to the old AUTOSKY files so that Supermon can display them.
  # This might not work due to there being several different versions of Supermon,
  # file permissions issues, etc at no fault to SkywarnPlus. This is a best-effort feature.
  #
  # If you are using Supermon2 on HamVoIP, please add your location and ZIP
  # to the file /usr/local/sbin/supermon/node_info.ini
  #
  # DO NOT ADD ast_var_update.sh TO CRON IF YOU ARE USING THIS FEATURE.
  #
  # Please encourage Supermon developers to add support for SkywarnPlus so this hack can be removed.
  SupermonCompat: true

  # Enable test alert injection instead of calling the NWS API by setting 'INJECT' to 'True'.
  INJECT: false

  # List the test alerts to inject. Alert titles are case sensitive.
  # Optionally specify the CountyCodes and/or EndTime for each alert.
  # CountyCodes used here must be defined at the top of this configuration file.
  # Example:
  # INJECTALERTS:
  #   - Title: "Tornado Warning"
  #     CountyCodes: ["ARC119", "ARC120"]
  #   - Title: "Tornado Watch"
  #     CountyCodes: ["ARC125"]
  #     EndTime: "2023-08-01T12:00:00Z"
  #   - Title: "Severe Thunderstorm Warning"
  INJECTALERTS:
  - Title: Avalanche Warning
  - Title: Tsunami Warning
  - Title: Volcano Warning
@scseifert scseifert added the bug Something isn't working label Dec 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant