Dimmer 40% on-till - wie geht das?

Begonnen von oelidoc, 12 Dezember 2013, 19:40:29

Vorheriges Thema - Nächstes Thema

oelidoc

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

martinp876

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



oelidoc

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

martinp876

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

oelidoc

#4
Hallo Martin,

natürlich hilft das. Danke.

Geht denn vielleicht auch noch eine dritte Option?

c) {sunset} Endzeitpunkt

Gruß

oelidoc

martinp876

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

oelidoc

Hallo  Martin,

das werde ich am WE mal einbauen.

Vielen Dank für deine Unterstützung

oelidoc

Rince

Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

oelidoc

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

martinp876

der punkt fasst 2 strings zusammen. Das Ergebniss von sunset wird dem vorhergehenden String angehägt

oelidoc

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

martinp876

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

oelidoc

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

martinp876

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

Martin-72

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.
FHEM auf RasPI 2B:
Raspbian GNU/Linux; VERSION="8 (jessie)"
Homematic, InterTechno, IKEA Tradfri
CUL868; CUL433; HM-LAN; Tradfri-Gateway