Tablet UI - Gute Lösung für Taster

Begonnen von stera, 02 Dezember 2015, 21:31:07

Vorheriges Thema - Nächstes Thema

stera

Hallo,

ich stehe aktuell vor einem Problem und weiß noch nicht die beste Lösung dafür.

Ich benutze Fhem für Lichtschaltungen etc. Im Netzwerk ist eine SPS (Siemens Logo). Nun sind an der Logo ganz normale Taster im Haus, die das Licht steuert und über das Tablet sollen zukünftig diese auch gesteuert werden.

Folgende Lösung habe ich jetzt


Taster:
virtueller Netzwerktaster ( define LogoTasterVordach LOGO_BINARY V1.0) -> wird gesetzt

Per notify wird dieser nach 2sek wieder zurückgesetzt (habe noch keine bessere Lösung gefunden), on-for-timer geht leider nicht

Ausgang (Rückmeldung des Logo Ausgang)
define LogoLampeVordach LOGO_BINARY Q1  -> Rückmeldung das die Lampa an ist..



Das ganze funktioniert wohl, aber im Tablet UI habe ich damit meine Schwierigkeiten. Ich möchte gerne eine virtuelle Anzeige vom Ausgang haben, aber wenn man den Button betätigt den Netzwerktaster auslösen. Wie kann ich das am besten umsetzen bzw. habt ihr eine generelle bessere Lösung..

Bin dankbar für eure Antworten,
SteRa

















stera

Hallo nochmal,

ist es denn generell irgendwie möglich mit einem Switch, einen anderen dummy/device über data-set-on / data-cmd zu schalten...

So schickt er es ja doppelt raus..
Beispiel:
<div data-type="switch" data-device="Logo_Lampe" data-cmd="set Logo_Taster on" class="large"></div>


Stril

Hallo!

Hast Du es schon mit dem multistate-button versucht:

<div data-type="multistatebutton"
       data-device="Logo_Taster"
       data-get-on='["on","off"]'
       data-set='["off","on"]'
       ></div>


Gruß
Phil

setstate

Und warum beides zusammen und nicht ein Symbol für die Anzeige des Zustandes und ein Push/Switch zum schalten?

ak0509

#4
Hallo,

beim Licht schreibe ich direkt die Ausgänge, im UI mit einem einfachen Switch

<div data-type="switch" data-device="Licht_WZ" class="cell"></div>
           <div data-type="label" class="cell">Licht</div>


bei Eingängen (Taster für Rollos zB)  verwendet ich den TRIGGER im s7 Modul

<div data-type="push" data-device="db3.dbx3.0"
                    data-icon="fa-chevron-down" data-background-icon="fa-square-o" data-set="TRIGGER">


lg AK

stera

Danke für die Antworten,

aber das mit dem Trigger und Ausgang direkt schalten hilft bei mir leider nicht weiter. Bei Triggern(Push) bekomme ich ja keine Rückmeldung und Ausgang direkt schalten funktioniert nicht, weil der ja wieder automatisch durch die Logo zurückgesetzt wird. Dort ist ja auch eine Automation hinterlegt mit Komfortschalter etc. Die wollte ich gerne bei behalten.

Ich glaube der Ansatz von setstate bleibt unvermeidbar..Schalter/Taster und Lampe getrennt anlegen..

Schöne Grüße,
SteRa 

ak0509

Yep, Logik mischen ist schwierig
Komforts mach ich in fhem,basics in der S7
fürs Licht hab ich simple Stromstoßschalter programmiert, den Rest erledigt fhem.

wennst ne gute Lösung findest,bitte hier verewigen

LG AK




stera

Hallo setstate,

die schönste Lösung wäre ja in dem Fall ein Switch mit Rückmeldung eines anderen Device zu erstellen bzw. reicht es ja schon das sich ein set eines anderes devices senden lässt. Wie schwer wäre sowas? 

Gruß,
SteRa

stera

So habe das nun erstmal getrennt angelegt (siehe Anhang).

