How do I accomplish the following in Neon AI (what I used to do in Mycroft)?

I double checked now and ensured the paths in .env exist for docker compose. I am not running into the error I ran into the first time I set it up. I’m pretty sure the paths in the volume mounts of each container are valid. It does not work like the first time I ever set it up though, where it accepts voice commands within neon-cli. It has worked once before, but I do not know what I am doing wrong now.

I checked the log outputs of containers and it seems like not all of the containers connect to the messagebus service, which seems unusual. I think they are all connected to the neon bridged network that was created. Here is noteworthy log output from some of the containers. The others did not have anything unusual to me, though I am a little surprised the audio container does not show up under docker ps. Is that normal?

Log for skills:

Installing Default Skills
Default Skills Installed
2024-09-26 15:38:39.509 - neon-utils - neon_utils.configuration_utils:init_config_dir:583 - INFO - Configuration set via envvars
2024-09-26 15:38:40.454 - neon-utils - neon_core.util.skill_utils:update_default_resources:136 - INFO - Directory exists; not linking default resources. /root/.cache/neon/res
2024-09-26 15:38:57.101 - neon-utils - mycroft:<module>:37 - WARNING - mycroft has been deprecated! please start importing from ovos_core and companion packages
mycroft module remains available for backwards compatibility and will be removed in version 0.2.0
Starting Skills Service
2024-09-26 15:38:57.285 - skills - ovos_bus_client.client.client:on_error:118 - WARNING - Connection Refused. Is Messagebus Service running?
2024-09-26 15:38:57.287 - skills - ovos_bus_client.client.client:on_error:134 - WARNING - Message Bus Client will reconnect in 5.0 seconds.
2024-09-26 15:39:02.294 - skills - ovos_bus_client.client.client:on_error:118 - WARNING - Connection Refused. Is Messagebus Service running?
2024-09-26 15:39:02.302 - skills - ovos_bus_client.client.client:on_error:134 - WARNING - Message Bus Client will reconnect in 10.0 seconds.
2024-09-26 15:39:12.316 - skills - ovos_bus_client.client.client:on_error:118 - WARNING - Connection Refused. Is Messagebus Service running?
2024-09-26 15:39:12.320 - skills - ovos_bus_client.client.client:on_error:134 - WARNING - Message Bus Client will reconnect in 20.0 seconds.
2024-09-26 15:39:32.328 - skills - ovos_bus_client.client.client:on_error:118 - WARNING - Connection Refused. Is Messagebus Service running?
2024-09-26 15:39:32.332 - skills - ovos_bus_client.client.client:on_error:134 - WARNING - Message Bus Client will reconnect in 40.0 seconds.
2024-09-26 15:40:12.361 - skills - ovos_bus_client.client.client:on_error:118 - WARNING - Connection Refused. Is Messagebus Service running?
2024-09-26 15:40:12.366 - skills - ovos_bus_client.client.client:on_error:134 - WARNING - Message Bus Client will reconnect in 60.0 seconds.
2024-09-26 15:41:12.434 - skills - ovos_bus_client.client.client:on_error:118 - WARNING - Connection Refused. Is Messagebus Service running?
2024-09-26 15:41:12.446 - skills - ovos_bus_client.client.client:on_error:134 - WARNING - Message Bus Client will reconnect in 60.0 seconds.
2024-09-26 15:42:12.495 - skills - ovos_bus_client.client.client:on_error:118 - WARNING - Connection Refused. Is Messagebus Service running?
2024-09-26 15:42:12.509 - skills - ovos_bus_client.client.client:on_error:134 - WARNING - Message Bus Client will reconnect in 60.0 seconds.
2024-09-26 15:43:12.575 - skills - ovos_bus_client.client.client:on_error:118 - WARNING - Connection Refused. Is Messagebus Service running?
2024-09-26 15:43:12.585 - skills - ovos_bus_client.client.client:on_error:134 - WARNING - Message Bus Client will reconnect in 60.0 seconds.
2024-09-26 15:43:57.286 - skills - neon_core.skills.service:run:130 - ERROR - Timeout waiting for bus to connect
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/neon_core/skills/service.py", line 128, in run
    self.bus = self.bus or get_messagebus(timeout=300)
  File "/usr/local/lib/python3.10/site-packages/neon_utils/messagebus_utils.py", line 54, in get_messagebus
    raise TimeoutError("Timeout waiting for bus to connect")
TimeoutError: Timeout waiting for bus to connect
2024-09-26 15:43:57.291 - skills - neon_core.skills.service:on_error:64 - INFO - Skills service failed to launch ("TimeoutError('Timeout waiting for bus to connect')")
Exception in thread Thread-4:
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.10/site-packages/neon_core/skills/service.py", line 132, in run
    raise e
  File "/usr/local/lib/python3.10/site-packages/neon_core/skills/service.py", line 128, in run
    self.bus = self.bus or get_messagebus(timeout=300)
  File "/usr/local/lib/python3.10/site-packages/neon_utils/messagebus_utils.py", line 54, in get_messagebus
    raise TimeoutError("Timeout waiting for bus to connect")
