File tree Expand file tree Collapse file tree 4 files changed +18
-5
lines changed Expand file tree Collapse file tree 4 files changed +18
-5
lines changed Original file line number Diff line number Diff line change 88
99def toggle_devices_on (modeladmin , request , queryset ):
1010 for obj in queryset :
11- obj .mqtt_toggle (1 )
11+ obj .mqtt_toggle ('on' )
1212
1313 message = 'All selected device have been toggled on.'
1414 messages .add_message (request , level = messages .SUCCESS , message = message )
1515
1616
1717def toggle_devices_off (modeladmin , request , queryset ):
1818 for obj in queryset :
19- obj .mqtt_toggle (0 )
19+ obj .mqtt_toggle ('off' )
2020
2121 message = 'All selected device have been toggled off.'
2222 messages .add_message (request , level = messages .SUCCESS , message = message )
Original file line number Diff line number Diff line change 1+ DEVICE_TOGGLE_STATE = {
2+ 'on' : 1 ,
3+ 'off' : 0
4+ }
Original file line number Diff line number Diff line change 1010from django .utils import timezone
1111from django .utils .functional import cached_property
1212
13+ from iotserver .apps .device import constants
1314from iotserver .apps .device .utils import mqtt , webrepl
1415
1516
@@ -86,8 +87,12 @@ def full_config(self):
8687 ]
8788 return config
8889
89- def mqtt_toggle (self , state : int ):
90- mqtt .toggle (self .id , str (state ), settings .MQTT )
90+ @cached_property
91+ def last_status (self ):
92+ return self .statuses .first ()
93+
94+ def mqtt_toggle (self , state : str ):
95+ mqtt .toggle (self .id , str (constants .DEVICE_TOGGLE_STATE [state ]))
9196
9297
9398class DevicePin (models .Model ):
Original file line number Diff line number Diff line change 1+ from typing import Dict , Optional
2+
13import paho .mqtt .subscribe as mqtt_subscribe
24import paho .mqtt .publish as mqtt_publish
5+ from django .conf import settings
36
47
5- def toggle (device_id , state , mqtt_settings ) :
8+ def toggle (device_id : str , state : int , mqtt_settings : Optional [ Dict ] = None ) -> None :
69 """
710 Toggle the device on/off via mqtt if the rule has been applied to one of it's
811 pins.
912 """
1013 topic = f'iot-devices/{ device_id } /toggle'
14+ mqtt_settings = mqtt_settings or settings .MQTT
1115
1216 # Switch to the new toggle state
1317 mqtt_publish .single (
You can’t perform that action at this time.
0 commit comments