Frage zu einem Modul z.B. Hand und Automatik

Begonnen von moonsorrox, 20 Dezember 2013, 18:51:11

Vorheriges Thema - Nächstes Thema

moonsorrox

das ganze dort hört sich sehr interessant an, nur verstehe ich leider nur einen kleinen Teil dessen was du und Rudi dort schreibt  :-\
ich wüßte jetzt nicht wie ich das mal bei mir in einem Beispiel einsetzen sollte, ich bin doch noch absoluter Anfänger und am dazu lernen.. ;)
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

hexenmeister

Hallo,

die erweiterte Syntax ist mächtig, dürfte jedoch für Anfänger etwas kryptisch sein.

In diesem Fall wäre das dann in entwa so:
set AussenLampe:FILTER={AttrVal("AussenLampe","automaticOff","0") ne "1"} on

Das Problem der Kennzeichnung der Geräte bleibt. Etwas besseres, als user-Attribut fällt mir gerade nicht ein.
Man könnte natürlich für jedes Gerät einen Dummy anlegen, dessen Zustand über die automatische Schaltung entscheidet... Die Dummies könnte man auch bequemmer auf der Oberfläche bedienen. Diese Lösung ist jedoch irgendwie nicht sonderlich elegant.

Set Befehl wäre dann wohl folgendes:
set AussenLampe:FILTER={Value("AussenLampeAutomatik") eq "on"} on


Grüße,

Alexander
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

justme1968

statt einem attribut kann man auch eine perl funktion mit {...} angeben.

diese kann intern alles mögliche machen um rauszufinden welche devices 'stillgelegt' sind. von einer internen tabelle, irgendwelchen zeiten, wochentagen, zusammengeklickten einstellungen oder was auch immer.

das wäre eher die grundlage für ein 'richtiges' keine-automatik-device oder eine echte vorrangregelung die dann so in die sets eingebunden werden kann als der weg es von hand mit einem attribut pro device zu machen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

moonsorrox

OK ich sehe schon es wird kompliziert zumindest für mich..! da ich jetzt ein paar Tage weg bin schaue ich mir das nach den Feiertagen an und probiere dann etwas rum, da es mir doch sehr wichtig ist.

Um das nochmals zu erklären warum ich das haben möchte, ich arbeite im Schichtdienst und ich werde die Tage in meinem Schlafzimmer einen Rollladenaktor einbauen, den möchte ich dann gerade wenn ich Nachtschicht habe nicht so fahren lassen wie es mir Sunset/Sunrise vorgibt, sondern dann ganz gern aus der sogenannten "Automatik" heraus nehmen und eine Abfrage für meinen Schichtrhytmus ist auch nicht sinnvoll da der sich laufend ändert, so wäre es also blöd wenn der Rollladen hoch fährt und ich schlafe... :-\
Deshalb also diese Schaltung und das ganze möchte ich auf bestimmte andere Aktoren die demnächst kommen auch anwenden..

Schöne Feiertage  :D
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

herrmannj

jetzt liegt doch alles auf dem Tisch. Die Wohnung soll sich, abhängig von der Schicht, anders verhalten. Im Prinzip doch alles ganz easy:

Mach Dir einen dummy "schichtdienst" mit "Früh", "Spät", "Nacht". (hint: commandref: dummy, webcmd) Den kannst Du prima über die Oberfläche per dropdown einstellen.

Sas "at" für sunrise erweiterst Du um fhem "fahre Rollladen_Schlafzimmer hoch" if (Value("schichtdienst") ne "Nacht")) und fertig. 

Damit hast Du eine zentrale Stelle die steuert was bei sunrise passiert, die Abhängigkeiten ("Schichtdienst" etc) kannst Du beliebig erweitern. Wenn man jetzt anfängt an den Aktoren rum-zu-basteln ist es meiner Meinung nach nur eine Frage der Zeit bis der Code nicht mehr wartbar ist.

Und nochmal, Du kannst bei dem bestehenden "at" auch ohne Modifikation das Attribut "disable" (rtf commandref!) setzen dann wird es nicht ausgeführt.

hexenmeister

Eine klar formulierte Anforderung spart jede Menge Tipparbeit ;)

Ich sehe das auch so wie Herrmann. Diese Lösung ist einfach umzusetzen, leicht zu verstehen und vor allem bequem zu benutzen.

Weitere Idee: Deine Rolladenaktoren sind doch rückmeldefähig? Du könntest z.B. die Rolladen einen kleinen Spalt hochfahren, als Zeichen für die Steuerung, dass Du es wünscht, Automatik auszusetzen. Praktisch "ausführen nur dann, wenn Level=0".
Dann brauchst Du für diese Einstellung nicht einmal Deinen PC/Handy/Tablet.

Grüße,

Alexander
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

moonsorrox

Das hört sich auch alles ganz gut an... wenn ich wieder daheim bin werde ich mal versuchen das mit meiner  Außenbeleuchtung zu testen denn den Rollladenaktor für das SZ habe ich ja noch nicht im Einsatz, die anderen beiden für die andere Seite folgen dann später...

Aber ich denke ich brauche da dann eure Unterstützung da ich vom Ansatz her nicht weiß wie ich das anfangen soll...!  :-\
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

moonsorrox