TimeoutError: Timeout waiting for bus to connect
2024-09-26 15:44:12.623 - skills - ovos_bus_client.client.client:on_error:118 - WARNING - Connection Refused. Is Messagebus Service running?
2024-09-26 15:44:12.636 - skills - ovos_bus_client.client.client:on_error:134 - WARNING - Message Bus Client will reconnect in 60.0 seconds.
2024-09-26 15:45:12.712 - skills - ovos_bus_client.client.client:on_error:118 - WARNING - Connection Refused. Is Messagebus Service running?
2024-09-26 15:45:12.726 - skills - ovos_bus_client.client.client:on_error:134 - WARNING - Message Bus Client will reconnect in 60.0 seconds.

Log for enclosure container:

neon-utils
ovos-utils>=0.0.32,~=0.0
click~=8.0
click-default-group~=1.2
ovos-bus-client>=0.0.8,~=0.0
2024-09-26 15:38:39.940 - neon-utils - neon_utils.packaging_utils:install_packages_from_pip:292 - INFO - Requested installation of plugins: 
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
WARNING: The directory '/xdg/cache/pip' or its parent directory is not owned or is not writable by the current user. The cache has been disabled. Check the permissions and owner of that directory. If executing pip with sudo, you should use sudo's -H flag.
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

[notice] A new release of pip is available: 23.0.1 -> 24.2
[notice] To update, run: pip install --upgrade pip
2024-09-26 15:38:46.466 - neon-utils - neon_enclosure.cli:install_dependencies:58 - INFO - pip exit code: 0
2024-09-26 15:38:49.746 - neon-utils - neon_utils.configuration_utils:init_config_dir:586 - INFO - Configuration set via envvars
2024-09-26 15:38:50.784 - neon-utils - ovos_utils.messagebus:<module>:9 - WARNING - Deprecation version=0.1.0. Caller=ovos_plugin_manager.templates.audio:9. decode_binary_message, send_binary_file_message, send_binary_data_message,     send_message, wait_for_reply, listen_once_for_message, get_message_lang, get_websocket, get_mycroft_bus,     listen_for_message have moved to ovos_bus_client.util
2024-09-26 15:38:51.179 - neon-utils - ovos_utils.messagebus:<module>:12 - WARNING - Deprecation version=0.1.0. Caller=ovos_plugin_manager.templates.audio:9. dig_for_message, FakeMessage, FakeBus moved to ovos_utils.fakebus
Starting Enclosure Service
2024-09-26 15:38:51.288 - enclosure - ovos_bus_client.client.client:on_error:118 - WARNING - Connection Refused. Is Messagebus Service running?
2024-09-26 15:38:51.293 - enclosure - ovos_bus_client.client.client:on_error:134 - WARNING - Message Bus Client will reconnect in 5.0 seconds.
2024-09-26 15:38:56.303 - enclosure - ovos_bus_client.client.client:on_error:118 - WARNING - Connection Refused. Is Messagebus Service running?
2024-09-26 15:38:56.306 - enclosure - ovos_bus_client.client.client:on_error:134 - WARNING - Message Bus Client will reconnect in 10.0 seconds.
2024-09-26 15:39:01.289 - enclosure - neon_utils.signal_utils:check_signal_manager_available:147 - ERROR - Signal manager check gave up waiting for the MessageBus
2024-09-26 15:39:01.291 - enclosure - neon_utils.signal_utils:init_signal_handlers:117 - WARNING - No signal manager available; falling back to FS signals
2024-09-26 15:39:01.298 - enclosure - neon_enclosure.service:__init__:39 - INFO - Initializing PHAL
2024-09-26 15:39:01.311 - enclosure - ovos_PHAL.service:on_alive:21 - INFO - PHAL is alive
2024-09-26 15:39:01.316 - enclosure - ovos_PHAL.service:on_started:25 - INFO - PHAL is started
2024-09-26 15:39:03.421 - enclosure - ovos_PHAL.service:load_plugins:92 - INFO - PHAL plugin loaded: ovos-PHAL-plugin-configuration-provider
2024-09-26 15:39:03.438 - enclosure - ovos_PHAL.service:load_plugins:92 - INFO - PHAL plugin loaded: ovos-phal-plugin-connectivity-events
2024-09-26 15:39:03.473 - enclosure - ovos_utils.gui:__new__:482 - WARNING - Deprecation version=0.1.0. Caller=ovos_PHAL_plugin_homeassistant:55. GUIInterface moved to ovos_bus_client.apis.gui
2024-09-26 15:39:03.531 - enclosure - ovos_phal_plugin_connectivity_events:update_state:82 - INFO - Network state changed to: FULL
2024-09-26 15:39:06.321 - enclosure - ovos_bus_client.client.client:on_error:118 - WARNING - Connection Refused. Is Messagebus Service running?
2024-09-26 15:39:06.324 - enclosure - ovos_bus_client.client.client:on_error:134 - WARNING - Message Bus Client will reconnect in 20.0 seconds.
2024-09-26 15:39:26.355 - enclosure - ovos_bus_client.client.client:on_error:118 - WARNING - Connection Refused. Is Messagebus Service running?
2024-09-26 15:39:26.364 - enclosure - ovos_bus_client.client.client:on_error:134 - WARNING - Message Bus Client will reconnect in 40.0 seconds.
2024-09-26 15:40:06.410 - enclosure - ovos_bus_client.client.client:on_error:118 - WARNING - Connection Refused. Is Messagebus Service running?
2024-09-26 15:40:06.415 - enclosure - ovos_bus_client.client.client:on_error:134 - WARNING - Message Bus Client will reconnect in 60.0 seconds.

