Mit Switch/Push Button mehrere Deviceses gleichzeitig Schalten / anzeigen lassen

Begonnen von Depechem, 09 März 2017, 12:31:30

Vorheriges Thema - Nächstes Thema

Depechem

Hallo,

ich möchte gern in Tablet UI einen Switch oder Push Button bauen der folgendes beinhaltet.
Es soll folgendes geschalten werden:
- set Device1 on
- set Device1 volume 1
- set Device2 play

d.h. mit anklicken sollen diese 2 Deviceses nacheinander schalten. Gleichzeitig soll dieser Schalter auch den Status eines Readings von einem der beiden Devices anzeigen.

- data-device="Device2"
- data-get="playStatus"
- data-get-on="play"
- data-get-off="stop"

ist dies irgendwie zu verwirklichen?
Habe schon gesucht und probiert aber alles zusammen hat nicht funktioniert.

Ich hoffe ihr könnt mir helfen.
Gruß Thomas
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

ArduPino

Dummy button anlegen, den dann im Tablet UI verwenden, ein notify das alles macht was du willst und direkt unter den Button ein Label mit dem reading das du möchtest.

Gesendet von meinem Wileyfox Swift mit Tapatalk

Depechem

Zitat von: ArduPino am 09 März 2017, 12:40:42
Dummy button anlegen, den dann im Tablet UI verwenden, ein notify das alles macht was du willst

Danke,
Dummy wäre auch meine Idee aber ich dachte es geht auch direkt im FTUI.

Zitat von: ArduPino am 09 März 2017, 12:40:42
direkt unter den Button ein Label mit dem reading das du möchtest.

ich möchte Platz sparen daher sollte der "Play" bzw. "Stop" Button direkt im Schalter angezeigt werden.
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

ArduPino

Kann sein das es auch anders geht, weiß nicht.
Wenn du nur Play und Stop brauchst, einfach ein entsprechendes Icon anzeigen lassen. Ein kleiner Text unter einen Button braucht nicht viel Platz. Mehr als ein Button bekommst du eh nicht in ein 1x1 großes Feld... Oder?

Gesendet von meinem Wileyfox Swift mit Tapatalk


sinus61

Vom Prinzip her könnte es ja so gehen, aber das gibt ein Problem wenn Du auch die Reihenfolge so wie oben haben willst.

data-device="Device2"
data-set-on="play; set Device1 on; set Device1 volume 1"

ArduPino

Deshalb die Idee mit notify. Wenn es nun unbedingt nacheinander ausgeführt werden muss, wurde ich noch zwei at einbauen, mit z.B. einer und zwei Sekunden Verzögerung. Wüsste jetzt auch nicht, wie die Abarbeitung erfolgt, wenn mehrere set Befehle dort eingetragen sind.

Gesendet von meinem Wileyfox Swift mit Tapatalk


Depechem

Zitat von: sinus61 am 09 März 2017, 14:20:04
Vom Prinzip her könnte es ja so gehen, aber das gibt ein Problem wenn Du auch die Reihenfolge so wie oben haben willst.

data-device="Device2"
data-set-on="play; set Device1 on; set Device1 volume 1"

Vielen Dank, genau das habe ich gesucht ;-)
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

Standarduser

Es gäbe sonst auch noch die Möglichkeit, einen Befehl per JavaScript abzusetzen. Damit hast Du eigentlich alle Freiheitsgrade.
<div onclick="ftui.setFhemStatus('set dummy1 off')">Dummy1 aus</div>

Bei dieser Variante muss man unter Umständen ein paar Zeiten escapen, was aber kein großes Problem darstellen sollte.

ArduPino

Damit wäre das Problem das es nacheinander ausgeführt werden soll, aber so nicht gelöst.
So was einfaches in JS zu packen halte ich aber etwas Overkill...ich selber kenne JS z.B. nicht und ob der Themenstarter sich damit auskennt, wer weiß.
Anstelle des dummy die Befehle direkt in

data-set-on="play; set Device1 on; set Device1 volume 1"

zu packen, habe ich selber noch nicht genutzt. Werde ich mir direkt mal notieren, bin meistens gut mit dummys gefahren, aber das hat auch andere Gründe.

@Depechem
Wenn es fertig ist, mach doch bitte mal ein Bild. Würde gerne sehen wie du dir das vorgestellt hast.
Speziell wegen dem Platzbedarf.


