FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: holzwurm83 am 01 Mai 2018, 16:17:05

Titel: Uhrzeit wird nicht eingetragen
Beitrag von: holzwurm83 am 01 Mai 2018, 16:17:05
Hallo zusammen,

irgendwie stehe ich gerade auf dem schlauch! Ich versuche in einem DoIF eine Reading wie folgt zu setzen:
setreading Bewaessern Uhrzeit [([{qx(date +%R)}] + 120)]

Nur setzt er mir immer den Code in das Reading und nicht die aktuelle Zeit + 2 Minuten.


[([{qx(date +%R)}] + 120)]
Titel: Antw:Uhrzeit wird nicht eingetragen
Beitrag von: Ellert am 01 Mai 2018, 19:04:09
https://fhem.de/commandref_DE.html#set , hier: "perlExpression"
Titel: Antw:Uhrzeit wird nicht eingetragen
Beitrag von: holzwurm83 am 01 Mai 2018, 19:23:04
Zitat von: Ellert am 01 Mai 2018, 19:04:09
https://fhem.de/commandref_DE.html#set , hier: "perlExpression"

Danke für dein Feedback, aber irgendwie verstehe ich das nicht. Ich möchte in dem Device das Reading Uhrzeit auf die aktuelle Uhrzeit + 120 sec setzen.

Wenn es jetzt 12:20 Uhr ist soll dann "12:22" eingetragen werden.
Titel: Antw:Uhrzeit wird nicht eingetragen
Beitrag von: Otto123 am 01 Mai 2018, 19:34:13
Hi,

lass doch date gleich rechnen
setreading Bewaessern Uhrzeit {(qx(date --date="120 sec now" +%R))}
Erklärung aus dem Link von Ellert:
{(perlExpression)}
perlExpression 3+4
kann man in FHEM Kommandozeile direkt testen {3+4}
Beim set Kommando muss noch ein () drumrum {(3+4)} sonst wird der Code nicht ausgeführt
So habe ich das zumindest verstanden und getestet.

Gruß Otto
Titel: Antw:Uhrzeit wird nicht eingetragen
Beitrag von: holzwurm83 am 01 Mai 2018, 19:39:05
Zitat von: Otto123 am 01 Mai 2018, 19:34:13
setreading Bewaessern Uhrzeit {(qx(date --date="120 sec now" +%R))}

Danke dir, aber im Reading steht dann
{(qx(date --date="120 sec now" +%R))} und nicht z.B. 20:01Uhr.

Titel: Antw:Uhrzeit wird nicht eingetragen
Beitrag von: amenomade am 01 Mai 2018, 19:43:21
Kann es nicht verstehen, wenn Du es eingetragen hast, wie Otto es geschrieben hat . Zeig bitte ein "list Bewaessern".
Titel: Antw:Uhrzeit wird nicht eingetragen
Beitrag von: holzwurm83 am 01 Mai 2018, 19:46:00
Internals:
   CFGFN     
   NAME       Bewaessern
   NR         50097
   STATE      on
   TYPE       dummy
   READINGS:
     2018-05-01 19:44:48   Uhrzeit         {(qx(date --date="120 sec now" +%R))}
     2018-05-01 19:43:14   Wann            Next
     2018-05-01 19:42:38   state           on
Attributes:
   devStateIcon on:sani_sprinkling@green:off off:sani_sprinkling:on .*:sani_sprinkling
   group      Automatik
   readingList Wann Uhrzeit
   room       Bewässerung
   setList    on off Wann:Zeitplan,Next Uhrzeit:Next,3:00,3:30,4:00,4:30,5:00,5:30,6:00,6:30,7:00
   webCmd     Wann:Uhrzeit
Titel: Antw:Uhrzeit wird nicht eingetragen
Beitrag von: Otto123 am 01 Mai 2018, 19:49:23
Keine Ahnung wie Du das machst, aber wenn ich  meinen Code in die FHEM Kommandozeile werfe funktioniert das genau wie gewünscht.

Da Du hier im Subforum DOIF gepostet hast, Du machst es in einem DOIF? Dann macht DOIF irgendetwas anders.