Based on what I know, I do not know how I would fix the error in the enclosure container, which I believe previously happened in more containers until I updated .env. As for the error in skills, I’m guessing that is related to the messagebus not connecting properly? How would that get fixed if needed?

Hi all,

Since the services might be having errors, as I mentioned in my last post a couple of days ago, I decided to try Neon OS in the mean time. I am having trouble getting it to respond to the trigger phrase. It does not seem to respond to “Hey Neon” nor “Hey Mycroft”. I tested my mic and that is not the issue. It does respond to manually typed commands in neon-cli though. I couldn’t get that on my normal Raspberry Pi install using Docker.

I tried following a guide to change the wakeword configuration, hoping to get it to recognize at least something. None of that worked. I restarted everything once I made the configuration changes. The neon-voice service did not exist when trying to restart, so I rebooted the whole thing. I just realized as I’m writing this that it probably adopted Mycroft naming, and sure enough, neon-speech does exist as well as neon-audio if I was not sure if I restarted everything needed for things to apply. I could have probably used that, but still no luck. I think at least restarting would make the changes apply. Nothing seems to trigger. As I mentioned 6 months ago, I could get it to respond to “hey neon” on my normal raspberry pi install. I do not remember doing anything special to get that working then.

Can you help with this, and also the above post regarding my docker logged output? I seem to be having the worst luck getting my custom voice assistant working again! I never struggled to this degree when using Mycroft.

Thanks,
Joe.

Hey Joe,

Sorry you’re having this experience. Regarding the Docker setup, what does your neon.yaml file look like that you’re passing to the containers? You can set the address of the bus in that file and the default should use the Docker network that’s created for Neon. Don’t forget to remove your Home Assistant token :slightly_smiling_face:

For Neon OS, it’s hard to do much troubleshooting without log outputs. It shouldn’t take any heroics to get it to respond to you so something must be strange there. Which version of the Neon OS image did you install?

Thanks,
Mike

Which neon.yaml file should I be referring to? I see several under ./neon-core. My rpi one looks like:

play_wav_cmdline: "play %1"
play_mp3_cmdline: "play %1"
play_ogg_cmdline: "play %1"
g2p:
  module: "dummy"
tts:
  module: neon-tts-plugin-coqui-remote
  fallback_module: coqui
  neon-tts-plugin-larynx-server:
    host: "https://larynx.2022.us"
  mozilla_remote:
    api_url: "https://mtts.2022.us/api/tts"
Audio:
  backends:
    OCP:
      type: ovos_common_play
      active: true
      dbus_type: system
audio_parsers:
  blacklist:
  - gender
stt:
  fallback_module: ovos-stt-plugin-vosk
confirm_listening: true
listener:
  VAD:
    silence_method: vad_only
    module: ovos-vad-plugin-silero
  mute_during_output: false
  instant_listen: true
  speech_begin: 0.5
  silence_end: 0.9
  utterance_chunks_to_rewind: 1
hotwords:
  wake_up:
    active: false
  hey_neon:
    model_folder: /home/neon/.local/share/neon/vosk-model-small-en-us-0.15
  hey_mycroft:
    module: ovos-ww-plugin-precise-lite
    model: https://github.com/OpenVoiceOS/precise-lite-models/raw/master/wakewords/en/hey_mycroft.tflite
    listen: True
    expected_duration: 3
    trigger_level: 3
    sensitivity: 0.5

sounds:
  start_listening: snd/start_listening.wav
  acknowledge: snd/acknowledge.mp3
gui_websocket:
  host: 0.0.0.0
  base_port: 18181
  route: /gui
  ssl: false
websocket:
  host: 0.0.0.0
  port: 8181
  route: /core
  ssl: false
  allow_self_signed: false
  ssl_cert:
  ssl_key:
  shared_connection: true
