somfy_sdn 2.4.0 → 2.4.1
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.
- checksums.yaml +4 -4
- data/lib/sdn/cli/mqtt.rb +50 -23
- data/lib/sdn/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9e1e1adfb127498d09f9df75ebcbe479aef58ee8412f4a9cb977d8b11e45b119
|
4
|
+
data.tar.gz: 140db72e519d25a12028f901f0287ee6a41fd7c6071f25df406fd115616883ab
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e42ed8ef8086f84247e70743e73f3d4f1dccc2a83e541d4f88bb2bb7d719f85ff16c95375de660e4398adc305517e76e43d766a9bf84de8f9247e32d1bc2fceb
|
7
|
+
data.tar.gz: 879ab6fc00ba20c2c0b0bc1946ab2760702c791fc458955b65cc2c27db4687ccb8d95d112aedce0953f10e2d7ba88f7e54d20998e89bbd3519c0230971a79b7c
|
data/lib/sdn/cli/mqtt.rb
CHANGED
@@ -43,6 +43,12 @@ module SDN
|
|
43
43
|
@mqtt.set_will("#{@base_topic}/$state", "lost", retain: true)
|
44
44
|
@mqtt.connect
|
45
45
|
|
46
|
+
@availability = [{
|
47
|
+
topic: "#{@base_topic}/$state",
|
48
|
+
payload_available: "ready",
|
49
|
+
payload_not_available: "lost"
|
50
|
+
}.freeze].freeze
|
51
|
+
|
46
52
|
@motors = {}
|
47
53
|
@groups = {}
|
48
54
|
|
@@ -130,7 +136,8 @@ module SDN
|
|
130
136
|
node_id: @device_id,
|
131
137
|
object_id: "discover",
|
132
138
|
unique_id: "#{@device_id}_discover",
|
133
|
-
payload_press: "true"
|
139
|
+
payload_press: "true",
|
140
|
+
availability: @availability)
|
134
141
|
end
|
135
142
|
|
136
143
|
subscribe_all
|
@@ -229,7 +236,8 @@ module SDN
|
|
229
236
|
node_id: node_id,
|
230
237
|
object_id: "discover",
|
231
238
|
payload_press: "true",
|
232
|
-
unique_id: "#{node_id}_discover"
|
239
|
+
unique_id: "#{node_id}_discover",
|
240
|
+
availability: @availability)
|
233
241
|
end
|
234
242
|
|
235
243
|
if @homie
|
@@ -247,7 +255,8 @@ module SDN
|
|
247
255
|
max: 16,
|
248
256
|
name: "Label",
|
249
257
|
node_id: node_id,
|
250
|
-
unique_id: "#{node_id}_label"
|
258
|
+
unique_id: "#{node_id}_label",
|
259
|
+
availability: @availability)
|
251
260
|
end
|
252
261
|
|
253
262
|
if @homie
|
@@ -297,7 +306,8 @@ module SDN
|
|
297
306
|
position_topic: "#{@base_topic}/#{addr}/position-percent",
|
298
307
|
set_position_topic: "#{@base_topic}/#{addr}/position-percent/set",
|
299
308
|
state_topic: "#{@base_topic}/#{addr}/hass-state",
|
300
|
-
unique_id: "#{node_id}_motor"
|
309
|
+
unique_id: "#{node_id}_motor",
|
310
|
+
availability: @availability)
|
301
311
|
{
|
302
312
|
Wink: "mdi:emoticon-wink",
|
303
313
|
Next_IP: "mdi:skip-next",
|
@@ -311,7 +321,8 @@ module SDN
|
|
311
321
|
name: command.to_s.sub("_", " "),
|
312
322
|
node_id: node_id,
|
313
323
|
payload_press: command.to_s.downcase,
|
314
|
-
unique_id: "#{node_id}_#{command.to_s.downcase}"
|
324
|
+
unique_id: "#{node_id}_#{command.to_s.downcase}",
|
325
|
+
availability: @availability)
|
315
326
|
end
|
316
327
|
end
|
317
328
|
|
@@ -336,7 +347,8 @@ module SDN
|
|
336
347
|
state_topic: "#{@base_topic}/#{addr}/position-pulses",
|
337
348
|
step: 10,
|
338
349
|
unit_of_measurement: "pulses",
|
339
|
-
unique_id: "#{node_id}_position-pulses"
|
350
|
+
unique_id: "#{node_id}_position-pulses",
|
351
|
+
availability: @availability)
|
340
352
|
end
|
341
353
|
|
342
354
|
if @homie
|
@@ -358,7 +370,8 @@ module SDN
|
|
358
370
|
object_id: "ip",
|
359
371
|
payload_reset: "",
|
360
372
|
state_topic: "#{@base_topic}/#{addr}/ip",
|
361
|
-
unique_id: "#{node_id}_ip"
|
373
|
+
unique_id: "#{node_id}_ip",
|
374
|
+
availability: @availability)
|
362
375
|
end
|
363
376
|
|
364
377
|
if @homie
|
@@ -382,7 +395,8 @@ module SDN
|
|
382
395
|
state_topic: "#{@base_topic}/#{addr}/down-limit",
|
383
396
|
step: 10,
|
384
397
|
unit_of_measurement: "pulses",
|
385
|
-
unique_id: "#{node_id}_down-limit"
|
398
|
+
unique_id: "#{node_id}_down-limit",
|
399
|
+
availability: @availability)
|
386
400
|
end
|
387
401
|
|
388
402
|
if @homie
|
@@ -410,7 +424,8 @@ module SDN
|
|
410
424
|
name: "Reset #{key.to_s.sub("_", " ")}",
|
411
425
|
node_id: node_id,
|
412
426
|
payload_press: key,
|
413
|
-
unique_id: "#{node_id}_#{key}"
|
427
|
+
unique_id: "#{node_id}_#{key}",
|
428
|
+
availability: @availability)
|
414
429
|
end
|
415
430
|
end
|
416
431
|
|
@@ -430,7 +445,8 @@ module SDN
|
|
430
445
|
object_id: "last-action-source",
|
431
446
|
options: Message::PostMotorStatus::SOURCE.keys,
|
432
447
|
state_topic: "#{@base_topic}/#{addr}/last-action-source",
|
433
|
-
unique_id: "#{node_id}_last-action-source"
|
448
|
+
unique_id: "#{node_id}_last-action-source",
|
449
|
+
availability: @availability)
|
434
450
|
end
|
435
451
|
|
436
452
|
if @homie
|
@@ -449,7 +465,8 @@ module SDN
|
|
449
465
|
object_id: "last-action-cause",
|
450
466
|
options: Message::PostMotorStatus::CAUSE.keys,
|
451
467
|
state_topic: "#{@base_topic}/#{addr}/last-action-cause",
|
452
|
-
unique_id: "#{node_id}_last-action-cause"
|
468
|
+
unique_id: "#{node_id}_last-action-cause",
|
469
|
+
availability: @availability)
|
453
470
|
end
|
454
471
|
|
455
472
|
if @homie
|
@@ -460,7 +477,7 @@ module SDN
|
|
460
477
|
publish("#{addr}/up-limit/$settable", "true")
|
461
478
|
end
|
462
479
|
|
463
|
-
if @
|
480
|
+
if @home_assistant
|
464
481
|
@mqtt.publish_hass_number("up-limit",
|
465
482
|
command_topic: "#{@base_topic}/#{addr}/up-limit/set",
|
466
483
|
device: hass_device,
|
@@ -474,7 +491,8 @@ module SDN
|
|
474
491
|
state_topic: "#{@base_topic}/#{addr}/up-limit",
|
475
492
|
step: 10,
|
476
493
|
unit_of_measurement: "pulses",
|
477
|
-
unique_id: "#{node_id}_up-limit"
|
494
|
+
unique_id: "#{node_id}_up-limit",
|
495
|
+
availability: @availability)
|
478
496
|
end
|
479
497
|
|
480
498
|
if @homie
|
@@ -484,7 +502,7 @@ module SDN
|
|
484
502
|
publish("#{addr}/direction/$settable", "true")
|
485
503
|
end
|
486
504
|
|
487
|
-
if @
|
505
|
+
if @home_assistant
|
488
506
|
@mqtt.publish_hass_select("direction",
|
489
507
|
command_topic: "#{@base_topic}/#{addr}/direction/set",
|
490
508
|
device: hass_device,
|
@@ -495,7 +513,8 @@ module SDN
|
|
495
513
|
object_id: "direction",
|
496
514
|
options: %w[standard reversed],
|
497
515
|
state_topic: "#{@base_topic}/#{addr}/direction",
|
498
|
-
unique_id: "#{node_id}_direction"
|
516
|
+
unique_id: "#{node_id}_direction",
|
517
|
+
availability: @availability)
|
499
518
|
end
|
500
519
|
|
501
520
|
if @homie
|
@@ -531,7 +550,8 @@ module SDN
|
|
531
550
|
node_id: node_id,
|
532
551
|
state_topic: "#{@base_topic}/#{addr}/#{speed_type.downcase}-speed",
|
533
552
|
unit_of_measurement: "RPM",
|
534
|
-
unique_id: "#{node_id}_#{speed_type.downcase}-speed"
|
553
|
+
unique_id: "#{node_id}_#{speed_type.downcase}-speed",
|
554
|
+
availability: @availability)
|
535
555
|
end
|
536
556
|
end
|
537
557
|
end
|
@@ -566,7 +586,8 @@ module SDN
|
|
566
586
|
state_topic: "#{@base_topic}/#{addr}/ip#{ip}-pulses",
|
567
587
|
step: 10,
|
568
588
|
unit_of_measurement: "pulses",
|
569
|
-
unique_id: "#{node_id}_ip#{ip}-pulses"
|
589
|
+
unique_id: "#{node_id}_ip#{ip}-pulses",
|
590
|
+
availability: @availability)
|
570
591
|
end
|
571
592
|
|
572
593
|
if @homie
|
@@ -591,7 +612,8 @@ module SDN
|
|
591
612
|
payload_reset: "",
|
592
613
|
state_topic: "#{@base_topic}/#{addr}/ip#{ip}-percent",
|
593
614
|
unit_of_measurement: "%",
|
594
|
-
unique_id: "#{node_id}_ip#{ip}-percent"
|
615
|
+
unique_id: "#{node_id}_ip#{ip}-percent",
|
616
|
+
availability: @availability)
|
595
617
|
end
|
596
618
|
|
597
619
|
motor = Motor.new(self, addr, node_type)
|
@@ -686,7 +708,8 @@ module SDN
|
|
686
708
|
node_id: node_id,
|
687
709
|
object_id: "discover",
|
688
710
|
payload_press: "discover",
|
689
|
-
unique_id: "#{node_id}_discover"
|
711
|
+
unique_id: "#{node_id}_discover",
|
712
|
+
availability: @availability)
|
690
713
|
end
|
691
714
|
|
692
715
|
if @homie
|
@@ -712,7 +735,8 @@ module SDN
|
|
712
735
|
position_topic: "#{@base_topic}/#{addr}/position-percent",
|
713
736
|
set_position_topic: "#{@base_topic}/#{addr}/position-percent/set",
|
714
737
|
state_topic: "#{@base_topic}/#{addr}/hass-state",
|
715
|
-
unique_id: "#{node_id}_group"
|
738
|
+
unique_id: "#{node_id}_group",
|
739
|
+
availability: @availability)
|
716
740
|
{
|
717
741
|
Wink: "mdi:emoticon-wink",
|
718
742
|
Next_IP: "mdi:skip-next",
|
@@ -726,7 +750,8 @@ module SDN
|
|
726
750
|
name: command.to_s.sub("_", " "),
|
727
751
|
node_id: node_id,
|
728
752
|
payload_press: command.to_s.downcase,
|
729
|
-
unique_id: "#{node_id}_#{command.to_s.downcase}"
|
753
|
+
unique_id: "#{node_id}_#{command.to_s.downcase}",
|
754
|
+
availability: @availability)
|
730
755
|
end
|
731
756
|
end
|
732
757
|
|
@@ -765,7 +790,8 @@ module SDN
|
|
765
790
|
state_topic: "#{@base_topic}/#{addr}/position-pulses",
|
766
791
|
step: 10,
|
767
792
|
unit_of_measurement: "pulses",
|
768
|
-
unique_id: "#{node_id}_position-pulses"
|
793
|
+
unique_id: "#{node_id}_position-pulses",
|
794
|
+
availability: @availability)
|
769
795
|
end
|
770
796
|
|
771
797
|
if @homie
|
@@ -792,7 +818,8 @@ module SDN
|
|
792
818
|
object_id: "ip",
|
793
819
|
payload_reset: "",
|
794
820
|
state_topic: "#{@base_topic}/#{addr}/ip",
|
795
|
-
unique_id: "#{node_id}_ip"
|
821
|
+
unique_id: "#{node_id}_ip",
|
822
|
+
availability: @availability)
|
796
823
|
end
|
797
824
|
|
798
825
|
if @homie
|
data/lib/sdn/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: somfy_sdn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cody Cutrer
|
8
8
|
bindir: exe
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-04-
|
10
|
+
date: 2025-04-04 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: ccutrer-serialport
|