HM-TC lässt sich aus bestimmter sub/notify nicht setzen,Prbl. wenn Kommast.x.0

Begonnen von franky08, 17 März 2016, 16:36:17

Vorheriges Thema - Nächstes Thema

franky08

Hallo, ich hab da folgendes Phänomen. Aus folgender sub lässt sich ein HM-TC-IT-WM-W-EU nicht mit einer neuen desired-temp setzen. Habe die sub mal hardcodiert und auseinander gepflückt damit es verständlicher wird:

sub

sub Sonne_HZ()
{
my $tdiffso = Value("Sonne_dummy");
my $lumso = Value("Lumi_du");
my $tdurchschn = ReadingsVal("THWohnung_durchschn","temperature",20);
my $temps = 25.0;
my $tempks = 24.0;

if( $tdiffso eq "on" && $lumso eq "on" && $durchschn <= 22.5 ) {
fhem "set ... ";
fhem "set ... ";
fhem "set Wandthermostat_Climate desired-temp $temps";
fhem "set HZ_Sonne_du on";
} else {
fhem "set ... ";
fhem "set ... ";
fhem "set Wandthermostat_Climate desired-temp $tempks";
fhem "set HZ_Sonne_du off";

}
}


Alle fhem set Befehle werden ausgeführt nur fhem "set Wandthermostat_Climate desired-temp $temps" setzt keine neue desired-temp im TC. Im State sieht man kurz das der set <device> desired <temp> Befehl übernommen werden soll wird er aber nicht. Mit anderen sub´s die keine if/else Bedingung beinhalten funktioniert es komischerweise  :o

So was, in der Art funktioniert vollkommen problemlos:
sub
HZ_nacht
{
my $tempz = ReadingsVal("HZ_zurueck_du","state",20);

fhem "set Wandthermostat_Climate desired-temp $tempz";

}



Wo liegt mein Denkfehler bzw. warum hört der TC nicht.

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

CoolTux

Wie sehen denn die anderen set Befehle aus, geht es darin auch um den Wandthermostaten?
Hast Du ein Logfile für den Wandthermostaten, dann kannst Du sehen welche Befehle angenommen und bearbeitet werden.

Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

franky08

#2
Hallo CoolTux, die anderen set Befehle setzen 2 RT´s, ohne Probleme. Im log steht auch nichts auffälliges:

2016.03.17 15:58:59 3: CUL_HM set WZ_links_Heizung_Clima desired-temp 24.5
2016.03.17 15:58:59 3: CUL_HM set WZ_rechts_Heizung_Clima desired-temp 24.5
2016.03.17 15:58:59 3: CUL_HM set Wandthermostat_Climate desired-temp 25


P.S. Siehe oben, hab den Post noch ergänzt, wenn keine if/else Bedingung vorhanden ist funktioniert es, seltsam.

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

CoolTux

Zitat von: franky08 am 17 März 2016, 16:53:36
Hallo CoolTux, die anderen set Befehle setzen 2 RT´s, ohne Probleme. Im log steht auch nichts auffälliges:

2016.03.17 15:58:59 3: CUL_HM set WZ_links_Heizung_Clima desired-temp 24.5
2016.03.17 15:58:59 3: CUL_HM set WZ_rechts_Heizung_Clima desired-temp 24.5
2016.03.17 15:58:59 3: CUL_HM set Wandthermostat_Climate desired-temp 25


VG
Frank

Scheint also wohl schon mal an zu kommen. Die Frage ist was macht der Wandthermostat damit. Hast Du den gepeert, wenn ja mit wem? Sendest Du die selben Befehle auch an die gepeerten Geräte?

Wenn ja, mach es nicht. Sende einzig und alleine die neue Temp an den Wandthermostaten, der sendet sie dann weiter an die gepeerten Heizungsthermostate.




Grüße
Leon
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

franky08

#4
Der TC ist "stand alone", nicht gepeert, der liefert nur die Temperatur für die Heizungsanlage NICHT für die RT´s. Muss jetzt leider erst mal in die Firma. Ich werde morgen mal den else Zweig rausnehmen und die Bedingung mit zwei if prüfen, mal sehen was dann passiert. Bis dahin

Mal sehen was das hier bringt:
sub Sonne_HZ()
{
my $tdiffso = Value("Sonne_dummy");
my $lumso = Value("Lumi_du");
my $tdurchschn = ReadingsVal("THWohnung_durchschn","temperature",20);
my $temps = 25.0;
my $tempks = 24.0;

if( $tdiffso eq "on" && $lumso eq "on" && $durchschn <= 22.5 ) {
fhem "set WZ_links_Heizung_Clima desired-temp 23.0";
fhem "set WZ_rechts_Heizung_Clima desired-temp 23.0";
fhem "set Wandthermostat_Climate desired-temp $temps";
fhem "set HZ_Sonne_du on";
}
if( $tdiffso eq "off" || $lumso eq "off" || $durchschn > 22.5 ) {
fhem "set WZ_links_Heizung_Clima desired-temp 24.5";
fhem "set WZ_rechts_Heizung_Clima desired-temp 24.5";
fhem "set Wandthermostat_Climate desired-temp $tempks";
fhem "set HZ_Sonne_du off";

}
}


VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

franky08