gui:
  idle_display_skill: skill-ovos-homescreen.openvoiceos
  extension: smartspeaker
  run_gui_file_server: false
  generic:
    homescreen_supported: true
signal:
  use_signal_files: false
skills:
  blacklisted_skills:
    - skill-ovos-setup.openvoiceos
    - skill-messaging.neongeckocom
    - skill-custom_conversation.neongeckocom
    - skill-instructions.neongeckocom
    - skill-audio_record.neongeckocom
  default_skills: []
PHAL:
  ovos-PHAL-plugin-balena-wifi:
    enabled: false
    debug: false
    ssid: Neon
    psk:
    color: '#ff8600'
    portal: start dot neon dot ai
    device: Neon Device
  ovos-PHAL-plugin-system:
    core_service: neon.service
  neon-phal-plugin-linear-led:
    mute_color: burnt_orange
    sleep_color: red
    utterance_animation: refill
  neon-phal-plugin-fan:
    min_fan_temp: 40.0
  admin:
    neon-phal-plugin-device-updater:
      enabled: true
      initramfs_url: "https://github.com/NeonGeckoCom/neon_debos/raw/{}/overlays/02-rpi4/boot/firmware/initramfs"
      initramfs_path: /opt/neon/firmware/initramfs
      initramfs_update_path: /opt/neon/initramfs
      squashfs_url: "https://2222.us/app/files/neon_images/pi/mycroft_mark_2/updates/{}/"
      # TODO: Generic squashfs update path?
      squashfs_path: /opt/neon/update.squashfs
      default_track: dev
    neon-phal-plugin-linear-led-neopixel:
      enabled: true
    neon-phal-plugin-core-updater:
      enabled: true
      update_command: systemctl start neon-updater
      core_module: neon_core
      github_ref: NeonGeckoCom/NeonCore
    neon-phal-plugin-reset:
      enabled: true
      default_config_url: "https://github.com/NeonGeckoCom/NeonCore/archive/refs/tags/{}.zip"
      default_config_path: neon_core/configuration/opi5
    neon-phal-plugin-audio-receiver:
      enabled: true
ready_settings:
  - skills
  - voice
  - audio
  - gui_service
  - internet
  - network_skills
  - internet_skills
#  - setup
server:
  backend_type: offline

# Logging Config
log_dir: /home/neon/logs/
logging:
  log_level: INFO
  logs:
    path: /home/neon/.local/state/neon/
    # 2M max size per log file to keep within the 10M log limit
    max_bytes: 1048576
    backup_count: 1
    diagnostic: False
  bus:
    log_level: INFO
    path: /home/neon/.local/state/neon/
    # 2M max size per log file to keep within the 10M log limit
    max_bytes: 1048576
    backup_count: 1
    diagnostic: False
debug: False
system_unit: imperial
system:
  protected_keys:
    remote:
      - gui_websocket:host
      - websocket:host
      - ready_settings
    user:
      - gui_websocket:host
      - websocket:host
language:
  detection_module: None
  translation_module: libretranslate_plug
utterance_transformers:
  neon_utterance_translator_plugin:
    enable_detector: False

The one directly under ./neon_core/configuration:

# TODO: Below adding intermediate support for ovos-audio 0.x
enable_old_audioservice: True

# Plugin Configuration
utterance_transformers:
  neon_utterance_translator_plugin:
    active: True
    enable_detector: True
  neon_utterance_normalizer_plugin:
    active: True

audio_parsers:
  blacklist:
  - gender
stt:
  module: ovos-stt-plugin-server
  fallback_module: deepspeech_stream_local
  ovos-stt-plugin-vosk:
    model: /home/neon/.local/share/neon/vosk-model-small-en-us-0.15
  ovos-stt-plugin-server:
    url: https://whisper.neonaiservices.com/stt
tts:
  pulse_duck: false
  preload_fallback: false
  module: coqui
  fallback_module: amazon_polly
language:
  supported_langs:
    # List any languages here to handle natively in intent parsing
    - en
  internal: en-us
  user: en-us
  detection_module: libretranslate_detection_plug
  translation_module: libretranslate_plug
  boost: false
# System and startup
ready_settings:
  - skills
  - voice
  - audio
system:
  disable_user_config: false
  disable_remote_config: false
  protected_keys:
    remote:
      - enclosure
      - server
      - system
      - websocket
      - gui_websocket
      - network_tests
      - listener:wake_word_upload:disable
      - skills:upload_skill_manifest
      - skills:auto_update
      - skills:priority_skills
      - skills:blacklisted_skills
      - opt_in
    user: [ ]
# Audio Playback
Audio:
  backends:
    OCP:
      type: ovos_common_play
      active: true
    simple:
      type: ovos_audio_simple
      active: true
    vlc:
      type: ovos_vlc
      active: true
  default-backend: OCP
