HM-LC-Dim1TPBU-FM verständnis

Begonnen von roja, 30 September 2013, 12:55:44

Vorheriges Thema - Nächstes Thema

roja

Hallo Fhem Gemeinde.

ich habe ein unterputzaktor HM-LC-Dim1TPBU-FM

nach denn pairen mit hmlan und mein raspberry pi fhemserver habe ich 4 schalter aber nur einer geht.

ausszug aus meiner fhem.cfg


# Kinderzimmer Dimmer

define KZL1 CUL_HM ##### <---- das ist der erste schalter
attr KZL1 .devInfo 110100
attr KZL1 .stc 20
attr KZL1 expert 2_full
attr KZL1 firmware 2.2
attr KZL1 model HM-LC-Dim1TPBU-FM
attr KZL1 peerIDs 1
attr KZL1 room Kinderzimmer
attr KZL1 serialNr #######
attr KZL1 subType dimmer
attr KZL1 webCmd getConfig
define FileLog_KZL1 FileLog ./log/KZL1-%Y.log KZL1
attr FileLog_KZL1 logtype text
attr FileLog_KZL1 room Logdatei

define KZL1_01 CUL_HM ####### < ----- Das ist der zweite Schalter damit kann ich per händy oder webinterface steuern.
attr KZL1_01 model HM-LC-Dim1TPBU-FM
attr KZL1_01 peerIDs 1
attr KZL1_01 room Kinderzimmer
attr KZL1_01 webCmd toggle:on:off:up:down:statusRequest
define FileLog_KZL1_01 FileLog ./log/KZL1_01-%Y.log KZL1_01
attr FileLog_KZL1_01 logtype text
attr FileLog_KZL1_01 room Logdatei

define KZL1_02 CUL_HM ####### <---- Schalter 3
attr KZL1_02 model HM-LC-Dim1TPBU-FM
attr KZL1_02 peerIDs 1
attr KZL1_02 room Kinderzimmer
attr KZL1_02 webCmd toggle:on:off:up:down:statusRequest
define FileLog_KZL1_02 FileLog ./log/KZL1_02-%Y.log KZL1_02
attr FileLog_KZL1_02 logtype text
attr FileLog_KZL1_02 room Logdatei

define KZL1_03 CUL_HM #######  <---- Schalter 4
attr KZL1_03 model HM-LC-Dim1TPBU-FM
attr KZL1_03 peerIDs 1
attr KZL1_03 room Kinderzimmer
attr KZL1_03 webCmd toggle:on:off:up:down:statusRequest
define FileLog_KZL1_03 FileLog ./log/KZL1_03-%Y.log KZL1_03
attr FileLog_KZL1_03 logtype text
attr FileLog_KZL1_03 room Logdatei



werden alle drei gebraucht oder nur den einen.

klz1 attr KZL1 webCmd getConfig steht das
klz1_01 attr KZL1_01 webCmd toggle:on:off:up:down:statusRequest

da steht alles die befehle.

kann ich das auch alles auf klz1 legen dort wo das get config steht.


das ist mein erstes problem.

mein zweites ist.

ich möchte wenn ich auf den hartwareschalter drücke ab 21 uhr das licht nur noch mit zb 20 prozent leuchtet.
und ab 7 uhr früh wieder mit normal.

wie macht man sowas.

habe da leider noch nix gefunden.

mit freundlichen grüsse ronny

martinp876

Hi Ronny,

der TBU wird durch 3 virtuelle Channels gesteuert. Aber es leuchtet nur eine Lampe. Die verknüpfung, wie das physikalische Licht errechnet wird kannst du in den Registern definieren.

Default ist, dass channel 02 und 03 ignoriert werden.

Es gibt nicht so viele Anwendungen (oder doch?)
deinen nacht-abdunkeln kannst du damit realisieren. Du nutzt channel 2 und schaltest diesen immer um 21uhr an und um 7 uhr aus. Das ein/ausschalten muss die Zentrale machen.

Jetzt musst du verknüpfen, dass channel 1
logicCombination "and"  in channel 2 sollte dies bewirken.
danach geht das licht auf den jeweils niedrigeren Wert von Channel 01 oder 02.

kannst du erst einmal testen, dann einen Periodischen event in FHEM der den Channel 02 auf 20% setzt

Gruss Martin

der-Lolo

Hallo Ronny,
Also, der HM-LC-DIM1TPBU-FM ist ein ein Kanal Dimmer...
In deiner fhem.cfg hast du das eigentliche device und seine 3 virtuellen Kanäle definiert.

