FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: oelidoc am 12 Dezember 2013, 19:40:29

Titel: Dimmer 40% on-till - wie geht das?
Beitrag von: oelidoc am 12 Dezember 2013, 19:40:29
Hallo,

ich habe hier ein HM-LC-Dim1TPBU-FM, den ich zur Zeit mit

define anwesenheit_wohnzimmer at *{sunset(-1000)} set Dimmer_Wohnzimmer on-till *{sunset_abs(+3720,"21:32","23:32")}

bei Abwesenheit ein- und ausschalte. Ausschalten tut er 2 Minuten nach dem die Rolladen runtergefahren sind, dann muss ja keine Anwesenheit mehr simuliert werden  ;)

Jetzt würde ich oben genanntes at gerne mit einer Dimmstufe sagen wir mal von 40% programmieren. Ich finde aber keine Möglichkeit, den Dimmer mit 40% bis zu einem bestimmten Zeitpunkt anzuschalten.

set Dimmer 40 on-till 19:00:00 geht nicht

set Dimmer 40 999 on-till 19:00:00 geht auch nicht - da schaltet er nach der on-time von 999 ab und nicht zur bestimmten Uhrzeit.

Irgendeine Idee, was ich falsch mache?

Gruß

oelidoc
Titel: Antw:Dimmer 40% on-till - wie geht das?
Beitrag von: martinp876 am 12 Dezember 2013, 22:56:02
Hi Oelidoc,

on-till geht nicht - aber ein on-for-timer pendant

set Dimmer pct <value>  [<ontime>] [<ramptime>]

Zeiten sind optional und in Sekunden.
set Dimmer pct 40 3600 10

pct (percent) kann man auch weglassen, was dann
set Dimmer 40 3600 10

ergibt.

Gruss Martin


Titel: Antw:Dimmer 40% on-till - wie geht das?
Beitrag von: oelidoc am 13 Dezember 2013, 11:43:26
Hallo Martin,

vielen Dank für deine Antwort.
Schade: mit der <ontime> bekomme ich ja keine Abschaltung parallel zur *{sunset} Schaltung der Rolladen hin. Da werde ich wohl noch ein notify basteln müssen so á la wenn Rolladen unten dann Dimmer aus. Und das auch nur wenn anwesenheit_wohnzimmer true ist, sonst geht das Licht ja auch aus, wenn ich zu hause bin... ??? anwesenheit_wohnzimmer meint bei mir nämlich eigentlich eine Anwesenheitssimulation zur Einbruchsprophylaxe. Dadurch wird natürlich alles etwas komplizierter, verschachtelter und unübersichtlicher.

Gruß

oelidoc
Titel: Antw:Dimmer 40% on-till - wie geht das?
Beitrag von: martinp876 am 13 Dezember 2013, 13:04:52
Hi oelidoc,

überredet - rechnen sollte immer die Maschine. Also gibt es jetzt

set <licht> pct <level> [<ontime>] [<ramptime>]

mit2 ontime optionen:
a) zahl: Zeit in sec
b) xx:xx:xx Endzeitpunkt (nicht Dauer)

Hoffe das hilft.

Gruss Martin
Titel: Antw:Dimmer 40% on-till - wie geht das?
Beitrag von: oelidoc am 13 Dezember 2013, 13:54:27
Hallo Martin,

natürlich hilft das. Danke.

Geht denn vielleicht auch noch eine dritte Option?

c) {sunset} Endzeitpunkt

Gruß

oelidoc
Titel: Antw:Dimmer 40% on-till - wie geht das?
Beitrag von: martinp876 am 13 Dezember 2013, 14:35:30
Hallo oelidoc,

sollte eigentlich nicht nötig sein.
Was mir nicht gefällt ist, unnötige Anhängigkeiten von CUL_HM zu anderen Modulen zu erzeugen.

sunset und 'pct' sind kompatibel - du kannst also den output von sunset direkt nutzen - das sollte eigentlich reichen.

{fhem "set Licht 40 ".sunset()}

sollte das machen, was du suchst. Ist Flexibel, da du alle Varianten von sunrise nutzen kannst - und CUL_HM bleibt unabhängig

Gruss Martin
Titel: Antw:Dimmer 40% on-till - wie geht das?
Beitrag von: oelidoc am 13 Dezember 2013, 16:37:56
Hallo  Martin,

das werde ich am WE mal einbauen.

Vielen Dank für deine Unterstützung

oelidoc
Titel: Antw:Dimmer 40% on-till - wie geht das?
Beitrag von: Rince am 15 Dezember 2013, 15:36:27
Martin, das ist klasse :)
Titel: Antw:Dimmer 40% on-till - wie geht das?
Beitrag von: oelidoc am 22 Dezember 2013, 13:49:25
Hallo,

ich habe Martins Vorschlag

Zitat{fhem "set Licht 40 ".sunset()}
jetzt mal eingebaut:
define anwesenheit_wohnzimmer at *{sunset(-1000)} {fhem "set Dimmer_Wohnzimmer 50" .sunset(+3720,"21:32","23:32")}

Allerdings bin ich mir mit dem Leerzeichen vor den zweiten Gänsefüßchen sowie dem Punkt vor sunset in seinem Vorschlag unsicher. Das Licht soll 2 Minuten nachdem die Rolladen runtergefahren sind ausgehen. Deswegen die krummen Zeiten  ;). Was bedeutet der Punkt vor sunset?

Da ich jetzt in Urlaub fahre und daher keine Zeit zum testen mehr habe, wäre ich dankbar, wenn jemand mal über meinen Code drüber gucken könnte, ob das so funktionieren wird. Oder mir erklären könnte, wie man ein at mit sunset/sunrise Abhängigkeit auch tagsübe testen kann... :-[

Vielen Dank

oelidoc
Titel: Antw:Dimmer 40% on-till - wie geht das?
Beitrag von: martinp876 am 22 Dezember 2013, 15:42:53
der punkt fasst 2 strings zusammen. Das Ergebniss von sunset wird dem vorhergehenden String angehägt
Titel: Antw:Dimmer 40% on-till - wie geht das?
Beitrag von: oelidoc am 22 Dezember 2013, 17:36:40
Danke.

Wieder was gelernt  (wo steht sowas?)

Habe übrigens gerade auch herausgefunden, dass das Leerzeichen hinter der Prozentangabe nötig ist...

Oh Mann, wie soll man das nur alles beherrschen?
Ohne eure und besonders deine Hilfe, Martin, wäre ich schon längst gescheitert.

Gruß

oelidoc
Titel: Antw:Dimmer 40% on-till - wie geht das?
Beitrag von: martinp876 am 23 Dezember 2013, 11:54:59
Hi oelidoc

das mit dem Punkt ist allgemeines Perl - da gibt es hunderte von Dokumenten.
FHEM nutzt viel regular-expressions. das ist ein weites Feld, es lohnt sich aber definitiv sich ein paar anzusehen. Alle muss man nicht verstehen, definitiv aber die sonderzeichen.

der Punkt beim string-handling ist nicht in einer regexp - daher hat er eine andere Bedeutung - Perl Grundlagen
FHEM erklärt kein Perl oder regexp - da gibt es genug andere.

Viel Spass
Martin
Titel: Antw:Dimmer 40% on-till - wie geht das?
Beitrag von: oelidoc am 23 Dezember 2013, 15:50:08
Hi Martin,
vielen Dank für deine Erläuterungen.
Das wirft für mich wieder die alte Frage auf, ob ich erst Perl lernen muss, ehe ich FHEM benutzen kann/darf. Perl richtig studieren werde ich nicht mehr. Dafür bin ich schon zu alt. Ich habe nie auch nur eine einzige Programmiersprache zu Gesicht bekommen - mein berufliches Tätigkeitsfeld liegt ganz woanders.
Dennoch interessiert mich Hausautomation mit FHEM. Ich finde FHEM so toll, weil es ressourcenschonend auf meiner FB läuft und wahrscheinlich schon jetzt alles kann, was ich jemals brauchen werde. Und natürlich für mich jedes mal eine kleine Herausforderung darstellt. Von daher werde ich weiter mitlesen, von andern abkupfern und den einen oder anderen Codeschnipsel bei mir einbauen. Glaub mir, ich wende mich nur an die Community, wenn ich mit meinem Problem auf meine Weise auch nach Stunden nicht weiterkomme. So gesehen bin auf euch angewiesen, auch wenn ich euch nix zurückgeben kann. :-[

In diesem Sinne beschauliche und nicht zu arbeitsame Feiertage

Gruß

oelidoc
Titel: Antw:Dimmer 40% on-till - wie geht das?
Beitrag von: martinp876 am 23 Dezember 2013, 16:37:47
Hi oelidoc,

fhem (meine Auslegung) soll möglichst einfach zu bedienen sein. Jedoch liegt der Vorteil darin, dass man sehr viel relativ einfach einstellen kann. Die Syntax ist perlisch, das fängt schon bei den regexp an (also regexp gibt es nicht nur in perl!)

regexp würde ich schon empfehlen - die einfachen Dinge wie '.', '*' zumindest.
Ansonsten bietet FHEM auch ein einfachen interface mit den set kommandos. Je komplexer man werden will desto mehr Perl braucht man.

Einfache und kurze Fragen werden hier, denke und hoffe ich, beantwortet. In einiges kommt man mit FHEM automatisch rein - ggf kann man perl-kommandos eben auch googeln. Für tieferes sollte man sich eines der tutorials ansehen, die es überall gibt.

auch dir schöne Feiertage
Martin
Titel: Antw:Dimmer 40% on-till - wie geht das?
Beitrag von: Martin-72 am 02 Dezember 2015, 14:15:00
Zitat von: martinp876 am 13 Dezember 2013, 13:04:52
set <licht> pct <level> [<ontime>] [<ramptime>]

mit 2 ontime optionen:
a) zahl: Zeit in sec
b) xx:xx:xx Endzeitpunkt (nicht Dauer)

Hallo Zusammen,
habe ich das dann so richtig umgesetzt? (in DEF)

+*{sunset_rel(-1800)} set Dimmer_Stehlampe_Wohnzimmer 13 23:30:00 60

mit
<level>         13
<ontime>      an bis 23:30:00
<ramptime>  60

Vielen Dank.

Martin

PS: Ich habe mich bewusst an den alten Thread angehangen. Der Übersichtlichkeit wegen.
Titel: Antw:Dimmer 40% on-till - wie geht das?
Beitrag von: martinp876 am 02 Dezember 2015, 20:30:25
Fast. Ontime ist eine Dauer in sec. Ein till wird nicht in diesem Kommando unterstützt. Auch keine Stunden Angabe. Koennte man verbessern
Titel: Antw:Dimmer 40% on-till - wie geht das?
Beitrag von: Martin-72 am 02 Dezember 2015, 20:52:37
Zitat von: martinp876 am 02 Dezember 2015, 20:30:25
Fast. Ontime ist eine Dauer in sec. Ein till wird nicht in diesem Kommando unterstützt. Auch keine Stunden Angabe. Koennte man verbessern

Hallo Martin,

verstehe ich nicht. Weiter oben schreibst Du doch, dass es die Option Endzeitpunkt (xx.xx.xx) gibt. Diese glaubte ich zu nutzen.

Wie geht es denn sonst?

Martin
Titel: Antw:Dimmer 40% on-till - wie geht das?
Beitrag von: martinp876 am 02 Dezember 2015, 21:17:50
Ok muss ich noch einmal nachsehen. Wenn es im commalndref so steht....aber probiere ob es klappt. Ist doch einfach
Titel: Antw:Dimmer 40% on-till - wie geht das?
Beitrag von: Martin-72 am 02 Dezember 2015, 21:27:52
Zitat von: martinp876 am 02 Dezember 2015, 21:17:50
aber probiere ob es klappt. Ist doch einfach

Ich warte es ab. Allerdings steht in der Liste der "at" in dem besagten Raum nur die nächste Einschalt- nicht die Ausschaltzeit.

Danke.

Martin

PS: Ich habe es aus einem früheren Post dieses Threads, nicht aus der commandref.