DOIF neue Features (Sleep-Alternative)

Begonnen von Damian, 12 Juli 2015, 21:17:52

Vorheriges Thema - Nächstes Thema

dancatt

Zitat von: Damian am 18 Oktober 2015, 21:03:03
Bei do always brauchst du noch ein DOELSE am Ende.
Danke. Das wars.

Gruß Daniel
Cubietruck: FHEM-Server 6.0

Homematic: HM-USB-CFG2, HM-CFG-LAN, HM-LC-SW1-FM, HM-LC-Sw1-Pl-DN-R1, HM-CC-RT-DN, HM-TC-IT-WM-W-EU, HM-SEC-SC-2, HM-SEC-SD, HM-PB-6-WM55

Virsacer

Hey Damian,

könntest du auch mal die  englische Commandref ergänzen?

Irgendwie doof wenn man auf "Device specific help" klickt und dann nur dasteht, dass in der deutschen Version Beispiele sind...

Danke :)

Damian

#302
Zitat von: Virsacer am 20 Oktober 2015, 15:38:19
Hey Damian,

könntest du auch mal die  englische Commandref ergänzen?

Irgendwie doof wenn man auf "Device specific help" klickt und dann nur dasteht, dass in der deutschen Version Beispiele sind...

Danke :)

Wenn ich mal dazu komme ... Ich habe schon vor längerer Zeit aufgegeben, bei den ständigen Erweiterungen des Moduls, beide Version zu pflegen. Immerhin sind alle Code-Beispiele in englisch.

Gruß

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

Ellert

Zitat von: Virsacer am 20 Oktober 2015, 15:38:19
Hey Damian,

könntest du auch mal die  englische Commandref ergänzen?

Irgendwie doof wenn man auf "Device specific help" klickt und dann nur dasteht, dass in der deutschen Version Beispiele sind...

Danke :)

Ja, die englische Version ist nicht sehr ergiebig, aber es würde auch schon sehr helfen, wenn die deutsche Version in der Gerätehilfe erscheinen würde.

Ellert

Zitat von: Ellert am 20 Oktober 2015, 17:03:13
Ja, die englische Version ist nicht sehr ergiebig, aber es würde auch schon sehr helfen, wenn die deutsche Version in der Gerätehilfe erscheinen würde.
Ok, ich habe gerade gelernt, dass es ein globales Attribut language gibt, damit kann die bevorzugte Sprache eingestellt werden.
Es soll auf die englische Hilfe umgeleitet werden, wenn keine deutsche Hilfe verfügbar ist.

Ralli

... wobei es sinnvoll wäre, dieses Attribut auch auszuwerten bei dem Commandref-Link auf der Hauptseite von der lokalen fhem-Installation.
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.83.6.20250705) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

dominik

Hi,
ich baue mir gerade einen Sleep Timer für kodi. Ziel ist folgendes
Sobald ich den Sleep Timer aktiviere, soll nach Ende der aktuellen Sendung der TV ausgeschaltet und kodi gestoppt werden. Ist kein EPG hinterlegt, so soll der TV und kodi nach 1h gestoppt werden.

Aktuell setze ich nur mal die erste Bedingung um
([+([{substr(ReadingsVal("kodi","totaltime",0),0,8)}]-[{substr(ReadingsVal("kodi","time",0),0,8)}]+[0:02:00])]
and [TVSleepMode] eq "on") (set kodi stop;set TVSleepMode off;set TV KEY_POWER)


Problem:
Wenn ich einmal den TVSleepMode aktiviere, wird die Endzeit berechnet. Schalte ich dann einen Sender um, so wird diese nicht neu berechnet obwohl sich [kodi:totaltime] ändert. Wie schaffe ich es, dass bei jeder [kodi:totaltime] Änderung der Perl Ausdruck neu berechnet wird?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Damian

Zitat von: dominik am 27 Oktober 2015, 20:17:39
Hi,
ich baue mir gerade einen Sleep Timer für kodi. Ziel ist folgendes
Sobald ich den Sleep Timer aktiviere, soll nach Ende der aktuellen Sendung der TV ausgeschaltet und kodi gestoppt werden. Ist kein EPG hinterlegt, so soll der TV und kodi nach 1h gestoppt werden.

