Browse Source

[supervise] shift dictionary values to index (#30)

Maxime Alves LIRMM@home 3 years ago
parent
commit
8345a52c60
1 changed files with 28 additions and 3 deletions
  1. 28
    3
      pyheatpump/cli.py

+ 28
- 3
pyheatpump/cli.py View File

@@ -166,6 +166,31 @@ def supervise(since):
166 166
 
167 167
     from .models.heatpump import Heatpump
168 168
 
169
+    def shift_response(d):
170
+        def shift_dict(d):
171
+            d_k = list(map(int, d.keys()))
172
+            if not len(d_k):
173
+                return d
174
+
175
+            d_k.sort()
176
+            offset = d_k[0]-1
177
+            return {
178
+                str(k - offset): d[str(k)]
179
+                for k in d_k
180
+                if str(k) in d
181
+            }
182
+
183
+        if 'Analog' in d.keys():
184
+            d.update({"Analog": shift_dict(d['Analog'])})
185
+
186
+        if 'Integer' in d.keys():
187
+            d.update({"Integer": shift_dict(d['Integer'])})
188
+
189
+        if 'Digital' in d.keys():
190
+            d.update({"Digital": shift_dict(d['Digital'])})
191
+
192
+        return d
193
+
169 194
 
170 195
     if not since:
171 196
         last_update = 0
@@ -207,17 +232,17 @@ def supervise(since):
207 232
 
208 233
     for packet in post_packets:
209 234
         try:
210
-            logger.debug(json.dumps(packet))
235
+            logger.debug(json.dumps(shift_response(packet)))
211 236
         except Exception as e:
212 237
             print(e)
213 238
             sys.exit(1)
214 239
 
215 240
 
216 241
     for packet in post_packets:
217
-        logger.debug('Will send %s', packet)
242
+        logger.debug('Will send %s', shift_response(packet))
218 243
         post_resp = requests.post(
219 244
             url=build_url(post_url),
220
-            json=packet,
245
+            json=shift_response(packet),
221 246
             verify=False
222 247
         )
223 248
         if post_resp.status_code == 200:

Loading…
Cancel
Save