habe das Script ausprobiert für das Auslesen meines Saugroboter-Status. Klappt wunderbar.
In Blacks SDV benötigt es aber fast 4 Sekunden für die Ausführung, weil die API-Ausgabe etliche Einträge für die Erstellung der "Map" generiert. Also nach den eigentlichen auszuwertenden Einträgen (StatusStateAttribute und BatteryStateAttribute) kommen hunderte Zeilen mit Pixelpunktkoordinaten und deswegen dauert das so lange.
Code: Alles auswählen
------------------------------- Scriptausgabe -------------------------------
=== HTTP-Request OK === {"__class":"RobotState","metaData":{"version":1},"attributes":[{"__class":"AttachmentStateAttribute","metaData":{},"type":"dustbin","attached":true},{"__class":"AttachmentStateAttribute","metaData":{},"type":"watertank","attached":false},{"__class":"AttachmentStateAttribute","metaData":{},"type":"mop","attached":false},{"__class":"StatusStateAttribute","metaData":{},"value":"docked","flag":"none"},{"__class":"BatteryStateAttribute","metaData":{},"level":100,"flag":"charged"},{"__class":"PresetSelectionStateAttribute","metaData":{},"type":"fan_speed","value":"medium"},{"__class":"ConsumableStateAttribute","metaData":{},"type":"brush","subType":"main","remaining":{"value":11888,"unit":"minutes"}},{"__class":"ConsumableStateAttribute","metaData":{},"type":"brush","subType":"side_right","remaining":{"value":5888,"unit":"minutes"}},{"__class":"ConsumableStateAttribute","metaData":{},"type":"filter","subType":"main","remaining":{"value":2888,"unit":"minutes"}},{"__class":"ConsumableStateAttribute","metaData":{},"type":"sensor","subType":"all","remaining":{"value":576,"unit":"minutes"}}],"map":{"__class":"ValetudoMap","metaData":{"vendorMapId":845,"version":2,"nonce":"xxxxxxx"},"size":{"x":5120,"y":5120},"pixelSize":5,"layers":[{"__class":"MapLayer","metaData":{"area":4500},"type":"floor","pixels":[],"dimensions":{"x":{"min":391,"max":612,"mid":502,"avg":522},"y":{"min":276,"max":572,"mid":424,"avg":498},"pixelCount":180},"compressedPixels":[556,276,1,556,277,1,555,280,1,555,281,1,575,396,1,579,396,2,575,398,1,579,398,1,590,399,2,587,401,4,599,401,2,602,401,1,590,403,4,566,407,1,602,409,2,391,410,1,611,411,2,603,413,4,612,414,1,590,417,1,577,421,2,556,422,1,581,422,3,557,424,1,559,425,1,566,425,2,574,425,1,560,426,1,568,426,3,575,426,2,561,427,1,571,427,2,563,428,1,575,428,1,564,429,1,576,429,2,580,429,1,567,431,1,583,431,1,487,534,1,491,536,2,494,536,1,496,536,1,486,537,1,491,537,7,486,538,1,491,538,1,493,538,5,489,539,1,491,539,2,494,539,4,485,540,1,489,540,1,491,540,1,495,540,3,499,540,1,485,541,1,494,541,4,499,541,1,484,542,1,491,542,1,494,542,2,497,542,1,499,542,1,491,543,1,495,543,5,437,544,1,484,544,1,491,544,1,495,544,5,437,545,1,488,545,1,491,545,1,495,545,1,497,545,3,491,546,1,495,546,4,500,546,1,496,547,2,500,547,1,436,548,1,488,548,1,496,548,2,500,548,1,488,549,1,496,549,1,500,549,1,498,550,1,490,551,1,496,551,3,496,552,3,496,553,1,498,553,1,495,554,1,489,555,1,495,555,3,489,556,1,495,556,2,489,557,1,496,557,1,496,558,1,435,559,1,488,559,1,496,559,1,488,560,1,496,560,1,488,561,1,496,561,
.........
.........
.........
In Deiner Script-Anleitung beschreibst Du, wie man den eigentlichen Startpunkt des Scripts nach hinten schieben kann. Gibt es auch die Möglichkeit, die Json-Auslesung nach einigen Zeilen abzubrechen, sprich, den ganzen unnützen hinteren Teil des json wegzulassen?