Davon ab das es mit UG/DreameZ10Pro/MapData/segments:.* json_segments
wieder ganz andere Voraussetzungen sind, mein ich könnte man es mit dem Hash so angehen ?
userReading:
zone_all {my $t = $defs{$name}->{READINGS};;my ($i,%h);;for my $key (keys %$t) {$key eq $key+0 ? $h{ReadingsVal($name,$key,'none')} = $key : next};;join(",",sort keys %h);;}
setList:
zones:{'multiple-strict,'.ReadingsVal($name,'zone_all','')} {my $t = $defs{$NAME}->{READINGS};;my ($i,%h);;for my $key (keys %$t) {$key eq $key+0 ? $h{ReadingsVal($NAME,$key,'none')} = $key : next}; my @s = split(',', $EVTPART1);;my @u;for (@s){push (@u,$h{$_})};my $jr = encode_json(\@s);return 'UG/DreameZ10Pro/MapSegmentationCapability/clean/set { "segment_ids": '.$jr.', "iterations": 1, "customOrder": true }';}
Ich kanns nicht testen, du hast denk ich verstanden um was es geht, natürlich kann man hier und da was anders machen/optimieren, grundsätzlich hatte ich es mir so in etwa vorgestellt.