FakeWT Anfängerfragen

Begonnen von dematic, 12 Februar 2016, 20:35:22

Vorheriges Thema - Nächstes Thema

dematic

Hallo,

seit ein paar tagen bastel ich mit meinen max heizungsthermostaten und fhem rum und habe auch die steuerung so weit hinbekommen wie ich es wollte. jetzt wollte ich die thermostate mit hilfe von fakewt und lacrosse sensoren steuern. allerdings scheitere ich schon am wiki. vermutlich überlese  einfach was oder verstehe ich einfach eine kleinigkeit nicht.

konkret geht es um http://www.fhemwiki.de/wiki/MAX#Externer_Temperatursensor_f.C3.BCr_Heizk.C3.B6rperregelung

ich gebe beim entsprechnen den thermostat set HT_Arbeitszimmer associate fakeWallThermostat ein. und nun komme ich auch schon zum ersten problem. nun würde ich das ganze gerne mit set cm fakeWT Heizung 14.5 12.1 testen. nur wo gebe ich das ganze ein? verstehe ich das richtig das ich unter dem menü links unter unsorted gehe und dort auf cm unter CUL-MAX das ich es dort eingeben muss? da habe ich nämlich nur broadcastTime und pairmode zur auswahl und kein fakeWT.

auch wenn ich dann laut wiki define SendExtTemp notify
Arbeitszimmer_Temp:temperature.* {
MaxFakeWallThermostat(HT_Arbeitszimmer, %EVTPART1);
}
eingebe bekomme ich eine fehlermeldung. configfile: Unknown command MaxFakeWallThermostat(HT_Arbeitszimmer,, try help.
Unknown command }, try help


stehe ich auf dem schlauch oder verstehe ich das einfach nicht?

danke schon mal für die hilfe

dematic

hallo,

mit frischen geist habe ich gerade rausgefunden das ich den befehl set cm fakeWT HT_Arbeitszimmer 14.5 12.1 einfach in die Befehlszeile in FHEM eintragen muss und es auch dann geht. ein problem mal wenniger.

Allerdings habe ich immer noch keinen plan wie ich nun die gemessene temperatur des lacrosse sensors automatisch zum thermostat an der heizung bekomme. da ist immer noch die gleiche fehlermeldung.

Wzut

Zitat von: dematic am 12 Februar 2016, 20:35:22
bekomme ich eine fehlermeldung. configfile: Unknown command MaxFakeWallThermostat(HT_Arbeitszimmer,, try help.
Unknown command }, try help


und du hast auch wie im wiki beschrieben deine 99_myUtils erweitert ?
ZitatDazu die Funktion, bitte in 99_MyUtils.pm eintragen:

sub MaxFakeWallThermostat($$)
{
my ($heizung, $aktTemp)    = @_;
my $CULMAX     = $defs{$heizung}{LASTInputDev};
my $desiredTemp   = ReadingsVal($heizung, "desiredTemperature", undef);
my $windowOpenTemp = ReadingsVal($heizung, "windowOpenTemperature", undef);
my $lastTemp    = ReadingsVal($heizung, "LastExtTemperature", 0);
my $lastSet     = ReadingsTimestamp($heizung, "LastExtTemperature", 0);
if($desiredTemp && $windowOpenTemp &&
$desiredTemp != $windowOpenTemp &&
(time()-time_str2num($lastSet) >= 600 || abs($aktTemp-$lastTemp)>=0.2 )) {
  Log 3, "set $CULMAX fakeWT $heizung $desiredTemp $aktTemp";
  readingsSingleUpdate($defs{$heizung}, "LastExtTemperature", $aktTemp, 0);
  fhem("set $CULMAX fakeWT $heizung $desiredTemp $aktTemp");
}
}
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

dematic

ja das habe ich da am ende eingefügt.

muss ich da noch was was anpassen? könnte das daran liegen?

willyk

Zitat von: dematic am 12 Februar 2016, 20:35:22
define SendExtTemp notify
Arbeitszimmer_Temp:temperature.* {
MaxFakeWallThermostat(HT_Arbeitszimmer, %EVTPART1);
}
eingebe bekomme ich eine fehlermeldung.

Im Wiki steht es ein wenig anders:

define SendExtTemp notify \
Arbeitszimmer_Temp:temperature.* {\
MaxFakeWallThermostat(HT_Arbeitszimmer, %EVTPART1); \
}