sounds:
  start_listening: snd/start_listening.wav
  end_listening: snd/end_listening.wav
  acknowledge: snd/acknowledge.mp3
  error: snd/error.mp3
play_wav_cmdline: play %1
play_mp3_cmdline: mpg123 %1
play_ogg_cmdline: ogg123 -q %1
# Speech Module
confirm_listening: true
listener:
  wake_word: hey_neon  # TODO: Deprecated
  stand_up_word: wake_up  # TODO: Deprecated
  sample_rate: 16000
  mic_meter_ipc: true
  record_wake_words: false
  save_utterances: false
  wake_word_upload:
    disable: false
    url: https://training.mycroft.ai/precise/upload
  wake_word_enabled: true  # TODO: Deprecate and replace with `continuous_listen`
  continuous_listen: false
  VAD:
    silence_method: vad_and_ratio
    # vad_only, radio_only, current_only, vad_and_ratio, vad_and_current, all
    speech_seconds: 0.1
    silence_seconds: 0.5
    before_seconds: 0.5
    min_seconds: 1
    max_current_ratio_threshold: 2
    initial_energy_threshold: 1000.0
    module: ovos-vad-plugin-webrtcvad
    ovos-vad-plugin-silero:
      threshold: 0.15
    ovos-vad-plugin-webrtcvad:
      vad_mode: 2
  mute_during_output: true
  duck_while_listening: 0.3
  phoneme_duration: 120
  multiplier: 1.0
  energy_ratio: 1.5
  recording_timeout: 10.0
  recording_timeout_with_silence: 3.0
  instant_listen: false
  enable_stt_api: true
  # amount of time to wait for speech to start after WW detection
  speech_begin: 0.5
  # amount of time without speech to wait before stopping listening
  silence_end: 0.9
  # TODO: tune below params with WW disabled
  # number of audio chunks from WW detection to include in STT audio
  utterance_chunks_to_rewind: 2
  wakeword_chunks_to_save: 15
hotwords:
  hey_mycroft:
    active: false
    module: ovos-ww-plugin-precise
    listen: true
    sound: snd/start_listening.wav
    version: "0.3"
    model: "https://github.com/MycroftAI/precise-data/raw/models-dev/hey-mycroft.tar.gz"
  hey_neon:
    active: true
    module: ovos-ww-plugin-vosk
    listen: true
    sound: snd/start_listening.wav
    debug: false
    rule: fuzzy
    lang: en
    samples:
      - hey neon
  thank_you:
    module: ovos-ww-plugin-vosk
    sound: snd/acknowledge.mp3
  wake_up:
    module: ovos-ww-plugin-vosk
# Skills
skills:
  wait_for_internet: false
  extra_directories: []
  upload_skill_manifest: true
  blacklisted_skills: []
  priority_skills: []
  fallbacks:
    fallback_priorities: {}
    fallback_mode: accept_all
    fallback_whitelist: []
    fallback_blacklist: []
  converse:
    timeout: 300
    skill_timeouts: {}
    converse_mode: accept_all
    converse_whitelist: []
    converse_blacklist: []
    converse_activation: accept_all
    max_activations: -1
    skill_activations: {}
    cross_activation: true
    cross_deactivation: true
    converse_priorities: {}
  common_query:
    extension_time: 3
    min_response_wait: 2
    max_response_wait: 6
  update_interval: 1.0
  disable_osm: false
  appstore_sync_interval: 6
  auto_update: false
  auto_update_interval: 24
  install_essential: true
  essential_skills: []
  install_default: false
  default_skills: https://raw.githubusercontent.com/NeonGeckoCom/neon_skills/master/skill_lists/DEFAULT-SKILLS
padatious:
  intent_cache: ~/.local/share/mycroft/intent_cache
  train_delay: 4
  single_thread: false
  regex_only: false
# GUI Service
gui:
  extension: generic
  generic:
    homescreen_supported: false
# Networking
server:
  disabled: true
  url: https://api.mycroft.ai
  version: v1
  update: false
  metrics: false
  sync_skill_settings: false
websocket:
  host: 0.0.0.0
  port: 8181
  route: /core
  ssl: false
  allow_self_signed: false
  ssl_cert:
  ssl_key:
  shared_connection: true
gui_websocket:
  host: 0.0.0.0
  base_port: 18181
  route: /gui
  ssl: false
network_tests:
  # TODO: Update to neonaiservices.com
  ip_url: https://hana.neonaibeta.com/util/client_ip
  dns_primary: 1.1.1.1
  dns_secondary: 1.0.0.1
  web_url: https://www.google.com
  ncsi_endpoint: http://www.msftncsi.com/ncsi.txt
  ncsi_expected_text: Microsoft NCSI
MQ:
  server: mq.neonaiservices.com
  port: 5672
  users:
    mq_handler:
      user: neon_api_utils
      password: Klatchat2021
