Soll-Temperatur ändern in Raum mit mehreren Thermostaten

Begonnen von Bond246, 26 April 2017, 23:42:53

Vorheriges Thema - Nächstes Thema

Bond246

Hallo zusammen,

ich habe mein Wohnzimmer um ein zweites MAX Thermostat ergänzt und hielt es für sinnvoll, diese beiden zusammen zu betreiben. Soweit ich das verstanden habe, definiert man dafür einfach für beide eine gemeinsame groupID, weswegen ich beiden die "1" gegeben habe. Im Reading wird das auch korrekt so angezeigt.

Es scheint mir aber so, dass die beiden nicht gemeinsam schalten. Zumindest nicht immer.
Ich habe noch ein dummy, mit dem ich manuell bis zum nächsten Plan-Event die Soll-Temperatur anpassen kann. Das Script kommt aus dem Wiki und funktioniert einwandfrei für das Bad-Thermostat, welches einzeln läuft (groupid 0).

define Bad_Thermo_Manuell dummy
attr Bad_Thermo_Manuell icon max_heizungsthermostat
attr Bad_Thermo_Manuell room Heizung
attr Bad_Thermo_Manuell setList state:eco,auto,14.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0
attr Bad_Thermo_Manuell webCmd state
define Bad_Thermo_Manuell.ntfy notify Bad_Thermo_Manuell.* {\
        my $valtemp = "$EVENT";;\
        my $device = "Bad_Thermo";;\
        my $cmd = 'set '.$device.' desiredTemperature auto '.$valtemp;;\
        fhem($cmd);;\
}


Bei für die beiden Thermostate im Wohnzimmer funzt das ganze leider nicht mehr, sobald ich sie auf grouid 1 setze

define Wohnzimmer_Thermo_Manuell dummy
attr Wohnzimmer_Thermo_Manuell icon max_heizungsthermostat
attr Wohnzimmer_Thermo_Manuell room Heizung
attr Wohnzimmer_Thermo_Manuell setList state:eco,auto,14.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0
attr Wohnzimmer_Thermo_Manuell webCmd state
define Wohnzimmer_Thermo_Manuell.ntfy notify Wohnzimmer_Thermo_Manuell.* {\
my $valtemp = "$EVENT";;\
my $device1 = "Wohnzimmer_Thermo1";;\
my $device2 = "Wohnzimmer_Thermo2";;\
my $cmd1 = 'set '.$device1.' desiredTemperature auto '.$valtemp;;\
my $cmd2 = 'set '.$device2.' desiredTemperature auto '.$valtemp;;\
fhem($cmd1);;\
fhem($cmd2);;\
}


Hier noch die config, die ich für die beiden Wohnzimmer-Thermostate verwende

define Wohnzimmer_Thermo1 MAX HeatingThermostat xxxxxx
attr Wohnzimmer_Thermo1 userattr scnProcessByDesiChange:0,1 scnShutterList scnModeHandling:NOCHANGE,AUTO,MANUAL
attr Wohnzimmer_Thermo1 IODev MAXcube
attr Wohnzimmer_Thermo1 icon max_heizungsthermostat
attr Wohnzimmer_Thermo1 room Heizung
attr Wohnzimmer_Thermo1 scanTemp 1
attr Wohnzimmer_Thermo1 scnProcessByDesiChange 0
attr Wohnzimmer_Thermo1 verbose 2


Im Log zeigt außerdem folgende Meldungen.
Allerdings funktionieren die gleichen Funktionen ja beim Bad-Thermostat, weswegen sie nicht grundsätzlich falsch sein können.

