http Rückmeldung von ESP8266 in einem dummy konsolidieren

Begonnen von steb, 28 Juni 2016, 16:52:44

Vorheriges Thema - Nächstes Thema

steb

Moin zusammen,

ich habe ein ESP8266 Modul, welches mir zwei Relais für ein Rollo schaltet. Ein Relais für hoch und eines für runter. Beide Relais können nicht gleichzeitig aktiviert werden.
In Fhem funktioniert das bisher ganz wunderbar mit dem folgenden Code:


define WoZi.Jalousie.Garten dummy
attr WoZi.Jalousie.Garten room Wohnzimmer,Homekit
attr WoZi.Jalousie.Garten setList off on
attr WoZi.Jalousie.Garten eventMap on:up off:down
attr WoZi.Jalousie.Garten devStateIcon up:fts_shutter_10@green down:fts_shutter_100@white 9\d.*:fts_shutter_10 8\d.*:fts_shutter_20 7\d.*:fts_shutter_30 6\d.*:fts_shutter_40 5\d.*:fts_shutter_50 4\d.*:fts_shutter_60 3\d.*:fts_shutter_70 2\d.*:fts_shutter_80 1\d.*:fts_shutter_90 0\d.*:fts_shutter_100
define sw_WoZi.Jalousie.Garten_off notify WoZi.Jalousie.Garten:on "php RolloHoch"
define sw_WoZi.Jalousie.Garten_on notify WoZi.Jalousie.Garten:off "php RolloRunter"


Die Relais können auch per Schalter geschaltet werden, was dann ein http request an fhem sendet.
Schalter Relais 1 -> /fhem?cmd.Test=set%20WoZi.Jalousie.Garten.1%20ON&XHR=1
Schalter Relais 2 -> /fhem?cmd.Test=set%20WoZi.Jalousie.Garten.2%20ON&XHR=1

Analog dazu beim zurücklegen des jeweiligen Schalters
Schalter Relais 1 -> /fhem?cmd.Test=set%20WoZi.Jalousie.Garten.1%20OFF&XHR=1
Schalter Relais 2 -> /fhem?cmd.Test=set%20WoZi.Jalousie.Garten.2%20OFF&XHR=1

Für den http Befehl musste ich zwei unterschiedliche Bezeichnungen wählen: WoZi.Jalousie.Garten.1 und WoZi.Jalousie.Garten.2 und die beiden Relais voneinander zu unterscheiden. Nun die spannende Frage und vielleicht hat jemand eine Idee: Wie bekomme ich es hin, das der Befehl /fhem?cmd.Test=set%20WoZi.Jalousie.Garten.1%20ON&XHR=1 mein Rollo Symbol auf "hoch" und /fhem?cmd.Test=set%20WoZi.Jalousie.Garten.2%20ON&XHR=1 auf "runter" setzt.

Danke und Gruß
Stefan

Ps.: Würde später dann noch die Zeit tracken um den Zwischenstand des Rollos richtig anzeigen zu können. Aber das wäre die Kirsche auf der Sahne.

MadMax-FHEM

setreading statt set...

Also GET /fhem?cmd%20setreading%20DUMMYNAME%20READINGNAME%20VALUE

Also praktisch wie dein Aufruf nur mit setreading...

In fhem halt dann einen dummy mit Namen DUMMYNAME anlegen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

steb

Danke für die schnelle Antwort Joachim.

Leider löst das mein Problem nicht ganz. Die Rückantwort funktioniert auch jetzt schon, allerdings habe ich ja quasi zwei Dummy's (WoZi.Jalousie.Garten.1 und WoZi.Jalousie.Garten.2), die tatsächlich aber nur einem Dummy zugehörig sind. Gibt es eine Möglichkeit Dummy's zusammenzufassen bzw. eine Hierarchieebene einzuführen?

Danke und Gruß
Stefan

MadMax-FHEM

Hi,

sorry.
Dachte das Problem wären die 2 Namen.

Was genau ist dann das Problem/die Frage?

Geht es um das Icon?

Gut, ich probiers mal:

Du setzt den state auf ON bzw. OFF.
Definierst aber bei devStateIcon die verschiedenen Öffnungsgrade, so wie ich das sehe...

Scheinbar hab ich das Problem nicht genau verstanden...

Evtl. noch mal genauer beschreiben was genau nicht geht bzw. wo das Problem ist...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

MadMax-FHEM

So, habe mir das alles noch mal angeschaut.

Warum hast du 2 (bzw. sogar 3 dummys)?

Ich sehe aber nur einen??

Warum setzt du nicht einfach den state (setstate) des einen dummy?
Also hoch, up, was auch immer für "nach oben"...
...und runter, down, ... für "nach unten"??

Du hast doch nur einen ESP für beide Relais??
Dann weißt du doch welches Relais gerade geschalten ist und ob es "hoch" oder "runter" geht??

Dann noch devStateIcon (allerdings muss die Definition mit den state Werten passen)...

Wenn du noch Zwischenwerte hast/weißt, dann kannst du den state auch auch z.B. 0, 10,20, ... setzen und dann sollte das entsprechende Icon "automatisch" genommen werden...
...also mit deiner jetzigen Definition...