Die Lampe ist allerdings noch als Switch. Wenn ich das als "Symbol" anlege, wird das Icon durch die Hintergrundgrafik überschrieben bzw. der Hintergrund ist im Vordergrund und die Reaktion der Anzeige ist ziemlich lahm.

Hier der Code:


<div data-type="push" data-device="LogoTasterVordach" data-set="value 1" data-icon="fa-bolt" class="inline small"></div>
<div data-type="switch" data-device="LogoLampeVordach" data-get-on="1" data-get-off="0" data-set="value" class="inline large"></div>

Yepe

#9
Moin,

ich habe es wie folgt für mich gelöst

Fhem
define LOGO1_Ausgang_16 S7_DRead Q16
attr LOGO1_Ausgang_16 IODev LOGO1

define LOGO1_Eingang_16 S7_DWrite db 0 16.0
attr LOGO1_Eingang_16 IODev LOGO1

define LOGO1_Schalter_16 readingsProxy LOGO1_Ausgang_16
attr LOGO1_Schalter_16 devStateIcon on:li_wht_on off:li_wht_off
attr LOGO1_Schalter_16 room LOGO
attr LOGO1_Schalter_16 setFn {fhem("set LOGO1_Eingang_16 trigger")}
attr LOGO1_Schalter_16 setList on off
attr LOGO1_Schalter_16 webCmd on


Tablet UI
</li>
<li data-row="2" data-col="1" data-sizex="1" data-sizey="1">
        <header>GALERIE</header>
        <div data-type="switch" data-device="LOGO1_Schalter_016" class="cell"></div>
        <div data-type="label" class="cell">Licht</div>
        <div daten-get-on="on.*"
        data-get-off="off"></div>
</li>

</li>



Mfg

Yepe

stera

Zitat von: Yepe am 10 Dezember 2015, 09:42:43
Moin,

ich habe es wie folgt für mich gelöst

Fhem
define LOGO1_Ausgang_16 S7_DRead Q16
attr LOGO1_Ausgang_16 IODev LOGO1

define LOGO1_Eingang_16 S7_DWrite db 0 16.0
attr LOGO1_Eingang_16 IODev LOGO1

define LOGO1_Schalter_16 readingsProxy LOGO1_Ausgang_16
attr LOGO1_Schalter_16 devStateIcon on:li_wht_on off:li_wht_off
attr LOGO1_Schalter_16 room LOGO
attr LOGO1_Schalter_16 setFn {fhem("set LOGO1_Eingang_16 trigger")}
attr LOGO1_Schalter_16 setList on off
attr LOGO1_Schalter_16 webCmd on


Tablet UI
</li>
<li data-row="2" data-col="1" data-sizex="1" data-sizey="1">
        <header>GALERIE</header>
        <div data-type="switch" data-device="LOGO1_Schalter_016" class="cell"></div>
        <div data-type="label" class="cell">Licht</div>
        <div daten-get-on="on.*"
        data-get-off="off"></div>
</li>

</li>



Mfg

Yepe


Hallo Yepe,

ich benutze Log-Binary, da gibt es die Funktion leider nicht. Konnte das aber auch auf einen leichteren Weg lösen. Komisch, dass man da nicht schneller selbst drauf kommt. Meine Lösung mit dem Push funktioniert leider auch nicht mehr, weil die Push Funktion seit kurzen nicht mehr bei mir geht!? Wundert mich bisschen, dass andere da noch keine Probleme hatte.

Meine Lösung sieht jetzt so aus. Löse mit der data-set-on, einfach die Tasterfunktion aus. Die LogoTaster werden automatisch durch ein Notify global bei betätigen zurückgesetzt.


<div data-type="switch" data-device="LogoLampeFlurUnten" data-get-on="1" data-get-off="0" data-set-on="off; set LogoTasterFlurUnten value 1" data-set-off="off; set LogoTasterFlurUnten value 1"  class="large">
</div>
<div data-type="label" class="cell">FlurUnten</div>


Gruß und guten Rutsch,
SteRa