Gruß Otto
Titel: Antw:Uhrzeit wird nicht eingetragen
Beitrag von: holzwurm83 am 01 Mai 2018, 20:28:43
ZitatDa Du hier im Subforum DOIF gepostet hast, Du machst es in einem DOIF? Dann macht DOIF irgendetwas anders.
Ja das ist in einem DoIF eingebaut, allerdings habe ich das nun auch wie du geschrieben hast in der FHEM Kommandozeile ausprobiert und habe dabei die gleiche Problematik.
Titel: Antw:Uhrzeit wird nicht eingetragen
Beitrag von: amenomade am 01 Mai 2018, 20:31:01
ohne die zusätzliche [] und () die du hieroben hattest?

Du kannst erstmal damit probieren:
Zitatsetreading Bewaessern Uhrzeit {(qx(date))}
Titel: Antw:Uhrzeit wird nicht eingetragen
Beitrag von: Otto123 am 01 Mai 2018, 20:31:19
Hi,

und wenn Du nur den Perl Teil in die Kommandozeile wirfst?
{(qx(date --date="120 sec now" +%R))}
Was bekommst Du zurück?

Wie alt ist FHEM? Was sagt version

Gruß Otto
Titel: Antw:Uhrzeit wird nicht eingetragen
Beitrag von: holzwurm83 am 01 Mai 2018, 20:33:15
Zitatwenn Du nur den Perl Teil in die Kommandozeile wirfst?

Das was ich auch will
20:34

Das funktioniert...
Titel: Antw:Uhrzeit wird nicht eingetragen
Beitrag von: Otto123 am 01 Mai 2018, 20:45:45
Dann keine Ahnung, bei mir funktioniert es.
setreading wert Uhrzeit {(qx(date --date="120 sec now" +%R))}
Internals:
   NAME       wert
   NR         49
   STATE      4
   TYPE       dummy
   READINGS:
     2018-04-05 13:04:51   Lily            0
     2018-04-05 13:04:51   Text_wert       15
     2018-05-01 20:44:49   Uhrzeit         20:46

     2017-08-13 21:16:34   Wert0           12
     2018-05-01 19:32:33   state           4
     2018-02-17 15:31:05   total_consumption.255 25
Attributes:
   room       Test


Gruß Otto
Titel: Antw:Uhrzeit wird nicht eingetragen
Beitrag von: holzwurm83 am 01 Mai 2018, 20:52:16


Vielleicht liegt das auch daran.

Zitatfeaturelevel
Aktiviere bzw. deaktiviere bestimmte alte oder neue Funktionen, basierend auf die FHEM Version. Z.Bsp. das $value hash für notify wird nur bis featurelevel 5.6 befüllt, da es unerwünscht ist. Stattdessen sollte man die Value() Funktion verwenden.

bei mir steht das noch auf 5.6. Ich habe das nie umgebaut...
Titel: Antw:Uhrzeit wird nicht eingetragen
Beitrag von: amenomade am 01 Mai 2018, 20:53:43
Bestimmt

ZitatAb featurelevel 5.7 ersetzt das set und setreading Befehl

    [device:name] mit dem Wert des Readings, Internals oder Attributes für device, falls sowohl device, als auch Reading, Internal oder Attribut existiert, und nicht leer ist.
        Man kann einen der Präfixe r:, i: oder a: verwenden, um die Suche einzuschränken, genau wie im devspec.
        Das Suffix :d extrahiert die erste Zahl.
        Das Suffix :i extrahiert die erste Zahl als Ganzzahl.
        Das Suffix :r<n> extrahiert die erste Zahl, und rundet sie auf <n> Dezimalstellen. Falls <n> fehlt, dann wird auf eine Dezimalstelle gerundet.
        Das Suffix :t liefert den Zeitstempel des Readings
        Das Suffix :sec liefert Anzahl der Sekunden seit Änderung des Readings.
    Beispiel:
        set Lamp blink [blinkDummy:number] [r:blinkDummy:duration:d]
    {(perlExpression)} mit dem Ergebnis der perlExpression. $DEV wird dabei mit dem Namen des vom set betroffenen Gerätes ersetzt.

Diese Ersetzungen sind unter dem Namen "set magic" bekannt.
Titel: Antw:Uhrzeit wird nicht eingetragen
Beitrag von: holzwurm83 am 01 Mai 2018, 20:55:44
Danke euch! Dann bin ich jetzt erst mal beschäftigt.  :D
Titel: Antw:Uhrzeit wird nicht eingetragen
Beitrag von: amenomade am 01 Mai 2018, 21:02:49
Wenn Du mal nach 5.8 updaten möchtest, bitte aufpassen:
- csrftoken: https://forum.fhem.de/index.php?topic=67419.0
- allowed and allowfrom: https://fhem.de/commandref_DE.html#allowfrom