notify mit value?

Begonnen von Henry, 14 Februar 2013, 10:10:51

Vorheriges Thema - Nächstes Thema

Henry

Hallo
Ich habe ein Dummy Device was mir den Schaltzustand anzeigt mit on und off. Dieser wird druch einen Script beim Dmmy (Fbwlan) mit "setstate on/off" gesetzt. Nun wollte ich über notify erreich das vom Dummy abhänging ein FS20 (FunkDo3) Device schaltet und habe folges angelegt.
define WLanNotify  FBWLan { if ( Value("FBWLan") eq "off") {fhem("set FunkDo3 off")} else {fhem("set FunkDo3 on")} }
Aber es funktioniert nicht und ich habe keinen Plan wo der Fehler liegt
DebianServer als FHEM-Plattform
FS20 über CUL868
Intertechno über Signalduino
Philips HUE

Dennis D.

Zwischen WLan und Notify ein Leerzeichen, notify muss glaub ich kleingeschrieben sein (bin mir nicht sicher). Dann probier mal hinter das device ein ":.*" zu setzen. in etwas so sollte es funktionieren:


define WLan notify FBWLan:.* { if (Value("FBWLan") eq "off") { fhem ("set FunkDo3 off")} else { fhem ("set FunkDo3 on")} }


Gruß,
Dennis
FHEM 5.5 auf RPi Rev. B 512 mit HMLAN (HM-CFG-LAN)

CUL_HM: HM-LC-Bl1PBU-FM,HM-LC-SW1-BA-PCB,HM-LC-SW4-SM,HM-LC-Sw1PBU-FM,HM-OU-LED16,HM-PB-2-WM55,HM-RC-KEY3-B,HM-SEC-KEY,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SD,HM-WDS10-TH-O,HM-WDS40-TH-I

OWDevice: DS18B20,DS2438

Henry

@Dennis
also ich habe das geändert aber funktioniert nicht.
define WlanNotify FBWLan:.* { if ( Value("FBWLan") eq "on") {fhem("set FunkDo3 on")} else {fhem("set FunkDo3 off")} }
also wenn ich direkt in Fhem den Wert abfrage klappt es.
{Value("FBWLan")}
on                    

keine Ahnung wo der Fehler liegt
DebianServer als FHEM-Plattform
FS20 über CUL868
Intertechno über Signalduino
Philips HUE

Dennis D.

da fehlt noch ein leerzeichen zwischen Wlan und Notify. Und Notify würde ich klein schreiben, also "notify"!

anstelle von

define WlanNotify FBWLan:.* { if ( Value("FBWLan") eq "on") {fhem("set FunkDo3 on")} else {fhem("set FunkDo3 off")} }


probier mal

define Wlan notify FBWLan:.* { if ( Value("FBWLan") eq "on") {fhem("set FunkDo3 on")} else {fhem("set FunkDo3 off")} }


Gruß,
Dennis
FHEM 5.5 auf RPi Rev. B 512 mit HMLAN (HM-CFG-LAN)

CUL_HM: HM-LC-Bl1PBU-FM,HM-LC-SW1-BA-PCB,HM-LC-SW4-SM,HM-LC-Sw1PBU-FM,HM-OU-LED16,HM-PB-2-WM55,HM-RC-KEY3-B,HM-SEC-KEY,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SD,HM-WDS10-TH-O,HM-WDS40-TH-I

OWDevice: DS18B20,DS2438

Puschel74

Hallo,

etwaige Fehlermeldungen findest du im fhem-Logfile.

Aber das du den Code so wie von Dennis gepostet benutzt hast ist etwas unwahrscheinlich.

Den so

define WlanNotify FBWLan:.* { if ( Value("FBWLan") eq "on") {fhem("set FunkDo3 on")} else {fhem("set FunkDo3 off")} }

kann es nicht klappen da zwischen dem Wlan und dem notify kein Leerzeichen ist.

define Wlan notify FBWLan:.* { if ( Value("FBWLan") eq "on") {fhem("set FunkDo3 on")} else {fhem("set FunkDo3 off")} }

So solltes es besser klappen - evtl.

Grüße

Edit: Zu langsam gewesen
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Dennis D.

genau ;)

Oder halt so:

define WlanNotify notify FBWLan:.* { if ( Value("FBWLan") eq "on") {fhem("set FunkDo3 on")} else {fhem("set FunkDo3 off")} }

mit "define WlanNotify" hast Du ja nur das Device "WlanNotify" definiert. Es fehlt halt die info für Fhem, WAS für ein device es ist. Das wird durch durch "notify" oder "at" oder was auch immer definiert.

also:
define <devicename> notify <auslöser> oder
define <devicename> at <Zeit>

Gruß,
Dennis

EDIT: Die Tante Edit ist ja endlich da. Die hab ich noch gar nicht bemerkt. Thumbs up!
FHEM 5.5 auf RPi Rev. B 512 mit HMLAN (HM-CFG-LAN)

CUL_HM: HM-LC-Bl1PBU-FM,HM-LC-SW1-BA-PCB,HM-LC-SW4-SM,HM-LC-Sw1PBU-FM,HM-OU-LED16,HM-PB-2-WM55,HM-RC-KEY3-B,HM-SEC-KEY,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SD,HM-WDS10-TH-O,HM-WDS40-TH-I

OWDevice: DS18B20,DS2438

Henry

