[{"data":1,"prerenderedAt":651},["ShallowReactive",2],{"$footer":3,"$announcement":138,"$navigation":143,"hub-authored-tecan-fluent":342},{"links":4,"social":72,"legal":93},[5,19,29,38,47,56,65],{"id":6,"type":7,"tags":8,"lang":9,"slug":10,"first_publication_date":11,"last_publication_date":12,"uid":13,"url":14,"link_type":15,"key":16,"isBroken":17,"text":18,"label":18,"to":14},"l-0","page",[],"en-us","solutions","2026-01-21T11:09:17+0000","2026-08-04T13:12:28+0000","lab-automation-solutions","/lab-automation-solutions/","Document","4a10367c-9d1e-458a-a0f7-728dbe2bd042",false,"Solutions",{"id":20,"type":7,"tags":21,"lang":9,"slug":22,"first_publication_date":23,"last_publication_date":24,"uid":25,"url":26,"link_type":15,"key":27,"isBroken":17,"text":28,"label":28,"to":26},"l-1",[],"product","2025-09-01T01:00:48+0000","2026-09-11T08:38:41+0000","products","/products/","a5f1eb81-8372-4fa7-b475-e86dad2f9ec7","Product",{"id":30,"type":7,"tags":31,"lang":9,"slug":32,"first_publication_date":33,"last_publication_date":34,"uid":32,"url":35,"link_type":15,"key":36,"isBroken":17,"text":37,"label":37,"to":35},"l-2",[],"hub","2025-09-02T13:51:54+0000","2026-05-26T10:20:22+0000","/hub/","7866b4e5-e7c8-4098-9fe7-377e691944b7","Devices",{"id":39,"type":7,"tags":40,"lang":9,"slug":41,"first_publication_date":42,"last_publication_date":43,"uid":41,"url":44,"link_type":15,"key":45,"isBroken":17,"text":46,"label":46,"to":44},"l-3",[],"resources","2026-01-21T11:06:49+0000","2026-07-31T13:04:35+0000","/resources/","8b6f5ff0-aa07-46cd-9775-9952f29ed3b0","Resources",{"id":48,"type":7,"tags":49,"lang":9,"slug":50,"first_publication_date":51,"last_publication_date":52,"uid":50,"url":53,"link_type":15,"key":54,"isBroken":17,"text":55,"label":55,"to":53},"l-4",[],"about-us","2025-04-30T08:52:13+0000","2026-09-07T12:44:30+0000","/company/about-us/","77d24f29-d95f-441f-a8f2-e3175a5ef5b8","About",{"id":57,"type":7,"tags":58,"lang":9,"slug":59,"first_publication_date":60,"last_publication_date":61,"uid":59,"url":62,"link_type":15,"key":63,"isBroken":17,"text":64,"label":64,"to":62},"l-5",[],"downloads","2026-03-10T10:07:49+0000","2026-03-20T14:59:07+0000","/downloads/","dd22fa8d-9f4a-413f-a94c-2e4c1220ad38","Downloads",{"link_type":66,"key":67,"url":68,"target":69,"text":70,"id":71,"label":70,"to":68},"Web","f1dbcc0e-3bf3-45ae-9b3c-03fcdefdc2a2","https://unitelabs.jobs.personio.com/","_blank","Careers","l-6",[73,78,83],{"link_type":66,"key":74,"url":75,"target":69,"text":76,"id":77,"label":76,"to":75},"e202bb6f-d390-4045-8f57-7d7a4dff3e6e","https://gitlab.com/unitelabs","GitLab","s-0",{"link_type":66,"key":79,"url":80,"target":69,"text":81,"id":82,"label":81,"to":80},"34c0f8f7-ea14-4ab4-abb9-0c5c31722c74","https://www.linkedin.com/company/unitelabs/","LinkedIn","s-1",{"id":84,"type":7,"tags":85,"lang":9,"slug":86,"first_publication_date":87,"last_publication_date":88,"uid":89,"url":90,"link_type":15,"key":91,"isBroken":17,"text":92,"label":92,"to":90},"s-2",[],"official-information-about-unitelabs","2026-05-06T08:10:20+0000","2026-08-06T08:40:24+0000","llm-info","/llm-info/","7f473901-c1e0-4d90-8bee-c2acd23966b2","Hey AI",[94,105,115,124,133],{"id":95,"type":96,"tags":97,"lang":9,"slug":98,"first_publication_date":99,"last_publication_date":100,"uid":101,"url":102,"link_type":15,"key":103,"isBroken":17,"text":104,"label":104,"to":102},"g-0","legal",[],"unitelabs-end-user-license-agreement","2026-04-23T09:49:18+0000","2026-05-26T12:07:17+0000","eula","/legal/eula/","d1698bf9-c43d-4039-8c98-8cf31182bd65","EULA",{"id":106,"type":96,"tags":107,"lang":9,"slug":108,"first_publication_date":109,"last_publication_date":110,"uid":111,"url":112,"link_type":15,"key":113,"isBroken":17,"text":114,"label":114,"to":112},"g-1",[],"legal-disclosure","2025-05-14T08:35:48+0000","2026-05-26T12:13:31+0000","disclosure","/legal/disclosure/","3bbf513e-3fc0-4d3f-80ad-5db764b33bbc","Disclosure",{"id":116,"type":96,"tags":117,"lang":9,"slug":118,"first_publication_date":119,"last_publication_date":120,"uid":118,"url":121,"link_type":15,"key":122,"isBroken":17,"text":123,"label":123,"to":121},"g-2",[],"privacy-policy","2025-05-14T15:27:59+0000","2026-05-26T12:15:16+0000","/legal/privacy-policy/","017c6841-72e4-4c37-a867-a650347d35b4","Privacy Policy",{"id":125,"type":96,"tags":126,"lang":9,"slug":127,"first_publication_date":128,"last_publication_date":129,"uid":127,"url":130,"link_type":15,"key":131,"isBroken":17,"text":132,"label":132,"to":130},"g-3",[],"cookie-policy","2025-05-14T15:27:48+0000","2026-05-26T12:11:54+0000","/legal/cookie-policy/","a1b14069-ce96-4f0c-be7b-31259b7f1b69","Cookie Policy",{"link_type":66,"key":134,"url":135,"text":136,"id":137,"label":136,"to":135},"a418bd2e-af6a-4b17-b528-f34ee301683c","#cookie-consent-manager/","Cookie Settings","g-4",{"text":139,"cta":140},"Our 'Lab of the Future' Manifesto: A Return to First Principles",{"url":141,"text":142,"external":17},"/resources/blog/lab-of-the-future-manifesto/","Read more",{"main":144,"social":316,"legal":326},{"mode":145,"items":146},"light",[147,226,230,234,266,292],{"id":148,"tags":149,"lang":9,"slug":10,"first_publication_date":11,"last_publication_date":12,"uid":13,"url":14,"link_type":15,"key":150,"isBroken":17,"text":18,"label":18,"to":14,"level":151,"viewAllLabel":152,"hasGroups":153,"children":154,"slot":225},"0",[],"6a03eb9b-163c-4ccc-98b3-b2660ee758cc",0,"View all solutions",true,[155,168,178,188,198,207,216],{"id":156,"tags":157,"lang":9,"slug":158,"first_publication_date":159,"last_publication_date":160,"uid":161,"url":162,"link_type":15,"key":163,"isBroken":17,"text":164,"label":164,"to":162,"description":165,"level":166,"group":167},"0-p-0",[],"solutions-for-lab-automators","2026-03-10T16:15:28+0000","2026-07-30T09:53:17+0000","automators","/lab-automation-solutions/automators/","3edcd1f4-71e6-4538-96c0-a4fdf93a3094","Automators","",1,"persona",{"id":169,"tags":170,"lang":9,"slug":171,"first_publication_date":172,"last_publication_date":173,"uid":174,"url":175,"link_type":15,"key":176,"isBroken":17,"text":177,"label":177,"to":175,"description":165,"level":166,"group":167},"0-p-1",[],"solutions-for-platform-leaders","2026-04-02T12:14:37+0000","2026-07-23T13:47:11+0000","platform-leaders","/lab-automation-solutions/platform-leaders/","c0a921f5-6508-42ec-8745-3162a6687dac","Platform Leaders",{"id":179,"tags":180,"lang":9,"slug":181,"first_publication_date":182,"last_publication_date":183,"uid":184,"url":185,"link_type":15,"key":186,"isBroken":17,"text":187,"label":187,"to":185,"description":165,"level":166,"group":167},"0-p-2",[],"solutions-for-scientists","2026-04-02T12:15:32+0000","2026-07-23T13:48:06+0000","scientists","/lab-automation-solutions/scientists/","39907433-8560-49c7-a2b1-ad172a691dd0","Scientists",{"id":189,"tags":190,"lang":9,"slug":191,"first_publication_date":42,"last_publication_date":192,"uid":193,"url":194,"link_type":15,"key":195,"isBroken":17,"text":196,"label":196,"to":194,"description":165,"level":166,"group":197},"0-s-0",[],"solutions-ai-driven-labs","2026-07-31T13:04:50+0000","ai-driven-labs","/lab-automation-solutions/ai-driven-labs/","0c227bee-8298-4cb1-b1eb-38c9e03a9aec","AI-Driven Labs","solution",{"id":199,"tags":200,"lang":9,"slug":201,"first_publication_date":42,"last_publication_date":202,"uid":203,"url":204,"link_type":15,"key":205,"isBroken":17,"text":206,"label":206,"to":204,"description":165,"level":166,"group":197},"0-s-1",[],"solutions-closed-loop-automation","2026-07-31T13:05:07+0000","closed-loop-automation","/lab-automation-solutions/closed-loop-automation/","d6ddd1c0-3530-4260-8a48-b07b026ffc33","Closed-Loop Automation",{"id":208,"tags":209,"lang":9,"slug":210,"first_publication_date":42,"last_publication_date":211,"uid":212,"url":213,"link_type":15,"key":214,"isBroken":17,"text":215,"label":215,"to":213,"description":165,"level":166,"group":197},"0-s-2",[],"solutions-data-as-a-resource","2026-08-04T15:14:37+0000","data-as-a-resource","/lab-automation-solutions/data-as-a-resource/","b528d738-c00b-46cc-8ae8-8edfb8310cd7","Data as a Resource",{"id":217,"tags":218,"lang":9,"slug":219,"first_publication_date":42,"last_publication_date":220,"uid":221,"url":222,"link_type":15,"key":223,"isBroken":17,"text":224,"label":224,"to":222,"description":165,"level":166,"group":197},"0-s-3",[],"solutions-liquid-handling","2026-07-31T13:05:49+0000","liquid-handling","/lab-automation-solutions/liquid-handling/","9fc29b31-6fac-4469-bf6e-5f3abb24c149","Liquid Handling","dropdown",{"id":227,"tags":228,"lang":9,"slug":22,"first_publication_date":23,"last_publication_date":24,"uid":25,"url":26,"link_type":15,"key":229,"isBroken":17,"text":28,"label":28,"to":26,"level":151,"viewAllLabel":165,"hasGroups":17},"1",[],"82776b86-5408-45ec-8de0-2c95f0f86d6d",{"id":231,"tags":232,"lang":9,"slug":32,"first_publication_date":33,"last_publication_date":34,"uid":32,"url":35,"link_type":15,"key":233,"isBroken":17,"text":37,"label":37,"to":35,"level":151,"viewAllLabel":165,"hasGroups":17},"2",[],"5b9008c9-ed8a-4bdf-aeaf-5037847de32c",{"id":235,"tags":236,"lang":9,"slug":237,"first_publication_date":238,"last_publication_date":239,"uid":240,"url":241,"link_type":15,"key":242,"isBroken":17,"text":243,"label":243,"to":241,"level":151,"viewAllLabel":244,"hasGroups":17,"children":245,"slot":225},"3",[],"discover-our-ecosystem","2026-07-23T13:40:10+0000","2026-07-30T14:44:40+0000","ecosystem","/ecosystem/","8812ff19-1102-449a-9898-eb0d7b1f1177","Ecosystem","View Ecosystem",[246,256],{"id":247,"tags":248,"lang":9,"slug":249,"first_publication_date":250,"last_publication_date":251,"uid":252,"url":253,"link_type":15,"key":254,"isBroken":17,"text":255,"label":255,"to":253,"description":165,"level":166,"group":197},"3-s-0",[],"join-our-academia-program","2026-07-24T08:28:12+0000","2026-08-04T13:14:20+0000","academia-program","/ecosystem/academia-program/","178e076d-16a5-42e2-914e-95b58d75af37","Academia Program",{"id":257,"tags":258,"lang":9,"slug":259,"first_publication_date":260,"last_publication_date":261,"uid":262,"url":263,"link_type":15,"key":264,"isBroken":17,"text":265,"label":265,"to":263,"description":165,"level":166,"group":197},"3-s-1",[],"join-our-startup-program","2026-07-23T12:42:12+0000","2026-08-12T14:34:44+0000","startup-program","/ecosystem/startup-program/","8fac5ab9-6327-4b00-bc31-152a6070cfc5","Startup Program",{"id":267,"tags":268,"lang":9,"slug":41,"first_publication_date":42,"last_publication_date":43,"uid":41,"url":44,"link_type":15,"key":269,"isBroken":17,"text":46,"label":46,"to":44,"level":151,"viewAllLabel":270,"hasGroups":17,"children":271,"slot":225},"4",[],"d8d6699d-1ef0-4ec7-857a-9b2a23d236d9","View all resources",[272,282,287],{"id":273,"tags":274,"lang":9,"slug":275,"first_publication_date":276,"last_publication_date":277,"uid":278,"url":279,"link_type":15,"key":280,"isBroken":17,"text":281,"label":281,"to":279,"description":165,"level":166,"group":197},"4-s-0",[],"unitelabs-university","2026-08-05T14:10:49+0000","2026-09-23T09:39:11+0000","university","/resources/university/","963a88fa-8ca6-470b-b89b-ac1b17395713","University",{"id":283,"tags":284,"lang":9,"slug":41,"first_publication_date":42,"last_publication_date":43,"uid":41,"url":44,"link_type":15,"key":285,"isBroken":17,"text":286,"label":286,"to":44,"description":165,"level":166,"group":197},"4-s-1",[],"ef5855a1-14f6-4420-8d47-b747e435ef08","Latest Articles",{"link_type":66,"key":288,"url":289,"target":69,"text":290,"id":291,"label":290,"to":289,"description":165,"level":166,"group":197},"f094d571-fed4-4fa6-bb5c-b1dce7a7ef07","https://docs.unitelabs.io","Support Docs","4-s-2",{"id":293,"tags":294,"lang":9,"slug":50,"first_publication_date":51,"last_publication_date":52,"uid":50,"url":53,"link_type":15,"key":295,"isBroken":17,"text":55,"label":55,"to":53,"level":151,"viewAllLabel":296,"hasGroups":17,"children":297,"slot":225},"5",[],"0ae2ccc5-50b5-4996-aa4b-0932d219ca0e","View all about",[298,303,307],{"id":299,"tags":300,"lang":9,"slug":50,"first_publication_date":51,"last_publication_date":52,"uid":50,"url":53,"link_type":15,"key":301,"isBroken":17,"text":302,"label":302,"to":53,"description":165,"level":166,"group":197},"5-s-0",[],"2e6db6d9-e99c-4fa7-933a-574e96a33fa6","About UniteLabs",{"link_type":66,"key":304,"url":68,"target":69,"text":305,"id":306,"label":305,"to":68,"description":165,"level":166,"group":197},"ddb8c9c6-d3cd-47fd-9db5-9b43ff5224de","Join the Team","5-s-1",{"id":308,"tags":309,"lang":9,"slug":310,"first_publication_date":23,"last_publication_date":311,"uid":312,"url":313,"link_type":15,"key":314,"isBroken":17,"text":315,"label":315,"to":313,"description":165,"level":166,"group":197},"5-s-2",[],"contact-us","2026-07-23T13:52:18+0000","contact","/company/contact/","86d985c2-13f2-47ce-b260-d31c86d9ea84","Contact Us",{"items":317},[318,320,323],{"link_type":66,"key":319,"url":75,"target":69,"text":76,"id":148,"label":76},"4a60eecf-e97e-4eb0-a504-f9d10a86693e",{"link_type":66,"key":321,"url":322,"target":69,"text":81,"id":227,"label":81},"96154e9d-6839-43a9-a055-7455cca4fb46","https://linkedin.com/company/unitelabs",{"link_type":66,"key":324,"url":325,"text":64,"id":231,"label":64,"target":69},"1dbab050-e74a-4b1d-88cd-5c464c1cc292","https://unitelabs.io/downloads/",{"items":327},[328,331,334,337,340],{"id":148,"type":96,"tags":329,"lang":9,"slug":108,"first_publication_date":109,"last_publication_date":110,"uid":111,"url":112,"link_type":15,"key":330,"isBroken":17,"text":114,"label":114},[],"ac213882-3dc6-4c7b-ab0c-1a11b9a71bda",{"id":227,"type":96,"tags":332,"lang":9,"slug":118,"first_publication_date":119,"last_publication_date":120,"uid":118,"url":121,"link_type":15,"key":333,"isBroken":17,"text":123,"label":123},[],"80f72514-ad3e-46f4-b493-7fe9ebd24f51",{"id":231,"type":96,"tags":335,"lang":9,"slug":98,"first_publication_date":99,"last_publication_date":100,"uid":101,"url":102,"link_type":15,"key":336,"isBroken":17,"text":104,"label":104},[],"e59104d7-5492-4a23-a8d1-5422dea41a1b",{"id":235,"type":96,"tags":338,"lang":9,"slug":127,"first_publication_date":128,"last_publication_date":129,"uid":127,"url":130,"link_type":15,"key":339,"isBroken":17,"text":132,"label":132},[],"4472b377-dbd1-40f5-8f80-d86c2949b6df",{"link_type":66,"key":341,"url":135,"text":136,"id":267,"label":136},"2298e0e6-1e5b-4296-8315-d3bc67917b9c",{"id":343,"uid":344,"url":345,"type":7,"href":346,"tags":347,"first_publication_date":348,"last_publication_date":348,"slugs":349,"linked_documents":351,"lang":9,"alternate_languages":352,"data":353},"arU0qREAAC4Awrwm","tecan-fluent","/hub/tecan-fluent/","https://unitelabs.cdn.prismic.io/api/v2/documents/search?ref=arY6xREAACwAxHsT&q=%5B%5B%3Ad+%3D+at%28document.id%2C+%22arU0qREAAC4Awrwm%22%29+%5D%5D",[],"2026-09-25T09:11:30+0000",[350],"tecan-fluent-integration",[],[],{"title":354,"parent":360,"slices":364,"meta_title":644,"meta_description":645,"canonical_url":646,"json_ld":647},[355],{"type":356,"text":357,"spans":358,"direction":359},"heading1","Tecan Fluent Integration",[],"ltr",{"id":361,"type":7,"tags":362,"lang":9,"slug":32,"first_publication_date":33,"last_publication_date":34,"uid":32,"url":35,"link_type":15,"key":363,"isBroken":17},"aLb1oBIAACMADBNW",[],"e94aeb60-7cd7-43ff-a91d-e738985fab08",[365,397,418,470,486,533,565,628],{"variation":366,"version":367,"items":368,"primary":369,"id":394,"slice_type":395,"slice_label":396},"default","initial",[],{"badges":370,"title":376,"hook":379,"intro":380,"primary_cta":385,"docs_cta":389,"device_image":393},[371,374],{"label":372,"style":373},"Supported today","Status",{"label":224,"style":375},"Neutral",[377],{"type":356,"text":357,"spans":378,"direction":359},[],"Drive your liquid handler in Python, without an operator at the FluentControl screen",[381],{"type":382,"text":383,"spans":384,"direction":359},"paragraph","List and run FluentControl methods, set their variables, stream XML commands into a running method, and answer its dialogs, all from code.",[],{"link_type":66,"key":386,"url":387,"text":388},"75de18ef-3a8d-4106-8006-92ae4fa12df5","https://unitelabs.io/company/book-demo/","Get this connector",{"link_type":66,"key":390,"url":391,"text":392},"91b981d0-badf-4b35-89c4-f43ecbda94d7","https://docs.unitelabs.io/","Read the docs",{},"hub_device_hero$d4000000-0000-4000-8000-000000000001","hub_device_hero",null,{"variation":366,"version":367,"items":398,"primary":399,"id":416,"slice_type":417,"slice_label":396},[],{"facts":400},[401,404,407,410,413],{"label":402,"value":403},"Supports","Fluent 480, 780",{"label":405,"value":406},"Connects over","VisionX COM API",{"label":408,"value":409},"Local interface","SiLA 2",{"label":411,"value":412},"Vendor software","FluentControl",{"label":414,"value":415},"Runs On","Windows","device_facts$d4000000-0000-4000-8000-000000000002","device_facts",{"variation":366,"version":367,"items":419,"primary":420,"id":468,"slice_type":469,"slice_label":396},[],{"title":421,"description":426,"modules":430},[422],{"type":423,"text":424,"spans":425,"direction":359},"heading2","What You Can Command on the Fluent",[],[427],{"type":382,"text":428,"spans":429,"direction":359},"Process control, method runs, variables, the XML execution channel, live state and dialogs each arrive as their own callable capability. FluentControl does the pipetting, and your code decides what runs and when.",[],[431,438,444,450,456,462],{"name":432,"description":433,"group":437},"FluentControl Process",[434],{"type":382,"text":435,"spans":436,"direction":359},"Start or attach to FluentControl, in simulation or system integration mode, log a user in, and shut it down again.",[],"Device",{"name":439,"description":440,"group":437},"Method Runs",[441],{"type":382,"text":442,"spans":443,"direction":359},"List runnable and maintenance methods, then prepare, run, pause, resume, stop and close them, or run one with parameters in a single call.",[],{"name":445,"description":446,"group":437},"Method Variables",[447],{"type":382,"text":448,"spans":449,"direction":359},"Read and set variables on the prepared method, including QueryAtStartup variables, and evaluate expressions against them.",[],{"name":451,"description":452,"group":437},"Execution Channel",[453],{"type":382,"text":454,"spans":455,"direction":359},"Stream XML commands into a running method, one acknowledged command at a time, then finish or abort the channel.",[],{"name":457,"description":458,"group":437},"Live State",[459],{"type":382,"text":460,"spans":461,"direction":359},"Subscribe to FluentControl's state, run progress, initialization progress, errors and log notifications.",[],{"name":463,"description":464,"group":437},"Dialogs and Instrument",[465],{"type":382,"text":466,"spans":467,"direction":359},"Answer or auto-close FluentControl dialogs during a run, initialize the instrument, and switch the interior light.",[],"device_capabilities$d4000000-0000-4000-8000-000000000003","device_capabilities",{"variation":366,"version":367,"items":471,"primary":472,"id":484,"slice_type":485,"slice_label":396},[],{"content":473,"table":396},[474,477,480],{"type":423,"text":475,"spans":476,"direction":359},"Run a Method From Python",[],{"type":382,"text":478,"spans":479,"direction":359},"Ordinary async Python. Version it, test it, generate it at runtime like any other code.",[],{"type":481,"text":482,"spans":483,"direction":359},"preformatted","# list methods, run one, stream a command into it, close the session\nimport asyncio\nfrom pathlib import Path\nfrom unitelabs.sdk import AsyncApiClient\n\nclient = AsyncApiClient()\nfluent = await client.get_service_by_name(\"Tecan FluentControl\")\n\nprint(await fluent.runtime_controller.get_runnable_methods())\n\nawait fluent.runtime_controller.prepare_method(method=\"plate_prep\")\nawait fluent.runtime_controller.run_method()\nawait asyncio.sleep(3)  # give FluentControl time to open the XML channel\n\nprompt = Path(\"verify_deck.xml\").read_text()  # a ScriptGroup command\nawait fluent.execution_channel_controller.execute_command(command=prompt)\n\nawait fluent.execution_channel_controller.finish_command()  # back to EditMode\nawait fluent.runtime_controller.close_method()",[],"rich_text$d4000000-0000-4000-8000-000000000004","rich_text",{"variation":366,"version":367,"items":487,"primary":488,"id":531,"slice_type":532,"slice_label":396},[],{"tag":489,"title":490,"description":494,"cards":498,"gradient_color":396,"gradient_position":396},"How connectors work",[491],{"type":423,"text":492,"spans":493,"direction":359},"Know One Connector, and You Know Them All",[],[495],{"type":382,"text":496,"spans":497,"direction":359},"Every instrument is found and called the same way, and the same Python drives whatever comes next.",[],[499,511,521],{"title":500,"tag":396,"description":505,"link":509},[501],{"type":502,"text":503,"spans":504,"direction":359},"heading3","One API, Every Instrument",[],[506],{"type":382,"text":507,"spans":508,"direction":359},"Find it by name, then call its actions. It's the same on a liquid handler, a reader or an incubator, whatever the vendor ships underneath.",[],{"link_type":510},"Any",{"title":512,"tag":396,"description":516,"link":520},[513],{"type":502,"text":514,"spans":515,"direction":359},"Ask a Connector What It Can Do",[],[517],{"type":382,"text":518,"spans":519,"direction":359},"Modules and actions are discoverable at runtime, and parameters carry their own types, units and constraints. You don't need a PDF to find out.",[],{"link_type":510},{"title":522,"tag":396,"description":526,"link":530},[523],{"type":502,"text":524,"spans":525,"direction":359},"One Outbound Connection",[],[527],{"type":382,"text":528,"spans":529,"direction":359},"One outbound TLS connection on port 443 to your tenant, so nothing needs opening inbound. Ports, hostnames, and setup are in the docs.",[],{"link_type":510},"hub_tri_card$d4000000-0000-4000-8000-000000000006","hub_tri_card",{"variation":366,"version":367,"items":534,"primary":535,"id":563,"slice_type":564,"slice_label":396},[],{"title":536,"description":540,"links":544},[537],{"type":423,"text":538,"spans":539,"direction":359},"Also Works With",[],[541],{"type":382,"text":542,"spans":543,"direction":359},"The same Python script can drive every instrument on the bench. A liquid handler sets up the plate, a thermal cycler can cycle it, and a reader measures it, all from one script.",[],[545,551,557],{"link":546,"label":549,"category":550},{"link_type":66,"key":547,"url":548},"363ab64e-ae3f-4cb2-96ae-d3cbc90f040f","https://unitelabs.io/hub/inheco-odtc/","Inheco ODTC","Thermal Cycler",{"link":552,"label":555,"category":556},{"link_type":66,"key":553,"url":554},"c3fe28e7-2c99-4c53-8da6-12a798a17b1a","https://docs.unitelabs.io/device-guides/incubation/inheco-scila/","Inheco SCILA","Incubator",{"link":558,"label":561,"category":562},{"link_type":66,"key":559,"url":560},"08b424d9-c07b-434f-998d-1f706aca1a28","https://docs.unitelabs.io/device-guides/readers/biotek-synergy-h1/","BioTek Synergy H1","Plate reader","works_with$d4000000-0000-4000-8000-000000000007","works_with",{"variation":366,"version":367,"items":566,"primary":567,"id":626,"slice_type":627,"slice_label":396},[],{"tag":568,"title":569,"description":573,"faq_items":577,"gradient_color":396,"gradient_position":396},"FAQ",[570],{"type":423,"text":571,"spans":572,"direction":359},"Tecan Fluent",[],[574],{"type":382,"text":575,"spans":576,"direction":359},"The questions automation engineers ask before integrating a Fluent.",[],[578,584,590,596,602,614,620],{"question":579,"answer":580},"Can you control a Tecan Fluent with Python?",[581],{"type":382,"text":582,"spans":583,"direction":359},"Yes, through FluentControl. With the UniteLabs connector you list and run FluentControl methods from Python, set their variables, and stream commands into a method while it runs. It's ordinary async Python, so it can be version-controlled, tested and generated at runtime like any other code.",[],{"question":585,"answer":586},"Do I still need FluentControl?",[587],{"type":382,"text":588,"spans":589,"direction":359},"Yes. The connector drives FluentControl through its VisionX COM API, so it runs on the Windows PC where FluentControl is installed, and FluentControl does the instrument control. The connector exposes it as a SiLA 2 service on a local gRPC port, and opens one outbound TLS connection on port 443 to your tenant.",[],{"question":591,"answer":592},"Can I change what a method does while it runs?",[593],{"type":382,"text":594,"spans":595,"direction":359},"Yes. Add an XML execution channel step to the method, and your script can stream commands into it while it runs: set up the worktable, register labware and trigger liquid handling. Each command is acknowledged before the next one goes.",[],{"question":597,"answer":598},"Which Fluent models are supported?",[599],{"type":382,"text":600,"spans":601,"direction":359},"The Fluent 480 and Fluent 780. The connector works at the FluentControl level, so what it can run depends on the methods and worktable you've set up there.",[],{"question":603,"answer":604},"Is there a SiLA 2 connector for the Fluent?",[605],{"type":382,"text":606,"spans":607,"direction":359},"Yes. The connector is SiLA 2 1.1 compliant and exposes FluentControl as a SiLA 2 service on a local gRPC port, with modules you can list at runtime. Find out more about how we use the SiLA 2 standard for instrument interoperability.",[608],{"start":609,"end":610,"type":611,"data":612},149,162,"hyperlink",{"link_type":66,"url":613,"target":69},"https://docs.unitelabs.io/connector-development/concepts/sila/",{"question":615,"answer":616},"What happens when FluentControl shows a dialog?",[617],{"type":382,"text":618,"spans":619,"direction":359},"Your code sees it. Dialogs and errors arrive as live subscriptions and as updates on a running method, and you can answer a dialog from code or have the connector close dialogs automatically during a run.",[],{"question":621,"answer":622},"Can I test Fluent code without the instrument?",[623],{"type":382,"text":624,"spans":625,"direction":359},"Yes. The connector can start FluentControl in its own simulation mode, and the UniteLabs workflow template ships a FluentControl mock that stands in for the live service while you build the structure of a workflow.",[],"faq$d4000000-0000-4000-8000-000000000008","faq",{"variation":629,"version":367,"items":630,"primary":631,"id":642,"slice_type":643,"slice_label":396},"blockAndGradient",[],{"headline":632,"eyebrow":636,"primary_cta":640},[633],{"type":423,"text":634,"spans":635,"direction":359},"Put Your Fluent to Work",[],[637],{"type":382,"text":638,"spans":639,"direction":359},"Tell us what you want to automate",[],{"link_type":66,"key":641,"url":387,"text":388},"55611078-012c-4f36-8bf3-edee29e508db","text_section$d4000000-0000-4000-8000-000000000009","text_section","Tecan Fluent Integration | UniteLabs","Drive your liquid handler in Python, without an operator at FluentControl. Set variables, stream XML commands into a running method and handle dialogs from code.","https://unitelabs.io/hub/tecan-fluent/",[648],{"type":481,"text":649,"spans":650,"direction":359},"{\n  \"@type\": \"TechArticle\",\n  \"@id\": \"https://unitelabs.io/hub/tecan-fluent/#article\",\n  \"headline\": \"Tecan Fluent Integration\",\n  \"description\": \"Control the Tecan Fluent from Python through FluentControl: run methods, set variables, stream XML commands into a running method and handle dialogs from code.\",\n  \"about\": {\n    \"@type\": \"Product\",\n    \"name\": \"Tecan Fluent\",\n    \"category\": \"Liquid Handling\",\n    \"brand\": { \"@type\": \"Brand\", \"name\": \"Tecan\" }\n  },\n  \"proficiencyLevel\": \"Beginner\",\n  \"datePublished\": \"2026-09-24\",\n  \"author\": { \"@id\": \"https://unitelabs.io/#organization\" },\n  \"publisher\": { \"@id\": \"https://unitelabs.io/#organization\" },\n  \"isPartOf\": { \"@id\": \"https://unitelabs.io/hub/tecan-fluent/#webpage\" },\n  \"mainEntityOfPage\": { \"@id\": \"https://unitelabs.io/hub/tecan-fluent/#webpage\" }\n}",[],1790327994343]