یکپارچگی Odoo و بروکر Mqtt
Odoo مجموعه ای منبع باز از برنامه های تجاری است که شامل ماژول های مختلفی برای برنامه ریزی منابع سازمانی (ERP)، مدیریت ارتباط با مشتری (CRM) و سایر نیازهای تجاری است.
MQTT یک پروتکل پیام رسانی است که معمولاً برای برنامه های IoT (اینترنت اشیا) استفاده میشود.این برای ارتباط کارآمد و سبک وزن بین دستگاه های با قدرت محاسباتی محدود طراحی شده است.بسته به نیازهای خاص کسب و کار شما، راه های مختلفی وجود دارد که می توان Odoo و MQTT را با هم ادغام کرد.
برخی از راه های ممکن برای ادغام این دو سیستم عبارتند از:
• استفاده از MQTT برای جمع آوری داده ها از دستگاه های IoT و ارسال آن به Odoo برای پردازش و تجزیه و تحلیل بیشتر. این می تواند برای ردیابی عملکرد تجهیزات یا نظارت بر شرایط محیطی در یک کارخانه یا انبار مفید باشد.
• استفاده از MQTT برای دریافت اعلانها یا هشدارها از Odoo، مانند زمانی که مشتری سفارشی میدهد یا موجودی محصول کم است. این می تواند به شما اجازه دهد تا در جریان باشید و در زمان واقعی اقدام کنید
• استفاده از MQTT برای کنترل یا مدیریت دستگاه های متصل به اینترنت، مانند روشن یا خاموش کردن یک قطعه از تجهیزات یا تغییر تنظیمات آن. این می تواند برای مثال برای مدیریت یک ساختمان هوشمند یا ناوگان وسایل نقلیه مفید باشد.
برای ادغام Odoo و MQTT، باید هر دو سیستم را روی شبکه خود نصب و پیکربندی کنید. همچنین باید کد سفارشی بنویسید تا دو سیستم را به هم متصل کرده و تبادل داده بین آنها را انجام دهید. این معمولاً با استفاده از کتابخانه مشتری MQTT و Odoo API انجام می شود. برای اطمینان از یکپارچگی موفقیت آمیز، توصیه می شود با یک توسعه دهنده با تجربه که از هر دو سیستم دانش دارد کار کنید.
ابتدا باید Mosquitto Broker را نصب کنید تا صاحب سرور اوبونتو شوید
برای نصب بروکر Mosquitto بر روی سرور اوبونتو، مراحل زیر را دنبال کنید:
ایندکس بسته را با اجرای دستور زیر به روز کنید:
sudo apt – get update
بسته بروکر Mosquitto را با استفاده از دستور زیر نصب کنید:
ایندکس بسته را با اجرای دستور زیر به روز کنید:
sudo apt-get install mosquitto
پس از اتمام نصب، سرویس بروکر Mosquitto به طور خودکار شروع می شود. با بررسی وضعیت آن، می توانید تأیید کنید که سرویس در حال اجرا است: ایندکس بسته را با اجرای دستور زیر به روز کنید:
sudo systemctl status mosquitto
اگر میخواهید هنگام راهاندازی مجدد سرور، بروکر Mosquitto به طور خودکار راهاندازی شود، سرویس را با استفاده از دستور زیر فعال کنید:
ایندکس بسته را با اجرای دستور زیر به روز کنید:
sudo systemctl enable mosquitto
همچنین می توانید از ابزارهای خط فرمان Mosquitto برای مدیریت بروکر و آزمایش عملکرد آن استفاده کنید. به عنوان مثال، میتوانید از دستورات mosquitto_sub و mosquitto_pub به ترتیب برای اشتراک و انتشار پیامهای مربوط به یک موضوع استفاده کنید. همچنین می توانید از دستور mosquitto_passwd برای مدیریت اعتبارنامه های احراز هویت برای اتصال به بروکر استفاده کنید.
خودشه! شما با موفقیت بروکر Mosquitto را روی سرور اوبونتو خود نصب کرده اید. اکنون می توانید از آن برای تسهیل ارتباط بین دستگاه ها با استفاده از پروتکل MQTT استفاده کنید.
Mqtt Client را در Odoo Python Side نصب کنید
برای نوشتن یک کلاینت MQTT در پایتون، میتوانید از کتابخانه paho-mqtt استفاده کنید که یک کلاس کلاینت را با روشهایی برای اتصال به بروکر، انتشار پیامها و اشتراک در موضوعات ارائه میکند. در اینجا مثالی از نحوه استفاده از این کتابخانه برای پیاده سازی یک کلاینت ساده MQTT آورده شده است:
pip install paho-mqtt
سپس کلاس کلاینت را import کنید:
from paho.mqtt import Client
()client = Client
در مرحله بعد، می توانید با فراخوانی متد اتصال در client، و ارسال نام میزبان و شماره پورت بروکر به عنوان آرگومان، به بروکر MQTT متصل شوید:
client.connect( 'localhost', 1883)
هنگامی که به بروکر متصل شدید، میتوانید با فراخوانی روش انتشار در client، پیامهایی را برای یک موضوع منتشر کنید، نام موضوع و پیام را به عنوان آرگومان ارسال کنید:
client.publish( 'my_topic', 'Hello, World!')
همچنین می توانید با فراخوانی متد subscribe در نمونه client و ارسال نام موضوع به عنوان آرگومان، در یک موضوع مشترک شوید:
client.subscribe( 'my_topic')
در نهایت، میتوانید یک حلقه برای پردازش پیامهای دریافتی با فراخوانی متد loop_start در client راهاندازی کنید. با این کار یک رشته پسزمینه شروع میشود که به پیامهای مربوط به موضوعات مشترک گوش میدهد و آنها را به یک تابع تماس که شما مشخص میکنید ارسال میکند:
:def on_message( client, userdata, message)
print( f'Received message " {message.payload}" on topic " {message.topic}"' )
client.on_message = on_message
()client.loop_start
این یک مثال ساده از نحوه استفاده از کتابخانه paho-mqtt برای پیاده سازی کلاینت MQTT در پایتون است. برای ویژگی های پیشرفته تر و مثال های استفاده، به مستندات کتابخانه مراجعه کنید.
مزایای استفاده از Mqtt با سرور Odoo
MQTT (Message Queuing Telemetry Transport) یک پروتکل پیام رسانی سبک است که معمولاً برای برنامه های IoT (اینترنت اشیا) استفاده می شود. این برای ارتباط کارآمد و سبک وزن بین دستگاه هایی با قدرت محاسباتی محدود طراحی شده است.
برخی از مزایای استفاده از MQTT در تنظیمات کارخانه عبارتند از:
ارتباط کارآمد: MQTT از یک مدل انتشار/اشتراک برای ارتباط استفاده می کند که امکان تبادل کارآمد داده بین دستگاه ها را فراهم می کند. این بدان معناست که دستگاهها فقط پیامهایی را دریافت میکنند که مربوط به آنها است، که باعث کاهش حجم دادههایی که باید منتقل شوند و پهنای باند حفظ میشود.
سربار کم: MQTT دارای ردپای کوچک و سربار کم است که آن را برای استفاده با دستگاه هایی که قدرت محاسباتی و حافظه محدودی دارند مناسب می کند. این امکان را فراهم می کند تا تعداد زیادی دستگاه را بدون بارگذاری بیش از حد به شبکه متصل کنید.
قابلیت اطمینان: MQTT دارای مکانیسمهای داخلی برای اطمینان از قابلیت اطمینان ارتباط است، مانند ارسال مجدد پیامهای از دست رفته و اتصال مجدد خودکار مشتریان قطع شده. این باعث می شود آن را برای برنامه های کاربردی حیاتی که در آن ارتباط قابل اعتماد ضروری است، مناسب کند.
انعطاف پذیری: MQTT انعطاف پذیر است و می تواند در انواع سناریوهای مختلف مانند نظارت از راه دور، ردیابی دارایی و کنترل تجهیزات استفاده شود. این آن را به ابزاری همه کاره برای استفاده در تنظیمات کارخانه تبدیل می کند.
برخی از کاربردهای بالقوه MQTT در یک کارخانه عبارتند از:
نظارت بر عملکرد تجهیزات و ماشین آلات، مانند وضعیت عملیاتی، دما و سایر معیارها.
ردیابی موقعیت و وضعیت دارایی ها، مانند ابزار، قطعات، و محصولات نهایی.
کنترل و مدیریت تجهیزات و ماشین آلات، مانند روشن یا خاموش کردن آنها، تنظیم تنظیمات آنها، یا صدور دستورات.
ارسال هشدارها یا اعلانها، مانند زمانی که دستگاهی نیاز به تعمیر و نگهداری دارد یا محصولی آماده ارسال است.
جمع آوری داده ها برای تجزیه و تحلیل و گزارش، مانند کنترل کیفیت یا بهینه سازی فرآیند.