FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: roedert am 05 Januar 2018, 09:12:41

Titel: vermisse "set on/off/toggle...." bei HM-Tastern
Beitrag von: roedert am 05 Januar 2018, 09:12:41
Meine FS20-Taster kann ich auch schon in der FHEM-Weboberfläche "drücken" ... mittels devStateIcon und hinterlegtem Command.
Diese Möglichkeit habe ich bei HM-Tastern (aktuell ein HM-RC-2-PBU-FM) jedoch noch nicht gefunden, da diese via "set" kein on, of, toggle etc. unterstützen.
Gibt es hier eine Lösung für?
Titel: Antw:vermisse "set on/off/toggle...." bei HM-Tastern
Beitrag von: Grisu am 05 Januar 2018, 09:30:13
Weiss nicht ob ich dich richtig verstanden habe. Toggeln soll ja der Aktor und nicht der Sender. Sobald du mehrere Sender einem Aktor zuweist ist die Statusanzeige des Senders nicht mehr von Bedeutung. Ansonsten kannst du dem HM-Aktor über das WEB mittels des Attribut webCmd statusRequest:toggle:on:off das Toggeln beibringen. Aus meiner Sicht haben die Sender in der WEB Ansicht keine Relevanz. lediglich die Aktoren.
Gruss Grisu
Titel: Antw:vermisse "set on/off/toggle...." bei HM-Tastern
Beitrag von: roedert am 05 Januar 2018, 09:37:44
Richtig, von der Logik her ist ein "set on" auf einen Sender natürlich falsch - logisch korrekt wäre ein statt dem set ein trigger.
Doch bei FS20 ist es so im set umgesetzt und dies ermöglicht somit auch ein "virtuelles Drücken" eines Tasters via webcmd in der Weboberfläche. Klar kann man auch direkt den Autor in der Weboberfläche schalten, aber wenn hinter dem Taster ein komplexes notify hängt ist es darüber komfortabler.
Ich habe einen HM-Taster auch schon in einer readingsgroup "nachgestellt" und entsprechende trigger-Befehle hinterlegt, was auch prima funktioniert. Schön wäre es jedoch wenn man das ohne Umwege auch im HM-Device selbst machen könnte.
Titel: Antw:vermisse "set on/off/toggle...." bei HM-Tastern
Beitrag von: Otto123 am 05 Januar 2018, 10:10:23
Hi,

ich verstehe deine Farge auch nicht so richtig. Mag sein weil ich nicht aus der FS20 Welt komme und dort die Logik eventuell eine andere war.
Physische Taster sind in meiner Vorstellung nicht zum drücken auf der Weboberfläche gedacht, sondern da drückt man richtig drauf und dann machen wie etwas.
Ich denke am ehesten kommst Du auf das was Du willst, wenn Du deine Taster mit einem virtuellen Aktor peerst und dann an diesem Deine Logik abbildest.
Oder Du machst Dir mit einem dummy einen Zusatz Taster den Du in deine "Logik" mit notify usw einspeist. So mache ich das manchmal. Zwei Fernbedienungen zum draufdrücken und einen Knopf im Web. Sind aber in meiner Logik dann drei Taster  :D

Gruß Otto
Titel: Antw:vermisse "set on/off/toggle...." bei HM-Tastern
Beitrag von: roedert am 05 Januar 2018, 10:18:06
Zitat von: Otto123 am 05 Januar 2018, 10:10:23
ich verstehe deine Farge auch nicht so richtig.

Doch, hast du prinzipiell schon richtig verstanden. "Grundsatzfrage" ist eben ob man einen physischen Taster in der Weboberflächen drücken können sollte oder eben nicht.
FS20 kann man "drücken", HomeMatic eben nicht.
Wie ich dies mit einem weiteren dummy, readingsgroup (da es da ziemlich umfangreiche Formatierungsmöglichkeiten gibt) oder auch eine remotecontrol umsetze ist kein Problem und habe ich ja auch schon gemacht.

War eben nur die Frage von mir ob ich da was übersehen habe, und man einen HM-Taster eben doch irgendwie im Device selbst "drücken" kann :-)
 
Titel: Antw:vermisse "set on/off/toggle...." bei HM-Tastern
Beitrag von: Otto123 am 05 Januar 2018, 10:32:38
Ich denke, Du hast nichts übersehen. Die HM Taster-Devices im FHEM sind nicht zu drücken  ;D
Titel: Antw:vermisse "set on/off/toggle...." bei HM-Tastern
Beitrag von: frank am 05 Januar 2018, 11:15:44
du kannst auch einen zusätzlichen, virtuellen hm taster definieren. dieser kann auch mit realen aktoren gepeert werden und kann zb "press short/long".
Titel: Antw:vermisse "set on/off/toggle...." bei HM-Tastern
Beitrag von: Pfriemler am 05 Januar 2018, 14:56:47
Erst mal prinzipiell, wie schon gesagt: in FS20 sendet eine Taste ein Kommando an den Aktor, was zu tun ist (on, off, toggle). In Homematic sendet eine Taste "ich wurde gedrückt" und im Aktor wird entschieden, was damit zu tun ist.
Hat man einen Taster und einen Aktor direktverknüpft, so kann man aus FHEM heraus auch den Tastendruck simulieren - insofern widerspreche ich Otto: man kann in FHEM bekannte Taster-Devices auf genau diese Weise "ferndrücken" - technisch sendet dann FHEM das gleiche Kommando aus, was der Taster senden würde, und der Aktor bemerkt den Unterschied nicht einmal. Dafür braucht es also keine virtuelle Taste. Gleichwohl macht eine virtuelle Taste als zusätzlicher Peer, wie frank vorschlägt, in manchen Fällen dennoch Sinn. Aber das ist dann eine weitere Betätigungsmöglichkeit mit einem eigenen Regelsatz (was ist zu tun wenn diese Taste gedrückt wird) im Aktor.

Beispiel: Ich nutze eine virtuelle Taste, die mit allen 8 Kanälen eines Batterie-Empfangsmoduls gepeert ist, zum funktechnisch sparsamen Ausschalten aller Kanäle (es ist nur ein Kommando samt Burst nötig (statt 8), alle Kanäle reagieren fast zeitgleich, Einschalten per shCtOn = no gesperrt).

Nachtrag: was NICHT so funktioniert, ist so quasi analog zu FS20 ein Event zu erzeugen, auf das Notifys reagieren. Wenn das Otto mit meinte, hat er wieder recht ...
Titel: Antw:vermisse "set on/off/toggle...." bei HM-Tastern
Beitrag von: roedert am 05 Januar 2018, 15:06:35
Zitat von: Pfriemler am 05 Januar 2018, 14:56:47Nachtrag: was NICHT so funktioniert, ist so quasi analog zu FS20 ein Event zu erzeugen, auf das Notifys reagieren. Wenn das Otto mit meinte, hat er wieder recht ...

Aber genau das klappt bei mir mit trigger Arbeitszimmer.Lichtschalter.2 Short broadcast
Titel: Antw:vermisse "set on/off/toggle...." bei HM-Tastern
Beitrag von: martinp876 am 05 Januar 2018, 15:59:21
hm  - mal sehen ob ich so weit mitgekommen bin:

Titel: Antw:vermisse "set on/off/toggle...." bei HM-Tastern
Beitrag von: Pfriemler am 05 Januar 2018, 16:15:15
Zitat von: roedert am 05 Januar 2018, 15:06:35
Aber genau das klappt bei mir mit trigger Arbeitszimmer.Lichtschalter.2 Short broadcast
Das triggert zwar alle auf das Event reagierenden notify/DOIF/Watchdog/..., aber es erzeugt keine Funkbefehlaussendung. Freilich kann man in einer Routine sowohl den press-Befehl senden und zusätzlich den Trigger. Bei FS20 reicht da eine Manipulation.

Zitat von: martinp876 am 05 Januar 2018, 15:59:21
... Man simuliert/aktiviert am Aktor das Drücken eines dort gepeerten Buttons. Großer Unterschied zum (nicht vorhandenen ) Press am Sensor ist, dass es genau an ein Device gesendet wird.
Hm, dann muss ich wohl meine Äußerung zurücknehmen, dass es funktechnisch keinen Unterschied zum "echten" Sender gibt ...
Titel: Antw:vermisse "set on/off/toggle...." bei HM-Tastern
Beitrag von: martinp876 am 05 Januar 2018, 18:09:03
Ich spiele gerade mit dem Gedanken, ein "Press" für jeden Sensor (Button) vorzusehen. Allerdings zögere ich, da ich den Anwendern klar machen muss, dass dies KEIN Kommando an den Sensor ist sondern  es wird je ein Kommando an einen Peer geschickt. Kann man dann leicht überlesen.... das/die Kommandos werden dann in der CMD-Queue eines jeden Devices eingetragen. Die Kommandos unterliegen dann den jeweiligen Devices (burst, wakeup,...) was bspw bei RTs zum Tragen kommt.
Gleiches gilt für postEvent...

Eingentlich sollte man es einbauen - werden die Anwender damit umgehen können? Problemlos?
Titel: Antw:vermisse "set on/off/toggle...." bei HM-Tastern
Beitrag von: frank am 05 Januar 2018, 20:07:50
vielleicht nennt man es:
"set simulate-short/long-press"
Titel: Antw:vermisse "set on/off/toggle...." bei HM-Tastern
Beitrag von: Pfriemler am 05 Januar 2018, 20:26:53
Zitat von: martinp876 am 05 Januar 2018, 18:09:03
... ein "Press" für jeden Sensor (Button) vorzusehen... es wird je ein Kommando an einen Peer geschickt. ...

Doof zwischengefragt: Sendet ein mit mehreren Aktoren gepeerter Hardware-Taster an jeden einzelnen Aktor eine einzelne Anforderung inkl. Quittungsanforderung oder sendet er nur quasi broadcast und erwartet von allen peers eine Quittung? Ich war bisher von letzterem ausgegangen, aber die zeitliche Verzögerung bei getrennten Sendungen dürfte real kaum auszumachen sein (bei separat über FHEM verschickten Sendungen - mein Beispiel "set 8Kanal_sw.* off" schafft 3-4 Kanäle pro Sekunde, mit dem virtuellen Button sind sie quasi gleichzeitig aus).

Deine Variante würde dann (so oder so) auf Anforderung (der Vorschlag "simulate-short" etc. ist gut) an alle (bekannten) peers senden, im Gegensatz zum pressS/pressL beim Aktor. Braucht man das wirklich? Die genannten gleichzeitige Befehligung per virtuellem Button funktioniert (nach etwas Einrichtungsaufwand) jedenfalls prima.

Was vielleicht wirklich mal neu und überlegenswert wäre: ein long definierbarer Länge, konkret wie viele long-Trigger bspw. "set <taster> simulate-long 9". Damit könnte man etwa Dimmer oder dergleichen besser fernbedienen.

Jm2c.
Titel: Antw:vermisse "set on/off/toggle...." bei HM-Tastern
Beitrag von: martinp876 am 05 Januar 2018, 21:12:48
Es sind einige Details.
Sensoren machen es leicht unterschiedlich, was das short betrifft. Ich erinnere mich dunkel an Varianten die ich glaube Zeichen eq3 und Nachbauten (elv) gesehen zu haben. Eq3 ist m.e konsequenter.
Jedenfalls sendet er Sensor immer am Ende an alle peerdevices!!! (Nicht je Kanal!) Und fordert ein acks. Bei Long zumindest werden die einzelnen trigger per Broadcast gesendet ( geht nicht anders). Bei short meine ich gibt es den unterschied, dass zuerst ein Broadcast kommen sollte(wegen der synchronität) und dann die acks eingefordert werden.
Kritisch das alles wenn nun burst hinzukommt. Burst muss erst alle aufwecken. Noch kritischer bei aes, insbesondere bei Long. Erst quittieren, dann schalten, dann zu allen peters in Echtzeit. Habe ich nicht getestet.

Soweit der Hintergrund.
Was ich nicht implementiere ist, eine Nachricht unter falschem Absender zu schicken. Sprich im Namen des Sensors eine msg (Press) abschicken. Das wiederspricht den Protokoll und solche basteleien instabilisieren das System.

Das aktuelle Press ist eine Message welche eq3 implementiert hat. Die zentrale sendet das Kommando "simuliere trigger eines deiner peers" . Man kann short oder Long schicken. Der grosse Unterschied ist, dass der Absender die ccu (vccu,...) ist und somit alle Mechanismen normal arbeiten. Das geht schon damit los, das acks korrekt behandelt werden. Auch burst und aes kommen normal.

Offen ist der Punkt, wie man bspw mit dem rt umgeht. Würde der Sensor einen trigger schicken würde er burst nutzen. Kann man machen, allerdings kann man auch auf den wakeup warten. Ich bevorzuge erst einmal wakeup.

Zu den Kommandos: ein Bindestrich geht nicht. Den baue ich nur unter zwang ein. Fhem nutzt littelCamelLetter hat man mir gesagt.
Simulate gibt in sich auch nicht die semantic des Problems wieder.

Eigentlich ist es ein triggerPressAtPeers.
Neben dem Namen Stelle ich mir vor, den peer als Parameter zu setzen. Nachdem das Kommando frontend aber immer noch nur einen Parameter per dropdown zulässt muss short und Long 2 Kommandos sein.
Set btn1 trigPressL peer1
Set btn1 trigPressS peer1
Set btn1 trigPressL peer2
Set btn1 trigPressL all

So als Beispiele.
Wieder problematisch ist Long. Eigentlich müsste man eine Dauer eingeben und das Kommando wiederholen... Das werde ich aber lassen.
Zu guter letzt noch das Event. Also Press mit Parameter wie von einem md. Das geht dann nicht mehr als dropdown.

Mal sehen. Kommentar?