2017.04.26 22:48:44 1: PERL WARNING: Argument "auto" isn't numeric in multiplication (*) at ./FHEM/10_MAX.pm line 321.
2017.04.26 22:48:44 3: eval: my $EVTPART0='auto';my $TYPE='dummy';my $SELF='Wohnzimmer_Thermo_Manuell.ntfy';my $NAME='Wohnzimmer_Thermo_Manuell';my $EVENT='auto';{
my $valtemp = "$EVENT";
my $device1 = "Wohnzimmer_Thermo1";
my $device2 = "Wohnzimmer_Thermo2";
my $cmd1 = 'set '.$device1.' desiredTemperature auto '.$valtemp;
my $cmd2 = 'set '.$device2.' desiredTemperature auto '.$valtemp;
fhem($cmd1);
fhem($cmd2);
}
2017.04.26 22:58:28 3: set Wohnzimmer_Thermo1 desiredTemperature auto state 21.0 : Too many parameters: desiredTemperature auto [<temperature>]
2017.04.26 22:58:28 3: set Wohnzimmer_Thermo2 desiredTemperature auto state 21.0 : Too many parameters: desiredTemperature auto [<temperature>]
2017.04.26 22:58:28 3: Wohnzimmer_Thermo_Manuell.ntfy return value: Too many parameters: desiredTemperature auto [<temperature>]


Wenn ich den Status mit einem Temperatur-Wert setze, dann wird er nach einer Weile für das Wohnzimmer_Thermo1 gesetzt, das zweite bleibt einfach in seinem alten Status. Wenn ich "auto" setze, passiert gar nichts.
Sowohl ein Temperaturwert, als auch "auto" werden dagegen bei dem einzelnen Bad-Thermostat sofort umgesetzt entweder auf den neuen Wert oder zurück zum regulären Programm.

Funktioniert die vorübergehende Soll-Temperatur nicht mit gepairten Geräten?
Muss ich die beiden Terhmostate noch irgendwie anders untereinander bekannt machen?
Oder funktioniert der Scanner nicht?

Vielen Dank,
Bond

yrwyddfa

Ich habe von Perl leider überhaupt keine Ahnung, allerdings meckert er im Log, dass Du für desiredTemperature zu viele Werte übergibst: auto und die Temperatur

Hast Du schon mal versucht, das auto einfach weg zu lassen? Also etwa so:



define Wohnzimmer_Thermo_Manuell dummy
attr Wohnzimmer_Thermo_Manuell icon max_heizungsthermostat
attr Wohnzimmer_Thermo_Manuell room Heizung
attr Wohnzimmer_Thermo_Manuell setList state:eco,auto,14.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0
attr Wohnzimmer_Thermo_Manuell webCmd state
define Wohnzimmer_Thermo_Manuell.ntfy notify Wohnzimmer_Thermo_Manuell.* {\
my $valtemp = "$EVENT";;\
my $device1 = "Wohnzimmer_Thermo1";;\
my $device2 = "Wohnzimmer_Thermo2";;\
my $cmd1 = 'set '.$device1.' desiredTemperature '.$valtemp;;\
my $cmd2 = 'set '.$device2.' desiredTemperature '.$valtemp;;\
fhem($cmd1);;\
fhem($cmd2);;\
}


(ungetestet).
If every day has its number, Monday would be a zero division.

Bond246

Die Idee hinter dem Befehl ist ja, dass man die Soll-Temperatur neu definiert, mit dem nächsten Wochenplan Event aber wieder regulär weiter gearbeitet wird. Deswegen übergibt man hier "auto <temp>".

Kommt genau so quasi aus dem Wiki.
https://wiki.fhem.de/wiki/MAX#N.C3.BCtzliche_kleine_Erweiterungen
Und es funktioniert ja mit dem Bad-Thermostat genauso.

yrwyddfa

Hmmm, ja, hast recht. Tut mir leid, da weiß ich leider auch nicht weiter :(
If every day has its number, Monday would be a zero division.

Bond246

es scheint wohl so, dass es gericht hat, den FHEM Dienst auf dem RasPi mal komplett zu stoppen und neu anlaufen zu lassen. Seit dem funktioniert auch die manuelle Schaltung wieder.

yrwyddfa

Super, ich drück die Daumen dass das gereicht hat!

Wenn es rund läuft, kannst Du in deinem ersten Beitrag in der Überschrift ja noch ein [Gelöst] vorn dranpacken, das macht es für nachfolgende Problemlösungsucher etwas leichter :)
If every day has its number, Monday would be a zero division.