What does it look like if you copy this json into your BTT?
Here it looks like this, which seems ok
[
{
"BTTGestureNotes" : "airpods",
"BTTTriggerType" : 680,
"BTTTriggerTypeDescription" : "Menubar Item: airpods",
"BTTTriggerClass" : "BTTTriggerTypeOtherTriggers",
"BTTPredefinedActionType" : -1,
"BTTPredefinedActionName" : "No Action",
"BTTEnabled2" : 1,
"BTTRepeatDelay" : 0,
"BTTUUID" : "F3E371DC-5079-4452-92D6-AAAACDB1FF5A",
"BTTNotesInsteadOfDescription" : 0,
"BTTEnabled" : 1,
"BTTModifierMode" : 0,
"BTTOrder" : 8,
"BTTDisplayOrder" : 0,
"BTTTriggerConfig" : {
"BTTScriptType" : 0,
"BTTTouchBarButtonLineHeight" : 10,
"BTTTouchBarItemIconWidth" : 22,
"BTTTouchBarButtonTextAlignment" : 0,
"BTTTouchBarButtonColor" : "0.000000, 0.000000, 0.000000, 0.000000",
"BTTTouchBarButtonTopMargin" : 0,
"BTTTouchBarAlternateBackgroundColor" : "0.000000, 0.000000, 0.000000, 0.000000",
"BTTTouchBarScriptUpdateInterval" : 1,
"BTTTouchBarButtonFontSize" : 10,
"BTTTouchBarAppleScriptString" : "--Original script by Noon Chen, modified by yuuiko to support any bluetooth device and list UI setup.\nuse framework \"IOBluetooth\"\nuse scripting additions\n\nset deviceList to current application's IOBluetoothDevice's pairedDevices()\nset devNames to (deviceList's valueForKey:\"name\") as list\nset devStatus to (deviceList's valueForKey:\"connected\") as list\nset devAddress to (deviceList's valueForKey:\"addressString\") as list\n\nset currentModel to \"AirPods\" --default widget icon\ntell application \"BetterTouchTool\" to set AirPodsName to get_string_variable \"AirPodsWg_DevceName\"\n\nif devNames contains AirPodsName then\n\trepeat with i from 1 to count devNames\n\t\tif (item i of devNames) = AirPodsName then\n\t\t\t\n\t\t\t--Get index of AirPods in the list and save connection status and MAC address value\n\t\t\tset connectValue to item i of devStatus\n\t\t\tset MAC_addr to item i of devAddress\n\t\t\t\n\t\t\t------SPECIAL PRODUCT BEHAVIOUR------\n\t\t\ttry\n\t\t\t\tset ProductID to do shell script \"\/usr\/libexec\/PlistBuddy -c \\\"print :DeviceCache:\" & MAC_addr & \":ProductID\\\" \/Library\/Preferences\/com.apple.Bluetooth.plist\"\n\t\t\ton error\n\t\t\t\tset ProductID to \"ERROR\"\n\t\t\t\tset currentModel to \"Not Airpods\"\n\t\t\tend try\n\t\t\t\n\t\t\t--set icons\n\t\t\tif ProductID = \"8206\" then\n\t\t\t\t--AirPods Pro\n\t\t\t\tset currentModel to \"AirPods Pro\"\n\t\t\t\t\n\t\t\telse if ProductID = \"8207\" or ProductID = \"8194\" then --AirPods 1 & 2, ProductID = 8207\/8194\n\t\t\t\tset currentModel to \"AirPods\"\n\t\t\t\t\n\t\t\telse\n\t\t\t\tset currentModel to \"Not Airpods\"\n\t\t\tend if\n\t\t\t\n\t\t\t------SPECIAL PRODUCT BEHAVIOUR------\n\t\t\t\n\t\t\t\n\t\t\t------SET TEXT TO RETURN------\n\t\t\tif connectValue = 1 then\n\t\t\t\t\n\t\t\t\ttry --scan for \"BatteryPercentLeft\" and \"BatteryPercentRight\", used in AirPods and probably beats true wireless.\n\t\t\t\t\tset BatteryLeft to do shell script \"\/usr\/libexec\/PlistBuddy -c \\\"print :DeviceCache:\" & MAC_addr & \":BatteryPercentLeft\\\" \/Library\/Preferences\/com.apple.Bluetooth.plist\"\n\t\t\t\t\tset BatteryRight to do shell script \"\/usr\/libexec\/PlistBuddy -c \\\"print :DeviceCache:\" & MAC_addr & \":BatteryPercentRight\\\" \/Library\/Preferences\/com.apple.Bluetooth.plist\"\n\t\t\t\t\t\n\t\t\t\t\tif BatteryLeft = \"0\" and BatteryRight = \"0\" then\n\t\t\t\t\t\treturn jsonData(currentModel, \"Not Connected\", 0, 15)\n\t\t\t\t\telse\n\t\t\t\t\t\tset batteryText to formatValue(BatteryLeft, \"🅛\") & \"\\\\n\" & formatValue(BatteryRight, \"🅡\") -- Connected Output\n\t\t\t\t\tend if\n\t\t\t\t\t\n\t\t\t\ton error --scan for \"BatteryPercent\", used in probably apple magic mice, trackpad and keyboards.\n\t\t\t\t\ttry\n\t\t\t\t\t\tset BatteryLeft to do shell script \"\/usr\/libexec\/PlistBuddy -c \\\"print :DeviceCache:\" & MAC_addr & \":BatteryPercent\\\" \/Library\/Preferences\/com.apple.Bluetooth.plist\"\n\t\t\t\t\t\tlog BatteryLeft\n\t\t\t\t\t\t\n\t\t\t\t\t\tif BatteryLeft = \"0\" then\n\t\t\t\t\t\t\treturn jsonData(currentModel, AirPodsName & \"\\\\n\" & \"Not Connected\", 0, 11) --SET OUTPUT probably apple magic mice, trackpad and keyboards not connected\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tset batteryText to AirPodsName & \"\\\\n\" & \"Battery: \" & (round BatteryLeft * 100 rounding down) & \"%\" --SET OUTPUT probably apple magic mice, trackpad and keyboards connected\n\t\t\t\t\t\tend if\n\t\t\t\t\t\t\n\t\t\t\t\ton error --scan for \"BatteryPercentSingle\", used in probably beats.\n\t\t\t\t\t\ttry\n\t\t\t\t\t\t\tset BatteryLeft to do shell script \"\/usr\/libexec\/PlistBuddy -c \\\"print :DeviceCache:\" & MAC_addr & \":BatteryPercentSingle\\\" \/Library\/Preferences\/com.apple.Bluetooth.plist\"\n\t\t\t\t\t\t\tlog BatteryLeft\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif BatteryLeft = \"0\" then\n\t\t\t\t\t\t\t\treturn jsonData(currentModel, AirPodsName & \"\\\\n\" & \"Not Connected\", 0, 11) --SET OUTPUT probably beats not connected\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tif BatteryLeft is greater than 1 then\n\t\t\t\t\t\t\t\t\tset batteryText to AirPodsName & \"\\\\n\" & \"Battery: \" & BatteryLeft & \"%\" --SET OUTPUT probably beats connected\n\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\tset batteryText to AirPodsName & \"\\\\n\" & \"Battery: \" & (round BatteryLeft * 100 rounding down) & \"%\" --SET OUTPUT probably beats connected\n\t\t\t\t\t\t\t\tend if\n\t\t\t\t\t\t\tend if\n\t\t\t\t\t\t\t\n\t\t\t\t\t\ton error --handle any other generic bluetooth device with no battery report\n\t\t\t\t\t\t\tlog \"these aren't airpods\"\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tset currentModel to \"Not Airpods\"\n\t\t\t\t\t\t\tset batteryText to AirPodsName & \"\\\\n\" & \"Connected\" --SET OUTPUT generic device connected\n\t\t\t\t\t\tend try\n\t\t\t\t\tend try\n\t\t\t\tend try\n\t\t\t\t\n\t\t\telse\n\t\t\t\treturn jsonData(currentModel, AirPodsName & \"\\\\n\" & \"Not Connected\", 0, 11) --OUTPUT display device but not connected\n\t\t\tend if\n\t\t\t------SET TEXT TO RETURN------\n\t\t\t\n\t\t\tlog \"break loop\"\n\t\t\treturn jsonData(currentModel, batteryText, connectValue, 11) --OUTPUT \n\t\t\t\n\t\tend if\n\tend repeat\nelse\n\tlog \"widget not setup\"\n\treturn jsonData(currentModel, \"Bluetooth \\\\nTap to Setup \", 0, 11)\nend if\n\n--style battery display\non formatValue(batteryLevel, prefix)\n\tif batteryLevel = \"0\" then\n\t\treturn prefix & \" --\"\n\telse\n\t\treturn prefix & batteryLevel & \"%\"\n\tend if\nend formatValue\n\n--Format into json data to output to BTT\non jsonData(currentModel, batteryText, connectValue, fontSize)\n\t\n\tset airpods_iconData to \"iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6\/NlyAAABxklEQVRoge2ZwUoCURSGfwuiZavW+RBugp4jkraCrxG9RgX5BrVo76Lc1NK1uhe0hYZKTtw4Fw6Dd\/TM6IwO\/wcHx5lzz\/n\/Ye5hRBBCCCGEEEJInpwDuAcwADBU0QJwadDhcp9jNVzNO+mxF7wAWACIEqK9gdD2mhoL6VUYJwC+14jUMU4QOjbUcT1PizA9MYj08bWizmeKOpO8zX5I4zcAM6PYqqpTNa6dSU93\/J6nYb+nYHwcIxlknpZxrd8WfmaYOcpg2jdfyueVBNT3ioQ+fxE4DuXrur5X0jxIJIthv1bf6dBd1+d\/1PHUuNYfHxt0boVfdbdHxseyrgRcG9eOZN1SNOTGqwjoAJgbh04cy9CbS89INOSKdVi5aK4Q2ExRJ\/UezsKRvPptKvIxodeDoc4w4+zJzJMMn5BAN6QaGzRpSG6ozlTes\/eGG9lfPYkugFoKcTVZ6+t0pPZB4B+9MzERois5B09dXgH9YxnCX3e5t7s0Xdlh7VUGQ\/0suZkodNoVAQ2XHRouOzRcdmi47NBw2aHhskPDZWfrhqMo+g\/5X1czUNfiub11uXuJF6nE9uXHfT9+zZJLCCGEEEIIIfkC4A9P0HeTJCMKAwAAAABJRU5ErkJggg==\"\n\tset airpods_dark_iconData to \"iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6\/NlyAAACT0lEQVRoge2Yz0sWQRjHP5tvaZhRULwGmgcjiLKTf0CdOmkieOkQdfGP6hQG3jpUh+jWoW6JCFZkdSgPJh5VDHnzlZFnZZx8Z2dmt5dcng8sszvzzDzPd37sziyKoiiKoiiKoighZBX10lngJnAdaFj5q8AnYD2wnSZwA7hq5bWAFeAjsFM20CoE3wOGgVMemzXgVUE7E8AVT\/medOCbxDgPKCPYCHwInAm03wWedih7FNnOM+BPoP0RelIqCY+B05G+RoDPTv40MBDZzm1gMaLOIb5p6OO+rNVVmWqhXHLEDUheKPm0bkgMXRPcFOev5aUSw7hlOx5ZtyU+9ySGaBoplYRdSduSvpR00nr+JfeDVr47whTY2+3mvozvvpSgU0eYEi+8Vof7bvhOHmHT072O80nHxn3OWbHuvwBDBfZ2fu6r1xrtKFJH+KekU5GdZtbeN+v5e+RLryE+7RiiSP0smUDHgPOR0+s9sOHk\/XZ2Vj6Mr35Zw8+7KdiwJNvJ0BE20\/fDMfkbIiL082Q6aC4iziOUEYyIPgdc8CwPsyN6Byx42vkBbMt67tROS5bDizIBV3V4MFwDbslBAgnw7TFTuIjLwB1r5pgDw7Kz9v9b8g41++QZT5AzEXvpUpTZeIQwKuu8aFd0UQ4Q63Kc\/HoSBc8m1GnKdRd48g9iKrXTOpGo4LqjguuOCq47KrjuqOC6o4LrjgquO5ULbrfbBxew5RRtWWWu7WaRbVVU+U\/rrwCzLHsgP\/mMgHlfXZ9tllUapqIoiqIoiqIoSgHAPvjRfRDZ2peqAAAAAElFTkSuQmCC\"\n\tset airpods_pro_iconData to \"iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6\/NlyAAADI0lEQVRoge2YTUgVURiGH+2HMIOCfqwgF20ikwgCwaSiXWUELcJw0SYosBZBRATRIqIIMSgsahX0Y0XYQkjctAskyn6IMoM0gsoyIvshozQm3kvDZc7MeE8z3qvngeHeO2fmzPfOOec733txOBwOh8PhcDgcecVkoA5oAXqAQWAIeAt0AieB6kIdsvnAfuAMcA7YB8wCGoGRiOMxUJUHGmJzAHgWcHTpRbTEEP0LqE8r4CKLezcDx0Pan+qF9MTo6yewQvckSrFF5zuArzqCWAq8AN7H6GsqcChpsSi55Eq5EtMwcNPQx2ygF5jrO9cO3PP9XgWsA9YmJ\/MfNoKLY0zBKZqufjZk\/S4FvgDTLWKJjY3gAU3bMD4qefm5FTDCHg8TU+nDRrAX+MWQ9g8a4cVZ59fryOaURSyxsUlaJ4DXQImh\/TCwN+ZOcAm4YRFLbCZZ3n8V+K3kNE176ittR9758xplE94+fAzYnYbY\/02p1nQtcEHZ21Rs9Km8XFSIQj3KgH6DuFZgK1CjF2JaAgVDkUrLILG7Cl1cEB0GsU35F6o9zSHTeNzRYBD7IMZWVK2k1SmPPCTP3COHVWdZIyTCYIBYL\/iZIQ+rkgeOsoyN8tTePn4WOC2fXTaWgtuzgvwGVIZcX699Okpsi8rR+wavfdAmaJvC47KmXYUqrm3AXcO1FUpucZ63RQlvgaF9uZ73PJegbf4AGA2ZdRmF553naSSDyHjvd8CmXAJJKzGs0edt4I7v\/MosI9GrMtXEdlVw13MNJC3Bpfr0RuV7VtuI7\/uPiGmf8d85m560BD9SadkWMMJ+FgKfQvrJ+O+BXANJaw1n\/qOOwhvtGdoB5gRcm5kd12RPR42tPYzLE2AJsCziem8APgNXgI0B7Z7VfAnsSSlua45G2MYRjaKX5FZrCXRpT24rVDNSrn22L0T0sDx1rdZtaYx+C4ISCaqRZ241vID+sS4rk2SnQXR3ikk2dZoMojvGq2BCpndzHsSWCEXy1kGiG8ah3r943vpNgODBPIgtMSrltSfMWkaFSLdq6CN5EI\/D4XA4HA6HwzGxAP4Ac0sF5kts7O4AAAAASUVORK5CYII=\"\n\tset airpods_pro_dark_iconData to \"iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6\/NlyAAADe0lEQVRoge2aa0sUURzGf3kpS9PMTJMuVhZWFOWLILpQENHtXZ+gN327XgklhXShKwhSZlBqlkV0MzErN1OLA8\/EMJzZnebMjkudHyy7e2bmzP85c87\/cnbxeDwej8fj8Xg8qVhWpmGrArYCncA6YBVQDRSAr8B74IXecyULwUbMDmC1+psGngEHgH0lrv0M3AY+5CXaVfB+YKelfR7oAw4B20v08Qu4AYw62pKIKodrO2PEGmqAw8BAgn7MoB8Hmh1sSYyL4G7gp142mjW9ZxP0ZezoyU5WPDUO1zYA\/ZqSp2LOqQNmgJWhttfAx9D3dqAD2OAiJCkugs1UnCpxjnlyi5G2q5HvtcBFvZcdF8GFBOuuIC8e5ozlCRsmK13wBHCiyPGCnnBjpH2TXlGeONiSGBen9UhJRNygDSSIwwEjSkTKTrXjDcbktOrU16IG4aHajyYY1EHgbh5iyTi1rJXnNhnXtiIxGg3KODCkz7mRlWDjmC5Ewk\/AS2VR34EfClPzeYoM4+K0wpyPEXsHeJrRPTLBxWkFnAXWWNqHKk0sGQg+Amy0tJtpfN+x77LgMqX3ALst7SaBuFbi2jY5tjY5OuPlF7TOP2nAxi1ZmjMugg9a2ozBvUWuWQ8cA9ZajpnZ1qTXN+CNPH2TQtxMyPmlxkXwu0jGZDzvFWAu5vwuZWalIoOJ7Y+Bcxb7upWkDKY12iXxGJXxzYql\/ZEcOUyzBCQJg9e1cVAfc7xF95tOY7RrWBpIWOT3JBQ7KyFxRUlQe+8CXv2FnX\/IKg6XIqh132opBLRGlsWMHFgcN7WeT6Y1JC\/BQa3bZ8myLoU+L5SYCUH9nTpDzEvwpOre05YnHKZe6WccwVQvpDUkL8HDoa2cjiLnNSo8FWKmdlB\/j6U1xLU8TMqU0k9b\/I0ypwiw2XLMDMYX4F5aQ\/ISjDKnqgSbde2KtROawuE627Q\/cDGiXD+1FMOkknv1U0xDkfOeaxdkRmLjtoP\/iqUQHKZGGwYrVFN3aYM\/ionPl13TSnKe0jYWQz+wTckZGVFbIufWak0Pu95wqQXbMNXSclVSYerUNuLSeSUKRpVSi2VjoVE7KxNpO65UwWh6d1o28lu1DOIKlaJkscVTTnpjHJWtFv8nBM+pxo7m36n\/OVDJUzpgVvl34MTM5sCtpTfL4\/F4PB6Px+P5jwB+A9f8oHKNqBsZAAAAAElFTkSuQmCC\"\n\tset not_airpods_icon to \"iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6\/NlyAAACXUlEQVRoge2ZT4hNURjAf0kWsra1sJEslIWyVbNQSsrC1CRqslCy1igTO4VYmJUshEZho4jFZDmjLJQipSkroRih+ePp03k5fb5z5129e51zfb86vde79773\/d499\/vOdy+O4ziO4ziOUy5bgXngAzD2P5zHXjSWgPEMYmqUnhorwESHff8QlrEMTGYQWyNYwv0zfbWDvr8lez154YcS75y0Fh4LySuWvvPvwxweWlg4G67jWPpuKUL7gZGK7ZawcAJYVNIPgfXNh\/z3XAtBfwMuJL4lJSwcAt4r6dlMXX\/xNQpUktEVY58qYUJ50hk8W06rrCvvp2sITxjT+l7OwsKpUFPjoG8Da8P2lPBlo0TdiI7LmmNGqZmpEJ4yZsZUCaIx48b0vGUITxqy57KxqMkRlcj0WFKyyyEPFM3eUKZS0v0h8sdLl+2zOzT8KVn5Qw7nEerw2AK8NWS\/AHvaCmJNWz8UZD8an8s1\/rLFOFphM\/CqYkrLdN\/VFdltwLsBktZCSHBFs8NoBuKhV1aSvEZLFd4HfFJCc8bC46baZzG0ikUhZeizEnkNbEgsLWeMmny0FOEDxkLjadTIW8LrgAfqmJUSFiIi+92QjalqD6dVpyXX+JnWLWqwoGQfG4eudgPgkpHYsuVRFGSqca8S3hmeO8XC8zkLy8rt5CrXXkp4xJghb4BNzYfdLJbwQaONfA5sLF0WQ3h7aCBi2We5356tgxbWJexJMSYDUrWevl+EQU1Sa+pOPU+KsYSv5xPe8HmhzuzFrglqRkMXJcnqfF6hOY7jOI7jOM5gAD8BzMiTwf2AeoEAAAAASUVORK5CYII=\"\n\tset not_airpods_dark_icon to \"iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAYAAAA6\/NlyAAAC+klEQVRoge2a2WpUQRCGv8lo8EIEVxBFTVSCS0CjIK4xuOKG+ABe+lB5BhHcgkhUEFFBo0SjgkaJoihR4xK3oM5IQY00zSw5SVefuejv6pye01P191KnqmdIJBKJRCKRSCTCUMxhHOcCJ4Au4AcwFtN4HoJPAq3ADGC5iv4Qy3gegjc51wVgmV6\/jWG8JYaRBhR0EDbHMNYMglHRG4Fua0O5Ci6Xy73OrYjusBbdDDN8DSg59yJ6v5WxZhD8DBiUCXfaVliJthDcBizN2OcOcNubaRF9SF9fwQgteDewBzgAbM3Y9yFwHfjltMnAHQ3pYGjB7fqd8n7vBHZk7P8UeOy1LQzoX3DBg979WmBvhv6Sbm7w2kYC+PWf0IIHgLteAGpX0Y1sbdfkw31uGOgP6aBF0LoH3PQCkIg+XKfPTmCd1\/YEuOp9z7QJGgEdHgF\/dQ9XBnWxBjQfmdU1XtsDjdrBKRgJrtChS7XWwJa8VVbWFTJg5ZB1tfRR6922GtvHHfCSzqof+IISozz8Aoxq7VtrpmX539B9a0qsengceKnZU6v32R+NxC9iOBIzl\/4OTFRpF8GfYzkRa4bnAMf0PMtHlvlq4J0OiikxBM9TsbPrPCOiVwKfdM+bYS14gSYcsybxbFGj+bjlSablHpYAdcQT+959QE88njtNRa24Oq2cshK8BOjxIvJX4EKVZ694J5bi05Yq2VcQLARL3nwQmOm0ybnzaeB3jT4XgdfOfYumpetDO2dRD\/d4sUHEntHXTy0ky+rTd3Gl0pIsbFvo49vQgrs9sW9U7GTp18LDpSukg6EFjzrXI7pUs7BIg53Lt5AOhi4P+\/TEQvbqUMa+cn61z9v78oo6H9LB0IJl\/92fQr9VwC7PnzFdIT8D+md2AJCF+VXESll5tkGgmxLNIPi4F+gkpz5nZcz6xKMap+p89gq4ZGm8GWa4gkT1y9ZGmkXwsJ5QmpPHj2l+sT8USyw5\/eVhQosLNKu6lYMPiUQikUgkEonEtAD+AYohf02fXGWtAAAAAElFTkSuQmCC\"\n\t\n\tif currentModel = \"AirPods Pro\" then\n\t\tif connectValue = 1 then\n\t\t\tset icon to airpods_pro_iconData\n\t\telse\n\t\t\tset icon to airpods_pro_dark_iconData\n\t\tend if\n\telse if currentModel = \"AirPods\" then\n\t\tif connectValue = 1 then\n\t\t\tset icon to airpods_iconData\n\t\telse\n\t\t\tset icon to airpods_dark_iconData\n\t\tend if\n\telse --if not airpods\n\t\tif connectValue = 1 then\n\t\t\tset icon to not_airpods_icon\n\t\telse\n\t\t\tset icon to not_airpods_dark_icon\n\t\tend if\n\tend if\n\t\n\treturn \"{\\\"text\\\":\\\"\" & batteryText & \"\\\", \\\"icon_data\\\": \\\"\" & icon & \"\\\", \\\"font_size\\\": \\\"\" & fontSize & \"\\\"}\"\nend jsonData",
"BTTTouchBarAppleScriptStringRunOnInit" : false,
"BTTTouchBarAppleScriptUsePath" : 0,
"BTTTouchBarOnlyShowIcon" : false,
"BTTTouchBarItemIconHeight" : 22,
"BTTTouchBarButtonBaselineOffset" : -5
}
}
]