EDIT:
Ach das kann man ja echt super benutzen.
Ich habe in meinem Tablet UI verschiedene Push Buttons, auf so eine Art Tools Seite.
Dort sind z.B. Buttons für die IP Cam zu positionieren, oder die Bewegungserkennung an zu schalten.
Ist eher dafür gedacht, das wenn irgend was ist, man so per Hand eingreifen kann.
Dafür habe ich für jeden Push Button ein dummy angelegt.
Das braucht man ja gar nicht ! Werde jetzt mal einige dummys entfernen und dann nur ein "dummy" bei allen device einsetzen, den Befehl dann über data-set-on oder data-get-on direkt eingeben.

EDIT2:
Na toll, geht ja gar nicht !
Ok, bevor ich noch mal schreibe teste ich es vorher  >:(

EDIT3:
Ok, geht doch, aber nicht so einfach wenn man die dummys noch in allen möglichen notify oder DOIF verwendet  :o
Egal, damit kann man sich eventuell aber einige dummys sparen...für die Zukunft.

Standarduser


sinus61

Zitat von: Standarduser am 09 März 2017, 18:01:47
Es gäbe sonst auch noch die Möglichkeit, einen Befehl per JavaScript abzusetzen. Damit hast Du eigentlich alle Freiheitsgrade.

Das ist aber vor allem für Widgets nützlich die sonst keine Befehle beim klicken absetzen. Switch/Push schicken doch eh einen Befehl an FHEM, da kann man das auch alles bei data-set-on eintragen. Letztendlich kann da ja alles ausgeführt werden was man auch in der FHEM Befehlszeile macht.

ArduPino

@Standarduser
Lösung ist falsch ausgedrückt. Es ist so wie hier beschrieben wurde, nur habe ich übersehen, das ich die meisten dummys auch noch in DOIF oder notify benutze. Dann geht das so natürlich nicht:

Möchte man nur Befehle wie "set Steckdose on" übermitteln, reicht es bei device immer das gleiche dummy einzutragen. Der Befehl wird dann bei "data-set-on" eingetragen.

Das ist aber nur was für push Buttons sinvoll, ein switch soll mir ja anzeigen,  ob es an oder aus ist.
Einige dummys kann ich so denke ich einsparen, das wird nämlich langsam unübersichtlich.


Gesendet von meinem Wileyfox Swift mit Tapatalk

n4rrOx

Zitat von: sinus61 am 10 März 2017, 10:53:44
Das ist aber vor allem für Widgets nützlich die sonst keine Befehle beim klicken absetzen. Switch/Push schicken doch eh einen Befehl an FHEM, da kann man das auch alles bei data-set-on eintragen. Letztendlich kann da ja alles ausgeführt werden was man auch in der FHEM Befehlszeile macht.

...einfach beim Push z. B. data-fhem-cmd benutzen?
Ist doch wie die Eingabe in der FHEM Befehlszeile.
Schaltbefehle, ggf. sleep und userreadings können alle in "einem Befehl" gebündelt werden .... das userreading kann dann im Push zur Zustandsanzeige benutzt werden.
Somit keine Dummys, Doifs, notifys .....

Gruß
Mathias

Depechem

Wie gewünscht meine Lösung:

<div class="inline left  right-space">
<div data-type="switch"
data-device="DENON4300h_Zone_2"
data-get="state"
data-set-on="set DENON4300h_Zone_2 on; sleep 0.5; set DENON4300h_Zone_2 input OnlineMusic; sleep 0.5; set HEOSPlayer1772574848 play"
data-set-off="set HEOSPlayer1772574848 stop; sleep 0.5; set DENON4300h_Zone_2 off"
data-get-on="on"
data-get-off="off"
                data-states='["on","off"]'
data-icons='["fa-play","fa-power-off"]'
data-colors='["#00ff00","red"]'
                data-on-color="#01DF01"
                data-off-color="#8C8C8C"
                data-on-background-color="#6699FF"
                data-off-background-color="#00ff00"
data-background-icon="fa-circle-thin"
class="">
</div>
<div data-type="label"
class="">Power
</div>
</div>


Im Anhang ein Bild dazu.
der ober Player läuft, der untere nicht.

Gruß Thomas
RaspberryPi2 / FHEM / 3 Wand-Tablets mit Tablet UI / HM USB / verschiedene HM-Aktoren / JeeLink USB für WS1600 und mehrere LaCrosse Sensoren / HEOS ...

ArduPino

Sieht ja gut aus !

Gesendet von meinem Wileyfox Swift mit Tapatalk