feat: TODO mqtt pub/sub
This commit is contained in:
parent
c6bfaad911
commit
b540314a7b
|
@ -1,3 +1,5 @@
|
|||
from django.test import TestCase
|
||||
import paho.mqtt.subscribe as subscribe
|
||||
|
||||
# Create your tests here.
|
||||
topic = f'solarmosquitolamp/devices/861959064988699/state'
|
||||
msg = subscribe.simple(topic, hostname='8.217.112.255', port=1883)
|
||||
print("%s %s" % (msg.topic, msg.payload))
|
||||
|
|
|
@ -18,5 +18,6 @@ urlpatterns = [
|
|||
path('weather/', WeatherLogListAPIView.as_view(), name='weather-log'),
|
||||
path('deviceinfo/', DeviceInfoAPIView.as_view(), name='device-info'),
|
||||
path('weatherstationinfo/', WeatherStationInfoAPIView.as_view(), name='weather-station-info'),
|
||||
path('device/<device_id>/remote/', DeviceRemoteViewSet.as_view({'post': 'remote'}), name='device-remote'),
|
||||
path('device/<device_id>/mqtt/pub/', DeviceRemoteViewSet.as_view({'post': 'pub'}), name='device-mqtt-pub'),
|
||||
path('device/<device_id>/mqtt/sub/', DeviceRemoteViewSet.as_view({'get': 'sub'}), name='device-mqtt-sub'),
|
||||
]
|
||||
|
|
|
@ -2,6 +2,7 @@ import re
|
|||
import pytz
|
||||
import json
|
||||
import paho.mqtt.publish as publish
|
||||
import paho.mqtt.subscribe as subscribe
|
||||
# import paho.mqtt.subscribe as subscribe
|
||||
from rest_framework import decorators, mixins
|
||||
|
||||
|
@ -225,7 +226,7 @@ class DeviceRemoteViewSet(mixins.ListModelMixin,
|
|||
filter_backends = [SearchFilter, OrderingFilter]
|
||||
|
||||
@decorators.action(methods='POST', detail=True)
|
||||
def remote(self, request, device_id=None):
|
||||
def pub(self, request, device_id=None):
|
||||
command = request.data.get('command')
|
||||
speed = request.data.get('speed')
|
||||
|
||||
|
@ -244,3 +245,11 @@ class DeviceRemoteViewSet(mixins.ListModelMixin,
|
|||
publish.single(topic, payload=json.dumps(message), hostname='8.217.112.255', port=1883)
|
||||
|
||||
return Response({'success': True})
|
||||
|
||||
@decorators.action(methods='POST', detail=True)
|
||||
def sub(self, request, device_id=None):
|
||||
topic = f'solarmosquitolamp/devices/{device_id}/state'
|
||||
msg = subscribe.simple(topic, hostname='8.217.112.255', port=1883)
|
||||
print("%s %s" % (msg.topic, msg.payload))
|
||||
|
||||
return Response({'code': 0, 'data': None, 'msg': 'success'})
|
||||
|
|
Loading…
Reference in New Issue