{"name":"Buoy Watch","headerTitle":"Buoy Watch","version":1,"accentColor":"#69D8FF","appearance":{"colorScheme":"dark"},"theme":{"accentColor":"#69D8FF","accentGradient":["#69D8FF","#B5E6C1"],"pageBackgroundGradient":["#0A111D","#122132"],"cornerRadius":20,"fontDesign":"rounded","cardPadding":12,"borderWidth":0.5,"tabBarTint":"#69D8FF"},"tabs":[{"title":"Overview","icon":"water.waves","grid":{"columns":4,"rows":12,"mode":"flow"},"children":[{"type":"label","id":"buoy-watch-2","position":[0,0],"span":[1,4],"label":"","controlHeight":112,"tint":"#69D8FF","text":"What is the Boston buoy measuring?","style":"large-mono","align":"leading"},{"type":"statusLight","id":"buoy-watch-1","position":[1,0],"span":[1,4],"label":"Source response","controlHeight":46,"tint":"#69D8FF","style":"badge","defaultValue":"WAITING","statusColors":{"READY":"#A8DFC3","EMPTY":"#DBC990","STALE":"#F2BA81","UNAVAILABLE":"#F59B9F","WAITING":"#A9B5C8"},"pulse":false,"sync":[{"method":"http","url":"https://carterbeaudoin.net/api/template-feed/buoy-watch","interval":900,"valuePath":"status"}]},{"type":"label","id":"buoy-watch-3","position":[2,0],"span":[1,4],"label":"","controlHeight":64,"tint":"#69D8FF","text":"Waiting for first successful retrieval","style":"mono","align":"leading","sync":[{"method":"http","url":"https://carterbeaudoin.net/api/template-feed/buoy-watch","interval":900,"valuePath":"freshness"}]},{"type":"compass","id":"buoy-watch-4","position":[3,0],"span":[1,4],"label":"Wind FROM · station 44013","controlHeight":320,"tint":"#69D8FF","compassConfig":{"pucks":[],"editable":false,"showCardinals":true},"sync":[{"method":"http","url":"https://carterbeaudoin.net/api/template-feed/buoy-watch","interval":900,"valuePath":"bearing"}],"visible":{"when":"buoy-watch-1","operator":"eq","value":"READY"}},{"type":"label","id":"buoy-watch-5","position":[4,0],"span":[1,4],"label":"","controlHeight":68,"tint":"#69D8FF","text":"Read the direction against N/E/S/W. This needle represents the feed, not your phone.","style":"mono","align":"leading"},{"type":"flipCard","id":"buoy-watch-13","position":[5,0],"span":[1,4],"label":"","controlHeight":270,"tint":"#69D8FF","panels":[{"type":"group","id":"buoy-watch-panel-9","label":"Reading","position":[0,0],"grid":{"columns":4,"rows":3,"mode":"flow"},"children":[{"type":"label","id":"buoy-watch-6","position":[0,0],"span":[1,4],"label":"","controlHeight":62,"tint":"#69D8FF","text":"Significant wave height · m","style":"mono","align":"leading"},{"type":"label","id":"buoy-watch-7","position":[1,0],"span":[1,4],"label":"","controlHeight":112,"tint":"#69D8FF","text":"Waiting for source","style":"large-mono","align":"leading","sync":[{"method":"http","url":"https://carterbeaudoin.net/api/template-feed/buoy-watch","interval":900,"valuePath":"metric1"}]},{"type":"label","id":"buoy-watch-8","position":[2,0],"span":[1,4],"label":"","controlHeight":32,"tint":"#69D8FF","text":"Tap for context ↻","style":"mono","align":"leading"}]},{"type":"group","id":"buoy-watch-panel-12","label":"Meaning","position":[0,0],"grid":{"columns":4,"rows":2,"mode":"flow"},"children":[{"type":"label","id":"buoy-watch-10","position":[0,0],"span":[1,4],"label":"","controlHeight":158,"tint":"#69D8FF","text":"Missing readings stay missing; the card names the time of each last valid sensor value.","style":"mono","align":"leading"},{"type":"label","id":"buoy-watch-11","position":[1,0],"span":[1,4],"label":"","controlHeight":32,"tint":"#69D8FF","text":"Tap to return ↻","style":"mono","align":"leading"}]}],"flipAxis":"horizontal","flipTrigger":"tap","defaultValue":0,"containerAnimation":{"profile":"smooth"}},{"type":"flipCard","id":"buoy-watch-21","position":[6,0],"span":[1,4],"label":"","controlHeight":270,"tint":"#69D8FF","panels":[{"type":"group","id":"buoy-watch-panel-17","label":"Reading","position":[0,0],"grid":{"columns":4,"rows":3,"mode":"flow"},"children":[{"type":"label","id":"buoy-watch-14","position":[0,0],"span":[1,4],"label":"","controlHeight":62,"tint":"#69D8FF","text":"Wind speed · m/s","style":"mono","align":"leading"},{"type":"label","id":"buoy-watch-15","position":[1,0],"span":[1,4],"label":"","controlHeight":112,"tint":"#69D8FF","text":"Waiting for source","style":"large-mono","align":"leading","sync":[{"method":"http","url":"https://carterbeaudoin.net/api/template-feed/buoy-watch","interval":900,"valuePath":"metric2"}]},{"type":"label","id":"buoy-watch-16","position":[2,0],"span":[1,4],"label":"","controlHeight":32,"tint":"#69D8FF","text":"Tap for context ↻","style":"mono","align":"leading"}]},{"type":"group","id":"buoy-watch-panel-20","label":"Meaning","position":[0,0],"grid":{"columns":4,"rows":2,"mode":"flow"},"children":[{"type":"label","id":"buoy-watch-18","position":[0,0],"span":[1,4],"label":"","controlHeight":158,"tint":"#69D8FF","text":"Station 44013; last valid readings may have different times. Not a marine navigation forecast.","style":"mono","align":"leading"},{"type":"label","id":"buoy-watch-19","position":[1,0],"span":[1,4],"label":"","controlHeight":32,"tint":"#69D8FF","text":"Tap to return ↻","style":"mono","align":"leading"}]}],"flipAxis":"horizontal","flipTrigger":"tap","defaultValue":0,"containerAnimation":{"profile":"smooth"}},{"type":"label","id":"buoy-watch-22","position":[7,0],"span":[1,4],"label":"","controlHeight":82,"tint":"#69D8FF","text":"Observation time not supplied","style":"mono","align":"leading","sync":[{"method":"http","url":"https://carterbeaudoin.net/api/template-feed/buoy-watch","interval":900,"valuePath":"source_time"}]},{"type":"label","id":"buoy-watch-23","position":[8,0],"span":[1,4],"label":"","controlHeight":104,"tint":"#69D8FF","text":"Station 44013; last valid readings may have different times. Not a marine navigation forecast.","style":"mono","align":"leading"},{"type":"label","id":"buoy-watch-24","position":[9,0],"span":[1,4],"label":"","controlHeight":68,"tint":"#69D8FF","text":"Source: NOAA National Data Buoy Center · links in Learn","style":"mono","align":"leading"}]},{"title":"Explore","icon":"square.grid.2x2","grid":{"columns":4,"rows":9,"mode":"flow"},"children":[{"type":"label","id":"buoy-watch-25","position":[0,0],"span":[1,4],"label":"","controlHeight":112,"tint":"#69D8FF","text":"Same source. Another useful view.","style":"large-mono","align":"leading"},{"type":"chart","id":"buoy-watch-26","position":[1,0],"span":[1,4],"label":"Wave height · m · latest valid observations","controlHeight":320,"tint":"#69D8FF","chartConfig":{"showXAxis":true,"showYAxis":true,"showGrid":true,"showLegend":true,"scrub":true,"smooth":false},"defaultValue":"{\"series\":[]}","sync":[{"method":"http","url":"https://carterbeaudoin.net/api/template-feed/buoy-watch","interval":900,"valuePath":"chart"}]},{"type":"chart","id":"buoy-watch-27","position":[2,0],"span":[1,4],"label":"Wind speed · m/s","controlHeight":320,"tint":"#69D8FF","chartConfig":{"showXAxis":true,"showYAxis":true,"showGrid":true,"showLegend":true,"scrub":true,"smooth":false},"defaultValue":"{\"series\":[]}","sync":[{"method":"http","url":"https://carterbeaudoin.net/api/template-feed/buoy-watch","interval":900,"valuePath":"chart2"}]},{"type":"label","id":"buoy-watch-28","position":[3,0],"span":[1,4],"label":"","controlHeight":60,"tint":"#69D8FF","text":"Direction time not supplied","style":"mono","align":"leading","sync":[{"method":"http","url":"https://carterbeaudoin.net/api/template-feed/buoy-watch","interval":900,"valuePath":"bearing_time"}]},{"type":"label","id":"buoy-watch-29","position":[4,0],"span":[1,4],"label":"","controlHeight":75,"tint":"#69D8FF","text":"Source notes","style":"mono","align":"leading","sync":[{"method":"http","url":"https://carterbeaudoin.net/api/template-feed/buoy-watch","interval":900,"valuePath":"detail"}]},{"type":"list","id":"buoy-watch-30","position":[5,0],"span":[1,4],"label":"Selected source records","controlHeight":420,"tint":"#69D8FF","listColumns":[{"key":"title","label":"Record"},{"key":"detail","label":"Context"},{"key":"value","label":"Reading / date"}],"defaultValue":"[]","sync":[{"method":"http","url":"https://carterbeaudoin.net/api/template-feed/buoy-watch","interval":900,"valuePath":"rows"}]},{"type":"accordion","id":"buoy-watch-37","position":[6,0],"span":[1,4],"label":"A little context","controlHeight":320,"tint":"#69D8FF","accordionMode":"single","expandedIndex":0,"showChevron":true,"panels":[{"type":"group","id":"buoy-watch-panel-32","label":"What this teaches","position":[0,0],"grid":{"columns":4,"rows":1,"mode":"flow"},"children":[{"type":"label","id":"buoy-watch-31","position":[0,0],"span":[1,4],"label":"","controlHeight":125,"tint":"#69D8FF","text":"Missing readings stay missing; the card names the time of each last valid sensor value.","style":"mono","align":"leading"}]},{"type":"group","id":"buoy-watch-panel-34","label":"Read before using","position":[0,0],"grid":{"columns":4,"rows":1,"mode":"flow"},"children":[{"type":"label","id":"buoy-watch-33","position":[0,0],"span":[1,4],"label":"","controlHeight":145,"tint":"#69D8FF","text":"Station 44013; last valid readings may have different times. Not a marine navigation forecast.","style":"mono","align":"leading"}]},{"type":"group","id":"buoy-watch-panel-36","label":"Where the data comes from","position":[0,0],"grid":{"columns":4,"rows":1,"mode":"flow"},"children":[{"type":"label","id":"buoy-watch-35","position":[0,0],"span":[1,4],"label":"","controlHeight":180,"tint":"#69D8FF","text":"NOAA National Data Buoy Center\nNOAA public data; retain agency credit. No endorsement implied.","style":"mono","align":"leading"}]}],"containerAnimation":{"profile":"smooth"}}]},{"title":"Learn","icon":"book.closed","grid":{"columns":4,"rows":3,"mode":"flow"},"children":[{"type":"webView","id":"buoy-watch-38","position":[0,0],"span":[1,4],"label":"A one-minute walkthrough","controlHeight":780,"tint":"#69D8FF","url":"https://carterbeaudoin.net/CAR-TER/templates/open-data/buoy-watch.html","webInteractive":true,"webScrollEnabled":true}]}]}