hana:
  url: "https://hana.neonaiservices.com"
signal:
  use_signal_files: false
  max_wait_seconds: 300

# Logging Config
logging:
  log_level: INFO
  logs:
    path:
    max_bytes: 50000000
    backup_count: 3
    diagnostic: False
  level_overrides:
    error: []
    warning:
      - filelock
      - botocore
    info: []
    debug: []

PHAL:
  wait_for_gui: False
  ovos-PHAL-plugin-brightness-control-rpi:
    enabled: False
  ovos-PHAL-plugin-color-scheme-manager:
    enabled: False
  ovos-PHAL-plugin-configuration-provider:
    enabled: False
  ovos-PHAL-plugin-notification-widgets:
    enabled: False
  ovos-PHAL-plugin-dashboard:
    enabled: False
  ovos-PHAL-plugin-gui-network-client:
    enabled: False
# Debug/Metrics
debugging:
  tracemalloc: false
  log_malloc: true
  log_interval_minutes: 60
opt_in: false
debug: false
device_name: unknown
ignore_logs:
- enclosure.mouth.viseme
- enclosure.mouth.display

data_dir: ~/.cache/neon/res

# Backwards-compat semi-deprecated
precise:
  use_precise: true
  dist_url: https://github.com/MycroftAI/precise-data/raw/dist/{arch}/latest
  model_url: https://raw.githubusercontent.com/MycroftAI/precise-data/models/{wake_word}.tar.gz
ipc_path: /tmp/neon/ipc
enclosure:
  platform: PHAL
  ntp_sync_on_boot: false
  force_mycroft_ntp: true
session:
  ttl: 180

# Backwards-compat user configuration
system_unit: metric
time_format: half
date_format: MDY
lang: en-us
secondary_langs: [en-us, uk-ua]
location:
  city:
    code: Renton
    name: Renton
    state:
      code: WA
      name: Washington
      country:
        code: US
        name: United States
  coordinate:
    latitude: 47.482880
    longitude: -122.217064
  timezone:
    code: America/Los_Angeles
    name: Pacific Standard Time
    dstOffset: 3600000
    offset: -28800000

Let me know if none of those files are correct and which one I should be putting here if anything. Also, I did not see any tokens within the file, so if I missed it, please let me know what I should have obfuscated. Let me know if you need any other logs and maybe let me know where I would access it since I likely won’t know where to look otherwise.

As for Neon OS, I did the latest release from that link (2024-07-24). Let me know if you need any logs from that too and where I would find that if needed. Thanks.

Any suggestions regarding my last post, including the neon configuration question you had, and anything you need regarding helping me with Neon OS?

Thanks.

The configuration docs might be helpful here. Based on your earlier message, xdg/config/neon/neon.yaml is the configuration file you may edit and the one that is most relevant to debugging since the other configs are mostly static.

The errors in the skills and enclosure containers indicate the service wasn’t able to connect to the messagebus service. Are other services running? Can you get logs for neon-messagebus and make sure that service started properly?

One educated guess at a solution is to edit the neon.yaml file mounted to the containers to include (if it isn’t already in there):

websocket:
  host: neon-messagebus
  port: 8181
  route: /core
  ssl: false
  shared_connection: true
gui_websocket:
  host: neon-gui
  base_port: 18181
  route: /gui
  ssl: false

Here is the log output from neon-messagebus:

2024-09-26 15:53:48.258 - neon-utils - neon_utils.configuration_utils:init_config_dir:586 - INFO - Configuration set via envvars
Starting Messagebus Service
2024-09-26 15:53:52.983 - bus - neon_messagebus.service:run:105 - INFO - Starting message bus service...
2024-09-26 15:53:53.000 - bus - ovos_messagebus.load_config:load_message_bus_config:33 - INFO - Loading message bus configs
2024-09-26 15:53:53.006 - bus - neon_messagebus.service:_listen:176 - INFO - Starting Messagebus server with config: MessageBusConfig(host='0.0.0.0', port=8181, route='/core', ssl=None)
2024-09-26 15:53:53.009 - bus - neon_messagebus.service:_listen:192 - INFO - ws listener started
[I 240926 15:53:53 web:2348] 101 GET /core (127.0.0.1) 10.24ms
[I 240926 15:53:53 _logging:89] Websocket connected
2024-09-26 15:53:53.112 - bus - neon_messagebus.service:_init_signal_manager:144 - INFO - Signal Manager started
2024-09-26 15:53:53.121 - bus - neon_messagebus.service:_init_mq_connector:148 - INFO - No MQ Configuration
2024-09-26 15:53:53.127 - bus - neon_messagebus.service:on_ready:50 - INFO - Messagebus is ready.
2024-09-26 15:53:53.131 - bus - neon_messagebus.service:run:117 - INFO - Message bus service started!
2024-11-10 17:52:41.641 - neon-utils - neon_utils.configuration_utils:init_config_dir:586 - INFO - Configuration set via envvars
Starting Messagebus Service
2024-11-10 17:52:46.577 - bus - neon_messagebus.service:run:105 - INFO - Starting message bus service...
2024-11-10 17:52:46.593 - bus - ovos_messagebus.load_config:load_message_bus_config:33 - INFO - Loading message bus configs
2024-11-10 17:52:46.608 - bus - neon_messagebus.service:_listen:176 - INFO - Starting Messagebus server with config: MessageBusConfig(host='0.0.0.0', port=8181, route='/core', ssl=None)
2024-11-10 17:52:46.610 - bus - neon_messagebus.service:_listen:192 - INFO - ws listener started
[I 241110 17:52:46 _logging:89] Websocket connected
[I 241110 17:52:46 web:2348] 101 GET /core (127.0.0.1) 36.96ms
2024-11-10 17:52:46.741 - bus - neon_messagebus.service:_init_signal_manager:144 - INFO - Signal Manager started
2024-11-10 17:52:46.747 - bus - neon_messagebus.service:_init_mq_connector:148 - INFO - No MQ Configuration
2024-11-10 17:52:46.758 - bus - neon_messagebus.service:on_ready:50 - INFO - Messagebus is ready.
2024-11-10 17:52:46.767 - bus - neon_messagebus.service:run:117 - INFO - Message bus service started!

