Einbindung ECO-Wallbutton mit Fernzugriff

Begonnen von bg1704, 27 Oktober 2015, 15:30:17

Vorheriges Thema - Nächstes Thema

bg1704

Hallo,

ich habe den ECO-Wallbutton wie bei der Anleitung MAX!CubeMigratoinToFhem durchgeführt.
http://www.fhemwiki.de/wiki/MAX!CubeMigrationToFhem


### 9.1 ECO-Wallbutton
define MAX_WallButton MAX PushButton 0521c4
#
# Define House to control all Heaters at once
define AllHeaters structure MAX_Child2_Heating MAX_Workingroom_Heating MAX_Child1_Heating MAX_Livingroom_THSensor MAX_Bedroom_Heating MAX_Toilette_Heating MAX_Kitchen_Heating  MAX_Bathroom_Heating
attr AllHeaters room House
attr AllHeaters webCmd desiredTemperature
#
define MAX_HouseECOHeating notify MAX_WallButton:(onoff).* { if ("%EVTPART1" eq "0") { fhem("set AllHeaters desiredTemperature eco") && Log(3,"===> ECO-Mode set");;} else {  fhem("set AllHeaters desiredTemperature auto") && Log(3,"===> AUTO-Mode set");;}}


Funktioniert auch einwandfrei soweit wenn ich den Button drücke.

Nun möchte das MAX_HouseECOHeating notify auch über Fernzugriff schalten. Folgender Anwendungsfall:
Bei verlassen des Hauses wird der ECO-Button der ECO-Modus betätigt. Bevor man nach Hause kommt logt man sich per Fernzugriff in die Oberfläche ein und schaltet zurück auf AUTO Modus.

Nun zur eigentlichen Frage. Der ECO-Wallbutton befindet sich nun in ECO Schaltstellung (kein Taster, sondern Schalter). Wird beim nächsten Mal der ECO-Button betätigt wird nichts ausgelöst, da keine Änderung erfolgt ist.
Kennt jemand eine Möglichkeit des ECO-Wallbutton zurückzusetzen, bzw. sich als Taster zu verhalten, damit mehrfach ein ECO schalten ohne Rückschalten auf Auto ermöglicht wird?

Wzut

Zitat von: bg1704 am 27 Oktober 2015, 15:30:17
(kein Taster, sondern Schalter). Wird beim nächsten Mal der ECO-Button betätigt wird nichts ausgelöst, da keine Änderung erfolgt ist.
Der ECO Taster ist kein Schalter sondern ein Doppel-Taster :)
um Schalt-Wiederholungen der gleichen Position in fhem mitzubekommen kann man z.B. state manuell verbiegen, siehe http://forum.fhem.de/index.php/topic,41315.0.html
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

bg1704

Zitat von: Wzut am 27 Oktober 2015, 15:45:33
Der ECO Taster ist kein Schalter sondern ein Doppel-Taster :)
um Schalt-Wiederholungen der gleichen Position in fhem mitzubekommen kann man z.B. state manuell verbiegen, siehe http://forum.fhem.de/index.php/topic,41315.0.html

Hallo Wzut,

das habe ich auch gelesen, konnte aber nicht viel mit anfange. Kann mich jemand unterstützen wie ich dies in die if abfrage mit reinbasteln kann?

Wzut

sorry aber ich versteh dein Problem  nicht so ganz :
Zitat von: bg1704 am 27 Oktober 2015, 15:30:17
Wird beim nächsten Mal der ECO-Button betätigt wird nichts ausgelöst, da keine Änderung erfolgt ist.
Wieso wird da nichts ausgelöst ? (bei mir schon)
oder hat du eventuell attr event-on-change-reading  gesetzt ?
Wäre das mein Taster würde ich zuerst http://www.fhemwiki.de/wiki/EventMap lesen,
um danach dem Taster sein open/closed als state abzugewöhnen und auf das umbiegen was später wirklich gebraucht wird :
attr MAX_WallButton eventmap closed:eco open:auto
bzw. u.U. umdrehen :
attr MAX_WallButton eventmap closed:auto open:eco
ich habe nicht mehr im Kopf wie der Taster beschriftet ist bzw. wann er open oder closed als status hat. Danach http://www.fhemwiki.de/wiki/Notify lesen und etwas ganz einfaches bauen ala
define MAX_HouseECOHeating notify MAX_WallButton set AllHeaters desiredTemperature $EVENT;
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

bg1704

Zitat von: Wzut am 28 Oktober 2015, 09:57:08
sorry aber ich versteh dein Problem  nicht so ganz :Wieso wird da nichts ausgelöst ? (bei mir schon)

Mein Problem ist: ECO Modus wird betätigt, dann ist der Schalter closed. Per FHEM Oberfläche schalte ich wieder in Auto. Bei nächsten Mal Schalter betätigen ist dieser immer noch closed, und bekommt somit keine Änderung mit. Wie bei Dir das funktioniert würde ich gerne wissen.

Rince

Du könntest aber das Notify, welches du durch den Taster auslöst, auch einfach durch einen Trigger auslösen.

