[gelöst] userreading mit trigger auf einen bestimmten Wert möglich?

Begonnen von dirk.k, 18 Dezember 2018, 09:09:22

Vorheriges Thema - Nächstes Thema

dirk.k

Hallo zusammen,
ich setze sehr Erfolgreich diverse userreadings mit gesetztem Trigger ein.

Nun möchte ich ein Userreading nur dann schreiben, wenn das als trigger verwendete reading "updatesAvailable" gleich 0 ist.
ist es möglich statt reading1:trigger.* auch einen Wert anstatt * anzugeben?
folgendes habe ich erfolglos probiert ...
attr FHEMAptToDate userReadings upgradeListAsJSON:updatesAvailable.updatesAvailable=0 { return "keine ausstehenden upgrades" },
attr FHEMAptToDate userReadings upgradeListAsJSON:updatesAvailable.0 { return "keine ausstehenden upgrades" },

kann mir da jemand auf die Sprünge helfen?
Danke

marvin78

Bitte Code Tags verwenden!!

Zitat von: commandrefIf <trigger> is given, then all processing for this specific user reading is only done if one of the just updated "reading: value" combinations matches <trigger>, which is treated as a regexp.

Hast du folgendes Probiert?

attr FHEMAptToDate userReadings upgradeListAsJSON:updatesAvailable:.0 { return "keine ausstehenden upgrades" }

Der richtige Trigger ist entscheidend. Der Eventmonitor hilft dabei.

dirk.k

Vielen Dank.
mit dem zusätzlichen Doppelpunkt geht es.

Aus dem Eventlog kann ich nicht wirklich viel ableiten: AptToDate FHEMAptToDate updatesAvailable: 0
Ok, da ist ein Doppelpunkt, aber ohne . zwischen : und 0

Die Angabe in der Commandref sind auch leicht verwirrend:  avgTemp:temperature.*
Im Forum steht es auch anders:  attr D1 userReadings new:orig.* {(ReadingsVal($name,"orig","0")>0?1:0)}"
https://forum.fhem.de/index.php/topic,52165.msg440466.html#msg440466

Ich dachte der * ist ein Platzhalter, den ich durch die 0 ersetzen kann... aber da muss mein Fehler liegen.

Für eine kurze Erläuterung oder andere Hineise wäre ich sehr Dankbar.

amenomade

Zitat von: dirk.k am 18 Dezember 2018, 09:35:07
Vielen Dank.
mit dem zusätzlichen Doppelpunkt geht es.

Aus dem Eventlog kann ich nicht wirklich viel ableiten: AptToDate FHEMAptToDate updatesAvailable: 0
Ok, da ist ein Doppelpunkt, aber ohne . zwischen : und 0

Die Angabe in der Commandref sind auch leicht verwirrend:  avgTemp:temperature.*
Im Forum steht es auch anders:  attr D1 userReadings new:orig.* {(ReadingsVal($name,"orig","0")>0?1:0)}"
https://forum.fhem.de/index.php/topic,52165.msg440466.html#msg440466

Ich dachte der * ist ein Platzhalter, den ich durch die 0 ersetzen kann... aber da muss mein Fehler liegen.

Für eine kurze Erläuterung oder andere Hineise wäre ich sehr Dankbar.

Im Eventmonitor gibt es einen Knopf "Create / modify Device". Wenn man die ganze Zeile eines Events markiert und darauf drückt, und dann z.B. "notify" auswählt, kriegt man die richtige Regex für ein Trigger. Mit Doppelpunkten, Punkten und Sternen.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

dirk.k


marvin78

Zitat von: dirk.k am 18 Dezember 2018, 09:35:07


Ich dachte der * ist ein Platzhalter, den ich durch die 0 ersetzen kann... aber da muss mein Fehler liegen.

Für eine kurze Erläuterung oder andere Hineise wäre ich sehr Dankbar.

Es ist ein RegEx. Der Punkt steht für ein beliebiges Zeichen und der * für beliebig viele Wiederholungen.

Im Rahmen von FHEM kann es nicht schaden, sich ein wenig mit RegEx zu beschäftigen. Das hier ist lesenswert:

https://danielfett.de/de/tutorials/tutorial-regulare-ausdrucke/