Does that indicate if it started properly?

I found the neon.yaml file already contains the exact lines regarding websocket and gui_websocket. What is; however curious, is in my docker env file, XDG path is configured as /home/pi/.local/share/neon. I do not see a configuration file there, but I do see one in my Docker folder called xdg. I see a config file there, but I can’t tell if that’s what goes into the containers. I tried looking at the docker-compose.yaml file, but I can’t tell what is being referenced from that. Regardless, the yaml file I see contains those exact lines on the last post regarding websocket and gui_websocket.

Honestly, this is quite difficult for me to navigate because I’m doing this during the little free time I’m willing to spend on this and I haven’t been able to use my custom voice assistant for the past 8 months and I got quite deep into custom commands, so I really miss using it! Also, it’s quite difficult to do this back and forth compared to just being there and troubleshooting this live. Is there any way we could sometime schedule a video call or something that supports screensharing and someone could help me through getting things working? I’d really appreciate that and would be willing to pay you for your time! With the way things are currently going, I honestly don’t have much hope getting where I was 8 months ago soon. I would really like to get things functional for once!

Let me know if we can schedule that and how we could go about doing that. With the luck I’m having, I do not think I will be lucky enough to get this working on my own. Thanks

Hi @zinsy23 , not sure where you are in the world, but I can be available most afternoons Central Standard Time in the U.S. if you’d like to set up half an hour or so to review.

1 Like

I’m Central Time as well, nice! Does sometime this Thursday (11/21) afternoon work? I don’t believe I am on-site for work that day, so that should work for me. Let me know what time works and the method of communication for meeting (likely something with screen sharing) and how we will proceed with that.

Thanks again for your time! I’d still like to take myself up on paying you for your time, especially if we end up getting things working for once.

1 Like

I am currently using OVOS now as per @mikejgray’s suggestion during our meeting. It runs in general now. I am currently trying to add my custom skills from Mycroft so I can use it with OVOS. So far, I’ve run projen and I believe it has retrofitted the skill correctly. But now I’m trying to get it registered in OVOS so it works. As I understand it, we are trying to use pip to install the skill to OVOS?