Ich habe mich heute mal erst an das Dummy gemacht um zu sehen wie dies auf  der Weboberfläche aussieht, dass habe ich erstellt
define NachtSchicht dummy
attr NachtSchicht setList on:Ja off:Nein
attr NachtSchicht  devStateIcon Ja:Wecker.Immer Nein:Wecker.Wochentags
attr NachtSchicht webCmd Ja:Nein
attr NachtSchicht room 1_Wohnzimmer


da ich noch kein Dummy erstellt habe nun meine Frage, dieses müßte/könnte ich jetzt für jede weitere Schicht machen, also ein weiteres Dummy für Frühschciht und ein weiteres für Spätschicht wenn ich es bräuchte.
Die Icons habe ich erst mal genommen, sodass der rote Wecker erscheint wenn ich Nachtschicht habe und der grüne wenn eben keine NS.

Jetzt muss ich das ganze eben nur noch einbauen in den Rollladen den ich (noch nicht) habe...?

Rollläden Wohnzimmer (WZ) Hier brauche ich es nicht...

Rollladen Schlafzimmer (SZ), hier brauche ich es
Ich schreibe jetzt mal den Code so wie ich es mir denke und mit dem Vorschlag von herrmannj, bitte berichtigen wenn Fehler da ich noch nicht so gut bin.


## Rollladen Auf
define RollladenSZ_Auf at *{sunrise(1800,"07:00","09:00") if (Value("Nachtschicht") ne "Ja"))} set RollladenSZ on
attr RollladenSZ_Auf alias Schlafzimmer: Rollläden öffnen
attr RollladenSZ_Auf group Zeiten
attr RollladenSZ_Auf room 1_Schlafzimmer

## Rollladen Zu
define RollladenSZ_Zu at *{sunset(-900,"16:35","22:00")} set RollladenSZ off
attr RollladenSZ_Zu alias Schlafzimmer: Rollläden schließen
attr RollladenSZ_Zu group Zeiten
attr RollladenSZ_Zu room 1_Schlafzimmer


könnte das so funktionieren..? ich würde es dann mal an der Außenbeleuchtung oder den Rollladen im WZ testen.
Kann man da jetzt noch einbauen das es dann aber später zu einem bestimmten Zeitpunkt öffnen soll ich sage mal z.B 14.45 Uhr
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

hexenmeister

Moin!
Habe nur schnell überflogen. Syntax technisch scheint noch Fehler zu haben, aber von der Idee ist schon korrekt.
Das spätere Öffnen kannst Du analog realisierten.

Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

moonsorrox

Heute nun etwas Zeit gehabt und mal probiert, die ganzen Versuche möchte ich euch ersparen, aber das letzte was ich probiert habe ging auch nicht und zumindest hatte hier fhem nicht gemeckert beim einlesen

Der code sollte eigentlich so aussehen:
define AussenLampeEin at *{sunset("HORIZON=-12",0,"17:30","22:30")} if {(Value("Nachtschicht") ne "Ja"))} set AussenLampe on

aber, zum testen habe ich das mit einer festen Uhrzeit genommen sonst warte ich ja ewig, aber leider tut er das nicht
define AussenLampeEin at *15:02 if {(Value("Nachtschicht") ne "Ja"))} set AussenLampe on


Das Dummy sieht so aus da ich mal das Licht genommen habe:
define NachtSchicht dummy
attr NachtSchicht devStateIcon Ja:Wecker.Immer Nein:Wecker.Wochentags
attr NachtSchicht room 2_Licht Eingang
attr NachtSchicht setList on:Ja off:Nein
attr NachtSchicht webCmd Ja:Nein


könnt ihr mir ein wenig auf die Sprünge helfen ich sehe da absolut nicht durch und mit probieren schaffe ich es wohl nicht :-\
geschweige denn das hinzu bekommen das es später dann doch schalten soll.
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

hexenmeister

Moin!

Zuerst ist dir Groß/Kleinschreibung wichtig. Und dann wieder Syntax ;)
Die IF-Abfrage sollte sein:

{ if(Value("NachtSchicht") ne "Ja") {fhem("set AussenLampe on") }}

also zusammen:

define AussenLampeEin at *{sunset("HORIZON=-12",0,"17:30","22:30")} { if(Value("NachtSchicht") ne "Ja") {fhem("set AussenLampe on") }}

Grüße,

Alexander
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

moonsorrox

OK Danke das habe ich jetzt mit der Beleuchtung probiert und funktioniert tadellos  ;)

werde das jetzt mal für meinen Rollladen im Schlafzimmer umschreiben, ist ja nicht so schwer :D
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

moonsorrox

ZitatDen kannst Du prima über die Oberfläche per dropdown einstellen.

ich wollte nochmal den Hinweis aufgreifen dies evtl. mit einem Dropdown zu machen.
Meine frage dazu, wäre es überhaupt möglich und wenn ja das in dem Dropdown eben nur JA oder NEIN erscheint und dies auch gleichzeitig die Statusanzeige wäre..
Die beiden Symbole mit rotem/grünen Klingelsymbole sollten trotzdem bleiben wenn es möglich ist...

Ich habe mehrere Beiträge im Forum gefunden, aber entweder gab es keine Antworten oder mir ist im Enddefekt nicht klar gewesen ob das nun ging..! :-\
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM