Open Baxxy13 opened 2 years ago
Klingt für mich als würde lediglich die Übersetzung fehlen 🤷🏻♂️
Klingt für mich als würde lediglich die Übersetzung fehlen 🤷🏻♂️
Es geht darum, dass das Ergebnis der Methode beim Klicken in der WebUI true
, beim Aufruf über ein Programm jedoch false
ist. Und das nur bei HmIP.
Bei BidCos ist es in beiden Fällen true
.
Die fehlende Übersetzung im Systemprotokoll fällt natürlich auf, spielt hier aber erstmal keine Rolle. Spekulation: Es kann nicht korrekt übersetzt werden weil der "Tastendruck = falsch" so nicht vorgesehen ist.
Ist ja m.E. auch irgendwie unsinnig. Das Event ist z.B. ein kurzer Testendruck und der Wert ist falsch? Wenn irgendwas die Taste drückt sollte in dem Moment der Druck als wahr erkannt werden.
Thanks for your contribution!
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs within the next 7 days. Please check if the issue is still relevant in the most current version of RaspberryMatic and tell us. Also check that all relevant details,
Da mir der Bot im Nacken hängt... Programm zum Nachbauen: Taste 1 & 2 protokollieren...
20:16:05 | 09.03.2022 | HmIP-RCV-50 HmIP-RCV-1:1 | Tastendruck kurz
20:16:06 | 09.03.2022 | HmIP-RCV-50 HmIP-RCV-1:2 | unbekannte Meldung (PRESS_SHORT=FALSE), unbekannte Meldung (PRESS_LONG=FALSE)
20:17:24 | 09.03.2022 | HmIP-RCV-50 HmIP-RCV-1:1 | Tastendruck kurz
20:17:26 | 09.03.2022 | HmIP-RCV-50 HmIP-RCV-1:2 | unbekannte Meldung (PRESS_SHORT=FALSE), unbekannte Meldung (PRESS_LONG=FALSE)
20:18:01 | 09.03.2022 | HmIP-RCV-50 HmIP-RCV-1:1 | Tastendruck lang
20:18:03 | 09.03.2022 | HmIP-RCV-50 HmIP-RCV-1:2 | unbekannte Meldung (PRESS_SHORT=FALSE), unbekannte Meldung (PRESS_LONG=FALSE)
Auffällig ist auch das Taste :2 keinen Zeitstempel in der WebUI bekommt.
Sollte leicht zu reproduzieren sein.
Kleines Update:
DestinationValue der SINGLEDESTINATION wird hier beim Erzeugen des Programmes in der Tat fälschlicherweise auf false
gesetzt.
Korrekt wäre true
(korrigiert mit dem SDV):
Mit einem entsprechenden Script (oder mit dem SDV von Black) lässt sich das also korrigieren.
Das Problem stellt sich für mich wie folgt dar:
1.) Bedienung über die WebUI
Egal ob HMRF
oder HmIP
- beim Klick auf den Button unter "Status und Bedienung" wird dem Datenpunkt des Buttons der Wert 1
(true) übergeben.
Auszug aus der webui.js:
...
onClickShort: function() {
setDpState(this.shortId, 1);
...
onClickLong: function() {
setDpState(this.longId, 1);
...
2.) Auslösen des PRESS-Ereignisses via Programm-DANN
Beim Speichern der Destination wird grundsätzlich der Wert 0
für den PRESS_*
-Datenpunkt gesetzt gesetzt.
Bei HmIP:
<select id="setDestinationDPSelectChange2456" onchange="SetDestinationDPSelectChange(2456,this);" class="SelectBox">
<option value="1381:0|HmIP-RF.HmIP-RCV-1:1.PRESS_LONG" selected="">Tastendruck lang</option>
<option value="1382:0|HmIP-RF.HmIP-RCV-1:1.PRESS_SHORT">Tastendruck kurz</option>
</select>
Bei HMRF:
<select id="setDestinationDPSelectChange2457" onchange="SetDestinationDPSelectChange(2457,this);" class="SelectBox">
<option value="1039:0|BidCos-RF.BidCoS-RF:1.PRESS_LONG" selected="">Tastendruck lang</option>
<option value="1040:0|BidCos-RF.BidCoS-RF:1.PRESS_SHORT">Tastendruck kurz</option>
<option value="1038:0|BidCos-RF.BidCoS-RF:1.LEVEL">Prozentwert senden</option>
</select>
Das Auslösen eines PRESS_SHORT/_LONG
durch ein ReGa-Programm mit dem Wert 0
erzeugt bei der
true
-Event.false
-Ergebnis.Dem BidCos ist es also egal - die Gegenprobe lässt sich auch mittels Skript testen.
dom.GetObject("BidCos-RF.BidCoS-RF:1.PRESS_LONG").State(1);
> homematic-raspi user.debug rfd: Event: BidCoS-RF:1.PRESS_LONG=true
dom.GetObject("BidCos-RF.BidCoS-RF:1.PRESS_LONG").State(0);
> homematic-raspi user.debug rfd: Event: BidCoS-RF:1.PRESS_LONG=true
Dahingegen sieht es bei HmIP anders aus:
dom.GetObject("HmIP-RF.HmIP-RCV-1:1.PRESS_LONG").State(1);
> Call HmIP-RF_java with event HmIP-RCV-1:1 PRESS_LONG = true
dom.GetObject("HmIP-RF.HmIP-RCV-1:1.PRESS_LONG").State(0);
> Call HmIP-RF_java with event HmIP-RCV-1:1 PRESS_LONG = false
Abhilfe Um das Problem zu korrigieren, müsste entweder
true
als Event sendet - wie bei BidCos, oder1
gesetzt werdenOb es jedoch schädlich ist, wenn man in der /www/rega/esp/side.inc:332
generell hier aus der 0
eine 1
macht, weiß ich nicht:
Write( '<option value="'#oDP.ID()#':0|'#oDP.Name()#'"'#sSelected#'>' );
Ggf. müsste man hier noch mal gezielt nach virt. CCU-Tasten filtern.
Describe the issue you are experiencing
"drückt" man die
HmIP-RCV-50 HmIP-RCV-1
oder dieHM-RCV-50 BidCoS-RF
per Mausklick in der WebUI wird folgendes ausgegeben... Systemprotokoll:Externe Auswertung ioBroker mit Blockly:
Soweit korrekt.
Lässt man die selben Tasten im DANN-Teil eines WebUI-Programmes drücken ergibt sich folgendes Bild... Systemprotokoll:
Externe Auswertung ioBroker mit Blockly:
Man sieht das sich die HmIP-RCV-50 HmIP-RCV-1 - Tastendrücke anders verhalten wenn sie durch ein WebUI-Programm ausgeführt wurden.
Describe the behavior you expected
Bin mir nicht sicher ob es tatsächlich ein Bug ist. Zumindest ist es ein inkonsistentes Verhalten und sollte m.E. so nicht sein. Ich würde erwarten das die HmIP-RCV-50 HmIP-RCV-1 - Tastendrücke immer das gleiche "Event" erzeugen, egal ob per WebUI angeklickt oder per WebUI-Programm "gedrückt" Eben gleich wie die HM-RCV-50 BidCoS-RF - Tastendrücke.
Steps to reproduce the issue
What is the version this bug report is based on?
3.61.6.20211203 Nightly Snapshot
Which base platform are you running?
rpi4 (RaspberryPi4)
Which HomeMatic/homematicIP radio module are you using?
RPI-RF-MOD
Anything in the logs that might be useful for us?
Additional information
Innerhalb der WebUI spielt der Fehler augenscheinlich keine Rolle. WebUI-Programme werden trotz:
PRESS_SHORT=FALSE
korrekt durch solch eine gedrückte Taste getriggert.Externe Steuerungen kommen da aber teilweise ins straucheln da sie vermutlich immer ein "true" erwarten.
Diskussion zum Thema im Homematic-Forum: Virtuelle Taster in Programmen