I tried following an article about installing pip installable package. I also understand that there is a .projenrc file within the root of my retrofitted skill. Since it had “type”, “name”, and “retrofit” keys already, I added “author” and “repositoryUrl” due to the error I was getting trying to run pip install . :

Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Processing /home/pi/.config/mycroft/skills/open-spirits-arise-equalizer-skill
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error
  
  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [7 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/home/pi/.config/mycroft/skills/open-spirits-arise-equalizer-skill/setup.py", line 11, in <module>
          SKILL_AUTHOR, SKILL_NAME = URL.split(".com/")[-1].split("/")
          ^^^^^^^^^^^^^^^^^^^^^^^^
      ValueError: not enough values to unpack (expected 2, got 1)
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

I attempted to modify setup.py and manually define the “SKILL_AUTHOR” and “SKILL_NAME” variables and it changed the error to the following:

error in open-spirits-arise-equalizer-skill setup command: Problems to parse EntryPoint(name='open-spirits-arise-equalizer-skill.joseph zins', value="open_spirits_arise_equalizer_skill:TODO: Add 'skillClass' to .projenrc.json and run pj", group='ovos.plugin.skill').

I noticed the URL variable in setup.py is set to a TODO, which is why I added “repositoryUrl” to that rc file as mentioned earlier. Does that file even get referenced with the current structure I have with “URL” being a TODO placeholder, etc? Do I normally need to add more lines to the projenrc file, and is there anything else I need to modify to get the skill registered with OVOS? Basically I need help getting pip install . to run on my projen retrofitted skill. I don’t know what needs to manually be done for it to work if projen doesn’t automatically do everything, like the skill registration to the device.

Is anyone able to help me with getting custom projen skills to work on OVOS? See my last post for details. Basically, I am trying to register the skill with pip/OVOS locally so I can use it with the assistant.

Thanks.

I don’t use projen, but if you have your skill in GitHub I can take a look

Okay, I’ve created a Github repo for one of my primary custom skills I use when the voice assistant actually works for a change. It requires quite a bit of setup as it send signals to my computers via SSH to open files or programs, or control video playback on the computer remotely from the Pi, etc, but I adjusted the skill so it shouldn’t error out when loading under a different configuration. It won’t actually function, but it shouldn’t error out upon loading at least.

Basically, I am simply trying to get this skill loaded into OVOS so I can use it. I’ve used projen with the --retrofit flag to convert it to this voice assistant. OVOS doesn’t load the skill from that even though I placed it in ~/.config/mycroft/skills. I’m assuming there are other steps to get OVOS to register the actual skill? If I try using one of my typical commands, like “open letter juliet” to open my computer’s J drive, it doesn’t know what I’m talking about like due to not loading the skill.

Also another side question, if I am starting OVOS, what is the best way for me to tell if there is an error loading a skill and what error happened (usually python related)? Oftentimes when I am modifying my skills (which I do since I’m always refining it how I want), I get errors when trying to load them and debug them. I used to use mycroft-cli and all the errors nice showed up there, which was handy. What would be the best way to do that with this new system when I need to debug my skills?

I appreciate any help you can offer!

I have a couple of other questions as I continue setting things up.

  1. Has mycroft-cli-client been deprecated? I was able to use it with my 4 month old installation and I needed to reinstall OVOS due to screwing up my configuration, and suddenly mycroft-cli-client had errors. I’m guessing that is due to the latest version of OVOS? If so, what do you recommend I use and how would I use it? What I liked about mycroft-cli-client was how it showed the color-coded messagebus output so I could see what happens with my spoken utterances and also type manual utterances. I liked how easy it was to tell when it was listening for the utterance and when it was done (basically “recognizer_loop:record_begin” and “recognizer_loop:record_end”). What is the best way to do those things now with OVOS with ease?

  2. Basically, I was trying to get my custom trigger phrase, which used to be used with precise-engine-0.3.0 and I screwed up the configuration attempting to get that working again. I attempted to use precise lite trainer to convert my model into tflite, or at least take my training data and re-create it into a .tflite model. I attempted to install that precise lite project, but it doesn’t run due to python dependency hell. I’ve tried virtual environments with python 3.8 and 3.11 with various versions of tensorflow, etc, but I can’t get all the dependency versions to kindly work as a team. I ran into that getting my model originally created with mycroft-precise, but I eventually found a happy medium for the dependencies. I give up with this one though. I then noticed in the configuration file there is a mycroft hotword using the “ovos-ww-plugin-precise” model. I attempted to see if I could get my computer.pb and computer.pb.params working from within a tar.gz file, and I haven’t been able to test it due to the mycroft-cli-client not working anymore since reinstalling OVOS. That’s where I’m hoping to solve that with my first question. Would a precise-engine-0.3.0 model files compressed in .tar.gz work with “ovos-ww-plugin-precise” (newer than precise 0.2.0, which is an important distinction)?

I can test my second question if I get my first question answered, but if anyone happens to know from working on the project, I’d appreciate insights into the second question too if any.

I immediately notice an issue with object init; that should look like:

class OpenSpiritsAriseEqualizer(OVOSSkill):
    def __init__(self, *args, **kwargs):
        OVOSSkill.__init__(self, *args, **kwargs)

That would definitely raise some exception when trying to load the skill; I would expect an error to be logged in skills.log.

@mikejgray I suspect you’re handling super().__init__ calls in projen, but not explicit class names as used in this skill (just a guess based on what I see in this skill).

Yes, that code is packaged in neon-cli-client, but that is mostly unmaintained. I personally find it easy enough to tail -f ~/.local/state/mycroft/logs/*.log and use grep to filter for the logs I’m looking for, but I don’t know if there’s a better solution out there.
Neon does have an open bounty for a new CLI, though there hasn’t been much interest.

Does that include when it starts and stops listening for utterances, in other words, wakeword detected, etc? If so, it would appear that my trigger phrase isn’t working at all after reinstalling OVOS, but that’s assuming it is reporting wake word detected under one of these logs.

Does that work properly with OVOS? Or only Neon? The output doesn’t seem very verbose compared to the mycroft-cli-client version I used to use.