trigger MAX_HouseECOHeating on
(weiß nicht, ob die Syntax richtig ist, aber so in etwa sollte aussehen. Ggf bitte in der commandref nachlesen.

Dann wird dein Notify ausgelöst, ohne sich um den physikalischen Taster zu kümmern. Dieser verändert durch den Trigger auch seinen Zustand nicht.
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Wzut

Zitat von: bg1704 am 28 Oktober 2015, 10:44:49
keine Änderung mit. Wie bei Dir das funktioniert würde ich gerne wissen.
Nur um sicher zu gehen das ich hier keinen Mist erzähle habe ich einen dummy und ein notify angelegt und dreimal hinter einander erst eco dann auto gedrückt :
2015-10-28 17:33:30 dummy eco_dummy eco
2015-10-28 17:33:30 MAX ECO_Taster eco
2015-10-28 17:33:37 dummy eco_dummy eco
2015-10-28 17:33:37 MAX ECO_Taster eco
2015-10-28 17:33:40 dummy eco_dummy eco
2015-10-28 17:33:40 MAX ECO_Taster eco
2015-10-28 17:33:42 dummy eco_dummy auto
2015-10-28 17:33:42 MAX ECO_Taster auto
2015-10-28 17:33:43 dummy eco_dummy auto
2015-10-28 17:33:43 MAX ECO_Taster auto
2015-10-28 17:33:45 dummy eco_dummy auto
2015-10-28 17:33:45 MAX ECO_Taster auto

die Definitionen sind :
define ECO_Taster MAX PushButton 0b2e87
attr ECO_Taster IODev CULMAX0
attr ECO_Taster event-on-update-reading state
attr ECO_Taster eventMap closed:eco opened:auto

define eco_dummy dummy
define test_eco notify ECO_Taster set eco_dummy $EVENT

Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

fruit

@bg1704
If I'm understanding google translate correctly, you are using a CUL
However if you are still using a Cube, my recollection is that this will only work for a CUL, there is no easy way to trap eco button presses with a Cube
Feel free to follow up in German if you prefer

Rince

@fruit
You know that you could flash your Cube, so it actually would become a CUNO (network based CUL)?
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

fruit

Yes, I have come across at least one thread mentioning that - and a link for details too, I think.

I'm not sure it's a good idea for me to try in the heating season just in case something goes wrong ;) - and here in the UK suitable replacement devices are at least a few days away by post.

I do check the 'Cc1101 von Ebay' thread and may try that way at least for a backup device - just too many other things to do. 

I also get mails from a few UK users who have followed me and installed MAX! and Cubes and are not so technically able so it is useful to have a matching system.

Thanks for the suggestion - it's very easy to miss things (or get things completely wrong) with google translate



Feel free to follow up in German if you prefer

bg1704

#10
Hallo Leute,

hatte heute endlich mal wieder Zeit ein bisschen rumzuprobieren.
Leider habe ich keinen Erfolg gehabt.

Der ECO Taster sendet auch mehrfach das closed - ohne Probleme. Die Ursache liegt meiner Meinung nach an der if else Abfrage, welche keinen weiteren Trigger mehr auslöst:

define MAX_HouseECOHeating notify MAX_WallButton:(onoff).* { if ("%EVTPART1" eq "0") { fhem("set AllHeaters desiredTemperature eco") && Log(3,"===> ECO-Mode set");;} else {  fhem("set AllHeaters desiredTemperature auto") && Log(3,"===> AUTO-Mode set");;}}


Kann mir jemand bitte versuchen es mir zu erklären? Vielleicht kann man den status des ECO-Tasters direkt nach der ersten Ausführung zurücksetzen, damit wieder ein Trigger ausgelöst werden kann....

bg1704

Zitat von: bg1704 am 31 Oktober 2015, 20:42:13
Hallo Leute,

hatte heute endlich mal wieder Zeit ein bisschen rumzuprobieren.
Leider habe ich keinen Erfolg gehabt.

Der ECO Taster sendet auch mehrfach das closed - ohne Probleme. Die Ursache liegt meiner Meinung nach an der if else Abfrage, welche keinen weiteren Trigger mehr auslöst:

define MAX_HouseECOHeating notify MAX_WallButton:(onoff).* { if ("%EVTPART1" eq "0") { fhem("set AllHeaters desiredTemperature eco") && Log(3,"===> ECO-Mode set");;} else {  fhem("set AllHeaters desiredTemperature auto") && Log(3,"===> AUTO-Mode set");;}}


Kann mir jemand bitte versuchen es mir zu erklären? Vielleicht kann man den status des ECO-Tasters direkt nach der ersten Ausführung zurücksetzen, damit wieder ein Trigger ausgelöst werden kann....

Keiner eine Idee?

Wzut

doch, aber mein notify primitiv Vorschlag scheint dir ja nicht zu gefallen ....
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

gero

Gib doch mal vor den if %EVTPART1 mit einem Log aus. Dann solltest du sehen, ob das notify richtig triggert und ob deine Abfrage im if korrekt ist.

Gruß,
Gero

Gruß,
Gero
Odroid C1 - CULV3-868, JeeLink
16 x TX 29 DTH
MAX!: 15x Heizkörperthermostat+, 2x Wandthermostat, 14x Fenserkontakt, 1x Ecotaster
FS20 S4A, FS20IRF, BSB-Heizungssteuerung über Atmega2560
Z-Wave: ZME_UZB1, Fibaro Wall Plug + Motion Sensor

bg1704

Hallo Wzut,

Zitat von: Wzut am 05 November 2015, 19:04:26
doch, aber mein notify primitiv Vorschlag scheint dir ja nicht zu gefallen ....

Soweit ich deinen Codezeilen folgen kann ist das die Abfrage des Buttons direkt, was bei mir ja funktioniert. Siehe:

Zitat von: bg1704 am 31 Oktober 2015, 20:42:13
Der ECO Taster sendet auch mehrfach das closed - ohne Probleme. Die Ursache liegt meiner Meinung nach an der if else Abfrage, welche keinen weiteren Trigger mehr auslöst: