simo 2.2.7__py3-none-any.whl → 2.2.9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of simo might be problematic. Click here for more details.

Binary file
Binary file
simo/core/api.py CHANGED
@@ -174,7 +174,9 @@ def get_components_queryset(instance, user):
174
174
  if cp.read:
175
175
  c_ids.add(cp.component.id)
176
176
 
177
- return qs.filter(id__in=c_ids)
177
+ return qs.filter(id__in=c_ids).select_related(
178
+ 'zone', 'category', 'icon'
179
+ ).prefetch_related('slaves')
178
180
 
179
181
 
180
182
  class ComponentViewSet(
Binary file
simo/fleet/controllers.py CHANGED
@@ -158,7 +158,8 @@ class BaseClimateSensor(FleeDeviceMixin, BasicSensorMixin, BaseMultiSensor):
158
158
  def __init__(self, *args, **kwargs):
159
159
  super().__init__(*args, **kwargs)
160
160
  self.sys_temp_units = 'C'
161
- if self.component.zone.instance.units_of_measure == 'imperial':
161
+ if hasattr(self.component, 'zone') \
162
+ and self.component.zone.instance.units_of_measure == 'imperial':
162
163
  self.sys_temp_units = 'F'
163
164
 
164
165
  @property
simo/fleet/forms.py CHANGED
@@ -183,6 +183,14 @@ class ControlForm(forms.Form):
183
183
  ('momentary', "Momentary"), ('toggle', "Toggle"),
184
184
  ),
185
185
  )
186
+ action_method = forms.ChoiceField(
187
+ label="Action method (if Momentary)", initial='down',
188
+ choices=(
189
+ ('down', "DOWN (On GND delivery)"),
190
+ ('up', "UP (On +5V delivery)")
191
+ )
192
+ )
193
+
186
194
  prefix = 'controls'
187
195
 
188
196
 
@@ -268,7 +276,6 @@ class ColonelBinarySensorConfigForm(ColonelComponentForm):
268
276
 
269
277
  return self.cleaned_data
270
278
 
271
-
272
279
  def save(self, commit=True):
273
280
  if 'pin' in self.cleaned_data:
274
281
  self.instance.config['pin_no'] = self.cleaned_data['pin'].no
@@ -288,6 +295,13 @@ class ColonelButtonConfigForm(ColonelComponentForm):
288
295
  ]
289
296
  )
290
297
  )
298
+ action_method = forms.ChoiceField(
299
+ label="Action method", initial='down',
300
+ choices=(
301
+ ('down', "DOWN (On GND delivery)"),
302
+ ('up', "UP (On +5V delivery)")
303
+ )
304
+ )
291
305
 
292
306
  def __init__(self, *args, **kwargs):
293
307
  super().__init__(*args, **kwargs)
@@ -301,7 +315,6 @@ class ColonelButtonConfigForm(ColonelComponentForm):
301
315
  self._clean_pin('pin')
302
316
  return self.cleaned_data
303
317
 
304
-
305
318
  def save(self, commit=True):
306
319
  if 'pin' in self.cleaned_data:
307
320
  self.instance.config['pin_no'] = self.cleaned_data['pin'].no
@@ -1048,7 +1048,7 @@ class Watering(ControllerBase):
1048
1048
  def _perform_schedule(self):
1049
1049
  self.component.refresh_from_db()
1050
1050
  next_run = self._get_next_run()
1051
- if self.component.meta['next_run'] != next_run:
1051
+ if self.component.meta.get('next_run') != next_run:
1052
1052
  self.component.meta['next_run'] = next_run
1053
1053
  self.component.save()
1054
1054
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: simo
3
- Version: 2.2.7
3
+ Version: 2.2.9
4
4
  Summary: Smart Home on Steroids!
5
5
  Author-email: Simanas Venčkauskas <simanas@simo.io>
6
6
  Project-URL: Homepage, https://simo.io
@@ -14,7 +14,7 @@ simo/__pycache__/urls.cpython-38.pyc,sha256=u0x6EqT8S1YfDOSPgbI8Kf-RDlveY9OV-EDX
14
14
  simo/__pycache__/wsgi.cpython-38.pyc,sha256=TpRxO7VM_ql31hbKphVdanydC5RI1nHB4l0QA2pdWxo,322
15
15
  simo/core/__init__.py,sha256=_s2TjJfQImsMrTIxqLAx9AZie1Ojmm6sCHASdl3WLGU,50
16
16
  simo/core/admin.py,sha256=hoJ0OhfWL9T0d6JCY6_Gm3GR-nrgtDR2UQM67rMsjiE,18141
17
- simo/core/api.py,sha256=ZS8e1bd2jjA8a_l7fDpXYBQC4IOYYxe4JoMSAIhRa0Y,27926
17
+ simo/core/api.py,sha256=bA_dw4JRNQvmQ7yyet7P2nrIfTy86L0rlCsGE6VtUnA,28010
18
18
  simo/core/api_auth.py,sha256=vCxvczA8aWNcW0VyKs5WlC_ytlqeGP_H_hkKUNVkCwM,1247
19
19
  simo/core/api_meta.py,sha256=EaiY-dCADP__9MvLpoHvhjytFT92IrxPZDv95xgqasU,4955
20
20
  simo/core/app_widgets.py,sha256=4Lh9FDzdkfh_mccJMe09dyRTT3Uqf9VXwbkurJ9E9oQ,2115
@@ -47,7 +47,7 @@ simo/core/views.py,sha256=VVqfEPzK0EdbVMMarkG8rd7cODG5QHpXnr3e8UdrTQE,2600
47
47
  simo/core/widgets.py,sha256=J9e06C6I22F6xKic3VMgG7WeX07glAcl-4bF2Mg180A,2827
48
48
  simo/core/__pycache__/__init__.cpython-38.pyc,sha256=ZJFM_XN0RmJMULQulgA_wFiOnEtsMoedcOWnXjH-Y8o,208
49
49
  simo/core/__pycache__/admin.cpython-38.pyc,sha256=c5Q8YfIiLk25yVCxQvNsH-lwuOwfQa88X6xDYjOBogU,13428
50
- simo/core/__pycache__/api.cpython-38.pyc,sha256=c1QJHr84hrxuOF4hI1dc3N-yBy-UJuhmHpTbUocwrr4,21760
50
+ simo/core/__pycache__/api.cpython-38.pyc,sha256=RKwWpa0RqwMqDJ9U9AE6JIzrjIknt-Lsv0ZqENf6UzU,21838
51
51
  simo/core/__pycache__/api_auth.cpython-38.pyc,sha256=6M9Cl_ha4y_Vf8Rv4GMYL8dcBCmp0KzYi6jn3SQTgys,1712
52
52
  simo/core/__pycache__/api_meta.cpython-38.pyc,sha256=VYx5ZeDyNBI4B_CBEIhV5B3GnLsMOx9s3rNZTSMODco,3703
53
53
  simo/core/__pycache__/app_widgets.cpython-38.pyc,sha256=vUCEAYqppjgRZYMs6pTuSxWWuZxreLygPuPBGw044dQ,3643
@@ -61,7 +61,7 @@ simo/core/__pycache__/dynamic_settings.cpython-38.pyc,sha256=9ge2uV4QBKdA4f2pIZp
61
61
  simo/core/__pycache__/events.cpython-38.pyc,sha256=A1Axx-qftd1r7st7wkO3DkvTdt9-RkcJe5KJhpzJVk8,5109
62
62
  simo/core/__pycache__/filters.cpython-38.pyc,sha256=VIMADCBiYhziIyRmxAyUDJluZvuZmiC4bNYWTRsGSao,721
63
63
  simo/core/__pycache__/form_fields.cpython-38.pyc,sha256=u0voKXkA64xbH6LY_-jMBHQS4mOJZZeuB9WTvtv9JWE,3433
64
- simo/core/__pycache__/forms.cpython-38.pyc,sha256=_metULCNOh96IxCiiEVbA9rUM2C0gHUX1RC6WeBDV7k,17887
64
+ simo/core/__pycache__/forms.cpython-38.pyc,sha256=yK5bcsGXG9QAi965Kg4jjKA6Wbi0nzluNStWjDVjIPQ,17887
65
65
  simo/core/__pycache__/gateways.cpython-38.pyc,sha256=D1ooHL-iSpQrxnD8uAl4xWFJmm-QWZfbkLiLlFOMtdU,4553
66
66
  simo/core/__pycache__/loggers.cpython-38.pyc,sha256=Z-cdQnC6XlIonPV4Sl4E52tP4NMEdPAiHK0cFaIL7I8,1623
67
67
  simo/core/__pycache__/managers.cpython-38.pyc,sha256=6RTIxyjOgpQGtAqcUyE2vFPS09w1V5Wmd_vOV7rHRRI,3370
@@ -10191,8 +10191,8 @@ simo/fleet/api.py,sha256=Hxn84xI-Q77HxjINgRbjSJQOv9jii4OL20LxK0VSrS8,2499
10191
10191
  simo/fleet/auto_urls.py,sha256=UX66eR2ykMqFgfIllW-RTdjup5-FieCWl_BVm3CcXKg,702
10192
10192
  simo/fleet/base_types.py,sha256=wL9RVkHr0gA7HI1wZq0pruGEIgvQqpfnCL4cC3ywsvw,102
10193
10193
  simo/fleet/ble.py,sha256=eHA_9ABjbmH1vUVCv9hiPXQL2GZZSEVwfO0xyI1S0nI,1081
10194
- simo/fleet/controllers.py,sha256=mASn88pUAFnkmd0UreXh2M0amZpjbv3xMghfTC8OB94,29744
10195
- simo/fleet/forms.py,sha256=MNLen9TRDmTkQKI8gbycn9FmQHBpjRxfN9cKldiv6Io,57232
10194
+ simo/fleet/controllers.py,sha256=9IJnT6ATuKsfIAh7oTJgSZCY2c9HVIOBLqd0CQ3mjC4,29790
10195
+ simo/fleet/forms.py,sha256=YF34ZCDbLeAKpq4u0KTi8IsyqhDtNUWcal2DELRayuI,57668
10196
10196
  simo/fleet/gateways.py,sha256=lKEJW0MgaOEiNnijH50DNSVChvaUT3TA3UurcI57P8k,5677
10197
10197
  simo/fleet/managers.py,sha256=XOpDOA9L-f_550TNSyXnJbun2EmtGz1TenVTMlUSb8E,807
10198
10198
  simo/fleet/models.py,sha256=t_oi6EYSkg8Y5p3trJPv4MqW6AyUcylge9Bfw83mWCg,16462
@@ -10208,8 +10208,8 @@ simo/fleet/__pycache__/api.cpython-38.pyc,sha256=rL9fb7cCQatyFvXyKmlNOKmxVo8vHYe
10208
10208
  simo/fleet/__pycache__/auto_urls.cpython-38.pyc,sha256=Tc6a6BCXHjijP8U2jE2ghlJwnSNrGm59-hW5t-80wF0,689
10209
10209
  simo/fleet/__pycache__/base_types.cpython-38.pyc,sha256=deyPwjpT6xZiFxBGFnj5b7R-lbdOTh2krgpJhrcGVhc,274
10210
10210
  simo/fleet/__pycache__/ble.cpython-38.pyc,sha256=Nrof9w7cm4OlpFWHeVnmvvanh2_oF9oQ3TknJiV93-0,1267
10211
- simo/fleet/__pycache__/controllers.cpython-38.pyc,sha256=CagiILAhdfOsckuO6nh5ukKjAqke4O1m4LSHbAQru5I,24830
10212
- simo/fleet/__pycache__/forms.cpython-38.pyc,sha256=bdJgWyMfvGtnQiord-SawX8it5OVqJdY21hH5qkPjOQ,38820
10211
+ simo/fleet/__pycache__/controllers.cpython-38.pyc,sha256=PXWcEzGvEVtaKfQah35liipySnaGpswwyDG_MKm5phU,24860
10212
+ simo/fleet/__pycache__/forms.cpython-38.pyc,sha256=8Pl_cztv5iYmIySOFqiCk3NnVAvIu7os0-r5OjI05iA,39066
10213
10213
  simo/fleet/__pycache__/gateways.cpython-38.pyc,sha256=0RKVn0ndreVKhsrukqeLPSdMnRrsQ_W7yeVeBkRLfIk,5058
10214
10214
  simo/fleet/__pycache__/managers.cpython-38.pyc,sha256=8uz-xpUiqbGDgXIZ_XRZtFb-Tju6NGxflGg-Ee4Yo6k,1310
10215
10215
  simo/fleet/__pycache__/models.cpython-38.pyc,sha256=GZ01BjdvTn6_XJBfV8VrSldJ67X06ne-xW4CsQ6N6Wc,13756
@@ -10300,7 +10300,7 @@ simo/fleet/templates/fleet/controllers_info/ENS160AirQualitySensor.md,sha256=3LS
10300
10300
  simo/generic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10301
10301
  simo/generic/app_widgets.py,sha256=E_pnpA1hxMIhenRCrHoQ5cik06jm2BAHCkl_eo-OudU,1264
10302
10302
  simo/generic/base_types.py,sha256=djymox_boXTHX1BTTCLXrCH7ED-uAsV_idhaDOc3OLI,409
10303
- simo/generic/controllers.py,sha256=dA8LaQSAyukXI6Sy8MvcQG1nugR9HlNKlstcXR_dW2s,58271
10303
+ simo/generic/controllers.py,sha256=tVI0Gz35dcHt3_5xlkAaXOy3fxlmtZ8L7ODQBtBumV0,58275
10304
10304
  simo/generic/forms.py,sha256=VzJJjZEuvpDEa2uObw9SkPmzQ4J_LkJ6UCNCoQImm0g,29427
10305
10305
  simo/generic/gateways.py,sha256=cc_q_g2HsI2_rWmr8yZ3spnMPwsgoYS5ApWRimc11wU,18831
10306
10306
  simo/generic/models.py,sha256=flpK2jsBFghrvRHzl6IKT-t3WZ-hNOj4ZP2vmBzx0K8,7657
@@ -10309,7 +10309,7 @@ simo/generic/socket_consumers.py,sha256=NfTQGYtVAc864IoogZRxf_0xpDPM0eMCWn0SlKA5
10309
10309
  simo/generic/__pycache__/__init__.cpython-38.pyc,sha256=mLu54WS9KIl-pHwVCBKpsDFIlOqml--JsOVzAUHg6cU,161
10310
10310
  simo/generic/__pycache__/app_widgets.cpython-38.pyc,sha256=0IoKRG9n1tkNRRkrqAeOQwWBPd_33u98JBcVtMVVCio,2374
10311
10311
  simo/generic/__pycache__/base_types.cpython-38.pyc,sha256=ptw6axyAqemZA35oa6vzr7EihzvbhW9w7Y-G6kfDedU,555
10312
- simo/generic/__pycache__/controllers.cpython-38.pyc,sha256=DSGkVxjPz4g8BAFNFjM4YULJJOQsuaIapNw1JklEwDM,36478
10312
+ simo/generic/__pycache__/controllers.cpython-38.pyc,sha256=I9sGJNnAm9UOnnEoK5KR6IJ9q442El31AiY2hBnx1pI,36480
10313
10313
  simo/generic/__pycache__/forms.cpython-38.pyc,sha256=g-KKlxmRVWVN_mVOoXsuIGTNaVgs76BisphknIyD8vI,21071
10314
10314
  simo/generic/__pycache__/gateways.cpython-38.pyc,sha256=8NbsLVDww3Ov5DKF--LKgyrgnrn8yVcKrY21cdvV5aA,13979
10315
10315
  simo/generic/__pycache__/models.cpython-38.pyc,sha256=n3FeTMJYh4B6nCPiPKeXiWsUOOWkLHca7qTvfTK6Iik,5844
@@ -10506,9 +10506,9 @@ simo/users/templates/invitations/expired_msg.html,sha256=47DEQpj8HBSa-_TImW-5JCe
10506
10506
  simo/users/templates/invitations/expired_suggestion.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10507
10507
  simo/users/templates/invitations/taken_msg.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10508
10508
  simo/users/templates/invitations/taken_suggestion.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10509
- simo-2.2.7.dist-info/LICENSE.md,sha256=M7wm1EmMGDtwPRdg7kW4d00h1uAXjKOT3HFScYQMeiE,34916
10510
- simo-2.2.7.dist-info/METADATA,sha256=raAWixJURodMQe4Xl01YBlTqmmvIsp-hoCmtrvLLSSQ,1847
10511
- simo-2.2.7.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
10512
- simo-2.2.7.dist-info/entry_points.txt,sha256=SJBxiDpH7noO0STxVI_eRIsGR-nLgdXXeqCDe8cXlbM,65
10513
- simo-2.2.7.dist-info/top_level.txt,sha256=GmS1hrAbpVqn9OWZh6UX82eIOdRLgYA82RG9fe8v4Rs,5
10514
- simo-2.2.7.dist-info/RECORD,,
10509
+ simo-2.2.9.dist-info/LICENSE.md,sha256=M7wm1EmMGDtwPRdg7kW4d00h1uAXjKOT3HFScYQMeiE,34916
10510
+ simo-2.2.9.dist-info/METADATA,sha256=1UFNm0bYqKsBbPc6SjdYGFfT3BTrNxcRt3GVKW6ZluU,1847
10511
+ simo-2.2.9.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
10512
+ simo-2.2.9.dist-info/entry_points.txt,sha256=SJBxiDpH7noO0STxVI_eRIsGR-nLgdXXeqCDe8cXlbM,65
10513
+ simo-2.2.9.dist-info/top_level.txt,sha256=GmS1hrAbpVqn9OWZh6UX82eIOdRLgYA82RG9fe8v4Rs,5
10514
+ simo-2.2.9.dist-info/RECORD,,
File without changes