Hauptmenü

neues Modul DOIF

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

Vorheriges Thema - Nächstes Thema

Damian

Zitat von: RoBra81 am 04 Juli 2014, 17:56:14
Hat mich auch eine Menge Gehirnschmalz gekostet  :)

Ich kann ja mal das ganze Szenario posten, damit es verständlicher wird: Ich habe im Flur zwei Lampen, einen Bewegungsmelder und zwei Taster. Wenn der Bewegungsmelder eine Bewegung erkennt (Sensor 0) wird über ein Notify (das habe ich hier nicht gepostet) das Licht in Abhängigkeit von der Dämmerung angemacht und gegebenenfalls vorhandene Timer (at) die das Licht ausschalten würden gelöscht, wenn diese eine Restzeit kleiner 10 bzw. 5 Sekunden haben (beide Lampen haben einen eigenen Ausschalttimer, da ich diese unterschiedlich lange anlassen möchte). Erkennt der Bewegungsmelder keine Bewegung mehr wird mit dem gezeigten notify ein Timer (at) definiert, um die Lichter auszuschalten. Dies passiert aber ebenfalls nur, wenn noch kein Timer definiert ist oder dieser eine Restzeit kleiner 10 bzw. 5 Sekunden hat. Hintergrund ist, dass ich über die Taster  ebenfalls das Licht anschalten und Timer zum abschalten definiere, die für 1 bzw. 30 Minuten laufen (kurzer oder langer Tastendruck).

Der Grund, dass ich hierfür diese ausgefallenen ("lustigen") notifies nutze ist, dass ich Homematic-Devices (CUL) nutze, die kein on-for-timer unterstützen...

on-for-timer funktioniert bei mir auch bei HM-Devices (mit HM-LAN-Adapter). Wird wohl softwareseitig gelöst sein.


Gruß

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

Damian

Zitat von: Bombjack am 04 Juli 2014, 18:02:53
Wenn ich das weglasse gibt es auch mehrfach Schaltbefehle, da die MyTwilight Aktualisierungsintervalle recht kurz sind.

Wenn sich der Zustand von MyTwilight aber nicht ändert, dann ist es egal, weil bei DOIF standardmäßig nur einmal geschaltet wird und erst dann wieder, wenn sich der Zustand ändert.

Gruß

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

RoBra81

Zitat von: Damian am 05 Juli 2014, 09:08:29
on-for-timer funktioniert bei mir auch bei HM-Devices (mit HM-LAN-Adapter). Wird wohl softwareseitig gelöst sein.

Ich habe Wired-Devices (HMW_LC_Sw2_DR) an HM485, da gibt's kein on-for-timer...

Puschel74

Hallo,

sorry OT:

ZitatIch habe Wired-Devices (HMW_LC_Sw2_DR) an HM485, da gibt's kein on-for-timer...
Dann würde ich an deiner Stelle mal eben im Homematic-Bereich Bescheid geben  ;)
Die Jungs dort sind eigentlich recht flott und haben das recht schnell eingebaut - wenn es sich einfach lösen lässt.
Nur weil es das noch nicht gibt heisst es ja nicht das es nicht geht  ;D
BTT:

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

#169
Zitat von: RoBra81 am 05 Juli 2014, 10:53:38
Ich habe Wired-Devices (HMW_LC_Sw2_DR) an HM485, da gibt's kein on-for-timer...

Das wundert mich aber, weil es in CUL_HM.pm nachgebildet wurde.

Gruß

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

Puschel74

Evtl. fehlt ja nur ein update  8)
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.

RoBra81

Die Homematic wired Geräte sind imho nicht in CUL_HM drin sondern haben ein eigenes Modul. Mal angenommen, on-for-timer würde irgendwann gehen, bekäme ich den heraus, ob und wie lange der Timer schon läuft? Das brauche ich ja für mein Szenario...

Puschel74

Hallo,

HM-wired wird durch 10_HM485.pm eingebunden wenn ich den Beitrag richtig gelesen habe.
Melde dich doch einfach mal dort und frag Dirk (das ist glaube ich der Modulautor) ob er on-/off-for-timer in das Modul einbauen könnte.
Thomas hat das gleiche für Somfy gemacht.
Die Modulautoren müssen nur danach gefragt/darauf hingewiesen/darum gebeten werden.

Wie lange der Timer dann schon läuft ist das kleinere Problem da on-/off-for-timer, wenn der Aktor das nicht direkt unterstützt, sowieso in FHEM abgebildet werden muss als normales at das den Aktor nach der Zeit wieder aus-/einschaltet.
Und an die Daten in FHEM sollte man schon dran kommen.

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.

krikan