Alternativ:

define SendExtTemp notify Arbeitszimmer_Temp:temperature.* { MaxFakeWallThermostat(HT_Arbeitszimmer, %EVTPART1);}

(beides ungetestet).

Gehts jetzt?

Gruss
willyk
NUC mit Ubuntu, MAX!Cube, CUNO, 6 MAX WT, 16 MAX HT, 2 MAX Fensterkontakt, MaxScanner

dematic

also zumindest ist bei beiden die fehlermeldung weg. allerdings habe ich jetzt eine andereconfigfile: Unknown command }, try help.

dematic

Ok, inzwischen habe ich gar keine Fehlermeldung mehr. Allerdings habe ich am Thermostat immer einen rferror. Was meinen Recherchen nach dafür spricht, das es immer noch nicht funktioniert.

Wzut

#7
Zitat von: willyk am 13 Februar 2016, 14:09:20
Im Wiki steht es ein wenig anders:
%EVTPART1
[/code]
Alternativ:
%EVTPART1
@willyk : nach http://forum.fhem.de/index.php/topic,44094.0.html streiche %EVTPART1 und verwende $EVTPART1 :)
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

dematic

#8
ah ok daran könnte das liegen. und im wiki ist es auch schon geändert. schnell schnell   :D

werde das später mal testen ob es nun geht.

mahowi

#9
Ich hab jetzt auch schon alles probiert, aber irgendwie macht FakeWT genau nix.  :-\

Ich habe MaxFakeWallThermostat genau wie im Wiki in 99_myUtils angelegt, meine DEF fürs notify sieht auch genauso aus:

tado_temp:tempist:.* { MaxFakeWallThermostat("MAX_00ff6a", $EVTPART1); }

Auch ein trigger SendExtTemp ergibt keine Ausgabe im Log. Das associate hab ich auch schon mehrfach ausgeführt. (Hier wäre es schön, wenn die "associates" in irgendeinem Reading festgehalten würden.)

Es klappt!  :)

Ich hab zwar keine Ahnung, warum es jetzt auf einmal funktioniert, aber ich hatte gerade das im eventMonitor:
2016.02.15 15:26:40.673 3 : set cm fakeWT MAX_00ff6a 20.0 17.4
2016-02-15 15:26:40.738 CUL_MAX cm fakeWT MAX_00ff6a 20.0 17.4
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

dematic

also, ich habe es getestet und ich habe festgestellt das die fehlermeldung configfile: Unknown command }, try help. auch wieder da ist.

ich hatte in der config datei eine } vergessen und dadurch tauchte der fehler nicht mehr auf. allerdings funktioniert mein fakewt weder mit define SendExtTemp notify Arbeitszimmer_Temp:temperature.* { MaxFakeWallThermostat(HT_Arbeitszimmer, $EVTPART1);} noch mit define SendExtTemp notify \
Arbeitszimmer_Temp:temperature.* {\
MaxFakeWallThermostat(HT_Arbeitszimmer, $EVTPART1); \
}

Wzut

und was ist Arbeitszimmer_Temp für ein device ?
poste doch mal richtige relevante Abschnitte aus deiner fhem.cfg, dann muss man nicht jede Stecknadel einzeln hinterfragen .... 
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

andreas.lausser.1

#12
Hi, den Fehler hatte ich auch. Du editierst bestimmt direkt in der fhem.cfg? Dann mach mal alle Zeilenumbrüche raus, dann ist der Fehler weg. Alternativ über die Weboberfläche Einträgen, dann gibts auch kein Problem.



Gesendet von meinem Nexus 5 mit Tapatalk

dematic

hallo,

ich habe es inzwischen zum laufen gebracht und einiges neues dadurch lernen können. ich hatte mehrer fehler eingebaut gehabt die natürlich im log-file auftauchten. und dank google und dem forum hier konnte ich alle beheben.

das problem mit der } klammer war, das ich eine vergessen habe. als ich den internen editor aktiviert hatte, konnte ich durch die jeweilige verknüpfung der anfangs und endklammer feststellen das am ende der zeile eine fehlt und entsprechend setzen. das nächste problem war, dass ich die anführungszeichen in der config datei bei define SendExtTemp notify Arbeitszimmer_Temp:temperature.* { MaxFakeWallThermostat("HT_Arbeitszimmer", $EVTPART1);} weggelassen hatte. dachte das wäre nur als info im wiki das dieser teil angepasst werden muss.

nachdem ich dies getan hatte klappte auch trigger SendExtTemp

da das automatische temperatur senden immer noch nicht geklappt hat, und mich eine fehlermeldung auf die 99_MyUtils.pm hingewiesen habe, habe ich die nochmals angeschaut und festgestellt das dort auch noch was ab ändern musste. habe dort am ende die zwei einträge mit $CULMAX durch cm für meinen cul-stick ersetzt und schon funktioniert das ganze.

sub MaxFakeWallThermostat($$)
{
my ($heizung, $aktTemp)    = @_;
my $CULMAX     = $defs{$heizung}{LASTInputDev};
my $desiredTemp   = ReadingsVal($heizung, "desiredTemperature", undef);
my $windowOpenTemp = ReadingsVal($heizung, "windowOpenTemperature", undef);
my $lastTemp    = ReadingsVal($heizung, "LastExtTemperature", 0);
my $lastSet     = ReadingsTimestamp($heizung, "LastExtTemperature", 0);
if($desiredTemp && $windowOpenTemp &&
$desiredTemp != $windowOpenTemp &&
(time()-time_str2num($lastSet) >= 600 || abs($aktTemp-$lastTemp)>=0.2 )) {
  Log 3, "set cm fakeWT $heizung $desiredTemp $aktTemp";
  readingsSingleUpdate($defs{$heizung}, "LastExtTemperature", $aktTemp, 0);
  fhem("set cm fakeWT $heizung $desiredTemp $aktTemp");
}
}


nachdem das nun funktioniert werde ich die tage mal nach und nach die anderen räume mit fakeWT's austatten. dazu hätte ich noch ne kurze frage. muss ich dann für jeden fakeWT in der 99_MyUtils.pm einen eintrag machen die sich unterscheiden mit fakeWT1 usw?

vielen danke für die bemühungen und hilfe.  :)

@Wzut: Arbeitszimmer_Temp ist ein lacrosse temperatur sensor.

mahowi

Zitat von: dematic am 18 Februar 2016, 08:11:25
da das automatische temperatur senden immer noch nicht geklappt hat, und mich eine fehlermeldung auf die 99_MyUtils.pm hingewiesen habe, habe ich die nochmals angeschaut und festgestellt das dort auch noch was ab ändern musste. habe dort am ende die zwei einträge mit $CULMAX durch cm für meinen cul-stick ersetzt und schon funktioniert das ganze.

sub MaxFakeWallThermostat($$)
{
my ($heizung, $aktTemp)    = @_;
my $CULMAX     = $defs{$heizung}{LASTInputDev};
my $desiredTemp   = ReadingsVal($heizung, "desiredTemperature", undef);
my $windowOpenTemp = ReadingsVal($heizung, "windowOpenTemperature", undef);
my $lastTemp    = ReadingsVal($heizung, "LastExtTemperature", 0);
my $lastSet     = ReadingsTimestamp($heizung, "LastExtTemperature", 0);
if($desiredTemp && $windowOpenTemp &&
$desiredTemp != $windowOpenTemp &&
(time()-time_str2num($lastSet) >= 600 || abs($aktTemp-$lastTemp)>=0.2 )) {
  Log 3, "set cm fakeWT $heizung $desiredTemp $aktTemp";
  readingsSingleUpdate($defs{$heizung}, "LastExtTemperature", $aktTemp, 0);
  fhem("set cm fakeWT $heizung $desiredTemp $aktTemp");
}
}


nachdem das nun funktioniert werde ich die tage mal nach und nach die anderen räume mit fakeWT's austatten. dazu hätte ich noch ne kurze frage. muss ich dann für jeden fakeWT in der 99_MyUtils.pm einen eintrag machen die sich unterscheiden mit fakeWT1 usw?

Eigentlichsollte das Ersetzen von $CULMAX durch cm überflüssig sein. my $CULMAX     = $defs{$heizung}{LASTInputDev}; definiert das IO-Device des übergebenen Thermostats. Also LASTInputDev sollte Dein cm sein, wenn das Thermostat vorher schonmal damit verbunden war.

Da Du ja die Bezeichnung des Thermostats an MaxFakeWallThermostat übergibst, brauchst Du auch keine weiteren Einträge in 99_MyUtils. Lediglich für jedes Thermostat ein notify.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee