NEWS
Blockly und triggern auf mehrere Devices mit RegExp
-
Moin Moin,
nach mehreren Tagen Google-Fu habe ich einige Beiträge zum Thema Blockly und RegExp für mehrere Devices gefunden, jedoch leider keine funktionsfähige Lösung. Die Beiträge waren alle von 2017/2018 mit JS Adapter 1.0. Das "große" Fenster-/Tür-Script in Javascript im Forum ist ... zu groß für das Problem.
Daher meine Frage: ich möchte ein Blockly-Script definieren, daß meine Homematic-Fenster-Stati ausliest. Alle Homematic-Fenstersensoren folgen dem Namensschema
HM.<Raum>.Fenster.<Art>
und finden sich in
hm-rpc.0.<SERIAL>.1.STATE
Mein Versuch
on({id: new RegExp("^hm-rpc.+\.(Fenster)\..+"), change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; sendTo("telegram", "send", { text: (['Fensteränderung ',obj.deviceName,'. Neuer Zustand: ',(obj.state ? obj.state.val : "")].join('')) }); }); //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwcyUzQSUyRiUyRmRldmVsb3BlcnMuZ29vZ2xlLmNvbSUyRmJsb2NrbHklMkZ4bWwlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJvbl9leHQlMjIlMjBpZCUzRCUyMiUzQU4lN0Juamc1M2pwWmZZJTNGODUlNUVfNW4lMjIlMjB4JTNEJTIyMzEzJTIyJTIweSUzRCUyMjI2MyUyMiUzRSUzQ211dGF0aW9uJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUyMGl0ZW1zJTNEJTIyMSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQ09ORElUSU9OJTIyJTNFbmUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFDS19DT05ESVRJT04lMjIlM0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMk9JRDAlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIyZmllbGRfb2lkJTIyJTIwaWQlM0QlMjIqZyU3Q1RQSSUzRlgxKiU2MCU3Q2klN0JHZyUyNVFKKCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMm9pZCUyMiUzRWRlZmF1bHQlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnJlZ2V4JTIyJTIwaWQlM0QlMjJWJTVEJTI0ZDEpJTJCUkFNJTI0MFg0JTYwKi1NJTNGaCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlNUVobS1ycGMuJTJCJTVDLihGZW5zdGVyKSU1Qy4uJTJCJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRlbGVncmFtJTIyJTIwaWQlM0QlMjIlMjRsSEVLaGZUJTdDUV9ERlprLXAtKU4lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJJTlNUQU5DRSUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTE9HJTIyJTNFJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJTSUxFTlQlMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyUEFSU0VNT0RFJTIyJTNFZGVmYXVsdCUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyTUVTU0FHRSUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjIlN0RxQlR0VWE0SGklMjVvbCUzQlB5KjV4JTdEJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRXRleHQlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHRfam9pbiUyMiUyMGlkJTNEJTIyT0tybmJWJTJGd18lN0M2VSU2MGwlMjRWJTVEYSElMkYlMjIlM0UlM0NtdXRhdGlvbiUyMGl0ZW1zJTNEJTIyNCUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMmNkUVJjJTI1JTIzcGZrbVYlN0Q4JTdCTyU1QjElM0RFJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRUZlbnN0ZXIlQzMlQTRuZGVydW5nJTIwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMSUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm9uX3NvdXJjZSUyMiUyMGlkJTNEJTIyKGhjcDJrMiUyNVFRRG5QVy5IQXlpMSUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0VkZXZpY2VOYW1lJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMiUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRleHQlMjIlMjBpZCUzRCUyMlR+JTVCcSU1Qi5HeSUyQzZyVzFhJTI0UjghJTNGeiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UuJTIwTmV1ZXIlMjBadXN0YW5kJTNBJTIwJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyQUREMyUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm9uX3NvdXJjZSUyMiUyMGlkJTNEJTIyLiUzQkklMjUlN0RwaER3JTI1LkhHLVk4T0lhcCUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMkFUVFIlMjIlM0VzdGF0ZS52YWwlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnhtbCUzRQ==
funktioniert nicht - es wird nicht getriggert und ich erhalte kein Telegram.
Unterstützt denn Blockly im Trigger überhaupt ein RegExp-Ausdruck? Und wenn nein, was in etwa könnte ich flasch gemacht haben...?
Danke, -MN
-
@Morgennebel sagte:
Unterstützt denn Blockly im Trigger überhaupt ein RegExp-Ausdruck?
Ja, aber nur für die ID, nicht für den Namen.
@Morgennebel sagte in Blockly und triggern auf mehrere Devices mit RegExp:
und finden sich in
hm-rpc.0.<SERIAL>.1.STATEVersuche es mal so:
on({id: new RegExp("^hm-rpc\.0\..+\.1\.STATE$"), change: "ne"}, function (obj) {
EDIT: Falls mit diesem RegExp nicht nur die Fenster triggern, kann man noch nach dem Namen bzw. Kanalnamen filtern: