Hi Zusammen,
ich habe einen Klingelsensor (HM-Sen-DB-PCB) dieser verändert bei einem Tastendruck das Reading "trigger".
Soweit so gut, leider ist der Wert häufig der Gleiche. z.B. "Short_123" beim nächsten Druck "Short_23" und dann kommt es vor, das beim nächsten Druck wieder der Wert "Short_23" gesetzt wird.
Um immer einen eindeutigen Wert zu haben, habe ich mir das Reading "Zaehler" angelegt und ein Notify welches dieses Reading hochzählen sollte.
Leider wird das Reading nicht hochgezählt bzw. das notify wird gar nicht ausgelöst.
Ein manuelles setreading Klingelsensor Zaehler {([Klingelsensor:Zaehler]+1)}
funktioniert und "Zaehler" wird um 1 erhöht.
Ich verstehe nicht wieso das notify nicht ausgelöst wird wenn sich "trigger" ändert.
Hier mein notify:
Klingelsensor:trigger.* setreading Klingelsensor Zaehler {([Klingelsensor:Zaehler]+1)}
Hat jemand eine Idee was hier fehlt/falsch ist bzw. hat jemand eine elegantere Lösung für mich?
Ziel: Ich brauch immer einen eindeutigen Wert.
Grüße und vielen Dank im Voraus!
Dave
Erstelle doch einmal das notify über den Eventmonitor.
Viele Grüße
Jürgen
Das hier geht bei mir ohne Probleme:
defmod co2Arbeitszimmer_notify_1 notify co2Arbeitszimmer:co2:.* setreading co2Arbeitszimmer Zaehler {([co2Arbeitszimmer:Zaehler]+1)}
Du versucht in dem notify das Device zu triggern welches das notify triggert.
Zitat von: davedeluxe am 05 März 2024, 11:03:16Ich verstehe nicht wieso das notify nicht ausgelöst wird wenn sich "trigger" ändert.
Weil das durch den Code verhindert wird, um keine Endlosschleifen zu produzieren.
Kannst Du mit einem sleep 0.1 wieder umgehen.
Ist bei setreading (https://fhem.de/commandref_DE.html#setreading)auch dokumentiert:
ZitatBeispiel:
setreading lampe state on
Achtung: setreading generiert kein Event für ein Gerät X, falls es aus einem notify für Gerät X aufgerufen wurde. In so einem Fall könnte man auf "sleep 0.1; setreading X Y Z" ausweichen.
Zitat von: davedeluxe am 05 März 2024, 11:03:16Ziel: Ich brauch immer einen eindeutigen Wert.
Wofür brauchst Du denn den Wert? Kannst Du nicht einfach den Timestamp statt den Wert verwenden, der sollte auf jeden Fall immer anders sein.
@otto, er will, dass der Trigger im notify arbeitet.
Das auf den Zähler nochmal ein Trigger läuft, war nicht gefordert.
Mein Beispiel zeigt, dass es prinzipiell gehen sollte, was auch immer damit bezweckt wird.
Zitat von: jhohmann am 05 März 2024, 21:23:15Mein Beispiel zeigt, dass es prinzipiell gehen sollte, was auch immer damit bezweckt wird.
Hast Du das mal getestet?
Was spricht denn dagegen, das Ganze einfach mit einem userReading zu lösen?
Zitat von: jhohmann am 05 März 2024, 21:23:15Das auf den Zähler nochmal ein Trigger läuft, war nicht gefordert.
Sorry, war ein Denkfehler.
Dann bleibt eigentlich nur die Vermutung: trigger erzeugt keinen Event.
Zitat von: betateilchen am 05 März 2024, 22:15:09Zitat von: jhohmann am 05 März 2024, 21:23:15Mein Beispiel zeigt, dass es prinzipiell gehen sollte, was auch immer damit bezweckt wird.
Hast Du das mal getestet?
Ja, habe ich so ausprobiert, der Zähler wurde hoch gezählt bei jeder Änderung des co2 Wertes. Ich musste aber zuerst das Zähler Reading mit einer 1 anlegen, damit das +1 auch rechnen konnte.
ZitatWas spricht denn dagegen, das Ganze einfach mit einem userReading zu lösen?
Wie würde das funktionieren?
Ich glaube aktuell macht der Klingelsensor selbst Probleme - mal wieder.
Ich habe es mit einem anderen Gerät getestet - geht :/