hi @all
ich wollte folgendes realisieren :
Über eine Abfrage der Photovoltaikanlage ( solarlog_dailyyield ) wollte ich bei einem Wert über 1.5 die Jalousien in der Küche auf 30 % absenken.
Dafür habe ich schon einen EventMap definiert, Sonne entspricht nun 30% - somit ist das ganze über Button händisch also schonmal machbar :-)
Um das ganze zu automatisieren habe ich einen Dummy angelegt um die Automatik ein und auszuschalten. ( RolloAutoSchattenEinAus )
Rollo in der Küche rechts
define RolloKueRechts CUL_HM 2FF097
attr RolloKueRechts IODev CUL_HM
attr RolloKueRechts autoReadReg 4_reqStatus
attr RolloKueRechts devStateIcon 0:fts_shutter_10 10:fts_shutter_20 20:fts_shutter_30 30:fts_shutter_40 40:fts_shutter_50 50:fts_shutter_60 70:fts_shutter_80 80:fts_shutter_90 100:fts_shutter_100
attr RolloKueRechts eventMap on:Zu off:Auf 30:Sonne
attr RolloKueRechts expert 2_full
attr RolloKueRechts firmware 2.3
attr RolloKueRechts model HM-LC-Bl1PBU-FM
attr RolloKueRechts param levelInverse
attr RolloKueRechts peerIDs 00000000,
attr RolloKueRechts room Rolladen
attr RolloKueRechts serialNr LEQ1021335
attr RolloKueRechts subType blindActuator
attr RolloKueRechts webCmd Zu:pct:Auf:stop:Sonne
Dummy zum ein -ausschalten der Beschattung
define RolloAutoSchattenEinAus dummy
attr RolloAutoSchattenEinAus devStateIcon on:fts_shutter_automatic@green off:general_aus_fuer_zeit@red
attr RolloAutoSchattenEinAus eventMap on:on off:off
attr RolloAutoSchattenEinAus group RolloTimer
attr RolloAutoSchattenEinAus room Rolladen
attr RolloAutoSchattenEinAus webCmd :
Wie bekomme ich das nun zusammen ?
define RolladenBeschattung DOIF (([solarlog_dailyyield]<1.5) and [RolloAutoSchattenEinAus]=on) (set RolloKueRechts Sonne)\
Das alleine scheint nicht zu reichen :-(
Hallo,
probiere es 'mal mit
[RolloAutoSchattenEinAus] eq "on"
Andreas
schonmal Danke für Deine Hilfe !
Ok - scheint nen Schritt weiter zu gehen :-)
nun kommt :
RolladenBeschattung DOIF: expected DOELSEIF or DOELSE:
denke er erwartet nun ein DOELSE ?
Hmmm, er soll nix machen :-)
Eine Klammer zu viel, "über 1.5" > 1.5 und do always
define RolladenBeschattung DOIF ([solarlog_dailyyield]>1.5 and [RolloAutoSchattenEinAus] eq "on") (set RolloKueRechts Sonne)
attr RolladenBeschattung do always
Gruss
flurin
Danke dir , das mit der Klammer hatte ich gefunden und den falschen > auch :-)
Leider will er immer noch ein DOELSE --- ich sehe nun den Wald vor lauter Bäumen nicht *grrrr
Zitat von: Aladin222 am 13 Mai 2015, 10:24:04
Danke dir , das mit der Klammer hatte ich gefunden und den falschen > auch :-)
Leider will er immer noch ein DOELSE --- ich sehe nun den Wald vor lauter Bäumen nicht *grrrr
Okey
Was zeigt (im FHEM Eingabefeld eintippen):
list RolladenBeschattung
yeahhh es tut sich was :-)
hab nun folgendes gemacht:
define RolladenBeschattung DOIF ([solarlog_dailyyield] > 2 and [RolloAutoSchattenEinAus] eq "on") (set RolloKueRechts Sonne) DOELSE (set RolloKueRechts up)
attr RolladenBeschattung do always
Ein list ergibt nun:
Internals:
CFGFN /opt/fhem/FHEM/24_Rolladen.cfg
DEF ([solarlog_dailyyield] > 2 and [RolloAutoSchattenEinAus] eq "on") (set RolloKueRechts Sonne) DOELSE (set RolloKueRechts up)
NAME RolladenBeschattung
NR 487
NTFY_ORDER 50-RolladenBeschattung
STATE cmd_1
TYPE DOIF
Readings:
2015-05-13 10:31:58 cmd_event solarlog_dailyyield
2015-05-13 10:31:58 cmd_nr 1
2015-05-13 10:31:58 e_solarlog_dailyyield_STATE 3.19
2015-05-13 10:31:58 state cmd_1
Condition:
0 InternalDoIf('solarlog_dailyyield','STATE','') > 2 and InternalDoIf('RolloAutoSchattenEinAus','STATE','') eq "on"
Devices:
0 solarlog_dailyyield RolloAutoSchattenEinAus
all solarlog_dailyyield RolloAutoSchattenEinAus
Do:
0 set RolloKueRechts Sonne
1 set RolloKueRechts up
Helper:
last_timer 0
sleeptimer -1
Internals:
0 solarlog_dailyyield:STATE RolloAutoSchattenEinAus:STATE
all solarlog_dailyyield:STATE RolloAutoSchattenEinAus:STATE
Itimer:
Readings:
State:
Trigger:
Attributes:
do always
Es müsste auch ohne DOELSE gehen.
Führe ein "shutdown restart" aus und versuche nochmals ohne DOELSE.
ja teste ich auch noch mal aus !
Aber wenn ich es nun gerafft habe könnte ich ja mit wait ZEIT einen Zeitraum definieren , oder ?
Dann würde Fhem ja ,wenn die Sonne weg ist die Beschattung aufheben und DoIf ausführen und die Rollos wieder hoch fahren , oder ?
Danke für deine Hilfe !!!
Zitat von: Aladin222 am 13 Mai 2015, 10:56:13
ja teste ich auch noch mal aus !
Aber wenn ich es nun gerafft habe könnte ich ja mit wait ZEIT einen Zeitraum definieren , oder ?
Dann würde Fhem ja ,wenn die Sonne weg ist die Beschattung aufheben und DoIf ausführen und die Rollos wieder hoch fahren , oder ?
Danke für deine Hilfe !!!
Siehe Commandref DOIF, da findest du Beispiele mit sunset und Zeitintervallen.
ja bin da gerade :-)
Danke für deinen ruck in die richtige Richtung :D :D :D