Hauptmenü

neues Modul DOIF

Begonnen von Damian, 21 Mai 2014, 15:53:18

Vorheriges Thema - Nächstes Thema

Puschel74

Hallo,

im letzten Code von dir sind auch 4 Sekunden eingetragen  ;)
Alles was anders ist sehen wir hier nicht.

Ein setreading löst mWn KEIN Event aus - daher dürfte sich das Device auch nicht selbst triggern.

Für weitergehende Hilfe wäre es nützlich den von dir zuletzt benutzten Code zu sehen.
Sorry aber meine Glaskugel ist noch beim polieren  8)

Grüße
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.

holzwurm83

Anbei meine finale Def.:
define di_fensterhoch DOIF ([WZ_Fenster_OST_R])   (IF ([WZ_Fenster_OST_R:doppelklick] eq "offen")     (set WZ_J_OST auf)   ELSE     (setreading WZ_Fenster_OST_R doppelklick offen, define doppelklick_zu at +00:00:02 setreading WZ_Fenster_OST_R doppelklick zu))
attr di_fensterhoch do always
attr di_fensterhoch verbose 5



Beim Fenster habe ich als Reading nun immer
doppelklick offen
stehen.

Habe mit
setreading WZ_Fenster_OST_R doppelklick zu
versucht "zu" zu setzten, aber das geht auch nicht.

Im Log steht dann folgende Meldung:
2014.10.05 17:34:58 2: di_fensterhoch: IF ([WZ_Fenster_OST_R:doppelklick] eq "offen")     (set WZ_J_OST auf)   ELSE     (setreading WZ_Fenster_OST_R doppelklick offen, define doppelklick_zu at +00:00:02 setreading WZ_Fenster_OST_R doppelklick zu): doppelklick_zu already defined, delete it first
- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN

Puschel74

Hallo,

das
Zitatdoppelklick_zu already defined, delete it first
ist normal wenn du innerhalb der Zeit das Fenster nochmal öffnest - das at ist zu diesem Zeitpunkt bereits definiert.

Warum aber setreading Fenster doppelklick zu nicht geht kann ich dir nicht sagen.

Grüße
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.

Damian

Zitat von: holzwurm83 am 05 Oktober 2014, 17:39:27
Anbei meine finale Def.:
define di_fensterhoch DOIF ([WZ_Fenster_OST_R])   (IF ([WZ_Fenster_OST_R:doppelklick] eq "offen")     (set WZ_J_OST auf)   ELSE     (setreading WZ_Fenster_OST_R doppelklick offen, define doppelklick_zu at +00:00:02 setreading WZ_Fenster_OST_R doppelklick zu))
attr di_fensterhoch do always
attr di_fensterhoch verbose 5



Beim Fenster habe ich als Reading nun immer
doppelklick offen
stehen.

Habe mit
setreading WZ_Fenster_OST_R doppelklick zu
versucht "zu" zu setzten, aber das geht auch nicht.

Im Log steht dann folgende Meldung:
2014.10.05 17:34:58 2: di_fensterhoch: IF ([WZ_Fenster_OST_R:doppelklick] eq "offen")     (set WZ_J_OST auf)   ELSE     (setreading WZ_Fenster_OST_R doppelklick offen, define doppelklick_zu at +00:00:02 setreading WZ_Fenster_OST_R doppelklick zu): doppelklick_zu already defined, delete it first


Vielleicht erzeugt dein Fenster mehr als ein Event pro Öffnen bzw. Schließen (z. B. bei HM). Das kannst im Eventmonitor sehen. Wichtig ist, dass WZ_Fenster_OST_R nur einmal pro Öffnen bzw. Schließen den Zustand wechselt.

Gruß

Damian



Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

holzwurm83

Der Eventmonitor Zeigt folgendes:

2014-10-05 19:37:59 dummy WZ_J_OST C8
2014-10-05 19:37:59 DOIF di_fensterhoch cmd_nr: 1
2014-10-05 19:37:59 DOIF di_fensterhoch cmd_event: WZ_Fenster_OST_R
2014-10-05 19:37:59 DOIF di_fensterhoch cmd_1
2014-10-05 19:37:59 DOIF WZ_Fenster_OST_R cmd_nr: 3
2014-10-05 19:37:59 DOIF WZ_Fenster_OST_R cmd_event: HMW_Sen_SC_12_DR_JEQ0545703_06
2014-10-05 19:37:59 DOIF WZ_Fenster_OST_R offen
2014-10-05 19:37:59 HM485 HMW_Sen_SC_12_DR_JEQ0545703_06 sensor: 51200
2014-10-05 19:38:01 HM485_LAN HM485_LAN RAW 0000CBB8 98 00000001 7802C8
2014-10-05 19:38:01 dummy WZ_J_OST C8
2014-10-05 19:38:01 DOIF di_fensterhoch cmd_nr: 1
2014-10-05 19:38:01 DOIF di_fensterhoch cmd_event: WZ_Fenster_OST_R
2014-10-05 19:38:01 DOIF di_fensterhoch cmd_1
2014-10-05 19:38:01 DOIF WZ_Fenster_OST_R cmd_nr: 1
2014-10-05 19:38:01 DOIF WZ_Fenster_OST_R cmd_event: HMW_Sen_SC_12_DR_JEQ0545703_06
2014-10-05 19:38:01 DOIF WZ_Fenster_OST_R zu
2014-10-05 19:38:01 HM485 HMW_Sen_SC_12_DR_JEQ0545703_06 sensor: 0


Also wird nur einmal "offen" erzeugt.
- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN

Damian

Zitat von: holzwurm83 am 05 Oktober 2014, 19:42:37
Der Eventmonitor Zeigt folgendes:

2014-10-05 19:37:59 dummy WZ_J_OST C8
2014-10-05 19:37:59 DOIF di_fensterhoch cmd_nr: 1
2014-10-05 19:37:59 DOIF di_fensterhoch cmd_event: WZ_Fenster_OST_R
2014-10-05 19:37:59 DOIF di_fensterhoch cmd_1
2014-10-05 19:37:59 DOIF WZ_Fenster_OST_R cmd_nr: 3
2014-10-05 19:37:59 DOIF WZ_Fenster_OST_R cmd_event: HMW_Sen_SC_12_DR_JEQ0545703_06
2014-10-05 19:37:59 DOIF WZ_Fenster_OST_R offen
2014-10-05 19:37:59 HM485 HMW_Sen_SC_12_DR_JEQ0545703_06 sensor: 51200
2014-10-05 19:38:01 HM485_LAN HM485_LAN RAW 0000CBB8 98 00000001 7802C8
2014-10-05 19:38:01 dummy WZ_J_OST C8
2014-10-05 19:38:01 DOIF di_fensterhoch cmd_nr: 1
2014-10-05 19:38:01 DOIF di_fensterhoch cmd_event: WZ_Fenster_OST_R
2014-10-05 19:38:01 DOIF di_fensterhoch cmd_1
2014-10-05 19:38:01 DOIF WZ_Fenster_OST_R cmd_nr: 1
2014-10-05 19:38:01 DOIF WZ_Fenster_OST_R cmd_event: HMW_Sen_SC_12_DR_JEQ0545703_06
2014-10-05 19:38:01 DOIF WZ_Fenster_OST_R zu
2014-10-05 19:38:01 HM485 HMW_Sen_SC_12_DR_JEQ0545703_06 sensor: 0


Also wird nur einmal "offen" erzeugt.

Vor deinem Test des Doppelklicks, muss das Reading doppelklick  bei WZ_Fenster_OST_R auf "zu" stehen und natürlich kein doppelklick_zu-at existieren.

Beim ersten Klick läuft er in den ELSE-Fall setzt doppelklick auf "offen" und definiert doppelklick_zu-at. Wenn du innerhalb der definierten Zeitspanne noch mal ein Event erzeugst, dann kann er nur in den IF-Fall reinlaufen und den Rollladen hoch stellen.
Wenn du nach der definierten Zeitspanne ein Event erzeugst dann ist doppelklick-reading zu und doppelklick_zu-at existiert nicht mehr und dann kann er nur in den ELSE-Fall reinlaufen und dann fängt die Sache von vorne an. Eigentlich kann hier nicht passieren, dass at noch definiert  ist, wenn es erneut definieren werden soll. Es sei denn die oben beschriebenen Ausgangsvoraussetzungen stimmen bei dir nicht.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

holzwurm83

