Hallo zusammen.
Ich versuche seit mehreren Tagen, einen Notify per Schalter zu deaktivieren oder aktivieren.
Dafür habe ich einen Schalter als Dummy angelegt:
define em_w_sch dummy
attr em_w_sch eventMap /on:Activ/off:Inactiv/
attr em_w_sch room System
attr em_w_sch setList on off
attr em_w_sch webCmd on:off
Dann einen Notify, der den eigentlich Notify steuern soll
define n_em_w notify em_w_sch:.* {\
if ("%" eq "on")\
{fhem ("attr n_batt_chk disable 0");;}\
else\
{fhem ("attr n_batt_chk disable 1");;}\
}
attr n_em_w room System
Damit möchte ich die eine Email Warnung per Email aktivieren oder deaktivieren.
Egal wie ich den notify konfiguriere kommt immer nur disable 1 als Ergebnis raus. Da Perl nicht zu meinen Stärken gehört, weiß ich nicht mehr weiter und bitte hier um Hilfe, von jemanden mit mehr Perl Kenntnissen.
Wäre es nicht sinnvoller das 2. notify wegzulassen und im 1. notify den state des dummy abzufragen?
if (ReadingsVal("dummy","state","") eq "on") {...}
Ansonsten lies die Ankündigung zu Featurelevel 5.7
und dann gibt es für das notify auch noch das set active/inactive, was keine Strukturänderung (Stichwort rotes Fragezeichen) auslöst, wie es das Ändern eines Attributes tut.
s.a. Commandref zu Notify (http://fhem.de/commandref_DE.html#notify)
@dev0
Währe es nicht sinnvoller mit hilfreichen Aussagen und Code Beispielen zu helfen, als Gegenfragen zu stellen, wenn Der Threadverfasser geschrieben hat, das Er nicht viel Ahnung von Perl hat.
Da währe es auf jeden Fall sinnvoller mit Code und Erklärungen zu helfen, als Gegenfragen zu stellen und auf Texte zu verweisen, die man lesen soll.
Die texte habe ich nämlich schon alle gelesen und finde selbst keine Lösung, deswegen habe ich um Hilfe gebeten und nicht um darum Gegenfragen zu erhalten oder Verweise auf Texte zu lesen.
@Benni
Die habe ich gelesen und wenn ich damit weiter gekommen währe, hätte ich hier nicht um Hilfe gebeten.
Ich muss leider immer wieder feststellen, das hier im Forum viele User nicht helfen möchten, sondern nur Kommentare abgeben, die nicht hilfreich sind. Zum Glück gibt es hier auch ein paar Ausnahmen, die wirklich hilfsbereit sind und nützliche Posts schreiben
Na ja ::)
dev0 hat dir doch die Lösung aufgezeigt und die funktioniert auch. Der Hinweis auf Featurelevel 5.7 bezieht sich auf dein Codebeispiel mit dem "%"
Das ist ein Stück Code, der mir aber nicht sagt, wo und wie ich ihn einbauen muss.
In Bezug auf Version 6.7, ich habe auch andere Sonderzeichen probiert und keinen Erfolg gehabt, dev0 geht auch davon aus, das ich Version 5.7 installiert habe, was ich aber beim erstellen des posts nicht hatte.
.
define <Name deines Notify> notify if (ReadingsVal("em_w_sch","state","") eq "on") {dann aktiviere die e-Mail Warnung}
Wie deine e-Mail-Warnung aussieht, hast du nicht mitgeteilt.
Spitze, so funktioniert es.
Danke Brice.
Dennoch:
das Wiki ist im Hinblick auf Notify wirklich gut. Mir hat es damals sehr geholfen, anhand des Wizards (Regexp wizard - FHEMWEB-unterstützte Anlage eines notify) meine Schwierigkeiten zu beheben.
Tipp: nochmals lesen und testen :-)
Und bitte den funktionieren Code hier posten oder den Thread nach Anfängerfragen verschieben (lassen). Sonst ist das hier offtopic.
Den komplette funktionierende Code sieht wie folgt aus.
Der Dummy Schalter
define em_w_sch dummy
attr em_w_sch alias Batterie Warnung
attr em_w_sch devStateIcon Activ:on-green Inactiv:off-gray
attr em_w_sch eventMap /on:Activ/off:Inactiv/
attr em_w_sch room System
attr em_w_sch setList on off
attr em_w_sch webCmd on:off
Der Notify
define n_em_w notify em_w_sch:.* {\
if (ReadingsVal("em_w_sch","state","") eq "on")\
{fhem ("set n_batt_chk active");;}\
else\
{fhem ("set n_batt_chk inactive");;}\
}
attr n_em_w room System
Der Tipp von Benni mit dem set <Devicename> active/inactive
wurde von mir heute erst eingebaut, da ich vorher nicht auf die Idee gekommen bin, es so zu lösen. Da es keine Strukturänderung bringt, liegt der Vorteil auf der Hand.
Wenns besser im Anfängerbereich aufgehoben ist, dann bitte verschieben. Danke.
Hallo,
eine andere Alternative wäre "devStateIcon" mit dem Wert "inactive:control_x@red:active active:vent_ventilation_level_automatic@green:inactive". Die Icons kann man ja frei wählen. Damit kann man sich den Dummy sparen.
Gruß Christoph
Ach! War mein Tipp anscheinend doch noch nützlich?
Im Übrigen, wenn ich nicht helfen wollte, würde ich einfach gar nichts schreiben.