#5
Hallo, mit der sub einen Beitrag weiter oben (Prüfung über zwei if) funktioniert es auch nicht. Siehe Screenshot

Funktioniert ! Nur darf die neue desired-temp nicht gleich der alten desired-temp sein.

Grrr, Theoretisch funktioniert es, aber die neue desired-temp wird nicht gesetzt.
2016.03.18 10:40:05 3: CUL_HM set WZ_links_Heizung_Clima desired-temp 23.0
2016.03.18 10:40:06 3: CUL_HM set WZ_rechts_Heizung_Clima desired-temp 23.0
2016.03.18 10:40:06 3: CUL_HM set Wandthermostat_Cimate desired-temp 25


Aus einem notify raus geht es auch nicht, langsam bin ich mit meinem Latein am Ende:

define set_TC notify HZ_Sonne_du {if(Value("HZ_Sonne_du") eq "on")\
{fhem "set Wandthermostat_Climate desired-temp 23.0"}\
if(Value("HZ_Sonne_du") eq "off") \
{fhem "set WandThermostat_Climate desired-temp 25.0"}\
}
attr set_TC DbLogExclude .*
attr set_TC room Unsorted



VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

franky08

#6
So, jetzt wird´s ganz verrückt  :o
Setze ich die Temperatur über ein at:
define Test_TC at *11:30:00 set Wandthermostat_Climate desired-temp 23.0

funktioniert es!
2016.03.18 11:30:00 3: CUL_HM set Wandthermostat_Climate desired-temp 23.0

Auffällig ist das im at die Temperatur mit Kommastelle gesetzt wird 23.0 und aus notify oder sub (also alles was nicht funktioniert) OHNE Kommastelle, zB. hier 25
2016.03.18 10:40:06 3: CUL_HM set Wandthermostat_Climate desired-temp 25

Es sieht so aus als wenn die Kommastelle abgeschnitten wird und der TC damit nichts anfangen kann und somit die neue Temperatur nicht übernimmt. Aus einem at oder THRESHOLD funktioniert es, aus notify oder einer sub heraus leider nicht!

Irgendwelche Ideen???

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

CoolTux


define set_TC notify HZ_Sonne_du {if(Value("HZ_Sonne_du") eq "on")\
{fhem "set Wandthermostat_Climate desired-temp 23"}\
if(Value("HZ_Sonne_du") eq "off") \
{fhem "set WandThermostat_Climate desired-temp 25"}\
}
attr set_TC DbLogExclude .*
attr set_TC room Unsorted



Teste mal so und sage mal was passiert bitte.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

franky08

Kann aber ein bischen dauern, bin zur Gartenarbeit verdonnert worden  ???

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

CoolTux

 ;D

Lass Dir Zeit. Viel Spaß. Das Wetter dafür ist, zu mindest bei uns, ja nicht so dolle.



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

frank

hast du schon mal verbose vom "defekten" notify hochgedreht und in fhem.log geschaut?
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

franky08

#11
So nach ca. 1h Garten umgraben der Test! Ohne Angabe der Nachkommastelle (notify) nimmt der TC die neue desired-temp!!
HZ_Sonne_du {if(Value("HZ_Sonne_du") eq "on")
{fhem "set Wandthermostat_Climate desired-temp 25"}
if(Value("HZ_Sonne_du") eq "off")
{fhem "set Wandthermostat_Climate desired-temp 24"}
}


Unterschied im Log:
2016.03.18 14:24:59 3: CUL_HM set Wandthermostat_Climate desired-temp 24 Eingabe ohne Kommastelle, geht
2016.03.18 11:36:41 3: CUL_HM set Wandthermostat_Climate desired-temp 24.0mit Komma geht nicht

Das funktioniert jetzt, trotzdem seltsam mit einem "set x.5" hab ich es noch nicht getestet, werde ich aber noch  ;)

Wie ich es mir schon dachte nur "set x.0" nimmt er nicht aber "set x.5" geht problemlos. Seltsam ist aber das bei einem at "set x.0" und "set x.5" funktioniert aus einem notify oder aus einer sub heraus aber "set x.0" nicht aber "set x.5" ja.

So, wieder etwas geklärt,
schönes WE
VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

CoolTux

Vielleicht liest Martin hier noch und hat eine Antwort auf das kosmetische Problem    ;D



Grüße und schönes WE
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

franky08

#13
Nur wenn der tc dafür verantwortlich wäre, dürfte es aus einem at heraus ja zu dem gleichen verhalten kommen und der tc nicht neu gesetzt werden, dass geht aber. Oder behandelt fhem.pl notify anders als ein at??

Vg
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1

franky08

So,da mir das keine Ruhe lässt, könnte jemand das Verhalten des TC´s mal nachstellen? Einfach ein notify anlegen:

define <name> notify <dev> set <TC Climate> 23.0

und dieses notify triggern, wichtig ist die neue desired-temp mit der Nachkommastelle x.0 anzugeben (hier 23.0).

Wird die neue desired-temp dann bei Euch übernommen?

VG
Frank
Debian Bookworm auf HUNSN / Debian Bullseye auf 2.ter HUNSN F2F an 2x RaspiB
mit FHEM aktuell
22Zoll ViewSonic als Infodislay (WVC)
3xHMLAN mit vccu, raspmatic_rpi3, HMIP-HCU1