Diese Kanäle kannst du auf verschiedene Arten miteinander verknüpfen.
Du könntest z.b.
define Nachtlicht at *21:00:00 set kzl1_02 pct 20
Und ein
define Taglicht at *07:00:00 set kzl1_02 pct 100
Setzen.
Über die Register der Kanäle kannst du dann den ersten Kanal mit dem zweiten UND verknüpfen.
Das Register ist in den readings als R-logicCombination zu sehen...

der Befehl dazu
set kzl1_02 regSet R-logicCombination and

Vielleicht hilft dir der homematic Teil der fhem einsteigerlektüre ein bisschen beim Verständnis...
Vielleicht liest du dir auch mal diesen Thread durch...

Viel Erfolg...

Oh, Martin war schneller...

martinp876


roja

Hallo Fhem Gemeinde

also das kommt in die fhem.cfg

define Nachtlicht at *21:00:00 set kzl1_02 pct 20
define Taglicht at *07:00:00 set kzl1_02 pct 100

und das andere

set kzl1_02 regSet R-logicCombination and

wo mus ich das eingeben im fhem wo mann alles sieht also die einzellnen befehle.

wenn ich das bei klz1_02 eingebe dann bekomm ich immer diese fehlermeldung.


R-logicCombination failed: supported register are fuseDelay intKeyVisib lgActionTypeDim lgCtDlyOff lgCtDlyOn lgCtOff lgCtOn lgCtRampOff lgCtRampOn lgCtValHi lgCtValLo lgDimElsActionType lgDimElsJtDlyOff lgDimElsJtDlyOn lgDimElsJtOff lgDimElsJtOn lgDimElsJtRampOff lgDimElsJtRampOn lgDimElsOffTimeMd lgDimElsOnTimeMd lgDimJtDlyOff lgDimJtDlyOn lgDimJtOff lgDimJtOn lgDimJtRampOff lgDimJtRampOn lgDimMaxLvl lgDimMinLvl lgDimStep lgMultiExec lgOffDly lgOffDlyBlink lgOffDlyNewTime lgOffDlyOldTime lgOffLevel lgOffTime lgOffTimeMode lgOnDly lgOnDlyMode lgOnLevel lgOnLvlPrio lgOnMinLevel lgOnTime lgOnTimeMode lgRampOffTime lgRampOnTime lgRampSstep logicCombination ovrTempLvl pairCentral powerUpAction redLvl redTempLvl shActionTypeDim shCtDlyOff shCtDlyOn shCtOff shCtOn shCtRampOff shCtRampOn shCtValHi shCtValLo shDimElsActionType shDimElsJtDlyOff shDimElsJtDlyOn shDimElsJtOff shDimElsJtOn shDimElsJtRampOff shDimElsJtRampOn shDimElsOffTimeMd shDimElsOnTimeMd shDimJtDlyOff shDimJtDlyOn shDimJtOff shDimJtOn shDimJtRampOff shDimJtRampOn shDimMaxLvl shDimMinLvl shDimStep shOffDly shOffDlyBlink shOffDlyNewTime shOffDlyOldTime shOffLevel shOffTime shOffTimeMode shOnDly shOnDlyMode shOnLevel shOnLvlPrio shOnMinLevel shOnTime shOnTimeMode shRampOffTime shRampOnTime shRampSstep statusInfoMinDly statusInfoRandom transmitTryMax


mh.

der-Lolo

Ich denke logicCombination ist in dem fall der richtige parameter...

martinp876

die register in den Readings haben immer ein "R-" prefix. Das stellt sicher, dass man sie auch als solche erkennt - und dass sie en-block stehen.
bei allen Kommandos ist dieser prefix nicht erlaubt, einfach weglassen.

die möglichen  register bekommt man mit
get .. regList
incl options

roja

Ok hat geklappt.

R-logicCombination set_and

und wie geht das nun wenn ich nun 21 uhr auf den taster drücke dann schaltet der nur auf 20 prozent oder.

habe mal die zeiten vertauscht so das ich mal testen kann aber ist immer 100 prozent.



der-Lolo

Les mal mit reg all aus ob der befehl schon angekommen ist,
Was fuer lampen haengen hinter dem dimmer? Falls es LEDs sind versuch mal 10%


roja

es hängen zwei 11 wat normale glühbirnen dran.



KZL1_02 type:dimmer -
list:peer   register         :value
   1:         fuseDelay        :1 s
   1:         logicCombination :inactive
   1:         ovrTempLvl       :80 C
   1:         powerUpAction    :off
   1:         redLvl           :40 %
   1:         redTempLvl       :75 C
   1:         statusInfoMinDly :2 s
   1:         statusInfoRandom :1 s
   1:         transmitTryMax   :6


das zeigt mir an.

habe da noch ein problem.