ZitatVor deinem Test des Doppelklicks, muss das Reading doppelklick  bei WZ_Fenster_OST_R auf "zu" stehen und natürlich kein doppelklick_zu-at existieren.

Da liegt wohl auch das Problem!? WZ_Fenster_OST_R steht auf "offen" und ich kann es nicht auf "zu" setzen, da doppelklick_zu-at bereits existiert.
2014.10.05 20:01:41 2: di_fensterhoch: IF ([WZ_Fenster_OST_R:doppelklick] eq "offen") (set WZ_J_OST auf) ELSE (setreading WZ_Fenster_OST_R doppelklick offen, define doppelklick_zu at +00:00:02 setreading WZ_Fenster_OST_R doppelklick zu): doppelklick_zu already defined, delete it first

Das at finde ich leider nicht um es zu löschen.
- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN

Damian

Zitat von: holzwurm83 am 05 Oktober 2014, 20:07:13
Da liegt wohl auch das Problem!? WZ_Fenster_OST_R steht auf "offen" und ich kann es nicht auf "zu" setzen, da doppelklick_zu-at bereits existiert.
2014.10.05 20:01:41 2: di_fensterhoch: IF ([WZ_Fenster_OST_R:doppelklick] eq "offen") (set WZ_J_OST auf) ELSE (setreading WZ_Fenster_OST_R doppelklick offen, define doppelklick_zu at +00:00:02 setreading WZ_Fenster_OST_R doppelklick zu): doppelklick_zu already defined, delete it first

Das at finde ich leider nicht um es zu löschen.

Wie kann denn mit +00:00:02 dein at noch existieren? Der löscht sich selbst nach 2 Sekunden.

Ansonsten reicht doch in der Kommandozeile:

delete doppelklick_zu

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

holzwurm83

hm?

Mit
setreading WZ_Fenster_OST_R doppelklick zu
bleibt das reading auf offen stehen.
- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN

Damian

Zitat von: holzwurm83 am 05 Oktober 2014, 20:17:55
hm?

Mit
setreading WZ_Fenster_OST_R doppelklick zu
bleibt das reading auf offen stehen.

Meinst du auch wirklich das Reading und nicht den Status des Moduls?

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

holzwurm83

Ich meine eigentlich das Reading. Zur Sicherheit ein Screenshot.
- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN

Damian

#521
Zitat von: holzwurm83 am 05 Oktober 2014, 20:31:41
Ich meine eigentlich das Reading. Zur Sicherheit ein Screenshot.

Tja, dann kann ich dir leider nicht weiter helfen. Bei mir funktioniert das Setzen eines Readings mit setreading ... jederzeit (gerade noch mal probiert).

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

#522
Ich glaube ich weiß, wo der Hund begraben liegt.

Durch das Setzen des Readings wird ein Event erzeugt und dein DOIF-Modul fängt an zu arbeiten und setzt das Reading wieder um.

Um das Problem zu lösen, musst du einfach überall setreading ... durch set dummy ... ersetzen, den du vorher definieren  und mit set dummy zu vorbelegen musst.

Gruß

Damian

P. S. Es wird demnächst eine neue DOIF-Version geben, da kannst du so etwas ohne irgendwelche Hilfskonstrukte als Einzeiler lösen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Puschel74

Hallo,

sorry Damian aber setreading sollte eben kein Event auslösen.

Grüße
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.

holzwurm83

Da ist wohl irgendwo noch ein Fehler. Sobald ist das angelegte DOIF lösche kann ich das Reading wieder setzten. Finde hier aber den Fehler nicht:
define di_fensterhoch DOIF ([WZ_Fenster_OST_R]) (IF ([WZ_Fenster_OST_R:doppelklick] eq "offen") (set WZ_J_OST auf) ELSE (setreading WZ_Fenster_OST_R doppelklick offen, define doppelklick_zu at +00:00:02 setreading WZ_Fenster_OST_R doppelklick zu))
- Fhem auf einem MacMini Server
- CUL; HMLAN; CUNO2 für FS20; HM-Wired RS485 LAN Gateway
- HMW_Sen_SC_12_FM; HMW_LC_Sw2_DR; HMW_LC_Bl1_DR; HMW_IO_12_Sw7; HMW_IO_12_Sw14_DR; HMW_IO_12_FM; HBW_1W_T10
- HM-TC-IT-WM-W-EU; HM-CC-RT-DN