sorry das lag an mir da ich vom Handy unterwegs geantwortet habe.
Also Notify hatte ich richtig definiert wurde auch unter Notify (wo auch meine anderen funktionierende sind)angezeigt und auf activ gesetzt
also jetzt bin ich am richtigen PC altes Notify gelöscht und direkt
define Wlan notify FBWLan:.* { if ( Value("FBWLan") eq "on") {fhem("set FunkDo3 on")} else {fhem("set FunkDo3 off")} }
und es funktioniert nicht. Keine Ahnung denn value direkt bringt on/off die Funkdose schaltet einzeln auch nur nicht in dieser Kombination aber eigentlich sollte es doch gehen oder habe ich einen Denkfehler? Kann es damit was zu tun haben das ich den Status per
setstate FBWLan on / off gesetzt wird? aber das auslesen klappt ja.
DebianServer als FHEM-Plattform
FS20 über CUL868
Intertechno über Signalduino
Philips HUE

Dennis D.

daran wirds liegen. mit setstate reagieren meine notifys auch nicht.

leg doch mal ein dummy-device an:


define Wlan_dummy dummy
attr Wlan_dummy eventMap on off


dann passt du dein notify entsprechend an:


define Wlan notify FBWLan:.* { if ( Value("Wlan_dummy") eq "on") {fhem("set FunkDo3 on")} else {fhem("set FunkDo3 off")} }


damit solltest du dein notify testen können. schalte übers Webif von fhem einfach den dummy

FHEM 5.5 auf RPi Rev. B 512 mit HMLAN (HM-CFG-LAN)

CUL_HM: HM-LC-Bl1PBU-FM,HM-LC-SW1-BA-PCB,HM-LC-SW4-SM,HM-LC-Sw1PBU-FM,HM-OU-LED16,HM-PB-2-WM55,HM-RC-KEY3-B,HM-SEC-KEY,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SD,HM-WDS10-TH-O,HM-WDS40-TH-I

OWDevice: DS18B20,DS2438

Henry

Danke für eure Anteilnahme

Da ich das Dummy als Anzeige (Kontrollleuchte) benutze ist
attr FBWLan eventMap on off keine wirklich gute Idee aber ich wollte es testen
So nun ist der Dummy schaltbar und wenn ich im Webbrowser schalte dann funktioniert das Notify auch und die Funkschaltdose schaltet mit.
Wenn ich aber den Status per setstate FBWLan on / off setze reagiert das Notify nicht!
Wenn ich aber per schalten das Notify hätte haben wollen ginge das ja einfacher define WLanNotify notify FBWLan set FunkDo3 %
Aber ich lese ja deswegen extra den Status aus um das folge Device zu schalten und wie gesagt wenn ich in Fhem {Value("FBWLan")} bekomme ich ja auch den Status.
Also die Frage warum geht es im Fhem direkt aber nicht wenn ich den Status per Notify per if verarbeiten möchte.
DebianServer als FHEM-Plattform
FS20 über CUL868
Intertechno über Signalduino
Philips HUE

Dennis D.

hmmm, WARUM das notify nicht auf eine statusänderung mit setstate reagiert weiß ich nicht. was soll den eine statusänderung bei deinem dummy hervorrufen? kannst du nicht auf den auslöser der statusänderung ein notify legen, statt auf den anzeige-dummy?

Gruß,
Dennis
FHEM 5.5 auf RPi Rev. B 512 mit HMLAN (HM-CFG-LAN)

CUL_HM: HM-LC-Bl1PBU-FM,HM-LC-SW1-BA-PCB,HM-LC-SW4-SM,HM-LC-Sw1PBU-FM,HM-OU-LED16,HM-PB-2-WM55,HM-RC-KEY3-B,HM-SEC-KEY,HM-SEC-RHS,HM-SEC-SC,HM-SEC-SD,HM-WDS10-TH-O,HM-WDS40-TH-I

OWDevice: DS18B20,DS2438

MisterEltako

Hi!

Warum du "setstate" verwendest ist mir nicht klar.

Die vereinfachte Form deines Codes zum testen:

define FBWLan dummy
attr FBWLan room FBW
define Wlan notify FBWLan:.* { Log 1,  Value("FBWLan")}
attr Wlan room FBW

ergibt doch auch bei "set FBWLan on bzw. off" eine Statusänderung, die du mit Value("") abgreifen kannst.
"attr FBWLan eventMap on off" ist für das Dummy nicht nötig, also funktioniert es doch als Statusanzeige ohne unschöne on/off-Anzeige.

MfG, MisterEltako.
HMLAN-Konfigurations-Adapter, HM-Funkjalousieaktor/HM-Dimmaktor/HM-Schaltaktor f. Markenschalter, Jalousie-/Schaltaktor von Eltako, FT4 v. Eltako, TCM310

Henry

Weil ich mit dem setstate on/off mir einen Rückkanal benutzt hatte. Ein Device kann von Fhem an und aus geschaltet werde sowie am Device selbst. Damit ich im Fhem den realen Status von dem Gerät bekomme sendet es wenn am Gerät selbst geschaltet wird über "setstate" seinen realen Zustand an Fhem b.z.w. an das Dummy. Ich dachte eben das  ich diesen Rückkanal auch für etwas anderes noch nutzen kann.
Ich werde diesen Weg nicht weiter verfolgen war eben eine Theorie die nicht funktioniert. Danke für die Hilfe
DebianServer als FHEM-Plattform
FS20 über CUL868
Intertechno über Signalduino
Philips HUE