wie oder wo verknüpfe ich den das taglicht mit kzl1_01 oder kzl1_02

also das mit der fhem.cfg eintragen das passt.

define Nachtlicht at *21:00:00 set kzl1_02 pct 20
define Taglicht at *07:00:00 set kzl1_02 pct 100

dann in der console eingeben
set kzl1_02 regSet logicCombination and

klappt auch .

nur wie verknüpfe ich den das taglicht bzw das nachtlicht.

bzw mir würde auch reichen das wenn ich channel 1 also lichtschalter betättige das der nur mit 40 prozent startet.

bischen komme ich rein nur das verständniss wie das geht.

also in der console habe ich ausprobiert

get KZL1_01 regList
get KZL1_01 reg all

das geht schon mal

also die parameter von

 logicCombination |   - to -           |          |   |  options:inactive,or,nor,mul,mulinv,minusinv,invMinus,andinv,minus,invMul,orinv,plus,xor,plusinv,nand,invPlus,and


mfg ronny.

martinp876

hi Ronny,

sicher bin ich nicht, dass ich verstanden habe, was du meinst.
aktuell hast du Channel 02 als "limit" genutzt. Heller geht nicht, also 20%  bei Nacht, 100% tag.

wenn du nun chan 01 (lichtschalter ) betätigst wird es nachst nicht heller als 20% - klar.

wenn du es tagsüber machst kannst du einstellen, was du möchtest, getrennt für langen und kurzen tastendruck.
da du gerade vom "internen" taster redest musst du dessen register sichtbar machen. dazu register "intKeysVisib" auf visible setzen. noch einmal die Register lesen (getConfig)

jetzt sollten bei channel 01 register auftauchen mit "self01 und "self02".
hier kannst du  setzen (die namen und beschreibungen sollten einiges erklären) startlevel, maxlevel, dimstept (geschwindigkeit des dimmens)....
schau es einmal durch und probiere

Gruss Martin

der-Lolo

Das reg all das du gerade gepostet hast zeigt kanal 1 dort ist logic combnation inactive, ich glaube das musst du auf or setzen...
Kanal 2 auf and...
Eine oder verknurpfung funktioniert wie der name schon sagt wie ein oder...
Die und verknuepfung bewirkt das das ergebniss nur zusammen mit dem anderem kanal aktiviert wird - es wird der kleinste pct wert gesetzt den die beiden kanaele haben.

Ich bin nicht sicher ob enerdiesparlampen sich vernuenftig dimmen lassen, sende mal einen pct 20 befehl auf kanal1 um zu schauen ob die energiesparlampe mitspielt...

EDIT: Gibt es noch offene CMDs? Steht irgendwo CMDs Pending?
Sollte es so sein drück mal die anlerntaste - dann werden die Register geschrieben...

martinp876

der dimmer ist immer wach - wenn pending-commands stehen wäre dies ein anderes Problem. dann sollte man den stack löschen und neu senden.

wenn channel 01 inactive ist wird er ignoriert.

hier die möglichen Verknüpfungen und die bedeutung - in kurzform.
state ist immer das Ergebniss der vor-verknüpfung.
Ich denke es geht aufsteigend:
(((chn01,0),chn02),chn03)
dann wird channel 1 mit 0 verknüpft, channel 02 mit dem Ergebnis und channel03
wieder mit diesem Resultat.
Kann aber auch anders herum sein...

inactive=>unused
or      =>max(state,chan)
and     =>min(state,chan)
xor     =>0 if both are != 0, else max
nor     =>100-max(state,chan)
nand    =>100-min(state,chan)
orinv   =>max((100-chn),state)
andinv  =>min((100-chn),state)
plus    =>state + chan
minus   =>state - chan
mul     =>state * chan
plusinv =>state + 100 - chan
minusinv=>state - 100 + chan
mulinv  =>state * (100 - chan)
invPlus =>100 - state - chan
invMinus=>100 - state + chan
invMul  =>100 - state * chan

roja

Ok danke für die infos.

werde es morgen mal nochmal eingeben.

kzl1_01 steht Readings        R-logicCombination or

so werde morgen in der fhem.cfg

define Nachtlicht at *21:00:00 set kzl1_02 pct 20
define Taglicht at *07:00:00 set kzl1_02 pct 100

und schalter per console

set KZL1_02 regSet logicCombination and

und schaue mal die tage ob das geht.

tochter schläft schon.




Per

Schon etwas älter hier, aber es passt trotzdem rein, denke ich:

Wenn ich täglich zweimal die Register des Schalters neu setze, ist das ein Flash-Speicher? Geht das auf die Lebensdauer? Gibt es da Langzeiterfahrungen (ist ja jetzt > 5 Jahre her)?