Aktuell setze ich nur mal die erste Bedingung um
([+([{substr(ReadingsVal("kodi","totaltime",0),0,8)}]-[{substr(ReadingsVal("kodi","time",0),0,8)}]+[0:02:00])]
and [TVSleepMode] eq "on") (set kodi stop;set TVSleepMode off;set TV KEY_POWER)


Problem:
Wenn ich einmal den TVSleepMode aktiviere, wird die Endzeit berechnet. Schalte ich dann einen Sender um, so wird diese nicht neu berechnet obwohl sich [kodi:totaltime] ändert. Wie schaffe ich es, dass bei jeder [kodi:totaltime] Änderung der Perl Ausdruck neu berechnet wird?

Da wirst du einen Umweg über einen Dummy machen müssen, welchen du bei Änderung von kodi:total über substr belegst. Diesen Dummy kannst du dann in DOIF als Intervallgrenze angeben.

Übrigens: Trenner bei DOIF ist Komma und nicht Semikolon.

Gruß

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

dominik

Danke für die rasche Antwort Damian! Werde das mal so umsetzen.

Aus irgendeinen Grund habe ich bei mir überall Semikolon in Verwendung  :-\ Funktionieren tuts, werde es aber korrigieren.

Gruß,
Dominik
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Damian

Zitat von: dominik am 27 Oktober 2015, 20:56:39
Danke für die rasche Antwort Damian! Werde das mal so umsetzen.

Aus irgendeinen Grund habe ich bei mir überall Semikolon in Verwendung  :-\ Funktionieren tuts, werde es aber korrigieren.

Gruß,
Dominik

Im Grunde funktionieren Semikolons auch. Um der Dopplungsproblematik aus dem Wege zu gehen, habe ich seiner Zeit das Komma bei IF und DOIF als Trennzeichen definiert.

Gruß

Damian


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

FlorianZ

Hallo zusammen,

mir ist aufgefallen wenn ich mehrere Zwave Befehle in einen doif mit wait verzögern möchte, keine Werte kleiner 1 berücksichtigt werden.
Bsp.:
(set Lamp1 on)(set Lamp2 on)(set Lamp3 on)
wait 0,0.5,0.5
Hier werden alle 3 Befehle ohne Verzögerung ausgeführt.
Bei wait 0,1,1 gibt es keine Probleme. Laut Log hier 1 Sekunde Verzögerung.
Als Workaround habe ich jetzt sleep im Doif eingesetzt.
Das funktioniert sauber.

vg
Florian

Damian

Zitat von: FlorianZ am 03 November 2015, 19:09:37
Hallo zusammen,

mir ist aufgefallen wenn ich mehrere Zwave Befehle in einen doif mit wait verzögern möchte, keine Werte kleiner 1 berücksichtigt werden.
Bsp.:
(set Lamp1 on)(set Lamp2 on)(set Lamp3 on)
wait 0,0.5,0.5
Hier werden alle 3 Befehle ohne Verzögerung ausgeführt.
Bei wait 0,1,1 gibt es keine Probleme. Laut Log hier 1 Sekunde Verzögerung.
Als Workaround habe ich jetzt sleep im Doif eingesetzt.
Das funktioniert sauber.

vg
Florian

Ist offenbar bisher keinem aufgefallen. Habe es gerade gefixt. Morgen per Update verfügbar.

Gruß

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

FlorianZ

Wow das nenne ich mal schnellen Support.

Vielen Dank

Gruß
Florian

Toto1973

Das es nicht aufgefallen ist, liegt wohl daran, das bis jetzt keiner auf die Idee kam, Befehle unter einer Sekunde aus zu führen ;-)
Weil 1 Sekunde als geringste Verzögerung reicht mir eigentlich...
Raspberry PI2, Rademacher DuoFern Stick, CUL, 2 x SCC,  JeeLink 868 Mhz, JeeLink 433 Mhz, 3x Magic UFO LED WiFi Controller, 4x MAX BC-RT-TRX-CyG, 2x MAX Fensterkontakt, 5x Rademacher Gurtwickler, 6x TX29DTH-it, 2x TX25-it als Helligkeitssensor, 1X HM-ES-PM, 6x Sonoff, 7x G-Homa, PIR-1000

Amenophis86

Liegt es an meiner Programmierung, oder wieso geht der Wait Timer mit Random nicht? Habe das Wait wie folgt definiert:

wait rand(600):rand(600),0:0:0:0:0

Habe es so aus der Commandref bezüglich des random, aber irgendwie wird das random komplett ignoriert.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...