Style ios12 übermittelt falschen Wert

Begonnen von FlatTV, 10 Februar 2026, 15:33:12

Vorheriges Thema - Nächstes Thema

FlatTV

Hallo,
ich bin mir nicht sicher, ob ich hier richtig bin.
In einem Modul (BOSEST) wird ein falscher Wert mit dem Style ios12 übermittelt.
Der Style f18 macht hier alles richtig und lege das mal als Referenz hinzu.

Es geht um das auf dem Screenshot selektierte select_widget.
Der Stile f18 übermittelt beim druck auf "set" alles korrekt.
Zitat14:39:52.127 FW_cmd:/fhem?cmd.setBOSE_9884E307C182%3Dset%20BOSE_9884E307C182%20source%20tv&XHR=1 fhemweb.js:611:13
Im ios12 Style wird das falsch gemacht, da wird "0" statt "tv" übertragen.
Zitat14:42:02.155 FW_cmd:/fhem?cmd.setBOSE_9884E307C182%3Dset%20BOSE_9884E307C182%20source%200&XHR=1 fhemweb.js:611:13
Fehlt hier im Style ios12 der Name "val.xxx"?
Raspi4 - im wesentlichen mit Phoscon, HomeMatic ( aktuell über debmatic), CUL, BOSE-ST und Alexa (Connector)

rudolfkoenig

ZitatFehlt hier im Style ios12 der Name "val.xxx"?
Ja, das ist ein Problem.

Was liefert "set BOSE.* ?" zurueck, wenn man es in den "+" Dialog von f18 (oben links) eingibt?
Die Eingabezeile entfernt leider das in diesem Fall Relevante.

Merkwuerdig: so wie ich FHEM/98_BOSEST.pm verstehe, kann source nur die Werte bluetooth,bt-discover,aux und airplay aufnehmen.
Vmtl. ist das nicht die hier benutze Version.

FlatTV

#2
Zitat von: rudolfkoenig am 13 Februar 2026, 20:23:50Merkwuerdig: so wie ich FHEM/98_BOSEST.pm verstehe, kann source nur die Werte bluetooth,bt-discover,aux und airplay aufnehmen.
Vmtl. ist das nicht die hier benutze Version.
Da hast du natürlich vollkommen recht, es wird gerade mit pah daran gearbeitet.
Das Problem ist aber im Original das selbe, wenn ich bluetooth auswähle.
Wenn es gewünscht wird, setze ich alles gerne auf das Original zurück.

Zitat von: rudolfkoenig am 13 Februar 2026, 20:23:50Was liefert "set BOSE.* ?" zurueck, wenn man es in den "+" Dialog von f18 (oben links) eingibt?
Die Eingabezeile entfernt leider das in diesem Fall Relevante.

Unknown argument ?, choose one of on:noArg off:noArg power:noArg play:noArg playPause:noArg mute:on,off,toggle recent source:aux,airplay,bluetooth,bt-discover shuffle:on,off repeat:all,one,off nextTrack:noArg prevTrack:noArg playTrack speak speakOff playEverywhere:noArg stopPlayEverywhere:noArg createZone addToZone removeFromZone clock:enable,disable stop:noArg pause:noArg channel:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 volume:slider,0,1,100 bass:slider,1,1,10  saveChannel:07,08,09,10,11,12,13,14,15,16,17,18,19,20 origin saveState:noArg restoreState restoreVolAndOff addDLNAServer:NAS,pi4:_minidlna,FRITZ removeDLNAServer:NAS,pi4:_minidlna,FRITZ blink on-till off-till-overnight intervals on-till-overnight off-till off-for-timer on-for-timer attrTemplate:?,speechcontrol_general_naming_master_template
Unknown argument ?, choose one of on:noArg off:noArg power:noArg play:noArg playPause:noArg mute:on,off,toggle recent source:airplay,tv,hdmi1,bluetooth,bt-discover shuffle:on,off repeat:all,one,off nextTrack:noArg prevTrack:noArg playTrack speak speakOff playEverywhere:noArg stopPlayEverywhere:noArg createZone addToZone removeFromZone clock:enable,disable stop:noArg pause:noArg channel:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 volume:slider,0,1,100 bass:slider,-4,1,4 treble:slider,-4,1,4 dialog:on,off saveChannel:07,08,09,10,11,12,13,14,15,16,17,18,19,20 origin saveState:noArg restoreState restoreVolAndOff addDLNAServer:NAS,pi4:_minidlna,FRITZ removeDLNAServer:NAS,pi4:_minidlna,FRITZ off-for-timer off-till on-for-timer blink on-till off-till-overnight intervals on-till-overnight attrTemplate:?,speechcontrol_general_naming_master_template
Unknown argument ?, choose one of on:noArg off:noArg power:noArg play:noArg playPause:noArg mute:on,off,toggle recent source:aux,bluetooth,bt-discover,airplay shuffle:on,off repeat:all,one,off nextTrack:noArg prevTrack:noArg playTrack speak speakOff playEverywhere:noArg stopPlayEverywhere:noArg createZone addToZone removeFromZone clock:enable,disable stop:noArg pause:noArg channel:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 volume:slider,0,1,100 bass:slider,1,1,10  saveChannel:07,08,09,10,11,12,13,14,15,16,17,18,19,20 origin saveState:noArg restoreState restoreVolAndOff addDLNAServer:NAS,pi4:_minidlna,FRITZ removeDLNAServer:NAS,pi4:_minidlna,FRITZ off-till off-for-timer on-for-timer on-till blink on-till-overnight off-till-overnight intervals attrTemplate:?,speechcontrol_general_naming_master_template
 

Würde das helfen?
Ich habe mir schon einen Wolf gesucht, um herauszufinden wo das Problem liegt.

//Edit: Ausgabe von "set BOSE_.* ?"
Raspi4 - im wesentlichen mit Phoscon, HomeMatic ( aktuell über debmatic), CUL, BOSE-ST und Alexa (Connector)

rudolfkoenig

Die Ursache ist die Sonderbehandlung der Slider in ios12, und dass das erste Element (volume) ein Widget mit Slider ist.
ios2 versteckt den Slider, und fuegt ein <div> mit einem SVG-Plus und -Minus Zeichen davor ein.

fhemweb.js uebernimmt das name Attribut beim Widget-Wechsel vom alten Widget, und ersetzt dieses Widget durch  das Neue.

Da dieser aber eins weitergeschoben ist, gibt es gleich zwei Probleme: es wird kein name Attribut gefunden, und nur das <div> mit den zwei SVGs wird ersetzt, der versteckte Slider bleibt aber erhalten.
Dieser Slider hat den "richtigen" Namen, und den Wert 0.

Workarounds:
- fuer ios12 auf Slider und colorpicker verzichten
- in ios2touchpad.js, Zeile 192 .slider_widget umbenennen, damit wird diese Funktion deaktiviert.
Eine Loesung waere den Slider in das SVG-Div zu stecken, das ueberlasse ich aber dem ios12 Autor :)

FlatTV

Vielen Dank Rudolf,

ich schau einmal nach dem Autor.
Raspi4 - im wesentlichen mit Phoscon, HomeMatic ( aktuell über debmatic), CUL, BOSE-ST und Alexa (Connector)

rudolfkoenig

Da die Autorin sich nicht gemeldet hat, habe ich das Problem behoben, indem ich die +/- Funktionalitaet fuer slider und colorpicker deaktiviert habe.

ZitatEine Loesung waere den Slider in das SVG-Div zu stecken[...]
Das hat leider nicht funktioniert.

FlatTV

Zitat von: rudolfkoenig am 17 März 2026, 19:12:02Da die Autorin sich nicht gemeldet hat, habe ich das Problem behoben, indem ich die +/- Funktionalitaet fuer slider und colorpicker deaktiviert habe.

ZitatEine Loesung waere den Slider in das SVG-Div zu stecken[...]
Das hat leider nicht funktioniert.

Ich danke dir Rudi.

Jetzt funktioniert zwar alles, jedoch ist das Look and Feel dieses Styles komplett auf der Strecke geblieben.
Das die Slider aufklappbar waren, ist der große Vorteil gewesen.

:o
Raspi4 - im wesentlichen mit Phoscon, HomeMatic ( aktuell über debmatic), CUL, BOSE-ST und Alexa (Connector)

FlatTV

#7
Anderer Ansatz;

Das neue DIV hinten anstellen, wäre das eine Lösung?
@rudolfkoenig, was denkst du?

var mobiletoggle = function () {
        if ($('body').hasClass("colortoggle")) {} else {
                var counter = 0;
                $(".colorpicker_widget, .slider_widget").each(function () {
                        var $newToggleDiv = $('<div id="toggle_colorpicker' + counter + '" onclick="togglecolorpicker(' + counter + ')" style="display: table-cell;vertical-align: middle;"><svg class="icon control_plus" data-txt="control_plus" id="colorplus' + counter + '" version="1.0" xmlns="http://www.w3.org/2000/svg" width="468pt" height="474pt" viewBox="0 0 468 474" preserveAspectRatio="xMidYMid meet"> <metadata> Created by potrace 1.8, written by Peter Selinger 2001-2007 </metadata> <g transform="translate(0,474) scale(0.200000,-0.200000)" stroke="none"> <path d="M1002 2354 c-18 -9 -43 -31 -55 -48 -22 -31 -22 -35 -25 -458 l-3 -428 -397 0 c-444 0 -443 0 -490 -70 -22 -33 -23 -42 -20 -177 l3 -143 38 -37 37 -38 415 -3 415 -3 0 -422 c0 -403 1 -423 20 -455 37 -61 70 -72 210 -72 150 0 182 12 218 80 22 44 22 49 22 457 l0 413 424 0 c422 0 423 0 456 23 57 39 70 76 70 206 0 143 -19 192 -84 222 -38 17 -73 19 -453 19 l-413 0 0 418 c0 459 0 460 -63 506 -25 18 -45 21 -160 24 -107 2 -138 -1 -165 -14z m258 -599 l0 -475 470 0 470 0 0 -100 0 -100 -475 0 -475 0 0 -475 0 -476 -97 3 -98 3 0 473 0 472 -457 0 -458 0 0 100 0 100 457 2 458 3 -4 473 -3 472 106 0 106 0 0 -475z"></path> </g> </svg><svg class="icon control_minus" id="colorminus' + counter + '" data-txt="control_minus" version="1.0" xmlns="http://www.w3.org/2000/svg" width="468pt" height="95pt" viewBox="0 0 468 95" preserveAspectRatio="xMidYMid meet"> <metadata> Created by potrace 1.8, written by Peter Selinger 2001-2007 </metadata> <g transform="translate(0,95) scale(0.196639,-0.196639)" stroke="none"> <path d="M85 460 c-11 -4 -33 -22 -50 -40 -30 -31 -30 -31 -33 -168 -3 -163 7 -193 79 -230 l44 -22 1077 2 1077 3 28 21 c57 43 68 76 68 214 0 141 -11 176 -68 210 -31 19 -58 20 -1117 19 -597 0 -1094 -4 -1105 -9z m2155 -220 l0 -100 -1055 0 -1055 0 0 93 c0 52 3 97 7 100 3 4 478 7 1055 7 l1048 0 0 -100z"></path> </g> </svg></div>');
                        $(this).after($newToggleDiv);
                        $(this).parent().css("white-space", "nowrap");
                        $(this).parent().css("display", "table");
                        $(this).attr('id', 'colorpicker' + counter);
                        $(this).hide();
                        $('#colorminus' + counter).hide();
                        counter++;
                });
                $('body').addClass("colortoggle");
        }
};

//Edit
Ach Mist, dann ist das "+" in ReadingsGroup nicht mehr sichtbar.

Browser Cache gelöscht und dann gehts
Raspi4 - im wesentlichen mit Phoscon, HomeMatic ( aktuell über debmatic), CUL, BOSE-ST und Alexa (Connector)

rudolfkoenig

Alter Code:
$('<div .../>').insertBefore($(this))
Das ist doch equivalent mit Deinem
$(this).after($newToggleDiv)
Das Problem ist doch, dass nach dem select (volume) genau ein Element (z.Bsp. ein <div>) sein darf, weil nur eins ersetzt wird.
Weitere Elemente danach bleiben uebrig, und verursachen Probleme (source 0).

Unter dem Strich: ich verwende dieses Style nicht, wenn ihr damit zufrieden seid, kann ich alles einbauen :)

P.S:
Auf einem (simulierten) iPhone12 ist der Slider mit dem +/- Knoepfen nicht bedienbar, der Slider wird rechts abgeschnitten.
Liegt das an der schlechten Simulation?

FlatTV

#9
Ich bediene das immer mit dem iPad und da ist der Style wirklich gut, da es mein einziges Frontend ist.
Auf dem iPhone ist das etwas verschoben und gequetscht aber +/- sind bedienbar.

Du hast ja Recht, das +/- DIV bleibt stehen aber das Widget findet jetzt wenigstens Name und Wert bei meinem Ursprünglichen Problem.
Übrigens taucht das Problem nicht bei <volume> <slider> auf (in diesem Beispiel).
Erst wenn ein 2. Widget hinzukommt <source> <tv> haut es nicht hin.
Naja, war ja ein Versuch wert.

Im Modul Hue gibt z.B. keine Probleme und da sind viele +/- enthalten.
Raspi4 - im wesentlichen mit Phoscon, HomeMatic ( aktuell über debmatic), CUL, BOSE-ST und Alexa (Connector)