definition( name: "BigTalker2-Parent", namespace: "rayzurbock", author: "rayzur@rayzurbock.com", description: "Let's talk about mode changes, switches, motions, and so on.", category: "Fun & Social", //singleInstance: true, iconUrl: "http://lowrance.cc/ST/icons/BigTalker.png", iconX2Url: "http://lowrance.cc/ST/icons/BigTalker@2x.png", iconX3Url: "http://lowrance.cc/ST/icons/BigTalker@2x.png") preferences { page(name: "pageStart") page(name: "pageTalkNow") page(name: "pageConfigureSpeechDeviceType") page(name: "pageConfigureDefaults") page(name: "pageHelpPhraseTokens") //End preferences } def pageStart(){ state.childAppName = "BigTalker2-Child" state.parentAppName = "BigTalker2-Parent" state.namespace = "rayzurbock" setVersion() state.hubType = getHubType() LOGDEBUG("Hub Type: ${state.hubType}") setFormatting() state.supportedVoices = ["Ivy(en-us)","Joanna(en-us)","Joey(en-us)","Justin(en-us)","Matthew(en-us)","Kendra(en-us)","Kimberly(en-us)","Salli(en-us)","Amy(en-gb)","Brian(en-gb)","Emma(en-gb)","Miguel(es-us)","Penelope(es-us)"] if (checkConfig()) { // Do nothing here, but run checkConfig() } dynamicPage(name: "pageStart", title: "Big Talker", install: false, uninstall: (app.getInstallationState() == "COMPLETE")){ section(){ LOGDEBUG("install state=${app.getInstallationState()}.") def mydebug_pollnow = "" if (!(state.configOK)) { href "pageConfigureSpeechDeviceType", title:"Configure", description:"Tap to configure" } else { //V1Method href "pageConfigureEvents", title: "Configure Events", description: "Tap to configure events" href "pageStatus", title:"Status", description:"Tap to view status" href "pageConfigureDefaults", title: "Configure Defaults", description: "Tap to configure defaults" href "pageTalkNow", title:"Talk Now", description:"Tap to setup talk now" } } section("Event Groups") {} section(){ def apps = getChildApps()?.sort{ it.label } if (state.configOK) { if (apps?.size() == 0) { paragraph "You have not configured any event groups yet." app(name: "BTEvt-", appName: state.childAppName, namespace: state.namespace, title: "Add Event Group", description: "Tap to configure event triggers", multiple: true, uninstall: false) } else { app(name: "BTEvt-", appName: state.childAppName, namespace: state.namespace, title: "Add Event Group", description: "Tap to configure event triggers", multiple: true, uninstall: false) } } } section(){ if ((settings?.debugmode == true) && (state.speechDeviceType == "capability.musicPlayer") && (settings?.resumePlay == true)) { input name: "debug_pollnow", type: "bool", title: "DEBUG: Poll Now (simply toggle)", multiple: false, required: false, submitOnChange: true, defaultValue: false if (!(settings.debug_pollnow == mydebug_pollnow)) { poll() } } } section("About"){ def AboutApp = "" AboutApp += '
Big Talker is a SmartApp that can make your house talk depending on various triggered events.\n\n' if (state.hubType == "Hubitat") {AboutApp += 'Pair with a Hubitat compatible audio device such as Sonos, Ubi, LANnouncer, and/or VLC Thing (running on your computer or Raspberry Pi)\n'} if (state.hubType == "SmartThings") {AboutApp += 'Pair with a SmartThings compatible audio device such as Sonos, Ubi, LANnouncer, VLC Thing (running on your computer or Raspberry Pi), a DLNA device using the "Generic MediaRenderer" SmartApp/Device and/or AskAlexa SmartApp\n'} paragraph(AboutApp) updateCheck() //checkButtons() displayVersionStatus() } section("

Donations
"){ def DonateOptions = "" DonateOptions += "Big Talker is provided to the community for free. It takes a lot of time to build and support any complex app. If you wish to support the time and effort put into development you may submit a donation with one of the following:
" DonateOptions += "