← Buellton

Clients/Buellton/slack/2026/01/2026-01-28_buellton.md

slack
Source
4
Chunks
9
Entities
Doc
Type

Content

# #buellton — 2026-01-28 **10:29 [Kevin](https://slack.com/archives/C091185E1JN/p1769624994345809):** @Mason Radke the GeoSCADA mobile app has been "updated" and is now broken. Rather than mess with this app, I wonder if this would be a good platform to use your MQTT app that you used for the Nino Well? **10:31 [Kevin](https://slack.com/archives/C091185E1JN/p1769625089165249):** That Grafina app is supposed to be pretty powerful according to Chad at SPICE. **10:34 [Kevin](https://slack.com/archives/C091185E1JN/p1769625269525759):** but I like the IoT MQTT Panel app also. They have a "pro" version which we will probably want to move to so we can do away with the ads **10:35 [Kevin](https://slack.com/archives/C091185E1JN/p1769625311776709):** Pro version is $9.49 per phone **10:36 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769625397421639):** interesting **10:36 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769625413797999):** im trying to think how we would get PLC or scada data out via MQTT **10:37 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769625470219369):** I could also build an Autosys MQTT panel app **10:42 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769625730732609):** how many data points do you think they would want to see on mobile? **10:43 [Kevin](https://slack.com/archives/C091185E1JN/p1769625801751419):** there's not many now, maybe 25? **10:43 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769625829371449):** that could get busy on the IoT panel app now.. but might not be bad **10:44 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769625843906979):** tile them appropriately.. **10:44 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769625887462869):** or we build our own custom app and bill them? begin building our recurring revenue stream. **10:45 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769625904558639):** work smarter not harder **10:47 [Kevin](https://slack.com/archives/C091185E1JN/p1769626051260519):** I need to get them something quick for now if I am going to go away from the Geo app. **10:48 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769626091412689):** ok. we can definately give it a go. We would need proof of concept for data flow and then we're off to the races. **10:48 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769626102371449):** not sure how we would get geoscada data -> mqtt yet **10:48 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769626125365969):** ignition does it **10:50 [Kevin](https://slack.com/archives/C091185E1JN/p1769626225126399):** if you don't mind shifting gears, go ahead and spend some time on this proof of concept. **10:50 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769626244697759):** ok, i just started on solvang water.. let me look into the scaling.. it shouldnt take long **10:51 [Kevin](https://slack.com/archives/C091185E1JN/p1769626287962779):** yes, good. thank you **10:54 [Kevin](https://slack.com/archives/C091185E1JN/p1769626482754769):** Productivity has MQTT comms, and Eth I/P. Maybe we can use it as a go-between? **10:55 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769626533480349):** mqtt is a little more nuanced than that. we will need to make sure its capabale of sending mqtt messages to a broker. but i can look into that as well **10:56 [Kevin](https://slack.com/archives/C091185E1JN/p1769626582539959):** yep, I know nothing about it. Not my department :grin: **10:56 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769626603737489):** i know it wasnt going to work at the nino well. but dont remember why **10:56 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769626616572159):** let me finish up solvang and i'll dive in **10:58 [Kevin](https://slack.com/archives/C091185E1JN/p1769626729977799):** If it helps you at solvang, the scaling is in the PLC **10:59 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769626746096779):** ![[F0ACDKWQC0G_image.png]] **11:02 [Kevin](https://slack.com/archives/C091185E1JN/p1769626931765299):** If it helps for MQTT, all the PLC tags go into a OPC server before going to Geo **11:02 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769626939247069):** kepware? **11:02 [Kevin](https://slack.com/archives/C091185E1JN/p1769626944723909):** yep **11:02 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769626950847399):** there could definately be something we can do there **11:09 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769627395272409):** I think KepWare is going to be our ticket **11:12 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769627568120169):** ![[F0ABD30V9KM_image_from_ios.jpg]] **11:12 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769627579840079):** Seems pretty reliable. This one is still chugging away **11:14 [Kevin](https://slack.com/archives/C091185E1JN/p1769627668869519):** so awesome **11:26 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769628377309899):** this is never a good sign **11:26 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769628377394059):** ![[F0ABHFQU7C6_image.png]] **11:26 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769628392887109):** if the price is reasonable, they usually just publish it **11:46 [Kevin](https://slack.com/archives/C091185E1JN/p1769629596814429):** oh boy **11:47 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769629676045489):** i have another idea **11:48 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769629680289929):** a better idea **11:50 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769629821417969):** ``` Concept: Lightweight MQTT publishing bridge using Node-RED Goal Enable a 3rd-party MQTT dashboard to display selected SCADA values without changing existing PLC, Kepware, or Geo SCADA operation. Current architecture • PLCs send data to Kepware (OPC server) • Geo SCADA reads values from Kepware for SCADA/HMI Proposed addition Add a small "bridge" service that publishes a defined set of tags to an MQTT broker: PLCs → Kepware → (OPC UA) Node-RED → (MQTT) Broker → MQTT Dashboard This runs in parallel with the existing SCADA path and does not interfere with Geo SCADA. ⸻ How it works 1) Node-RED reads values from Kepware via OPC UA • Kepware exposes tag values through its OPC UA server endpoint (read/subscription interface). • Node-RED acts as an OPC UA client: • Connects to Kepware's OPC UA endpoint on the network • Subscribes to the required tags (example: ~25 values) • Receives updates on value change (or on a defined interval) This is efficient and provides near real-time updates without polling overhead. 2) Node-RED publishes those values to the MQTT broker • Node-RED formats the values into the payload structure the dashboard expects, for example: • One topic with a JSON object containing multiple tags, or • One topic per tag • Node-RED then publishes to the MQTT broker using standard MQTT (with optional username/password and TLS if required). 3) The dashboard displays values from MQTT • The MQTT dashboard subscribes to the topic(s) on the broker. • As Node-RED publishes updated values, the dashboard receives them and displays the live SCADA values. ⸻ Implementation approach Infrastructure • Create a lightweight Linux VM (or small Linux host) to run Node-RED. • Minimal resource footprint; designed for always-on operation. Configuration steps 1. Confirm Kepware OPC UA endpoint access and security requirements. 2. Configure Node-RED OPC UA client connection to Kepware. 3. Define and map the tag list (approximately 25 tags) to be published. 4. Configure MQTT broker connection settings in Node-RED. 5. Publish test values to a test topic and validate dashboard display. 6. Promote to production topic naming and finalize documentation. ⸻ Benefits • Avoids additional annual licensing for Kepware MQTT publishing. • No changes to PLC logic and no disruption to Geo SCADA. • Flexible: easy to add/remove tags and adjust message format later. • Transparent: Node-RED provides simple monitoring/logging for troubleshooting. ``` **11:51 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769629868568019):** this can be done by installing and running node red on the scada server, creating a 3rd lightweight linux VM to run the node-red software and act as the bridge. or installing a raspberry pi attached to the network to act as the bridge. **11:52 [Kevin](https://slack.com/archives/C091185E1JN/p1769629948819889):** let's put it on the server **11:52 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769629973522349):** on the scada server? or make a new VM **11:54 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769630046533399):** i actually dont recommend we run this on a windows machine **11:54 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769630064286869):** there is are a couple of additonal layers that add complexity and increase the likely hood of issues **11:54 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769630076512539):** Linux VM or Raspberry PI **11:56 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769630205143079):** this has a high likely hood of working, how far do you want me to take the proof of concept/ how much time do you want me to spend on it? **11:57 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769630271307249):** PoC would include creating the new VM, installing an OS, installing node-red, configuring/testing networking, testing OPC UA from kepware to node-red, pushing these values to the mqtt broker using node red. making a new dashboard to display one or two scada values **11:58 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769630315838459):** that could take 3-4 hours **12:00 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769630439933819):** their server has 128gb of ram! we're using like 8gb **12:00 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769630445922999):** resource wise there is no issue. **12:25 [Kevin](https://slack.com/archives/C091185E1JN/p1769631912855609):** do it **12:25 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769631919483739):** copy **12:25 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769631922125599):** thanks **12:25 [Kevin](https://slack.com/archives/C091185E1JN/p1769631929930609):** yw **12:25 [Kevin](https://slack.com/archives/C091185E1JN/p1769631946736419):** guess I didn't mess around with the ram on that server **12:26 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769631969375599):** or i think we upgraded it? i kinda rememer **12:26 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769631978638289):** ram is cheap **12:26 [Kevin](https://slack.com/archives/C091185E1JN/p1769631989125199):** right, I remember **13:55 [Kevin](https://slack.com/archives/C091185E1JN/p1769637310758789):** ![[F0ABZFQP4L9_screenshot_20260128-135356.png]] **13:55 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769637335161649):** kepware service bounced **13:55 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769637343017529):** after i made a change to the OPC UA server settings **13:55 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769637351548339):** do the know we're working on it? **13:56 [Kevin](https://slack.com/archives/C091185E1JN/p1769637375527369):** No I forgot to tell them **13:56 [Kevin](https://slack.com/archives/C091185E1JN/p1769637378864999):** I will **13:56 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769637393068589):** thanks.. some technical hurdles, but i think im past the worst of it **14:06 [Kevin](https://slack.com/archives/C091185E1JN/p1769638011619749):** glad to know the alarms work **14:07 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769638034610919):** yeah thats good! **14:48 [Kevin](https://slack.com/archives/C091185E1JN/p1769640528968019):** let me know when I can jump on the server for a few to download some files **14:49 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769640555011019):** i can pause while you do that if you want.. i just got the new server talking to kepware **14:49 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769640565360409):** sorting out how to grab the data we want **14:49 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769640580039609):** then we're not in new territory anymore.. the rest will be just like nino **14:49 [Kevin](https://slack.com/archives/C091185E1JN/p1769640595641469):** if you are in a groove keep going **14:52 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769640744206099):** whatas a good first/test value to grab **14:53 [Kevin](https://slack.com/archives/C091185E1JN/p1769640813135439):** hmmm. if a plant is running, then maybe a flow rate? **14:54 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769640854864309):** ![[F0ABJSH625U_image.png]] **14:54 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769640856693729):** ok ill do influent flow. **14:56 [Kevin](https://slack.com/archives/C091185E1JN/p1769641017921729):** oh yeah, wwtp influent flow is perfect **14:57 [Kevin](https://slack.com/archives/C091185E1JN/p1769641021275129):** it changes a lot **15:26 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769642774126189):** ![[F0ABM37BK9Q_image.png]] **15:26 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769642783253039):** influent flow is not being pushed to the mqtt broker **15:26 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769642808104239):** let me try to build a new dashboard to display this now **15:33 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769643207650619):** @Kevin **15:33 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769643212310919):** ![[F0ABHMDS1GD_image_from_ios.jpg]] **15:33 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769643217002299):** Boom. **15:33 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769643226215599):** Nailed it **15:38 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769643510167169):** [[F0AB5MA257H_screenrecording_01-28-2026_15-37-20_1.mp4]] **15:38 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769643515858999):** its currently updating every 5 seconds **15:40 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769643616492509):** @Kevin proof of concept complete and very successful. i am happy with how it working **15:40 [Kevin](https://slack.com/archives/C091185E1JN/p1769643635698509):** Beautiful!! **16:36 [Kevin](https://slack.com/archives/C091185E1JN/p1769647002148849):** are you still on the server? **16:36 [Kevin](https://slack.com/archives/C091185E1JN/p1769647006159229):** @Mason Radke **16:37 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769647043947499):** No. You can hop on. I need to close things up on there **16:37 [Mason Radke](https://slack.com/archives/C091185E1JN/p1769647053426499):** You can close whatever is open **17:15 [Kevin](https://slack.com/archives/C091185E1JN/p1769649324788069):** alright. thank you!

Extracted Entities

TypeKeyValueConfidenceEvidence
server SCADA Server RAM 128gb 90% their server has 128gb of ram! we're using like 8gb
site Client Name Buellton 100% Client: Buellton
system SCADA Product Kepware 100% If it helps for MQTT, all the PLC tags go into a OPC server before going to Geo ... kepware?
system SCADA Product Node-RED 100% Concept: Lightweight MQTT publishing bridge using Node-RED
system SCADA Product GeoSCADA 100% GeoSCADA mobile app has been "updated" and is now broken
system SCADA Product Ignition 90% ignition does it
task Proof of Concept for MQTT Bridge Create VM, install OS, install Node-RED, configure OPC UA and MQTT, test dashboard 100% PoC would include creating the new VM, installing an OS, installing node-red...
task Owner Mason Radke 100% @Mason Radke the GeoSCADA mobile app has been "updated" and is now broken
task Owner Kevin 100% if you don't mind shifting gears, go ahead and spend some time on this proof of concept.
File: Clients/Buellton/slack/2026/01/2026-01-28_buellton.md
Updated: 2026-02-25 03:15:08.988777