replacement02Mode expression
replacement02Regex %%MENGE%%
replacement02Value
{
my $m = ReadingsNum($name,"Bestellmenge",0);
$m = $m >= 1000 ? $m : 1000;
return int(($m + 99) / 100) * 100;
}
Zitat von: betateilchen am 16 Dezember 2025, 10:55:07Vielleicht wäre auch JsonMod statt HTTPMOD die bessere Wahl.
Schon mit complete() in der readinglist gehen die Namen in Richtung Deiner Wunschvorstellung.
Wenn man die Aufbereitung der Namen dann noch ein bisschen verfeinert, lässt sich Dein Wunsch vermutlich erfüllen.defmod tj JsonMod file:///tmp/test.json
attr tj readingList complete()
setstate tj 2025-12-16 10:51:59 .computedReadings data.sensors.0.datasources.1.numberValue,data.sensors.0.datasources.1.__typename,data.sensors.0.datasources.0.name,data.sensors.0.datasources.0.__typename,data.sensors.0.datasources.1.name,data.sensors.0.datasources.0.unit,data.sensors.0.datasources.0.stringValue,data.sensors.0.datasources.0.datasourceType,data.sensors.0.type,data.sensors.0.datasources.0.id,data.sensors.0.datasources.1.stringValue,data.sensors.0.datasources.1.id,data.sensors.0.datasources.0.numberValue,data.sensors.0.datasources.1.unit,data.sensors.0.datasources.1.datasourceType,data.sensors.0.id
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.0.__typename Datasource
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.0.datasourceType SPEED_LIMIT
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.0.id viacloud:46:8bd1fb1c-b3d9-4132-83f7-1909219615b5
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.0.name Speed Limit
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.0.numberValue 50
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.0.stringValue 50
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.0.unit km/h
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.1.__typename Datasource
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.1.datasourceType AVERAGE_SPEED
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.1.id viacloud:46:8bd1fb1c-b3d9-4132-83f7-1909219615b5
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.1.name Average Speed
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.1.numberValue 48
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.1.stringValue 48
setstate tj 2025-12-16 10:51:59 data.sensors.0.datasources.1.unit km/h
setstate tj 2025-12-16 10:51:59 data.sensors.0.id viacloud:46:8bd1fb1c-b3d9-4132-83f7-1909219615b5
setstate tj 2025-12-16 10:51:59 data.sensors.0.type SPEED_SIGN
In der Datei /tmp/test.json steht der Json-Auszug, den Du oben gepostet hattest.
use JSON;
$result = 'true';
#$result = '{"text_value": 42,"text_string": "irgendwas","liste": ["A", "B", "C"],"objekt": {"x": 123.45,"y": -67.89,"aktiv": true} }';
if ( eval { $ref = JSON->new->relaxed(0)->allow_nonref(0)->decode($result) } ) {
print $ref;
} else {
print "ERROR: $@\n";
}
Dann richte mal der von Dir verwendeten KI meine Grüße aus. 😉2025.12.17 08:04:35 1: PERL WARNING: (Missing operator before
$VAR1?)
2025.12.17 08:04:35 1: PERL WARNING: Scalar found where operator expected at (eval 593) line 3, near "--
$VAR1"
2025.12.17 08:04:35 1: PERL WARNING: (Missing operator before
$VAR1?)Internals:
CFGFN
DEF A2BBNAAARW4N50 GSM55506537333LL
FUUID 69000c56-f33f-xxxx-3af2-f0aaf00000f645f4
IODev AmazonAccount
LOGINMODE IODEV
NAME ECHO_GSM1234567505AA
NR 101
NTFY_ORDER 50-ECHO_GSM1234567505AA
STATE connected
TYPE echodevice
eventCount 66
model unbekannt
READINGS:
2025-12-17 07:23:18 COOKIE_MODE IODEV
2025-12-17 07:23:18 IODev AmazonAccount
2025-12-17 07:38:11 model unbekannt
2025-12-17 07:38:11 presence present
2025-12-17 07:24:05 state connected
2025-12-17 07:38:11 version 4600000000020
2025-12-17 07:24:05 voice alexa spiele swr3
2025-12-17 07:24:05 voice_timestamp 1765900000018
2025-12-17 07:38:13 wakeword ALEXA
helper:
DEVICETYPE A2LLN0XXXXXN50
FAMILY KNIGHT
NAME Echo Show 11 Küche
VERSION 4600000000020
bluetooth -
hmccu:
Attributes:
IODev AmazonAccount
alias Echo <br> Show 11
devStateIcon connected:it_television@green disconnected:it_television@red
eventMap /tunein s134003:CHARIVARI/tunein s96141:BadenFM/tunein s15445:ENERGY/tunein s24896:SWR3/pause:STOP/
group Amazon
room Küche
sortby 01
verbose 2
webCmd volume:CHARIVARI:BadenFM:ENERGY:SWR3:STOP
webCmdLabel Lautstärke
:Sender 1
:Sender 2
:Sender 3
:Sender 4
:Beenden
widgetOverride volume:slider,0,5,100