FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: jhohn am 17 Januar 2013, 20:00:30

Titel: Logmeldung bei set controlMode auto
Beitrag von: jhohn am 17 Januar 2013, 20:00:30
Was bedeutet das?

2013.01.17 19:57:05 3: set eg_ez_thermostat controlMode auto : please complete settings for displayMode decalcDay displayTempUnit displayTemp
Titel: Aw: Logmeldung bei set controlMode auto
Beitrag von: martinp876 am 18 Januar 2013, 09:00:20
Userseitig heist es, dass der Wert erst in das device geschrieben wird, wenn alle Werte in der Liste angegeben wurden.

Technischer Hintergrund ist, dass hier ein Bitfeld im TC geschrieben wird und FHEM erst alle bits kennen muss, bevor geschrieben werden kann.

Alternative ist das setzen der Werte ueber register. Man kann ueber getConfig den Stand auslesen und dann die Werte veraendern (regSet....)

Titel: Aw: Logmeldung bei set controlMode auto
Beitrag von: jhohn am 18 Januar 2013, 09:13:46
Danke, dann werde ich mal die anderen Werte suchen und setzen.

$Frau oder $Kind spielen immer rum, drücken auf den Menü Knopf und das Thermostat steht dann auf "cent" und das Tagesprogramm funktioniert nicht mehr.
Ich muss das Ganze glaube ich mal auf Heating_Control umstellen.
Titel: Aw: Logmeldung bei set controlMode auto
Beitrag von: martinp876 am 18 Januar 2013, 09:38:35
Die Tasten kannst du auch sperren ;-)
Aber dann ist die Frau evtl enttaeuscht?
Titel: Aw: Logmeldung bei set controlMode auto
Beitrag von: wkarl am 18 Januar 2013, 19:24:38
Hallo Martin,

da möchte ich gleich mal nachhaken. Das habe ich auch so interpretiert und das hat auch mal bei mir funktioniert. Alle Werte per Hand gesetzt und dann wurde es auch gemacht. Nun wollte ich mir die Sache vereinfachen und folgende Unterroutine in mein 99_MyUtils.pm gepackt.
######## SetTCsDef ##################################################
# What  :
# Call  : { SetTCsDef('device name') }
# Source:
# Prereq:
#
sub
SetTCsDef($) {
    my $tc2set = $_[0];
    { fhem ("set $tc2set controlMode manual") };
    { fhem ("set $tc2set displayMode temp-only") };
    { fhem ("set $tc2set displayTemp actual") };
    { fhem ("set $tc2set displayTempUnit celsius") };
    { fhem ("set $tc2set decalcDay Sat") };
}

Aber das tut nicht. Auch ein manuelles Setzen mag nicht mehr.

Irgendeine Idee was da passiert?

Danke und ciao
walter
Titel: Aw: Logmeldung bei set controlMode auto
Beitrag von: Wuppi68 am 19 Januar 2013, 00:47:47
Zitat von: wkarl schrieb am Fr, 18 Januar 2013 19:24Hallo Martin,

da möchte ich gleich mal nachhaken. Das habe ich auch so interpretiert und das hat auch mal bei mir funktioniert. Alle Werte per Hand gesetzt und dann wurde es auch gemacht. Nun wollte ich mir die Sache vereinfachen und folgende Unterroutine in mein 99_MyUtils.pm gepackt.
######## SetTCsDef ##################################################
# What  :
# Call  : { SetTCsDef('device name') }
# Source:
# Prereq:
#
sub
SetTCsDef($) {
    my $tc2set = $_[0];
    { fhem ("set $tc2set controlMode manual") };
    { fhem ("set $tc2set displayMode temp-only") };
    { fhem ("set $tc2set displayTemp actual") };
    { fhem ("set $tc2set displayTempUnit celsius") };
    { fhem ("set $tc2set decalcDay Sat") };
}


hi,
schmeiss die set Befehle mal in die Befehlszeile rein, ich meine soeben bemerkt zu haben, dass mindestens actual ein LEERZEICHEN dahinter verlangt ...

könnte ein heisser Tip sein

Gruß

der Ralf
Titel: Aw: Logmeldung bei set controlMode auto
Beitrag von: jhohn am 20 Januar 2013, 15:13:04
Ja die Tasten kann man sperren, dann lässt sich aber auch die Temperatur nicht mehr lokal einstellen.

folgendes funktioniert bei mir:
######## setTCsDef  ####################################################
# What  : Default der Thermostate einstellen
# Call  : { setTCsDef($thermostat) }
#
sub setTCsDef($) {
        my $tc2set = shift(@_);
        { fhem ("set " .$tc2set. " controlMode manual") };
        { fhem ("set " .$tc2set. " displayMode temp-only") };
        { fhem ("set " .$tc2set. " displayTemp actual") };
        { fhem ("set " .$tc2set. " displayTempUnit celsius") };
        { fhem ("set " .$tc2set. " decalcDay Sat") };
}

Titel: Aw: Logmeldung bei set controlMode auto
Beitrag von: martinp876 am 20 Januar 2013, 16:46:57
Man muss sich entscheiden ob der User lokal schalten darf oder nicht. Wenn er schalten darf und man etwas ueberwachen will muss mann diese ueberwachung von hand bauen - also beispielsweise regelmaessig die Werte auslesen und korrigieren, wie man es will.

Alternativ kann man auch eine notify auf bestimmte veraenderungen bauen und dies dann rueckgaengig manchen. Also wenn der Mode auf Central gestellt wird ein notify und ein set auf Auto. Das ist - denke ich - die Richtung in die du willst. Da sind deiner Phantasie keine Grenzen gesetzt.

Gruss
Martin
Titel: Aw: Logmeldung bei set controlMode auto
Beitrag von: jhohn am 20 Januar 2013, 17:46:21
Ich habs ja auch so wie oben eingebaut, funktioniert gut.