Closed paularmstrong closed 1 year ago
Hmm, that's odd. To clarify, the Stream Deck plugin (the com.chrisregado.googlemeet.streamDeckPlugin
file) installed fine for you and you were able to drag & drop Google Meet buttons onto the Stream Deck, but they just never work?
If the plugin launched, you should be able to do a ps aux | grep com.chrisregado.googlemeet
and see a process like the following running:
/Users/chris/Library/Application Support/com.elgato.StreamDeck/Plugins/com.chrisregado.googlemeet.sdPlugin/dist/macos/main/main -port 28196 -pluginUUID CA8E4684E44AEB1D9A2F64585F126A81 -registerEvent registerPlugin -info {"application":{"font":".AppleSystemUIFont","language":"en","platform":"mac","platformVersion":"13.1.0","version":"6.0.2.17735"},"colors":{"buttonPressedBackgroundColor":"#303030FF","buttonPressedBorderColor":"#646464FF","buttonPressedTextColor":"#969696FF","disabledColor":"#007AFF7F","highlightColor":"#007AFFFF","mouseDownColor":"#2EA8FFFF"},"devicePixelRatio":1,"devices":[{"id":"35E111DDB814A2EABF8F096515B63771","name":"Stream Deck","size":{"columns":5,"rows":3},"type":0}],"plugin":{"uuid":"com.chrisregado.googlemeet","version":"1.3.0"}}
If the plugin is completely failing to start (which will also happen if it can't open port 2394), that should appear in the StreamDeck0.log file. For example, I can force a failure by:
nc -v -l 127.0.0.1 2394
Then in my ~/Library/Logs/ElgatoStreamDeck/StreamDeck0.log I see:
18:28:11.0145 int dbgcommand(): using log file '/Users/chris/Library/Logs/ElgatoStreamDeck/StreamDeck0.log'
18:28:11.0638 int main(): Using preferences from /Users/chris/Library/Preferences/com.elgato.StreamDeck.plist
18:28:11.1420 void EGQTTranslationManager::LoadLocalizations(): Could not load the 'en_US' localization
18:28:11.1420 void EGQTTranslationManager::LoadLocalizations(): Could not load the Qt 'en_US' localization
18:28:11.1446 int main(): Compiled with Qt 6.3.1 ; SSL: Secure Transport, macOS 13.1
18:28:11.1446 int main(): Runtime SSL Supported: 1
18:28:11.1447 int main(): Runtime SSL version used: Secure Transport, macOS 13.1
18:28:11.1447 int main(): Start Stream Deck App -> Version: 6.0.2
18:28:11.1722 bool ESDCUEHub::init(): ### [CUESDK] init
18:28:11.1723 bool ESDVSDServer::init(): ### [SERVER] init
18:28:11.1725 void ESDCustomPluginCommunication::start(): Using port 28196 to communicate with plugins
18:28:11.1725 void ESDPluginManager::LoadPluginsFromCore(): Load plugins from core...
18:28:12.4982 void AccountMgr::InitializeAccountMgr(): AccountMgr initialized
18:28:12.4983 void AccountMgr::ReloadAllAccountsFromPreferences(): Reload all accounts
18:28:12.4988 void AccountMgr::RecreateServiceInstancesForType(): Recreate service instances for Twitter
18:28:12.4988 void AccountMgr::RecreateServiceInstancesForType(): Recreate service instances for YouTube
18:28:12.4988 void AccountMgr::RecreateServiceInstancesForType(): Recreate service instances for Streamlabs
18:28:12.4989 void AccountMgr::RecreateServiceInstancesForType(): Recreate service instances for Twitch
18:28:12.4989 void AccountMgr::RecreateServiceInstancesForType(): Recreate service instances for Facebook
18:28:12.5545 MainWindow::MainWindow(): Running in high dpi mode: 1.00
18:28:12.6821 void ESDAppController::bootstrap(): All object init done!
18:28:12.6882 ESDSharedFileServer::ESDSharedFileServer(): mapfile location /Users/chris/Library/Application Support/com.elgato.streamdeck/STREAMDECKINTERNALSHM
18:28:12.7685 virtual bool MainWindow::event(): Wake up keypad(s).
18:28:12.7873 auto ESDObsConnectionManager::CreateSocket(): SLOBS returned error Connection refused
18:28:12.9309 void ESDCustomPlugin::onNativeProcessFinished(): The plugin 'Google Meet' exited normally with code 1
18:28:12.9310 void ESDCustomPlugin::restartNativeProcess(): Restarting plugin 'Google Meet' in 0 seconds(s)
And Stream Deck will periodically attempt to start it again:
18:28:13.0671 void ESDCustomPlugin::onNativeProcessFinished(): The plugin 'Google Meet' exited normally with code 1
18:28:13.0672 void ESDCustomPlugin::restartNativeProcess(): Restarting plugin 'Google Meet' in 60 seconds(s)
The plugin appears to not be running:
> ps aux | grep com.chrisregado.googlemeet | grep -V grep
> echo $?
1
I have uninstalled and re-installed the plugin and added buttons for it.
nc -v -l 127.0.0.1 2394
15:55:40.1169 int dbgcommand(): using log file '/Users/paularmstrong/Library/Logs/ElgatoStreamDeck/StreamDeck0.log'
15:55:40.1632 int main(): Using preferences from /Users/paularmstrong/Library/Preferences/com.elgato.StreamDeck.plist
15:55:40.2434 void EGQTTranslationManager::LoadLocalizations(): Could not load the 'en_US' localization
15:55:40.2435 void EGQTTranslationManager::LoadLocalizations(): Could not load the Qt 'en_US' localization
15:55:40.2460 int main(): Compiled with Qt 6.3.1 ; SSL: Secure Transport, macOS 13.1
15:55:40.2461 int main(): Runtime SSL Supported: 1
15:55:40.2461 int main(): Runtime SSL version used: Secure Transport, macOS 13.1
15:55:40.2461 int main(): Start Stream Deck App -> Version: 6.0.2
15:55:40.2748 bool ESDCUEHub::init(): ### [CUESDK] init
15:55:40.2748 bool ESDVSDServer::init(): ### [SERVER] init
15:55:40.2750 void ESDCustomPluginCommunication::start(): Using port 28196 to communicate with plugins
15:55:40.2751 void ESDPluginManager::LoadPluginsFromCore(): Load plugins from core...
15:55:41.6699 void AccountMgr::InitializeAccountMgr(): AccountMgr initialized
15:55:41.6700 void AccountMgr::ReloadAllAccountsFromPreferences(): Reload all accounts
15:55:41.6701 void AccountMgr::RecreateServiceInstancesForType(): Recreate service instances for Twitter
15:55:41.6701 void AccountMgr::RecreateServiceInstancesForType(): Recreate service instances for YouTube
15:55:41.6702 void AccountMgr::RecreateServiceInstancesForType(): Recreate service instances for Streamlabs
15:55:41.6702 void AccountMgr::RecreateServiceInstancesForType(): Recreate service instances for Twitch
15:55:41.6702 void AccountMgr::RecreateServiceInstancesForType(): Recreate service instances for Facebook
15:55:41.7228 MainWindow::MainWindow(): Running in high dpi mode: 2.00
15:55:41.8577 void ESDAppController::bootstrap(): All object init done!
15:55:41.8640 ESDSharedFileServer::ESDSharedFileServer(): mapfile location /Users/paularmstrong/Library/Application Support/com.elgato.streamdeck/STREAMDECKINTERNALSHM
15:55:41.9342 virtual bool MainWindow::event(): Wake up keypad(s).
15:55:41.9528 auto ESDObsConnectionManager::CreateSocket(): SLOBS returned error Connection refused
15:55:42.1002 void ESDAppController::onDeviceStatusChanged(): Device connected, id: @(1)[4057/99/BL38J1B05584], serial number: BL38J1B05584, firmware version: 3.00.001
15:55:42.1019 void ESDPreferenceTabGeneral::DeviceStateChangedNotification(): Dev FW ver: 3.0.1.0, Embed FW ver: 1.3.0.0
15:55:42.1019 void ESDPreferenceTabGeneral::DeviceStateChangedNotification(): show update fw button: no
15:55:42.1020 void ESDPreferenceTabGeneral::DeviceStateChangedNotification(): Serial No: BL38J1B05584
15:55:42.1399 void ESDCustomPluginCommunication::onMessageReceived(): Plugin F4C36659721AE1C2A2F5BF31BD1A05DC is now connected
15:55:42.2198 void ESDCustomPluginCommunication::onMessageReceived(): Plugin 86EDD5CEBE93AADCD0D7E0C6E92DB158 is now connected
15:55:46.8248 void ESDAppStoreManager::UpdateAppStorePlugins(): Check for Plugin Store updates
15:55:46.8265 void ESDAppStoreManager::UpdateAppStoreIconPacks(): Check for icon pack Store updates
15:55:46.8272 void EGQTSWUpdateDialog::checkForUpdate(): Check for update 2: https://gc-updates.elgato.com/mac/sd-update/final/app-version-check.json
15:55:46.8274 void EGQTSWUpdateDownloader::startDownload(): Download task name: Update File, file URL: https://gc-updates.elgato.com/mac/sd-update/final/app-version-check.json
15:55:46.8303 auto ESDObsConnectionManager::CreateSocket(): SLOBS returned error Connection refused
15:55:47.1988 virtual EGQTSWUpdateDialog::UpdateState EGQTSWUpdateDialog::shouldUpdate(): current SW Ver: 6.0.2.17735, remote SW Ver: 5.3.3.15214
15:55:47.1989 bool EGQTSWUpdateDialog::handleUpdateFileDownloaded(): No update available
15:55:51.8262 auto ESDObsConnectionManager::CreateSocket(): SLOBS returned error Connection refused
(Screenshot just to show plugin installed and button added)
Hmm, that is very odd. I've never seen that happen before.
Do other non-Javascript plugins work for you? (I see Home Assistant in your screenshot, but that appears to be pure Javascript, which works a little differently with the Elgato SDK.) For example, you should be able to install https://github.com/elgatosf/streamdeck-applemail/releases and see it running in ps aux | grep -i com.elgato.applemail
.
There's a list of open-source plugins here if you want to try a different example: https://github.com/madmatt/streamdeck-plugins/blob/master/index.md
I started a new build here (direct download link) just in case there's some recent change in Elgato's build tools for 6.0, but that's just a random guess. I'm also running app v6.0.2 (17735) on Ventura 13.1 on an M1 Max, and old builds are still working fine for me.
Do other non-Javascript plugins work for you? (I see Home Assistant in your screenshot, but that appears to be pure Javascript, which works a little differently with the Elgato SDK.) For example, you should be able to install https://github.com/elgatosf/streamdeck-applemail/releases and see it running in ps aux | grep -i com.elgato.applemail.
Nope! Looks like this is not running either. The Home Assistant plugin is definitely working correctly, though.
The new build you linked also results in nothing running. 😞
One other thing that comes to mind is both streamdeck-googlemeet and that Apple Mail example are x86 apps rather than native ARM builds, so if your M1 Mac doesn't have Rosetta 2 installed, you'd need to softwareupdate --install-rosetta --agree-to-license
.
I'd still expect to see some sort of error in StreamDeck0.log
, but that at least sounds like a reasonable bug in StreamDeck 6.0's recent transition to a native Apple Silicon app.
Beyond that, could there be some sort of extra security software / MDM blocking execution of plugins?
What happens if you try to launch the plugin binary directly from a terminal?:
~/Library/Application\ Support/com.elgato.StreamDeck/Plugins/com.chrisregado.googlemeet.sdPlugin/dist/macos/main/main
You should at least be able to get a usage error:
usage: main [-h] -port PORT -pluginUUID PLUGIN_UUID -registerEvent REGISTER_EVENT -info INFO
main: error: the following arguments are required: -port, -pluginUUID, -registerEvent, -info
softwareupdate --install-rosetta --agree-to-license
That was it! Issue completely resolved now.
Aha, I'll add that to the readme. Before Stream Deck 6.0, Rosetta would need to be installed for the Stream Deck app to run at all, so no one would find themselves in this situation.
I've been trying to track down why the plugin & extension refuse to work. The browser extension fails to connect to the websocket server. Initially thought this was due to organization configuration with the browser, but I looked a bit deeper and it seems that the ws server is never started up. No relevant logs or failures. I'm not sure where to continue looking… Anyone experienced this or have an idea how to fix?
StreamDeck0.log