ZitatMal angenommen, on-for-timer würde irgendwann gehen
on-for-timer geht bereits jetzt, wenn Du den Umweg über readingsProxy gehst http://www.fhemwiki.de/wiki/ReadingsProxy .

Damian

#174
Zitat von: RoBra81 am 05 Juli 2014, 16:34:25
Die Homematic wired Geräte sind imho nicht in CUL_HM drin sondern haben ein eigenes Modul. Mal angenommen, on-for-timer würde irgendwann gehen, bekäme ich den heraus, ob und wie lange der Timer schon läuft? Das brauche ich ja für mein Szenario...

Du hast meine Frage nicht genau beantwortet, wann 51200 kommt und wann 0. Ich gehe mal davon aus, dass bei Bewegung 51200 kommt, dann würde mit:

define OG.hf.LI.Xxx.DI DOIF ([OG.hf.BM.Treppe:sensor] eq "51200") (set OG.hf.LI.Treppe on-for-timer 5)
attr OG.hf.LI.Xxx.DI do always


dein Treppenlicht bei erster Bewegung angehen und bei jeder weiteren Bewegung innerhalb von 5 Sekunden, um weitere 5 Sekunden verlängert und wenn keine Bewegung innerhalb von 5 Sekunden kommt wieder ausgehen.

Das war´s.

Ich werde mir noch etwas für DOIF einfallen lassen, dass man auch solche Fälle ohne on-for-timer mit einer Zeile erledigen kann, sozusagen, als Gegenstück zu wait.

Gruß

Damian


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

Puschel74

Hallo,

ZitatIch werde mir noch etwas für DOIF einfallen lassen, dass man auch solche Fälle ohne on-for-timer mit einer Zeile erledigen kann, so zu sagen, als Gegenstück zu wait.
Steht dir natürlich frei das zu tun  ;)

Ich würde aber eher favorisieren das on-/off-for-timer in die jeweiligen Device-Module mit aufgenommen wird.
Dann haben auch diejenigen etwas davon die weder IF noch DOIF verwenden und du musst Dir nicht noch zusätzlich Gedanken machen.

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: Puschel74 am 05 Juli 2014, 17:32:28
Hallo,
Steht dir natürlich frei das zu tun  ;)

Ich würde aber eher favorisieren das on-/off-for-timer in die jeweiligen Device-Module mit aufgenommen wird.
Dann haben auch diejenigen etwas davon die weder IF noch DOIF verwenden und du musst Dir nicht noch zusätzlich Gedanken machen.

Grüße

ja, on-for-timer würde allerdings je nach Gerätetyp (insb. FS20) ein Kommando an das Gerät schicken und unnötig Traffic produzieren, das würde bei DOIF nicht passieren.

Gruß

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

Puschel74

Hallo,

Zitatja, on-for-timer würde allerdings je nach Gerätetyp (insb. FS20) ein Kommando an das Gerät schicken und unnötig Traffic produzieren, das würde bei DOIF nicht passieren.

Sorry aber das verteh ich nicht ganz - abgesehen davon das FS20 on-/off-for-timer im Gerät direkt unterstützt.

Wenn ich ein FS20-Device mit on-for-timer einschalte läuft im Device die Zeit ab.
FHEM sendet kein off mehr an das Gerät also nur ein! Sendebefehl.

Wenn ein Device on-/off-for-timer nicht direkt unterstützt und es im Devicemodul nicht nachgebaut ist muss ich
a) dem Gerät ein on senden
b) ein at anlegen (lassen) das nach Zeit x dem Gerät ein off sendet.
Wenn im Devicemodul on-/off-for-timer nachgebildet ist muss ich
a) dem Gerät ein on senden
b) das Modul legt mir das at an und sendet danach ein off.

Im Vergleich zu FS20 habe ich dabei aber jedesmal 2 Sendebefehle.

Grüße

Edith: achso ja DOIF:
Wie willst du das dann mit DOIF lösen ohne dem Gerät ein off zu senden?
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

#178
Zitat von: Puschel74 am 05 Juli 2014, 17:40:58

Wenn ich ein FS20-Device mit on-for-timer einschalte läuft im Device die Zeit ab.
FHEM sendet kein off mehr an das Gerät also nur ein! Sendebefehl.


Das sehe ich anders, bei jeder Bewegung wird set... on_for-timer an das FS20-Gerät gesendet und wenn du dich länger vor deinem Bewegungsmelder bewegst, dann wird irgendwann die 1%-Regel zuschlagen und dann wird´s dunkel ;)

Gruß

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

Puschel74

Hallo,

ah, das meinst du.

Ja das stimmt.
Daher habe ich das in meinen Codes bereits abgefangen  ;)

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.