Dummys zusammenführen: evtl. mittels "structure", kenne ich aber nicht bzw. nur, dass es das gibt ;-)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

steb

Hallo Joachim,

erst einmal danke für Deine geduldigen Antworten. Ich glaube, wir reden noch etwas aneinender vorbei oder ich steh einfach auf dem Schlauch.

Ich habe ein Rollo, das über ein ESP mit zwei Relais angesteuert wird. Im fhem passt das auch schon alles. Hab da ein Rollosymbol, das mir schön anzeigt, ob das Rollo geschlossen oder offen ist, solange ich das alles aus fhem raus ansteuere. Der Weg funktioniert super.

Wo es noch hakt ist der umgedreht weg. Jemand nutzt den Schalter und löst das Relais "manuell" aus und damit gleichzeitig auch den http befehl, der zum fhem Server läuft.
Für Relais 1 kommt der Befehl "hoch" (bzw. bei mir eben /fhem?cmd.Test=set%20WoZi.Jalousie.Garten.1%20ON&XHR=1) und für Relais zwei entsprechend "runter" (bzw. bei mir eben /fhem?cmd.Test=set%20WoZi.Jalousie.Garten.2%20ON&XHR=1)

Das Problem ist, das ich zwar zweimal die gleiche Bezeichnung für den dummy und dann entsprechend mit on/off verwenden könnte, ich dann allerdings nicht mitschneiden kann, wie lange ein Relais geschaltet wurde. Das bräuchte ich aber für die Schlitze im Rollo.

Vielleicht bin ich aber auch total auf dem Holzweg.

Danke und Gruß
Stefan

MadMax-FHEM

Hi Stefan,

ja vielleicht, ist auch nicht so einfach (zu verstehen) ;-)

Also per fhem steuern heißt du schickst per fhem ein Kommando an den ESP!?
Mit Schlitze im Rollo meinst du das angezeigte Icon!?
D.h. beim Kommando von fhem aus "schneidest du mit" wie lange du aktuell nach dem Befehl schicken bist!?
Und stellt entsprechend das Icon ein bzw. über devStateIcon!?
D.h. die angezeigten Schlitze im Icon sind nach Zeit!?
(also nach 5sek. 10% nach weiteren 5sec dann 20%, ...?!)

Und genau so soll es sein, wenn jemand direkt den Schalter drückt...
...mal für Relais1 und mal für Relais2!?

Ich warte mal nicht auf die Antworten (die aber wichtig sind für's Verständnis), sondern tue einfach mal so als wäre das was ich verstanden habe richtig ;-)

Ich würde evtl. folgendermaßen machen:

Ich würde es immer dem ESP die "Schlitze" machen lassen, indem ich beim Dummy per setreading (wie beschrieben) ein Reading z.B. ZustandRollo X setze wobei X dann der entsprechende %tuale Öffnungsgrad ist.
Da es ja die Zeit bestimmt wieviel Prozent usw. (habe ich jetzt mal angenommen) kann ja der ESP per setreading immer den passenden %-Wert setzen.
Zusätzlich, damit du weißt dass es hoch oder runter geht noch ein weiteres Reading z.B. Bewegungsrichtung hoch/runter.

Es gibt auch valueIcon, damit kann dann auch entsprechend dem Wert eines Readings ein entsprechendes Icon angezeigt werden, ich nutze das um z.B. je nach "Füllgrad" der Batterie das entsprechende Batterie-Icon mit entsprechendem "Füllstand" anzuzeigen.

Somit kann dann per fhem der ESP angesteuert werden.
Dieser setzte dann entsprechend wie beschrieben die Werte im Dummy und die Icons etc. gehen dann ja "automatisch".
Wird per Schalter geschaltet und da nehme ich mal an auch "über" den ESP!? weil sonst geht das dann nat. nicht...
...wenn "über" den ESP, also Schalter "sagt" ESP "hoch/runter" und ESP schaltet entsprechendes Relais, dann kann ja der ESP ebenso die Werte setzen, also gleicher Mecahnismus wie wenn aus fhem gesteuert wird...


Andere Variante, die inetwa da weiter macht wo du nicht genau siehst wie es gehen könnte:

du bekommst ja mit, wenn der ESP hoch bzw. runter setzt!?
Notify...
Da kannst du ja auch "mitverfolgen" wie lange.
Evtl. kann ja der ESP auch "Stop" setzen, wennkein Relais (mehr) geschaltet ist.

Und dann den aktuellen Mecahnismus nutzen, der ja funktioniert wie du willst, wenn du von fhem aus schaltest...

Für runter geht das nat. genauso, anderes Notify höchstens...


Bzgl. Icon: man kann auch eine sub hinterlegen, welche aufgerufen wird und dann aus bestimmten Werten oder was auch immer das entsprechende Icon als Returnwert zurück liefert (mache ich bei meinen Batterieständen so).
Die sub ist dann in myUtils.pm zu programmieren.

So, jetzt bin ich ja gespannt...

Ist ein wenig wie "Schiffe versenken" ;-)
Mal sehen vielleicht habe ich wenigstens ein paar Treffer ;-)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)