FHEM Forum

FHEM - Hausautomations-Systeme => MAX => Thema gestartet von: The-Holgi am 04 Dezember 2013, 09:29:58

Titel: Eco Taster
Beitrag von: The-Holgi am 04 Dezember 2013, 09:29:58
Hallo,
versuche gerade den Eco Taster zu integrieren. Finde nirgens eine Anleitung wie das unter Fhem mit Cul funktioniert.
Angelernt ist er und die Schaltzustände werden auch übertragen. Wie bringe ich den Thermostaten bei nach betätigen des Tasters in den ECO Modus zu wechseln ?
Ich benutze zur Zeit das interne Wochenprogramm der Thermostate.
Bin für jeden Tipp dankbar.

Edit:
Habe mich jetzt soweit durchgewühlt und gelesen das man es über ein notify lösen kann. Vielleicht kann mir da jemand unter die Arme greifen ?

Gruß Holgi
Titel: Antw:Eco Taster
Beitrag von: John am 04 Dezember 2013, 22:04:34
Hallo Holgi,

ein notify ist schon mal ein guter Ansatz.

Versuch mal folgendes einzubinden:

define <DeinEcoTaster>.event notify <DeinEcoTaster>:(onoff).* { Log(3,"eco taster wurde betätigt");;}

für <DeinEcoTaster> setzt du den Namen deines EcoTasters ein.
In der Log-Datei sollten nach Betätigung "eco taster wurde betätigt" ausgegeben werden.

Wenn das klappt gehts mit dem nächsten Kapitel weiter.

John
Titel: Antw:Eco Taster
Beitrag von: The-Holgi am 05 Dezember 2013, 07:18:13
Hallo John,
Danke für die hilfe.
Das klappt schonmal, nur verstehe ich nicht wie es weiter geht. So ist es ja auch egal ob ich auf Auto oder Eco drücke, die Ausgabe ist immer
eco taster wurde betätigt.
Wäre nett wenn du mir beim nächsten Kapitel noch helfen könntest.

Gruß Holgi
Titel: Antw:Eco Taster
Beitrag von: ph1959de am 05 Dezember 2013, 07:23:40
Vielleicht erklärst Du auch mal kurz, was für Dich "den Eco Taster integrieren" bedeutet bzw. auch, was "der Eco Taster" überhaupt ist oder sein und machen soll? Oder ist das etwas selbsterklärendes, das nur ich nicht verstehe?

Gruß, Peter

       
Titel: Antw:Eco Taster
Beitrag von: The-Holgi am 05 Dezember 2013, 07:54:33
Hallo Peter,
der Eco Taster dient dazu, beim verlassen des Hauses die Heizung durch betätigen des Schalters in den Eco Modus zu versetzen. Ich werde ihn in der nähe der Eingangstür anbringen.
So sieht das Teil aus: http://www.conrad.de/ce/de/product/560915/?insert_kz=VQ&hk=SEM&WT.srch=1&WT.mc_id=google_pla&gclid=CKqk0aG_mLsCFWzHtAody3oAAg

Gruß Holgi
Titel: Antw:Eco Taster
Beitrag von: John am 05 Dezember 2013, 08:38:37
Hallo Holgi,

vorab  noch eine Frage:

Möchtest du FHEM verstehen oder nur einfach eine schnelle Lösung für dein Problem ?

noch etwas zum Probieren (aber immer noch keine endgültige Lösung)
define <DeinEcoTaster>.event notify <DeinEcoTaster>:(onoff).* { Log(3,"event gefeuert von %NAME mit den Parametern: %EVTPART0 ,%EVTPART1" );;}

John
Titel: Antw:Eco Taster
Beitrag von: The-Holgi am 05 Dezember 2013, 08:52:14
Hallo John,
Ich möchte es schon verstehen. Ansonsten wäre ich mit einem fertigem System besser gefahren. Ist halt am Anfang nicht so leicht und freue mich über Hilfe und Tipps von den "alten Hasen".

Gruß Holgi
Titel: Antw:Eco Taster
Beitrag von: The-Holgi am 05 Dezember 2013, 09:10:38
Hallo,
das klappt auch jetzt wird auch angezeigt welche Taste man drückt:
event gefeuert von Eco_Taster mit den Parametern: onoff: ,0
Titel: Antw:Eco Taster
Beitrag von: John am 05 Dezember 2013, 09:27:06
Gut.
Somit ist klar, das der Teil in den geschweiften Klammern ein Perl-Skript ist, dem man Parameter aus dem Event übergeben kann.
Das brauchen wir ja auch, damit wir wissen, ob ECO ein- oder auszuschalten ist.

Nun solltest du nach einem Befehl für das Thermostat suchen, der

Am Ende muss etwas in der Art rauskommen:
Zitat
Wenn ECO-Taster=ECO dann setze Thermostat in ECO-Mode
Wenn ECO-Taster=Auto dann setze Thermostat in Auto-Mode

Dur wirst im CommandRef bei den Max-Thermostaten fündig.

John
Titel: Antw:Eco Taster
Beitrag von: The-Holgi am 05 Dezember 2013, 10:23:13
Hm,
also muß man das irgendwie mit if zusammen basteln ?
Der Befehl zum schalten lautet dann ja:
set kue_Thermostat,Bad_Thermostat,wz_Thermostat desiredTemperature eco bzw.
set kue_Thermostat,Bad_Thermostat,wz_Thermostat desiredTemperature auto
Habe im Moment nur die 3 Thermostate
Aber wie geht es weiter ? Kann man alles aus dem notify Eco_Taster.event heraus schalten ?
Vielleicht so ?
{fhem("set Bad_Thermostat,kue_Thermostat,wz_Thermostat eco") if (ReadingsVal("Eco_Taster","onoff","") = 1)}

Edit: Das geht schonmal nicht habe jetzt notify Eco_Taster.event editiert, im log steht dann:
Eco_Taster.event return value: Can't modify non-lvalue subroutine call in scalar assignment at (eval 484) line 1, near "1)"
Titel: Antw:Eco Taster
Beitrag von: John am 05 Dezember 2013, 10:51:37

Schon ganz gut, vielleicht besser so:

{fhem("set Bad_Thermostat,kue_Thermostat,wz_Thermostat eco") if (ReadingsVal("Eco_Taster","onoff","") eq "1");;}

oder alternativ nach diesem Konzept
{if ("%EVTPART1" eq "0") {Log(3,"%NAME ist 0");;} else {Log(3,"%NAME ist 1");;}}

John
Titel: Antw:Eco Taster
Beitrag von: The-Holgi am 05 Dezember 2013, 11:25:20
Wenn ich das richtig verstehe kann man in der 2. Variante gleich beide Zustände einbauen, habe das mal so versucht:
Eco_Taster:(onoff).* fhem("set Bad_Thermostat,kue_Thermostat,wz_Thermostat eco") if ("%EVTPART1" eq "0") {Log(3,"%NAME ist 0");;} else {Log(3,"%NAME ist 1");
Die komplette Zeile in Eco_Taster.event sieht so aus:
Eco_Taster:(onoff).* fhem("set Bad_Thermostat,kue_Thermostat,wz_Thermostat eco") if ("%EVTPART1" eq "0") {Log(3,"%NAME ist 0");;} else {Log(3,"%NAME ist 1");
Im log bekomme ich dann die Ausgabe:
Eco_Taster.event return value: Unknown command fhem("set, try help.

Erstmal Danke für deine Geduld mit mir.
Titel: Antw:Eco Taster
Beitrag von: John am 05 Dezember 2013, 11:48:49
Fast getroffen:


Eco_Taster:(onoff).* { if ("%EVTPART1" eq "0") {fhem("set Bad_Thermostat,kue_Thermostat,wz_Thermostat eco");;} else {fhem("set Bad_Thermostat,kue_Thermostat,wz_Thermostat auto");;}}

Bitte erst mal keine Zeilenumbrüche zulassen.

John
Titel: Antw:Eco Taster
Beitrag von: The-Holgi am 05 Dezember 2013, 12:41:10
Hm jetzt taucht im log das auf:
2013.12.05 12:33:55 3: Eco_Taster.event return value: Unknown argument eco, choose one of wakeUp factoryReset groupid associate:kue_Thermostat,Fenster_Bad,post_FKT_1,Tuer_Hinten,Fenster_Kue,wz_Thermostat,fakeWallThermostat,fakeShutterContact deassociate:kue_Thermostat,Fenster_Bad,post_FKT_1,Tuer_Hinten,Fenster_Kue,wz_Thermostat,fakeWallThermostat,fakeShutterContact desiredTemperature:eco,comfort,boost,auto,off,5.0,5.5,6.0,6.5,7.0,7.5,8.0,8.5,9.0,9.5,10.0,10.5,11.0,11.5,12.0,12.5,13.0,13.5,14.0,14.5,15.0,15.5,16.0,16.5,17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5....

Verstehe nicht warum.
Titel: Antw:Eco Taster
Beitrag von: John am 05 Dezember 2013, 13:00:55
verwendet antelle von eco ein zahl, die der eco-temperatur entspricht.
John
Titel: Antw:Eco Taster
Beitrag von: The-Holgi am 05 Dezember 2013, 13:25:37
Mit der Zahl hatte ich auch schon getestet dann viel mir das mit desiredTemperature ein
Eco_Taster:(onoff).* { if ("%EVTPART1" eq "0") {fhem("set Bad_Thermostat,kue_Thermostat,wz_Thermostat desiredTemperature eco");;} else {fhem("set Bad_Thermostat,kue_Thermostat,wz_Thermostat desiredTemperature auto");;}}

So geht es ohne Fehler konnte die Heizung einmal in den eco Modus setzten aber nicht wieder zurück in Auto. Nach 3 mal drücken kam die Fehlermeldung:
CUL_MAX_SendQueueHandler: Not enough credit! credit10ms is 9, but we need 110. Waiting 101 seconds.
Ist das normal das die credit´s so schnell verbraucht sind ?
Titel: Antw:Eco Taster
Beitrag von: John am 05 Dezember 2013, 13:34:47
ZitatIst das normal das die credit´s so schnell verbraucht sind ?

Das war zu erwarten. Der CUL darf ja nur max. 1% der Stunde nutzen.

Wenn du einen CUL hast siehst du den Verbrauch an den Credits (900=max). Pro Übertragung werden ca. 140 Credits verbraten.

MaxLan rechnet mit den dutycycles umgekehrt von 0..100. Also 0 heisst du kannst noch ne Menge schicken.

Die gute Nachricht ist, dass Matthias eine Queue eingebaut hat, d.h. FHEM merkt sich die ausstehenden Befehle und arbeitet diese nach und nach ab.


John
Titel: Antw:Eco Taster
Beitrag von: hobu am 05 Dezember 2013, 13:43:44
Zitat von: John am 05 Dezember 2013, 13:00:55
verwendet antelle von eco ein zahl, die der eco-temperatur entspricht.
John
Die Gradangabe (Zahl) ist nicht notwendig

Im o.a. Beispiel fehlte nur ein Keyword:
"set BR_HT desiredTemperature eco"
funktioniert.
Titel: Antw:Eco Taster
Beitrag von: The-Holgi am 05 Dezember 2013, 13:52:34
Hallo, ja genau wie ich schon geschrieben habe fehlte das keywort  desiredTemperature.
Jetzt heißt es erstmal warten um weiter zu testen. Mir ist aufgefallen das die Thermostate vom Auto in den Manu Modus gewechselt haben nachdem ich den taster gedrückt habe. Ist das normal ?

Gruß Holgi
Titel: Antw:Eco Taster
Beitrag von: John am 05 Dezember 2013, 14:07:59
Hallo Holgi,
also wenn Mode Auto aktiv bliebe würde das Wochenprofil beim nächsten Schaltpunkt den Sollwert neu setzten.

Wenn du das willst kannst du folgendes tun:
Zitatset <thermostat> desiredTemperatur auto eco

eco ist aus Sicht des Thermostats nur ein Synonym für die ecoTemperature.

Wenn du jedoch explizit mit dem Taster die Automatik aktivieren willst, musst du vorher den Mode auf Manu nehmen.

John

Titel: Antw:Eco Taster
Beitrag von: The-Holgi am 05 Dezember 2013, 14:21:17
Hm, wenn ich jetzt die Taste Auto am Eco Taster drücke sollte das Thermostat doch in den Automodus wechseln oder ?
Möchte ja wenn ich wieder Zuhause bin das, das Wochenprogramm weiter läuft.
Titel: Antw:Eco Taster
Beitrag von: The-Holgi am 05 Dezember 2013, 14:29:56
Hm,
es funktioniert leider doch nicht. Hier nochmal der code:
Eco_Taster:(onoff).* { if ("%EVTPART1" eq "0") {fhem("set wz_Thermostat desiredTemperature eco");;} else {fhem("set wz_Thermostat desiredTemperature auto");;}}
Es wird nichts im log angezeigt und die Temperatur wird auch nicht verstellt. Woran könnte das liegen ?
Wenn ich im webinterface direkt set wz_Thermostat desiredTemperature auto wird problemlos geschaltet.

Edit: Bin ich blöd Eco ist 1 und nicht 0. Jetzt geht es.
Besten Dank nochmal

Hier nochmal die komplette Zeile, vielleicht kann das ja jemand gebrauchen
Eco_Taster:(onoff).* { if ("%EVTPART1" eq "1") {fhem("set .*Thermostat desiredTemperature eco");;} else {fhem("set .*Thermostat desiredTemperature auto");;}}
Titel: Antw:Eco Taster
Beitrag von: The-Holgi am 05 Dezember 2013, 16:38:54
Hm, zu früh gefreut.
Der Taster funktioniert problemlos aber im log gibt es immer eine Fehlermeldung:
set .*Thermostat desiredTemperature eco : Unknown argument desiredTemperature, choose one of absorb:FileLog......usw.

Woran könnte das liegen ?

Edit: Es lag wohl an der Aufzählung mit .*Thermostat habe jetzt die Thermostate einzeln eingegeben und der Fehler ist weg.
Titel: Antw:Eco Taster
Beitrag von: QuesT am 08 Januar 2014, 15:28:24
Hallo,

ist es auch möglich statt auf eco auf boost bei definierten HK zu gehen?
Danke
Titel: Antw:Eco Taster
Beitrag von: The-Holgi am 08 Januar 2014, 15:53:35
Hallo,
warum sollte das nicht gehen ?
Einfach statt  desiredTemperature eco  desiredTemperature boost setzen.

Gruß Holgi
Titel: Antw:Eco Taster
Beitrag von: rjoachim am 14 Januar 2014, 00:50:05
Hallo zusammen,

wäre es nicht sinnvoll über die Events des Eco-Tasters jeweils ein neues Wochenprofil auf dem Thermostat zu setzen.

Eco-Taster:on - Wochenprofil immer 17°C
Eco-Taster:off - Wochenprofil wie gewünscht wenn anwesend

Damit sollte die Temperatur wie bei der Eco-Funktion des Thermostats dauerhaft bestehen bleiben während der Scanner weiterhin die Temperatur protokolliert. Selbes Verfahren (geändertes Wochenprofil) könnte auch für ein oder mehrere Fensterkontakte verwendet werden. Nachteilig ist allerdings die größere Menge an Daten die übertragen werden müssen.

Habe die Idee bisher noch nicht getestet. Mich würde vorher eure Meinung interessieren ob das funktionieren könnte.

Gruß
Ralf
Titel: Antw:Eco Taster
Beitrag von: CrisB am 24 November 2017, 19:59:55
Hallo zusammen,

bei mir klappt es nicht wie oben in die Beschreibung. :-\

Hab folgendes ausprobiert:
define ECO_Taster MAX PushButton 123456
attr ECO_Taster IODev CULMAX0
define ECO_Taster.event notify ECO_Taster:(onoff).* { if ("$EVTPART1" eq "0") {fhem("set MAX_068ac4,MAX_068ac5,MAX_068ac7 desiredTemperature eco");; } else { fhem("set MAX_068ac4,MAX_068ac5,MAX_068ac7 desiredTemperature auto");;}}



Edit: So klappt's, der Fehler war am "%EVTPART1" statt "$EVTPART1"! Der Codebereich oben ist korrigiert und funktioniert!

Gruß,
Cris